Struktur einer dreischichtigen Anwendung

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Grundlagen der mehrschichtigen Datenbank-Anwendungen


Die folgenden Schritte illustrieren den normalen Ereignisfluss in einer auf einer Provider-Komponente basierenden dreischichtigen Anwendung:

  1. Ein Benutzer startet die Client-Anwendung. Der Client richtet eine Verbindung zum Anwendungsserver ein (der Anwendungsserver kann zur Laufzeit oder bereits bei der Programmerstellung eingerichtet werden). Wenn der Anwendungsserver noch nicht aktiv ist, wird er jetzt gestartet. Der Client erhält ein IAppServer-Interface zur Kommunikation mit dem Anwendungsserver.
  2. Der Client fordert Daten vom Anwendungsserver an. Ein Client kann alle Daten oder einzelne Daten-"Portionen" im Verlauf der Sitzung anfordern (Bedarfsanforderung).
  3. Der Anwendungsserver ruft die Daten ab (zuvor wird gegebenenfalls eine Datenbankverbindung eingerichtet), ordnet sie für den Client in einem Paket an und sendet dann dieses Paket an den Client. In die Metadaten des Datenpakets können weitere Informationen eingefügt werden (beispielsweise das Anzeigeformat für Felder). Dieser Prozess der Anordnung von Daten in Datenpaketen wird als "Bereitstellen" bezeichnet.
  4. Der Client decodiert das Datenpaket und zeigt dem Benutzer die Daten an.
  5. Durch Benutzereingaben in der Client-Anwendung werden die Daten aktualisiert (Datensätze werden hinzugefügt, gelöscht oder geändert). Diese Änderungen werden vom Client in einem Änderungsprotokoll gespeichert.
  6. Schließlich – normalerweise als Reaktion auf eine bestimmte Aktion des Benutzers – sendet der Client die Aktualisierungen an den Anwendungsserver. Dazu wird das Änderungsprotokoll als Datenpaket an den Server gesendet.
  7. Der Anwendungsserver decodiert das Paket und trägt Aktualisierungen (gegebenenfalls im Rahmen einer Transaktion) ein. Wenn ein Datensatz nicht eingetragen werden kann (weil beispielsweise eine andere Anwendung den Datensatz geändert hat, nachdem dieser vom Client angefordert und bevor er vom Client aktualisiert wurde), gleicht der Anwendungsserver die Änderungen des Clients entweder mit den aktuellen Daten ab oder speichert die Datensätze, die nicht eingetragen werden konnten. Dieser Prozess – das Eintragen von Datensätzen und das Zwischenspeichern von problematischen Datensätzen – wird auch als "Auflösen" bezeichnet.
  8. Nachdem der Anwendungsserver das Auflösen abgeschlossen hat, werden die nicht eingetragenen Datensätze zur weiteren Bearbeitung wieder an den Client gesendet.
  9. Der Client gleicht die nicht aufgelösten Datensätze ab. Es gibt mehrere Methoden, diesen Abgleich durchzuführen. Normalerweise versucht der Client, die Bedingungen zu beseitigen, die das Eintragen des Datensatzes verhinderten. Gegebenenfalls werden die Änderungen verworfen. Kann die Fehlerbedingung beseitigt werden, sendet der Client die Aktualisierungen erneut an den Anwendungsserver.
  10. Der Client ruft die aktuelle Version der Daten vom Server ab.

Dreischichtige Anwendungen mit DataSnap erstellen

DataSnap ermöglicht das Entwickeln von Client-Serveranwendungen, die über das Internet, das lokale Netzwerk oder den lokalen Host kommunizieren. DataSnap erzeugt automatisch das erforderliche Interface für den Client zur Kommunikation mit dem Server, der die Prototypen der Servermethoden enthält. Bei der Verwendung einer mit der DataSnap-Technologie entwickelten dreischichtigen Anwendung, kann der Client-Benutzer alle Servermethoden aufrufen.

Ein Beispiel für das Erstellen einer DataSnap-Anwendung finden Sie auf der folgenden Seite:

Mehrschichtige DataSnap-Anwendungen weitergeben

DataSnap ermöglicht Client-Anwendungen die Verbindung mit einem Provider in einem Anwendungsserver, so dass Delphi-Anwendungen mehrschichtige Datenbanken nutzen können.

Installieren Sie DataSnap zusammen mit einer mehrschichtigen Anwendung mithilfe von InstallAware (oder eines anderen von Embarcadero zertifizierten Installationsprogramms). Einzelheiten über die weiterzugebenden Dateien finden Sie im Dokument DEPLOY, das im Delphi-Hauptverzeichnis gespeichert ist. Angaben über die Weitergabe von DataSnap-Dateien enthält das Dokument REMOTE.

Siehe auch