Einführung in DataSnap-Konnektoren für mobile Geräte

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu DataSnap-Konnektoren für mobile Geräte


Mobile DataSnap-Konnektoren bilden ein Framework, mit dem Sie auf die Dienste eines DataSnap-REST-Servers zugreifen und Servermethoden auf fast dieselbe Weise wie andere DataSnap-Proxy-Generatoren aufrufen können.

Unterstützte Plattformen

Die folgenden mobilen Plattformen werden gegenwärtig von den verschiedenen DataSnap-Konnektoren unterstützt:

  • iOS 4.x, 5.x, 6.x, 7.x (Objective-C)
  • Android 2.x, 3.x, oder 4.x (Java)
  • Windows Phone 7 (C#Silverlight – alle mit der Plattform kompatiblen Geräte)
  • BlackBerry Java SDK 5 und 6 (Java)

Funktionsweise der DataSnap-Konnektoren

DataSnap-Konnektoren stellen einen neuen Proxy-Dispatcher bereit, der mit dem bereits vorhandenen Proxy-Generator, Metadaten-Provider und Serverklassenkomponenten zusammenarbeitet. Mittels der Funktionen des Proxy-Dispatcher können Entwickler auf Remote-Computern einen Proxy auf dem Server erzeugen und diesen auf den Entwickler-Computer herunterladen. Dieser neue Proxy-Weiterleitungsdienst wurde eingeführt, weil diese mobile Entwicklung nicht in RAD Studio ausgeführt wird.

Der erste Schritt bei der mobilen Entwicklung mit DataSnap besteht in der korrekten Einrichtung Ihres DataSnap-Servers für die Proxy-Weiterleitung, damit Sie den Proxy der mobilen Plattform erzeugen können. Wenn Sie beispielsweise eine Android-Anwendung entwickeln, benötigen Sie die Datei DSProxy.java, die den vom Server generierten Code enthält. Des Weiteren ist das Package com.embarcadero.javaandroid erforderlich, das die zusätzlichen, vom Proxy benötigten statischen Dateien enthält. Diese statischen Dateien sind hauptsächlich die Datentypen, wie TStream, die den von DataSnap unterstützten Delphi-Datentypen entsprechen.

Unterstützung durch die IDE für mobile DataSnap-Konnektoren

Die DataSnap-Experten enthalten das Kontrollkästchen Mobile Konnektoren. Wenn Sie das Kontrollkästchen Mobile Konnektoren aktivieren, führt der Experte Folgendes automatisch aus:

  • Einrichten des Verzeichnisses "proxy" und der Konnektorkomponenten (Proxy-Generator, Metadaten-Provider und Proxy-Dispatcher).
  • Erzeugen eines Post-Build-Ereignisses, das die statischen Dateiverzeichnisse (proxy, js, templates, css, images) in das Ausgabeverzeichnis Ihres Projekts kopiert. (Wenn Sie das Projektausgabeverzeichnis manuell auf "." oder auf einen beliebigen relativen oder absoluten Pfad setzen, der in das Projektstammverzeichnis aufgelöst werden kann, wird das Kopieren übersprungen.) Dasselbe Post-Build-Ereignis wird für ein Projekt erstellt, das die Datei JavaScript REST enthält (Experte für DataSnap-REST-Anwendungen).

Erzeugen eines Proxy

Zur Konfiguration Ihres DataSnap-Servers für die Proxy-Weiterleitung müssen Sie zunächst sicherstellen, dass der Server für die Proxy-Erzeugung korrekt konfiguriert ist.

Die folgende Abbildung zeigt die Komponenten, die für Aktivierung eines DataSnap-REST-Servers zur Erzeugung von Proxys erforderlich sind:

DScomponents.png

Die folgende Liste enthält die erforderlichen Komponenten und eine kurze Beschreibung der jeweils ausgeführten Aufgabe:

  • TDSProxyGenerator generiert den Proxy.
  • TDSServerMetaDataProvider stellt die REST-Servermetadaten (Servermethoden) für den Proxy-Generator bereit.
  • TDSProxyDispatcher/TDSHTTPServiceProxyDispatcher (WebBroker/Indy) verarbeitet die HTTP-Anforderungen, für die ein spezieller Proxy erforderlich ist, und einen virtuellen Standardpfad namens proxy.

Wenn Ihr Server unter http://www.myserver.com/ erreichbar ist, muss der Proxy also nach http://www.myserver.com/proxy/.... angefordert werden.

Zur Vereinfachung des Herunterladens des Proxy stehen zwei Proxy-Download-Programme zur Verfügung (eine Win32-Konsolenanwendung und eine Java-Befehlszeilenanwendung).

Außerdem müssen Sie Ihrer uses-Klausel jede Proxy-Generator-Unit hinzufügen, für die Proxys verwendet werden sollen (also DSProxyJavaAndroid, DSProxyJavaBlackBerry, DSProxyCsharpSilverlight, DSProxyObjectiveCiOS). Wenn Sie Ihrer uses-Klausel diese Units nicht hinzufügen, könnten die Client-Anforderungen zum Senden des entsprechenden Proxy fehlschlagen.

Für jeden Proxy ist ein Satz anderer Dateien erforderlich, die mit der generierten Proxy-Hauptdatei weitergegeben werden müssen. Dies sind abhängige Dateien, wie z. B. DBX-Datentypen und JSON-Analysebibliotheken. Alle erforderlichen Dateien befinden sich im Ordner: \ObjRepos\<Sprache>\dsrest\connectors Ihrer Produktinstallation.

Beachten Sie bitte, dass für jeden Proxy alle in dem zugehörigen Ordner enthaltenen Dateien erforderlich sind. Dieser Ordner muss kopiert und mit den ausführbaren Serverdateien weitergegeben werden. Die folgende Abbildung zeigt eine typische Weitergabe einer Serveranwendung:

Sampleserver.png

Wenn der Server für eine bestimmte Sprache/Plattform einen Proxy erzeugen muss, erfolgt die Erzeugung im korrekten Ordner, dann komprimiert der Server den Ordner und erstellt eine "Sprache".zip-Datei (z. B. java_android.zip beim Erzeugen eines Android-Proxy), die vom Client heruntergeladen werden muss. Dieser Prozess wird vollständig von der Komponente TDSProxyDispatcher (oder TDSHTTPServiceProxyDispatcher) verwaltet.

Empfangen eines weitergeleiteten Proxy

Anforderungen auf das Erzeugen und Weiterleiten eines Proxy gehen beim Server als HTTP-Anforderungen ein, mit einem URL wie dem folgenden: http://serveraddress:port/proxy/mobile_client.zip , wobei "serveraddress", "port" und "mobile_client" durch die tatsächlichen Werte ersetzt werden. Die gegenwärtig für "mobile_client" akzeptierten Werte entsprechen den Verzeichnisnamen (unter "proxy") in der Verzeichnisstruktur:

  • csharp_silverlight
  • objective_ios71
  • java_blackberry
  • java_android

Sie können einen Webbrowser öffnen und direkt zum dem URL wechseln. Dort sollten Sie eine Aufforderung zum Herunterladen einer ZIP-Datei vorfinden, die den gesamten, für die mobile Plattform erforderlichen Quellcode zum Aufrufen der bereitgestellten Servermethoden des DataSnap-Servers enthält.

Der Einfachheit halber könnten Sie den Proxy mit dem JAR- oder EXE-Proxy-Download-Programm abrufen. Diese Programme befinden sich im Verzeichnis C:\Program Files (x86)\Embarcadero\Studio\21.0\bin. Beide Proxy-Download-Programme (JAR und EXE) übernehmen dieselben Parameter und ermöglichen ein automatisches Herunterladen und Dekomprimieren des gewünschten mobilen Proxy.

Mit dem Befehl -help des Proxy-Download-Programms können Sie die verfügbaren Parameter und Verwendungsbeispiele anzeigen:

 WIN32 DATASNAP PROXY DOWNLOADER HELP
 COMMAND:
   Win32ProxyDownloader.exe [-protocol protocol] -language language_platform
    [-output output_folder] [-host hostname]
 OPTIONS:
   -language <language> (required) The language_platform identifier.
    e.g. java_android or objectivec_ios71
   -host <hostname:port> (optional) Hostname and port where the server is
    running. Default is localhost:80
   -protocol <http|https> (optional) protocol can be http or https. Default http
   -output <local_proxy_path> (optional) is the full path where the proxy must
    be downloaded. Default current_folder
 EXAMPLES:
   Win32ProxyDownloader.exe -language java_android
   Win32ProxyDownloader.exe -host localhost:8080 -language java_android
    -output c:\
   Win32ProxyDownloader.exe -protocol http -language java_android -output folder

Weitere Informationen zu diesen Proxy-Download-Programmen finden Sie in den Einführungsdokumenten für die jeweilige mobile Plattform.

Themen

Siehe auch