PreviousNext

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.