Client-server relationship
ADS services can initially be categorized into "confirmed" and "unconfirmed" services.
ADS-Client | ADS-Server |
---|---|
Request -> | -> Indication |
Confirmation <- | <- Response |
The progress of an ADS communication begins with an ADS request, which arrives at the ADS server where it is viewed as an ADS indication.
The ADS server replies with an ADS response, which in turn is received by the ADS client as an ADS confirmation.
Messages that are sent autonomously by an ADS server (e.g. error or other status messages) are registered by the ADS client as a notification indication.
General ADS services:
The general ADS communication services are classified into
- Asynchronous
- the client makes the ADS request to the server
- the client continues to operate (without the ADS confirmation)
- the server processes the ADS request, and provides the client with the result with a call-back (ADS confirmation to the client)
- Notification
- the client registers itself with an ADS request to the server for a specific service
- the server provides the service to the client autonomously by call-back (ADS confirmation to the client), until the client cancels its request for the service
- the advantage of this kind of communication is the low additional ADS protocol overhead, since cyclical ADS requests from the client program are not occurring
Specific ADS services:
Over and above the general ADS services, additional functions that encapsulate ADS communications and permit operation with, e.g., Visual Basic or Visual C++ are defined. These "specific ADS services " are implemented in ADS-OCX or in the ADS-DLL, and provide, for instance, facilities for synchronous communication, or consider restrictions that might exist (in Visual Basic, for example, variable types with no leading sign).
- Synchronous
- the client makes the ADS request to the server
- the client thread that makes the call is suspended for the duration of the ADS communication
- when the ADS request call returns, the result from the ADS server is already available
- the advantage of this kind of communication is the low administrative overhead required from the client program