Previous Table of Contents Next


16.5.5 Endpoint ID Position Component


   An optional endpoint ID position component can be included in IOR profiles to enable client ORBs to minimize resource utilization and to avoid redundant locate messages. It can be used by other protocols as well as by DCE-CIOP. No more than one endpoint ID position component can be included in a profile.

   module IOP { // IDL const ComponentId TAG_ENDPOINT_ID_POSITION = 6;

   struct EndpointIdPositionComponent { unsigned short begin; unsigned short end;

   };};

   An endpoint ID position component, identified by TAG_ENDPOINT_ID_POSITION, indicates the portion of the profile’s object key that identifies the endpoint at which operations on an object can be invoked. The component_data is a CDR encapsulation of an EndpointIdPositionComponent structure. The begin member of this structure specifies the index in the object key of the first octet of the endpoint ID. The end member specifies the index of the last octet of the endpoint ID. An index value of zero specifies the first octet of the object key. The value of end must be greater than the value of begin, but less than the total number of octets in the object key. The endpoint ID is made up of the octets located between these two indices inclusively.

   The endpoint ID should be unique within the domain of interoperability. A binary or stringified UUID is recommended.

   If multiple objects have the same endpoint ID, they can be messaged to at a single endpoint, avoiding the need to locate each object individually. DCE-CIOP clients can use a single binding handle to invoke requests on all of the objects with a common endpoint ID. See Section 16.6.4, “Use of the Location Policy and the Endpoint ID,? on page 16-24.