Information Technology Reference
In-Depth Information
Object
Implementation
Client
Object Request Broker
Figure 2.5.
A request being sent via the ORB.
services be performed. The ORB then passes those requests on to a server, which
acts upon it, and passes the result back to the client via the ORB.
The ORB is responsible for the mechanisms required to find the object im-
plementation for the request, to prepare the object implementation to receive the
request, and to communicate the data making up the request. The interface the
client sees is completely independent of where the object is located, what pro-
gramming language it is implemented in, or any other aspect that is not reflected
in the object's interface [77].
Clients, therefore, only know the location of the ORB and the ORB knows
the implementation details and locations of the servers. Clients and servers com-
municate only via component interfaces and any changes in object implementation
or location are insulated from the client [27, 75, 77].
CORBA is a heterogeneous system that can be run on many different plat-
forms and CORBA applications may be written in many different languages. For
this reason CORBA uses an IDL, similar to RPC type systems. The main construct
in the CORBA IDL is the interface which defines the various operations that may
be called by clients. Once written, the IDL is run through a compiler to generate
code for the particular implementation language [7]. By using a language and ma-
chine independent IDL, clients and servers may be written in different languages
and may be run on different operating systems so that it is possible for, say, a client
writing in the C language running under the UNIX operating system to commu-
nicate to a server writing in Java running under the Windows operating system.
One of the more interesting aspects of CORBA is that it uses an object-
oriented architecture in that it adds a notion of inheritance. In CORBA IDL an
interface may inherit from another interface as shown in Figure 2.6.
In addition, CORBA IDL supports multiple inheritance where an interface
may inherit from several different interfaces. There are, however, a number of
limitations to the multiple inheritance feature of the CORBA IDL [7]:
• An IDL interface cannot redefine an operation or attribute in a derived in-
terface.
• It is illegal for an interface to inherit from two interfaces that have a common
operation or attribute name.
Search WWH ::




Custom Search