Horus Doc || Corba Reference || Corba   Client Server   Stubs C++   Stubs Java   Servant Generator  

Interoperable object references (IOR)

ORB interoperability also requires standardized object reference formats. Object references are opaque to applications, but they contain information that ORBs need in order to establish communications between clients and target objects. The standard object reference format, called the Interoperable Object Reference (IOR), is flexible enough to store information for almost any inter-ORB protocol imaginable. An IOR identifies one or more suported protocols and, for each protocol, contains information specific to that protocol.

ObjectId.gif

Object reference, key, and identifier

An IOR contains three major pieces of information

  1. The repository ID is a string that identifies the most derived IDL type of the IOR at the time the IOR was created, for example "IDL:HxCorba/ImageRep:1.0". The repository ID allows you to locate a detailed description of the interface of the object in the Interface Repository.
  2. The endpoint info field contains all information required by the ORB to establish a physical connection to the server implementing the object. The endpoint information specifies which protocol to use and contains physical addressing information appropriate for a particular transport. For example, for the IIOP it contains a host name and a TCP/IP port number. The addressing information may directly contain the address and port number of the server (direct binding) but it is more likely to contain the address of an implementation repository that can be consulted to locate the correct server (indirect binding). This extra level of indirection permits server processes to migrate from machine to machine without breaking existing references held by clients. Corba also allows information for several different protocols and transports to be embedded in the reference.
  3. The object key identifies the target object at the given host name and port combination. Exactly how this information is organized and used depends on the ORB. However, all ORBs allow the server, more specifically the POA, to embed an application-specific object identifier inside the object key when the server creates the reference. Object identifiers are specified using the ObjectId type, which is defined in the PortableServer module as a sequence of octet. This allows for virtually any type of data to be used to identify an object, for example, a string or a database key or a simple number.

Go to the next section or return to the index.


Generated on Mon Jan 27 15:20:57 2003 for CorbaReference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001