nn 1 | Page 5

498 DISTRIBUTED OBJECT-BASED SYSTEMS CHAP. 9
An implementation repository is also tightly coupled to the organization and implementation of object servers. As we explained in Chap. 3, an object adapter has the responsibility for activating an object by ensuring that it is running in the address space of a server so that its methods can be invoked. Given an object reference, an adapter could contact the implementation repository to find out exactly what needs to be done.
For example, the implementation repository could maintain a table specifying that a new server should be started and also to which port number the new server should be listening for the specified object. The repository would furthermore have information about which executable file( i. e., binary progra) the server should load and execute.
Alternatively, it may not be necessary to start a separate server, but the current one need merely link to a specific library containing the requested method or object. Again, such information would typically be stored in an implementation repository. These two examples illustrate that such a repository is indeed closely tied to an ORB and the platform on which it is running.
CORBA Services
An important part of CORBA’ s reference model is formed by the collection of CORBA services. A CORBA service is best thought of as being general purpose and independent of the application for which CORBA is being used. As such, CORBA services strongly resemble the types of services commonly provided by operating systems. There is a whole list of services specified for CORBA, as shown in Fig. 9-3. Unfortunately, it is not always possible to draw a clear line between the different services, as they often have overlapping functionality. Let us briefly describe each service so that we can later make a better comparison to services as offered by DCOM and Globe.
The collection service provides the means to group objects into lists, queues, stacks, sets, and so on. Depending on the nature of the group, various access mechanisms are offered. For example, lists can be inspected elementwise through what is generally referred to as an iterator. There are also facilities to select objects by specifying a key value. In a sense, the collection service comes close to what is generally offered by class libraries for object-oriented programming languages.
There is also a separate query service that provides the means to construct collections of objects that can be queried using a declarative query language. A query may return a reference to an object or to a collection of objects. The query service augments the collection service with advanced queries. It differs from the collection service in that the latter offers various types of collections.
There is also a concurrency control service. It offers advanced locking mechanisms by which clients can access shared objects. This service can be used to implement transactions, which are offered by a separate service. The