Previous | Table of Contents | Next |
DCE-CIOP requires an RPC, which is interoperable with the DCE connection-oriented and/or connectionless protocols as specified
in the X/Open CAE Specification C309 and the OSF AES/Distributed Computing RPC Volume. Some of the features of the DCE-RPC
are as follows:
• Defines connection-oriented and connectionless protocols for establishing the communication between a client and server.
• Supports multiple underlying transport protocols including TCP/IP.
• Supports multiple outstanding requests to multiple CORBA objects over the same connection.
• invoke - for invoking CORBA operation requests, and
• locate - for locating server processes.
• Supports fragmentation of messages. This provides for buffer management by ORBs of CORBA requests, which contain a large amount of marshaled data.
All interactions between ORBs take the form of remote procedure calls on one of two well-known DCE-RPC interfaces. Two DCE operations are provided in each interface:
Each DCE operation is a synchronous remote procedure call1,2, consisting of a request message being transmitted from the client
to the server, followed by a response message being transmitted from the server to the client.
1.DCE maybe operation semantics cannot be used for CORBA oneway operations because they are idempotent as opposed to at-most-once.
2. The deferred synchronous DII API can be implemented on top of synchronous RPCs by using threads.
Using one of the DCE-RPC interfaces, the messages are transmitted as pipes of uninterpreted bytes. By transmitting messages
via DCE pipes, the following characteristics are achieved:
• Large amounts of data can be transmitted efficiently.
• Buffering of complete messages is not required.
• Marshaling and demarshaling can take place concurrently with message transmission.
• Encoding of messages and marshaling of data is completely under the control of the ORB.
• DCE client and server stubs can be used to implement DCE-CIOP.
Using the other DCE-RPC interface, the messages are transmitted as conformant arrays of uninterpreted bytes. This interface
does not offer all the advantages of the pipe-based interface, but is provided to enable interoperability with ORBs using
DCE-RPC implementations that do not adequately support pipes.