Previous | Table of Contents | Next |
A DCE-CIOP string binding component, identified by TAG_DCE_STRING_BINDING, contains a fully or partially bound string binding.
A string binding provides the information necessary for DCE-RPC to establish communication with a server process that can
either service the client’s requests itself, or provide the location of another process that can. The DCE API routine rpc_binding_from_string_binding
can be used to convert a string binding to the DCE binding handle required to communicate with a server as described in
Section 16.3, “DCE-CIOP Message Transport,? on page 16-5.
This component is intended to be used only by DCE-CIOP. At least one string binding or binding name component must be present
for an IOR profile to support DCE-CIOP.
Multiple string binding components can be included in a profile to define endpoints for different DCE protocols, or to identify
multiple servers or agents capable of servicing the request.
The string binding component is defined as follows:
module DCE_CIOP { \\ IDL const IOP::ComponentId TAG_DCE_STRING_BINDING = 100;
};
A TaggedComponent structure is built for the string binding component by setting the tag member to TAG_DCE_STRING_BINDING
and setting the component_data member to the value of a DCE string binding. The string is represented directly in the sequence
of octets, including the terminating NUL, without further encoding.
The format of a string binding is defined in Chapter 3 of the OSF AES/Distributed Computing RPC Volume. The DCE API function
rpc_binding_from_string_binding converts a string binding into a binding handle that can be used by a client ORB as the first
parameter to the invoke and locate RPCs.
A string binding contains:
• A protocol sequence
• A network address
• An optional endpoint
• An optional object UUID
DCE object UUIDs are used to identify server process endpoints, which can each support any number of CORBA objects. DCE object
UUIDs do not necessarily correspond to individual CORBA objects.
A partially bound string binding does not contain an endpoint. Since the DCE-RPC run-time uses an endpoint mapper to complete
a partial binding, and multiple ORB servers might be located on the same host, partially bound string bindings must contain
object UUIDs to distinguish different endpoints at the same network address.