Mehrere Server-Datenmodule einsetzen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Serveranwendung erstellen


Sie können bei der Strukturierung des Anwendungsservers den Einsatz mehrerer Remote-Datenmodule berücksichtigen. Die Verwendung mehrerer Remote-Datenmodule ermöglicht es, den Quellcode in Partitionen aufzuteilen und somit umfangreiche Anwendungsserver aus mehreren Units aufzubauen.

Obwohl es stets möglich ist, mehrere voneinander unabhängig arbeitende Remote-Datenmodule in einem Anwendungsserver zu erstellen, unterstützt eine spezielle Verbindungskomponente in der Kategorie DataSnap der Tool-Palette ein Modell, bei dem ein "übergeordnetes" Remote-Datenmodul als Verteiler von Verbindungen zu Clients an "untergeordnete" Datenmodule fungiert. Dieses Modell erfordert, dass Sie einen COM-basierten Anwendungsserver verwenden, was bedeutet, dass weder das Modul TSoapDataModule noch dbExpress DataSnap unterstützt wird.

Zur Erstellung eines übergeordneten Remote-Datenmoduls müssen Sie dessen IAppServer-Interface um Eigenschaften erweitern, welche die Interfaces der untergeordneten Remote-Datenmodule offen legen. Für jedes untergeordnete Remote-Datenmodul muss also dem Interface des übergeordneten Remote-Datenmoduls eine Eigenschaft hinzugefügt werden, die als Wert das IAppServer-Interface des untergeordneten Remote-Datenmoduls enthält. Die Funktion zum Abrufen des Eigenschaftswertes sollte in etwa wie folgt aussehen:

 function ParentRDM.Get_ChildRDM: IChildRDM;
 begin
   if not Assigned(ChildRDMFactory) then
     ChildRDMFactory :=
       TComponentFactory.Create(ComServer, TChildRDM, Class_ChildRDM,
                                ciInternal, tmApartment);
   Result := ChildRDMFactory.CreateCOMObject(nil) as IChildRDM;
   Result.MainRDM := Self;
 end;

Informationen zum Erweitern des Interface des übergeordneten Remote-Datenmoduls finden Sie unter Die Schnittstelle des Anwendungs-Servers erweitern.

Tipp: Sie sollten zudem das Interface jedes untergeordneten Datenmoduls um Elemente erweitern, welche das Interface des übergeordneten Datenmoduls oder die Interfaces der anderen untergeordneten Datenmodule offen legen. Dies ermöglicht den verschiedenen Modulen des Anwendungsservers, freier miteinander zu kommunizieren.

Sobald Sie dem übergeordneten Remote-Datenmodul Eigenschaften hinzugefügt haben, welche die untergeordneten Datenmodule repräsentieren, müssen die Client-Anwendungen nicht mehr separate Verbindungen zu jedem Remote-Datenmodul auf dem Anwendungsserver einrichten. Stattdessen nutzen sie gemeinsam eine Verbindung zum übergeordneten Remote-Datenmodul, das Botschaften an die untergeordneten Datenmodule verteilt. Da jede Client-Anwendung für jedes Remote-Datenmodul dieselbe Verbindung verwendet, können die Remote-Datenmodule eine Datenbankverbindung gemeinsam nutzen, wodurch der Ressourcenbedarf verringert wird. Informationen zur gemeinsamen Nutzung einer Verbindung durch untergeordnete Datenmodule finden Sie unter Verbindung zu einem Anwendungsserver mit mehreren Datenmodulen einrichten.

Siehe auch