Previous Table of Contents Next


16.5.1 DCE-CIOP String Binding Component


   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:

   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.