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

Corba services

Implementation repository

The process of opening a connection (between a client and a server) and associating an object reference with its servant is known as binding. ORBs typically support two binding modes : direct binding and indirect binding. Direct binding is supported by all ORBs. Indirect binding relies on an external location broker known as an implementation repository and is an optional component of Corba.

Whenever a server application creates an object reference, the server-side run time embeds information to support binding inside the object reference. Specifically, an IOR contains an IP address (or host name), TCP port number, and an object key. If a server inserts its own address and port number into a reference, the reference uses direct binding.

With indirect binding, the address and port number of the implementation repository are inserted into the object reference. The implemetation repository maintains a registry of known servers and records which server is currently running on which host and at which port number. The implementation repository basically forwards the request to a server or starts a new server to handle the request.

Naming service

The Naming Service provides a mapping from names to object references: given a name, the service returns an object reference stored under that name. A name-to-reference assiciation is called a name binding. The same object reference can be stored several times under different names, but each name identifies exactly one reference.

A naming context is an object that stores name bindings. In other words, each context object implements a table that maps names to object references. A name in the table can denote either an object reference to an application object or another context object in the Naming Service. This means that, like a file system, contexts can be connected to form hierarchies : contexts correspond to directories that store names to either directories (other contexts) or files (application objects).

A hierarchy of contexts and bindings is known as a naming graph. It is possible for the graph to have contexts that have no names. Such contexts are known as orphaned contexts. A naming graph has one or more distinguished contexts known as initial naming contexts. Initial naming contexts determine the points at which clients gain access to a naming graph.

ORB::resolve_initial_references allows you to partably obtain references that are crucial for bootstrapping your client or server. The parameter to the call determines which particular reference is returned. The OMG standardizes the set of well-known object identifiers. Currently, they are RootPOA, POACurrent, InterfaceRepository, NameService, TradingService, SecurityCurrent, and TransactionCurrent. list_initial_references returns the list of object identifiers configured for your ORB.

If you call resolve_initial_references with an object identifier of NameService, the operation returns a reference to an object of type NamingContext. The returned context is the configured initial context of the Naming Service for the local ORB.


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