GDS and Network Services
The X.500 Directory Service standard was written to run on top of the Open Systems Interconnection (OSI) communications protocols. The OSI protocols are divided into seven layers: the
Physical, Data Link, Network, Transport, Session, Presentation, and Application Layers (see the following figure). The upper three layers are usually implemented as libraries that are linked
together with the application process. The lower layers are part of the operating system and their services are made available to the upper layers through a transport interface. The transport
interface is the double line in the following figure.
The OSI Protocol Layers
The Directory Service is an Application Layer protocol. Its specification requires the use of two other application layer service elements: ACSE (Association Control Service Element) and ROSE
(Remote Operation Service Element), and of the underlying layers. ROSE and ACSE of Layer 7, and the Presentation Service of Layer 6, are implemented in GDS by the Remote Operation Service (ROS)
library. The OSI Session Service (Layer 5) is implemented in GDS by the OSI Session Service (OSS) library. These layers are equivalent to the communications support supplied by the DCE RPC runtime
system, which also fills in the gap between an application and the underlying transport communications. Although GDS supplies support for these upper OSI layers, they are used only for the Directory
Service and are not made available for application programmers.
DCE assumes that the system it runs on provides support for transport layer communications (either OSI transport or IP transport). The OSI protocols running above the transport layer were originally
designed to run over OSI transport protocols. Many DCE systems run TCP/IP, so GDS provides the capability for running over the TCP/IP transport protocol as specified in RFC 1006.
The GDS software includes a compiler and a runtime library called MAVROS. The compiler takes specifications written in the Abstract Syntax Notation (ASN.1) and compiles them into C language code for
header files and encoding/decoding routines, much as the RPC IDL compiler takes an IDL specification and compiles it into a header file and client and server stubs. MAVROS is used to encode/decode
the DAP and DSP protocols and their data values.
|