CORBA 2.6.1 Programmer's Guide for C++

Naming Service Creates and Publishes Root Naming Context IOR URL (flow 2 in the
figure)
The Naming Service takes the following actions:
Creates a naming context POA with a state policy of stateless.
Creates a servant reference (this is an abstract reference).
Creates the IOR URL. The information created is stored in the IOR.
IOR = object_to_string(servant).
Tsmp profile contains pathmon:server_class.
IIOP profile contains lsd1@actual_tcp_address.
Object key contains stateless, tsmp relay profile.
Writes the URL to $NSD_ROOT/urls/NameService.
Network Client Imports IOR (flow 3 in the figure)
At this point the IOR URL must be moved physically to the client, using either FTP, email, the Console, or some other mechanism. Once the client receives
the URL, it
Reads the IOR file into URL_string.
Executes object = string_to_object( URL_string ).
Demarshals the stringified reference, skipping over any proprietary profiles.
The result of these actions is a
CORBA::Object. Note that there are other ways the result could be achieved (using ORB.resolve_initial_references
(“NameService”)
, for example), but this relatively simple way is used for this example.
Network Client ORB Tries to Contact Target Object (flow 4 in the figure)
Once it has the CORBA::Object, the client ORB narrows the reference to a COSNaming Naming Context. The client ORB must determine if the target object
is a naming context, so it performs the following:
Connects to the address in the IIOP profile (LSD).
Sends an _is_a request to the LSD. Note that other client ORBs might first send a locate_request to the LSD, rather than an _is_a request.
In either case, the object key in the request is taken from the COSNaming Naming Context.
LSD Builds and Sends Forwarding Reply (flows 5 and 6 in the figure)
The LSD acts as a listener process and responds to requests. It:
Demarshals the object key and determines that the object is configured to use_comm_server.
Finds a Comm Server (flow 5 in the figure) by:
Using the client's TCP/IP address as the key to csmap@map_table.