Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi iOS Datenaustausch mit Win Server (https://www.delphipraxis.net/166432-ios-datenaustausch-mit-win-server.html)

weisswe 13. Feb 2012 15:22

iOS Datenaustausch mit Win Server
 
Hallo!

Bei folgendem Problem suche ich eure Hilfe:
+ habe einen Win Server mit DB programmiert
+ Clients sollen mit iOS laufen (iPhones, iPods)
+ Client soll Daten vom Server lesen und schreiben können

Wie sollen sie beiden Platformen miteinander am besten kommunizieren? Wie löse ich das technisch (iOS Seite)?
+ Möglichkeit 1: Netzlaufwerk Dateibasierendes Protokoll -> welche iOS Komponenten?
+ Möglichkeit 2: Messaging (TCP/IP) Protokoll -> Komponenten?
+ Möglichkeit 3: Datenbank -> Datenbank ist Dateibasierend -> KEINE Komponenten (iOS Seite).

Hab es bis jetzt noch nicht geschaft, IRGENDWIE eine Verbindung herzustellen. Was ist der einfachste Weg?? Beispiele?

shmia 13. Feb 2012 15:32

AW: iOS Datenaustausch mit Win Server
 
Ich würde als Protokoll nicht einfach nur TCP/IP verwenden, sondern HTTP.
Da es sich ja um mobile Endgeräte handelt ist HTTP (bzw. HTTPS) das einzige Protokoll von dem man ausgehen kann, dass es immer funktioniert.
Zum Beispiel gibt es viele WLAN-Hotspots bei denen alle Protokolle ausser HTTP (und vielleicht noch HTTPS, POP3, SMTP und IMAP) gesperrt sind.

Als Nächstes stellt sich die Frage, wie sollen die Daten über HTTP transportiert werden?
Hier würde sich XML oder JSON anbieten, abhängig davon was in iOS besser unterstützt wird.

daywalker9 13. Feb 2012 15:34

AW: iOS Datenaustausch mit Win Server
 
Kurz und knapp: Webservice

mjustin 13. Feb 2012 15:35

AW: iOS Datenaustausch mit Win Server
 
Zitat:

Zitat von weisswe (Beitrag 1150830)
Hab es bis jetzt noch nicht geschaft, IRGENDWIE eine Verbindung herzustellen. Was ist der einfachste Weg?? Beispiele?

Am einfachsten für eine cross-platform Verbindung ist sicher TCP/IP.
Verfügbar für iOS ist laut Herstellerangaben das RealThinClient SDK,
http://www.realthinclient.com/

Protokolle, die man einsetzen könnte:

* HTTP (Request/Response)
* Telnet oder ähnlich (dann kann auch der Server aktiv Nachrichten an Clients senden)

Darüber dann einfache Nachrichten, zum Beispiel im JSON oder XML Format

Nachtrag:

Falls nur Port 80 (HTTP) geöffnet ist (Firewall), kann eine bidirektionale Verbidung auch über WebSockets erreicht werden.

Vorteil von WebSockets: ähnlich Ajax kann der Server jederzeit aktiv Daten an Clients senden, es ist kein "Polling" nötig.
Nachteil: es gibt noch keinen WebSockets-Server für Delphi, man muss dann serverseitig z.B. eine C#, PHP oder Java Implementierung einsetzen, was aber insgesamt auch Vorteile gegenüber einem Delphi-Webserver hat.
Ein Delphi WebSockets Client auf Google Code ist leider Indy (9!) basiert, und daher nicht auf iOS einsetzbar.

Bleibt also eigentlich nur HTTP und Polling.

weisswe 13. Feb 2012 15:42

AW: iOS Datenaustausch mit Win Server
 
Zitat:

Zitat von mjustin (Beitrag 1150836)
Indy funktioniert mit iOS.

Wirklich, ich dachte Indy funktioniert (noch) nicht!?

mjustin 13. Feb 2012 15:47

AW: iOS Datenaustausch mit Win Server
 
Zitat:

Zitat von weisswe (Beitrag 1150839)
Zitat:

Zitat von mjustin (Beitrag 1150836)
Indy funktioniert mit iOS.

Wirklich, ich dachte Indy funktioniert (noch) nicht!?

Siehe Delphi XE2 on iOS with Indy or Third Party Internet Components

Ah, jetzt sehe ich diverse 'geht noch nicht' Aussagen ... als verfügbare Lösung wird RTC genannt:

http://www.realthinclient.com/

weisswe 14. Feb 2012 14:19

AW: iOS Datenaustausch mit Win Server
 
Hat jemand schon mal eine iOS Anwendung via Webservice gemacht? Oder kennt wer ein Bespiel-Programm?

mjustin 15. Feb 2012 09:20

AW: iOS Datenaustausch mit Win Server
 
Die Facebook-Seite von RTC hat Links auf Videos für zwei iOS Demos, die mit RealThinClient entwickelt wurden:

http://www.facebook.com/RealThinClient

http://www.youtube.com/watch?v=F5z-5m6F0to

http://www.youtube.com/watch?v=LPV4fWAw69g

Ich wäre auch interessiert zu sehen, wie der serverseitige Code in RTC aussieht.

Dr Bob hat das RTC FishFact Demo auch in seinem neuen "Delphi XE2 iOS Development courseware manual" kurz beschrieben, laut Inhaltsverzeichnis.

Die iOS Seite würde ich vermutlich eher mit AppCelerator entwickeln (siehe Artikel in der iX Februarausgabe, S. 70).

xShad 21. Feb 2012 09:50

AW: iOS Datenaustausch mit Win Server
 
Es gibt im Internet auch ein paar Beispiele wie man einen Internetzugriff direkt über die iOS API machen kann. Dann würde der kostenpflichtige RealThin Client wegfallen. Habe das so auch schon probiert und es funktioniert tadelos.

Ich habe mir dann eine Wrapper Funktion geschrieben, die beim Einsatz im iOS dort über die API geht und wenn ich das Programm unter Windows starte, der Internetzugriff über Indy realisert wird ...

Wenn es also nur um einen Zugriff aufs Internet geht, um z.B. Abfragen dann von einem PHP Skript bereit zu stellen sicherlich der einfachste Weg und läuft sehr stabil :-)

weisswe 21. Feb 2012 15:02

AW: iOS Datenaustausch mit Win Server
 
@xShad: der iOS Client sollte via irgendeinem Protokoll auf einen Win-Firmenserver zugreifen, Internet wird nicht benötigt.. 8-)
Hab mir gedacht der einfachste Weg ist ein Web-Service. Aber kann auch ein komplett anderer Ansatz sein.
Was macht dein Programm?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz