Die Struktur des Anwendungsservers
Nach oben zu Grundlagen der mehrschichtigen Datenbank-Anwendungen
Während des Einrichtens und Ausführens eines Anwendungsservers wird keine Verbindung zu Client-Anwendungen hergestellt. Vielmehr initiieren und unterhalten die Client-Anwendungen die Verbindung. Client-Anwendungen stellen mit einer Verbindungskomponente eine Verbindung zum Anwendungsserver her und verwenden das Interface des Anwendungsservers für die Kommunikation mit dem ausgewählten Provider. Dies geschieht automatisch, so dass Sie weder Programmcode zur Bearbeitung der eingehenden Anforderungen schreiben, noch Interfaces bereitstellen müssen.
Die DataSnap-Technologie ermöglicht das Erstellen mehrschichtiger Client-Serveranwendungen, die über das Internet, das lokale Netzwerk oder den lokalen Host mit dem TCP-basierten (TDSTCPServerTransport) oder HTTP-(TDSHTTPService-)Transportprotokoll kommunizieren. Nähere Informationen über die DataSnap-Serverstruktur finden Sie unter Erstellen eines DataSnap-Servers und Serveranwendung erstellen.
Kern des Anwendungsservers ist ein Remote-Datenmodul, ein spezielles Datenmodul, das das IAppServer-Interface unterstützt (bei Anwendungsservern, die auch als Webdienst fungieren, unterstützt das Remote-Datenmodul auch das IAppServerSOAP-Interface und zieht dieses dem Interface IAppServer vor). Über das Interface des Remote-Datenmoduls kommunizieren die Client-Anwendungen mit den Providern auf dem Anwendungsserver. Verwendet das Remote-Datenmodul das Interface IAppServerSOAP, passt die Verbindungskomponente dieses an ein IAppServer-Interface an, das für Client-Datenmengen geeignet ist.
Es gibt vier Typen von Remote-Datenmodulen:
- TDSServerModule: Dies ist ein Remote-Datenmodul für DataSnap Server. Mit diesem Remote-Datenmodultyp stellen Sie Datenmengen, Methoden, SQL-Verbindungen und gemeinsame Provider vom Server für den Client bereit.
- TRemoteDataModule: Dies ist ein Automatisierungsserver mit dualem Interface. Verwenden Sie diesen Remote-Datenmodultyp, wenn Clients die Verbindung zum Anwendungsserver über DCOM, HTTP, Sockets oder OLE herstellen, und der Anwendungsserver nicht mit COM+ installiert werden soll.
- TMTSDataModule: Dies ist ein Automatisierungsserver mit dualem Interface. Verwenden Sie diesen Remote-Datenmodultyp, wenn Sie den Anwendungsserver als Active-Bibliothek (DLL) erstellen, die mit COM+ (oder MTS) installiert wird. Sie können transaktionale Remote-Datenmodule mit DCOM, HTTP, Sockets oder OLE einsetzen. Weitere Informationen zur Verwendung von MTS und COM+ mit dem Anwendungsserver finden Sie unter Transaktionale Datenmodule verwenden.
- TSoapDataModule: Dies ist ein Datenmodul, das ein IAppServerSOAP-Interface als aufrufbares Interface einer Web-Service-Anwendung implementiert. Mit diesem Remote-Datenmodultyp stellen Sie Daten für Clients bereit, deren Datenzugriff über einen Web-Service erfolgt.
Hinweis: Soll die Bereitstellung des Anwendungsservers unter COM+ (oder MTS) erfolgen, dann beinhaltet das Remote-Datenmodul Ereignisse für den aktivierten und deaktivierten Zustand des Anwendungsservers. Dies ermöglicht den automatischen Aufbau von Datenbankverbindungen bei Aktivierung des Servers und den automatischen Verbindungsabbau bei seiner Deaktivierung.
Inhalt des Datenmoduls
Sie können in das Remote-Datenmodul wie in jedes andere Datenmodul nicht-visuelle Komponenten einfügen. Bestimmte Komponenten müssen allerdings in das Remote-Datenmodul aufgenommen werden:
- Wenn das Remote-Datenmodul auf einem Datenbankserver gespeicherte Informationen bereitstellt, muss eine Datenmengenkomponente enthalten sein, die die Datensätze des betreffenden Datenbankservers repräsentiert. Unter Umständen sind weitere Komponenten erforderlich, z.B. eine Datenbankverbindungskomponente eines bestimmten Typs, um die Zusammenarbeit zwischen Datenmenge und Datenbankserver zu ermöglichen.
- Das Remote-Datenmodul muss für jede Datenmenge, die es Client-Anwendungen zugänglich macht, einen Datenmengen-Provider bereitstellen. Der Datenmengen-Provider stellt Daten in Datenpaketen zusammen, die an die Client-Datenmengen gesendet werden, und trägt von den Client-Datenmengen übermittelte Aktualisierungen in eine Quelldatenmenge oder einen Datenbankserver ein.
- Das Remote-Datenmodul muss für jedes XML-Dokument, das es für Clients bereitstellt, einen XML-Provider enthalten. Ein XML-Provider verhält sich wie ein Datenbank-Provider, die Daten werden jedoch anstatt von einem Datenbankserver von einem XML-Dokument abgerufen, und Aktualisierungen werden in ein XML-Dokument anstatt in einen Datenbankserver eingetragen.
Über in der DataSnap-Architektur verwendete Servermethoden können Entwickler Methoden erstellen, die Bestandteil der mittleren Schicht sind. Diese Methoden sind für Clients nahtlos verfügbar und können genau so aufgerufen werden, als ob der Code in der binären Datei des Clients ausgeführt würde. Für Servermethoden müssen Sie die Option Serverklassenmethoden im DataSnap-Server-Experten auswählen.
Während der Ausführung einer (von einem Client) aufgerufenen Servermethode kann der Server eine Callback-Funktion aufrufen, die vom DataSnap-Client als Argument an die Servermethode übergeben wurde. Unter Verwendung von Callback-Funktionen finden Sie weitere Informationen.
Hinweis: Datenbankverbindungskomponenten, die zur Verbindung von Datenmengen mit einem Datenbankserver dienen, dürfen nicht mit den Verbindungskomponenten verwechselt werden, die von Client-Anwendungen in einer mehrschichtigen Anwendung eingesetzt werden. Die Verbindungskomponenten mehrschichtiger Anwendungen befinden sich in der Kategorie DataSnap oder WebServices der Tool-Palette.