Client - Server Beziehung
ADS-Dienste können zunächst kategorisiert werden in "bestätigte" und "unbestätigte" Dienste.
ADS-Client | ADS-Server |
---|---|
Request (Anforderung) -> | -> Indication (Aufforderung) |
Confirmation (Bestätigung) <- | <- Response (Antwort) |
Der Ablauf einer ADS-Kommunikation beginnt mit einem ADS-Request, welcher als ADS-Indication in dem ADS-Server eintrifft.
Der ADS-Server antwortet mit einer ADS-Response, die wiederum im ADS-Client als ADS-Confirmation gemeldet wird.
Nachrichten, die ein ADS-Server selbstständig schickt (z. B. Fehler- oder andere Statusmeldungen) werden dem ADS-Client als Notification Indication gemeldet.
Allgemeine ADS-Dienste
Die allgemeinen ADS-Kommunikations-Dienste werden unterschieden in
- Asynchron
- Client stellt ADS-Request an den Server
- Client arbeitet weiter (ohne ADS-Confirmation)
- Server bearbeitet ADS-Request und stellt dem Client per Callback (ADS-Confirmation im Client) das Ergebnis zu
- Notification
- Client meldet sich per ADS-Request bei dem Server für einen bestimmten Dienst
- Server bedient Client eigenständig per Callback (ADS-Confirmation im Client) bis Client sich wiederum für diesen Dienst abmeldet
- Der Vorteil dieser Art der Kommunikation liegt in einem geringeren ADS-Protokollflussaufkommen, da die zyklische ADS-Anforderung vom Client-Programm entfällt.
Spezifische ADS-Dienste
Über die allgemeinen ADS-Dienste hinaus wurden zusätzliche Funktionen, welche die ADS-Kommunikationen kapseln und das Arbeiten mit z. B. Visual Basic, Visual C++ definiert. Diese "spezifischen ADS-Dienste" wurden im ADS-OCX bzw. der ADS-DLL implementiert und bieten z. B. die Möglichkeit der synchronen Kommunikation oder nehmen Rücksicht auf eventuell bestehende Restriktionen (in Visual Basic z. B. vorzeichenlose Variablentypen).
- Synchron
- Client stellt ADS-Request an den Server
- Der aufrufende Client-Thread ist für die weitere Dauer der ADS-Kommunikation suspendiert
- Bei der Rückkehr des ADS-Request-Aufrufes ist das Resultat vom ADS-Server schon vorhanden
- Der Vorteil dieser Art der Kommunikation liegt in einem geringerem Verwaltungsaufwand für das Client-Programm