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 selbstä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 "spezifische 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 evtl. 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