Die Schnittstelle des Anwendungs-Servers erweitern

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Serveranwendung erstellen


Client-Anwendungen arbeiten mit dem Anwendungsserver zusammen, indem sie eine Instanz des Datenmoduls erstellen oder eine Verbindung zum Datenmodul einrichten. Dessen Schnittstelle bildet die Grundlage der Kommunikation mit dem Anwendungsserver. Sie können die Schnittstelle des Datenmoduls erweitern, um zusätzliche Unterstützung für Client-Anwendungen bereitzustellen. Diese Schnittstelle ist ein Nachkomme von IAppServer. Sie wird automatisch vom Experten erstellt, wenn Sie das Datenmodul erstellen.

Folgendermaßen können Sie die Schnittstelle des Datenmoduls erweitern:

  • Wählen Sie im Menü Bearbeiten der IDE die Option Zur Schnittstelle hinzufügen. Geben Sie an, ob eine Prozedur, eine Funktion oder eine Eigenschaft hinzugefügt wird, und fügen Sie deren Syntax ein. Nachdem Sie auf OK geklickt haben, gelangen Sie in den Quelltext-Editor, in dem Sie das neue Schnittstellenelement implementieren können.
  • Verwenden Sie den Typbibliothekseditor. Wählen Sie dort die Schnittstelle für den Anwendungsserver aus, und klicken Sie auf die Werkzeugschaltfläche für den Typ des jeweils hinzuzufügenden Schnittstellenelements (Methode oder Eigenschaft). Weisen Sie dem Schnittstellenelement in der Registerkarte Attribute einen Namen zu, geben Sie die Parameter in der Registerkarte Parameter an, und aktualisieren Sie anschließend die Typbibliothek. Weitere Information zur Verwendung des Typbibliotheks-Editors finden Sie unter Mit Typbibliotheken arbeiten.

Hinweis: Diese Vorgehensweisen eignen sich nicht zur Implementierung von TSoapDataModule. Für die TSoapDataModule-Nachkommen müssen Sie die Schnittstelle des Anwendungsservers direkt bearbeiten.

Wenn Sie eine COM-Schnittstelle erweitern, werden die Änderungen in den Quellcode der Unit und in die Typbibliothek (.TLB-Datei) eingefügt.

Hinweis: Die .TLB-Datei muss explizit gespeichert werden. Wählen Sie dazu im Typbibliothekseditor den Befehl Aktualisieren, und speichern Sie die Änderungen anschließend in der IDE.

Nachdem Sie die Schnittstelle des Remote-Datenmoduls hinzugefügt haben, müssen Sie im Code die Eigenschaften und Methoden identifizieren, die bei der Implementierung für das Remote-Datenmodul festgelegt wurden. Fügen Sie den generierten Rumpfteilen der neuen Methoden und Eigenschaften weiteren Code hinzu, um die Implementierung zu vervollständigen.

Wenn Sie kein SOAP-Datenmodul erstellen, rufen Client-Anwendungen die Schnittstellenerweiterungen mit der Eigenschaft AppServer ihrer Verbindungskomponente auf. Werden SOAP-Datenmodule verwendet, rufen sie die Methode GetSOAPServer ihrer Verbindungskomponente auf. Weitere Informationen zu den Mechanismen des Aufrufens von Schnittstellenerweiterungen finden Sie unter Serverschnittstellen aufrufen.

  • Callbacks der Schnittstelle des Anwendungsservers hinzufügen

Sie können es dem Anwendungsserver ermöglichen, mittels eines Callback auf die Client-Anwendung zuzugreifen. Die Client-Anwendung übergibt dazu eine Schnittstelle an eine Methode des Anwendungsservers, die vom Anwendungsserver später nach Bedarf aufgerufen wird. Wenn Ihre Erweiterungen zu der Schnittstelle des externen Datenmoduls aber Callback-Funktionen beinhalten, können Sie keine HTTP- oder SOAP-basierte Verbindung verwenden. Datasnap.Win.SConnect.TWebConnection und SoapConn.TSoapConnection unterstützen keine Callback-Funktionen. Bei Verwendung einer Socket-Verbindung müssen Client-Anwendungen angeben, ob sie Callbacks unterstützen. Dies geschieht mithilfe der Eigenschaft SupportCallbacks. Alle anderen Verbindungstypen unterstützen Callbacks automatisch.

  • Schnittstelle eines transaktionalen Anwendungsservers erweitern

Wenn Sie Transaktionen oder Bedarfsaktivierungen verwenden, müssen Sie sicherstellen, dass alle neuen Methoden die Methode SetComplete aufrufen, um den Abschluss der Operation mitzuteilen. Anschließend kann die Transaktion abgeschlossen und das Remote-Datenmodul deaktiviert werden.

Die neuen Methoden dürfen keine Werte zurückliefern, die es dem Client ermöglichen, direkt mit Objekten oder Schnittstellen auf dem Anwendungsserver zu kommunizieren, sofern sie keine sichere Referenz bereitstellen. Wenn Sie statuslose MTS-Datenmodule verwenden, kann die Nicht-Verwendung einer sicheren Referenz zu Abstürzen führen, weil nicht garantiert werden kann, dass das Remote-Datenmodul aktiv ist.

Siehe auch