We recommend Middleware, as prerequisite reading for this
technology description.
Purpose and Origin
An object request
broker (ORB) is a middleware technology
that manages communication and data
exchange between objects. ORBs promote
interoperability of distributed
object systems because they enable users to build systems by
piecing together objects- from different vendors- that
communicate with each other via the ORB. The implementation details of
the ORB are generally not important to developers building distributed systems. The
developers are only concerned with the object interface
details. This form of information hiding enhances system maintainability since the object
communication details are hidden from the developers and
isolated in the ORB.
Technical Detail
ORB technology
promotes the goal of object communication across machine,
software, and vendor boundaries. The relevant functions of an
ORB technology are
- interface definition
- location and possible activation
of remote objects
- communication between clients
and object
An object request broker acts as a kind of telephone
exchange. It provides a directory of services and helps
establish connections between clients and these services. Figure
1 illustrates some of the key ideas.
Figure 1: Object Request Broker
The ORB must support many functions in order to operate
consistently and effectively, but many of these functions are
hidden from the user of the ORB. It is the responsibility of
the ORB to provide the illusion of locality, in other words,
to make it appear as if the object is local to the client,
while in reality it may reside in a different process or
machine. Thus the ORB provides a
framework for cross-system communication between objects. This
is the first technical step toward interoperability of object
systems.
The next technical step toward object system
interoperability is the communication of objects across
platforms. An ORB allows objects to hide their implementation
details from clients. This can include programming language,
operating system, host hardware, and object location. Each of
these can be thought of as a "transparency," and different ORB
technologies may choose to support different transparencies,
thus extending the benefits of object orientation across
platforms and communication channels.
There are many ways of implementing the basic ORB concept;
for example, ORB functions can be compiled into clients, can
be separate processes, or can be part of an operating system
kernel. These basic design decisions might be fixed in a
single product; or there might be a range of choices left to
the ORB implementer.
There are two major ORB technologies:
An additional,
newly-emerging ORB model is Remote Method
Invocation (RMI); this is specified as part of the Java language/virtual machine. RMI allows Java
objects to be executed remotely. This provides ORB-like
capabilities as a native extension of Java.
A high-level comparison of ORB technologies is available in
Table
1. Details are available in the referenced technology
descriptions.
Usage Considerations
Successful
adoption of ORB technology requires a careful analysis of the
current and future software architectural needs of the target
application and analysis of how a particular ORB will satisfy
those needs. Among the many things to
consider are platform availability, support for various
programming languages, as well as implementation choices and
product performance parameters. After performing this
analysis, developers can make informed decisions in choosing
the ORB best suited for their application's needs.