494 DISTRIBUTED OBJECT-BASED SYSTEMS CHAP . 9
9.1 CORBA
We start our study of distributed object-based systems by taking a look at the Common Object Request Broker Architecture , simply referred to as CORBA . As its name suggests , CORBA is not so much a distributed system but rather the specification of one . These specifications have been drawn up by the Object Management Group ( OMG ), a nonprofit organization with over 800 members , primarily from industry . An important goal of the OMG with respect to CORBA was to define a distributed system that could overcome many of the interoperability problems with integrating networked applications . The first CORBA specifications became available in the beginning of the 1990s . At present , implementations of CORBA version 2.4 are widely deployed , whereas the first CORBA version 3 systems are becoming available .
Like many other systems that are the result of the work of committees , CORBA has features and facilities in abundance . The core specifications consist of well over 700 pages , and another 1,200 are used to specify the various services that are built on top of that core . And naturally , each CORBA implementation has its own extensions because there is always something that each vendor feels cannot be missed but was not included in the specifications . CORBA illustrates again that making a distributed system that is simple may be a somewhat overwhelmingly difficult exercise .
In the following pages , we will not discuss all the things that CORBA has to offer , but instead concentrate only on the parts that are essential to it as a distributed system and that characterize it with respect to other object-based distributed systems . The specifications of CORBA can be found in ( OMG , 2001b ), which is publicly available at http :// www . omg . org . A high-level overview of CORBA is described in ( Vinoski , 1997 ), whereas Pope ( 1998 ) provides a more detailed description derived from the original specifications . Information on building applications in C ++ using CORBA can be found in ( Baker , 1997 ) and ( Henning and Vinoski , 1999 ).
9.1.1 Overview of CORBA
The global architecture of CORBA adheres to a reference model of the OMG that was laid down in ( OMG , 1997 ). This reference model , shown in Fig . 9-1 , consists of four groups of architectural elements connected to what is called the Object Request Broker ( ORB ). The ORB forms the core of any CORBA distributed system ; it is responsible for enabling communication between objects and their clients while hiding issues related to distribution and heterogeneity . In many systems , the ORB is implemented as libraries that are linked with a client and server application , and that offers basic communication services . We return to the ORB below when discussing CORBA ’ s object model .
Besides objects that are built as part of specific applications , the reference