Erstellen eines DataSnap-Servers
Nach oben zu DataSnap-Server-Anwendung
Datei > Neu > Weitere > Delphi-Projekte [oder C++Builder-Projekte] > DataSnap-Server
Mit diesen Optionen erstellen Sie einen Beispiel-DataSnap-Server oder -Broker oder fügen einer vorhandenen DataSnap-Anwendung ein weiteres Servermodul hinzu. Ein Servermodul ermöglicht die Implementierung von Servermethoden, die für Client-Anwendungen bereitgestellt werden können.
Ein klassischer DataSnap-Server besteht aus mindestens drei Komponenten:
- TDSServer zum Erstellen eines eigenen Servers der mittleren Schicht.
- TDSServerClass
- Einer Transportklasse
TDSServer verwaltet die Erstellung und die Lebensdauer von Transporten und Servermethodenklassen.
Mit TDSServerClass können Sie eine Anwendungsserver-seitige Klasse mit published-Methoden festlegen, die von einem Remote-Client über dynamische Methoden aufgerufen werden kann, indem das Ereignis OnGetClass überschrieben wird. Methoden in dieser Klasse können von Remote-Clients, wie dem DBX-Client-Provider oder dem ADO.NET-Provider, aufgerufen werden. Dafür müssen nur zwei Voraussetzungen erfüllt sein:
- Die Klasse muss von TComponent abgeleitet sein.
- Die Direktive MethodInfo muss aktiviert sein.
Nach dem Verbinden zu einem DataSnap-Server lassen sich Methoden in einem Anwendungsserver genauso wie Stored Procedures aufrufen. Zum Beispiel können Sie mit der neuen Klasse TSqlServerMethod Servermethoden aufrufen, indem Sie eine Textklasse und einen Methodennamen für den Befehlstext und die Parameter der jeweiligen Methode angeben. Servermethoden können über TDBXReader Datenmengen empfangen und an den Client zurückgeben. Die neuen Tabellen sind eine Abstraktion der verschiedenen Datenmengen, die DataSnap unterstützt. Sie können transparent zwischen dem Client und dem Server übergeben werden.
Die Transportschicht wird von TDSTCPServerTransport und TDSHTTPService abgedeckt.
Sie können weiterhin Anwendungsserver-seitige Klassen entwickeln, die TRemoteDataModule erweitern, damit die neue Client-seitige TDBXAppServerConnection-Client-Komponente auf die enthaltenen Provider zugreifen kann. TDBXAppServerConnection stellt für den DataSnap-Server anhand von dbExpress Konnektivität bereit. Vorhandene Anwendungen bleiben damit kompatibel und können die Vorteile der DataSnap-Features nutzen. Neue Anwendungen müssen TRemoteDataModule nicht mit DataSnap verwenden.