CORBA 2.6 Programmer's Guide for C++

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.
Using the mapped Comm Server if mapping is present. (If the mapping is older than 24 hours, it updates the timestamp in the record.)
Creating a new mapping for the Comm Server if no mapping is present. To create the mapping, the LSD searches the
csmap@load_table for the least busy server, skipping dedicated comm_servers, and writes the new record in csmap@map_table,
keyed by clients TCP/IP address. (If Parallel TCP/IP is configured, the LSD doesn't search the load table, but picks the next logical
Comm Server using a round-robin technique.)
Sends the forwarding reply, which contains a new reference with the Comm Server address and the original object key.
Client ORB Tries Again (flows 6 and 7 in the figure)
The client ORB receives and demarshals the new reference (flow 6 in the figure).
The client ORB resends the original request (flow 7 in the figure). When the client ORB resends, it:
Connects to the address in the IIOP profile of the Comm Server
Sends an _is_a request to the Comm Server
Comm Server Receives and Relays Request (flows 7 and 8 in the figure)
The Comm Server now initiates the following actions:
The Comm Server receives the connection (flow 7 in the figure) and creates an IIOP client_agent.
The client_agent demarshals the request up through the object key.
The client_agent demarshals the object key to find the state policy = STATELESS, and to find the tsmp relay profile.
The client_agent gets the tsmp server_agent. The key is tsmp profile. The agent asks the server_agent to relay the request.
The server_agent interposes a server_agent scoped request ID and sends the request to the server via LINKMON.
LINKMON delivers the request to the Naming Service based on the TS/MP load (flow 8 in the figure).
Naming Service Processes Request (flows 8 and 9 in the figure)
The chosen server ORB receives (flow 8 in the figure) and processes the request. The ORB:
Demarshals the request.
Dispatches the request to the target object. The CORBA::Object handles the is_a request, and the result is TRUE.
Builds the reply.
Sends the tsmp reply (flow 9 in the figure).