CORBA
·0 INTRODUCTION
·1 CORBA RMI
·2 ARCHITECTURE
·3 CORBA SERVICES
·4 SUMMARY
1. Introduction
The OMG (Object Management Group) was formed in 1989 with a view
to encourage
the adoption of distributed object systems in order to gain the benefits
of object-oriented
programming for software development and to make use of distributed
systems, which
were becoming widespread. To achieve its aims, the OMG advocated
the use of open
systems based on standard object-oriented interfaces. These systems
would be built
from heterogeneous hardware, computer networks, operating systems
and programming
languages.
In 1991, a specification for an object request broker architecture known
as
CORBA (Common Object Request Broker Architecture) was agreed by a
group of
companies. It is
intended that GIOP can be implemented over any transport layer with
connections. The
implementation of GIOP for the Internet uses the TCP protocol and is
called the Internet
Inter-ORB Protocol or IIOP [OMG 2004a]. CORBA 3 first appeared in
late 1999 and a
component model has been added recently.
2 CORBA RMI
Programming in a multi-language RMI system such as CORBA RMI
demands more of
the programmer than programming in a single-language RMI system
like Java RMI.
The following new concepts need to be learned:
• the object model offered by CORBA;
• the interface definition language and its mapping onto the
implementation
language.
In
particular, the programmer defines remote interfaces for the remote
objects and then
uses an interface compiler to produce the corresponding proxies and
skeletons. But in
CORBA, proxies are generated in the client language and skeletons in
the server
language.
CORBA's OBJECT MODEL
s. The term CORBA object
is used to refer to remote objects. Thus, a CORBA object implements an
IDL interface,
has a remote object reference and is able to respond to invocations of
methods in its IDL
interface. A CORBA object can be implemented by a language that is
not objectoriented, for example without the concept of class. Since
implementation languages will
have different notions of class or even none at all, the class concept does
not exist in
CORBA. Therefore classes cannot be defined in CORBA IDL, which
means that
instances of classes cannot be passed as arguments. However, data
structures of various
types and arbitrary complexity can be passed as arguments.
CORBA IDL
A CORBA IDL interface specifies a name and a set of methods that
clients
can request.e in particular that GraphicalObject is defined as a struct,
whereas it was a class in
the Java RMI example. A component whose type is a struct has a set of
fields containing
values of various types like the instance variables of an object, but it has
no methods.
3 ARCHITECTURE
The architecture is designed to support the role of an object request
broker that enables
clients to invoke methods in remote objects, where both clients and
servers can be
implemented in a variety of programming languages. The main
components of the
CORBA architecture are illustrated in Figure
CORBA provides for both static and dynamic invocations. Static
invocations are
used when the remote interface of the CORBA object is known at
compile time,
enabling client stubs and server skeletons to be used. If the remote
interface is not known
at compile time, dynamic invocation must be used. Most programmers
prefer to use
static invocation because it provides a more natural programming
model.
4 CORBA services
CORBA includes specifications for services that may be required by
distributed objects.
In particular, the Naming Service is an essential addition to any ORB,
The CORBA services include the following:
2. Naming Service
3. Event Service and Notification Service
4. Security service
5. Trading service
6. Transaction service and concurrency control service
5 Summary
The main component of CORBA is the Object Request Broker or ORB,
which allows
clients written in one language to invoke operations in remote objects
(called CORBA
objects) written in another language.
as follows:
• The CORBA General Inter-ORB protocol (GIOP) includes an external
data
representation called CDR, which makes it possible for clients and
servers to
communicate irrespective of their hardware. It also specifies a standard
form for
remote object references.
• GIOP also includes a specification for the operations of a request-reply
protocol
that can be used irrespective of the underlying operating system.
• The Internet Inter-ORB Protocol (IIOP) implements the request-reply
protocol
over TCP. IIOP remote object references include the domain name and
port
number of a server.
The client
program accesses CORBA objects via proxies or stubs, which are
generated
automatically from their IDL interfaces in the language of the client.
The object adapter is an important component of CORBA