General Navigation Buttons - Home | Search | Contact Us | Site Map | Whats New
products graphic
white space
products
Software Technology Roadmap
Background & Overview
Technology Descriptions
Defining Software Technology
Technology Categories
Template for Technology Descriptions
Taxonomies
Glossary & Indexes
white space
About SEI|Mgt|Eng|Acq|Collaboration|Prod.& Services|Pubs
pixel
Rollover Popup Hints for Topic Navigation Buttons above
pixel
Object Request Broker


Status

Complete

Note

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 [Wade 94]. 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 [Cobb 95].

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 [CORBA 96, Steinke 95]. Figure 21 illustrates some of the key ideas.

Figure 21: 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 [Reddy 95]. 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,"1 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 [RMI 97].

A high-level comparison of ORB technologies is available in Table 8. 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 [Abowd 96]. 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.

Table 8: Comparison of ORB Technologies
ORB

Platform Availability

Applicable to

Mechanism

Implementations

COM/
DCOM

originally PC platforms, but becoming available on other platforms

"PC-centric" distributed systems architecture

APIs to proprietary system2

one3

CORBA

platform-
independent and interoperability among platforms

general distributed
system architecture

specification of
distributed object technology

many4

Java/
RMI

wherever Java virtual machine (VM) executes

general distributed
system architecture and Web-based
Intranets

implementation of distributed object technology

various5

Maturity

As shown in Table 8, there are a number of commercial ORB products available. ORB products that are not compliant with either CORBA or OLE also exist; however, these tend to be vendor-unique solutions that may affect system interoperability, portability, and maintainability.

Major developments in commercial ORB products are occurring, with life cycles seemingly lasting only four to six months. In addition, new ORB technology (Java/RMI) is emerging, and there are signs of potential "mergers" involving two of the major technologies. The continued trend toward Intranet- and Internet-based applications is another stimulant in the situation. Whether these commercial directions are fully technically viable and will be accepted by the market is unknown.

Given the current situation and technical uncertainty, potential users of ORB technologies need to determine

  • what new features ORB technologies add beyond technologies currently in use in their organizations
  • the potential benefits from using these new features
  • the key risks involved in adopting the technology as a whole
  • how much risk is acceptable to them

One possible path would be to undertake a disciplined and "situated" technology evaluation. Such an evaluation, as described by Brown and Wallnau, focuses on evaluating so-called "innovative" technologies and can provide technical information for adoption that is relative to the current/existing approaches in use by an organization [Brown 96, Wallnau 96]. Such a technology evaluation could include pilot projects focusing on model problems pertinent to the individual organization.

Costs and Limitations

The license costs of the ORB products from the vendors listed above are dependent on the required operating systems and the types of platform. ORB products are available for all major computing platforms and operating systems.

Index Categories

This technology is classified under the following categories. Select a category for a list of related topics.

Name of technology Object Request Broker
Application category Client/Server (AP.2.1.2.1),
Client/Server Communication (AP.2.2.1)
Quality measures category Interoperability (QM.4.1),
Maintainability (QM.3.1)
Computing reviews category Distributed systems (C.2.4),
Object-Oriented programming (D.1.5)

References and Information Sources

[Abowd 96] Abowd, Gregory, et al. "Architectural Analysis of ORBs." Object Magazine 6, 1 (March 1996): 44-51.
[Brown 96] Brown, A. & Wallnau, K. "A Framework for Evaluating Software Technology." IEEE Software 13, 5 (September 1996): 39-49.
[Cobb 95] Cobb, Edward E. "TP Monitors and ORBs: A Superior Client/Server Alternative." Object Magazine 4, 9 (February 1995): 57-61.
[CORBA 96] The Common Object Request Broker: Architecture and Specification, Version 2.0. Framingham, MA: Object Management Group, 1996. Also available [online] WWW
<URL: http://www.omg.org> (1996).
[Reddy 95] Reddy, Madhu. "ORBs and ODBMSs: Two Complementary Ways to Distribute Objects." Object Magazine 5, 3 (June 1995): 24-30.
[RMI 97] Remote Method Invocation [online]. Available WWW
<URL: http://java.sun.com/products/jdk/1.1/docs/guide/rmi> (1997).
[Steinke 95] Steinke, Steve. "Middleware Meets the Network." LAN: The Network Solutions Magazine 10, 13 (December 1995): 56.
[Tkach 94] Tkach, Daniel & Puttick, Richard. Object Technology in Application Development. Redwood City, CA: Benjamin/Cummings Publishing Company, 1994.
[Wade 94] Wade, Andrew E. "Distributed Client-Server Databases." Object Magazine 4, 1 (April 1994): 47-52.
[Wallnau 96] Wallnau, Kurt & Wallace, Evan. "A Situated Evaluation of the Object Management Group's (OMG) Object Management Architecture (OMA)," 168-178. Proceedings of the OOPSLA'96. San Jose, CA, October 6-10, 1996. New York, NY: ACM, 1996. Presentation available [online] FTP.
<URL: ftp://ftp.sei.cmu.edu/pub/corba/OOPSLA/present> (1996).

Current Author/Maintainer

Kurt Wallnau, SEI
John Foreman, SEI

External Reviewers

Ed Morris, SEI
Richard Soley, VP, Chief Technical Officer, Object Management Group

Modifications

25 June 97: modified/updated OLE/COM reference to COM/DCOM; added notes to Table 8
9 April 97: minor edits and reorganization; no meaningful content changes
10 Jan 97 (original): Mike Bray, Lockheed-Martin Ground Systems

Footnotes

1 transparency: making something invisible to the client

2 COM/DCOM specifications have been turned over to the Open Group, but the outcome of this standardization activity remains unclear.

3 Microsoft maintains the only implementation of PC platforms, and is working closely with selected vendors to migrate technology to alternate platforms.

4 Examples include ORBIX by IONA Technology, NEO by SunSoft, VisiBroker by VisiGenic, PowerBroker by Expersoft, SmallTalkBroker by DNS Technologies, Object Director by Fujitsu, DSOM by IBM, DAIS by ICL, SORBET by Siemens Nixdorf, and NonStop DOM by Tandem.

5 Implementations of the Java VM have been ported to various platforms.



The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University.

Copyright 2008 by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/str/descriptions/orb_body.html
Last Modified: 24 July 2008