Common Object Request Broker Architecture

Gopalan Suresh Raj

The CORBA Component Model (CCM)
A Detailed Comparison of CORBA, DCOM and Java/RMI
Coding a simple CORBA Server
Coding a simple CORBA Client
Coding a CORBA Client that Dynamically Invokes the Server using DII
Download the source as a zip file
Coding a CORBA Server which creates a Stringified Servant
Coding a CORBA Client which uses a Stringified reference
Download the source as a zip file

My 4-part Article on Java IDL and CORBA

Java IDL- Part 1 
Java IDL- Part 2
Java IDL- Part 3
Java IDL- Part 4


CORBA defines a model that specifies interoperability between distributed objects on a network in a way that is transparent to the programmer. It achieves this by defining ways for specifying the externally visible characterestics of a distributed object in a way that is implementation-independant.

This model is based on clients requesting the services from distributed objects or servers through a well-defined interface, by issuing requests to the objects in the form of events. An event carries information about an operation that needs to be performed including the object name (called an object reference) of the service provider and the actual parameters if any.

CORBA automatically handles a lot of network programming tasks such as object registration, object location, object activation, request demultiplexing, frame and error-handling, marshalling and operation dispatching.

CORBA objects are accessed through the use of an interface. OMG's Interface Definition Language (IDL for short) is used to define interfaces, their attributes, methods and parameters to those methods within the interface.

The central component of CORBA is the Object Request Broker (ORB for short). This component provides all the communication infrastructure needed to identify and locate objects, handle connection management and deliver data and request communication. One CORBA object never talks directly with another. Instead, the object requests for an interface to the ORB running on the local machine. The local ORB then passes the request to an ORB on the other machine. The remote ORB then locates the appropriate object and passes back an object reference to the requester.

The functions of the ORB are as follows:

ORB's functionality Lookup and instantiate objects on remote machines
ORB's functionality Marshal parameters from one application object to the other
ORB's functionality Handle security issues across machine boundaries
ORB's functionality Retrieve and publish data on objects on local machine for another ORB to use
ORB's functionality Invoke methods on a remote object using static method invocation
ORB's functionality Invoke methods on a remote object using dynamic method invocation
ORB's functionality Automatically instantiate objects that are'nt currently running
ORB's functionality Route callback methods to the appropriate local object being managed
ORB's functionality Communicate with other ORBs using Internet Inter-ORB Protocol ( IIOP )

The other components that make up a CORBA application are Object Services, Application Interfaces, Domain Interfaces and Common Facilities.

More on this soon...



About the Author...
Gopalan Suresh Raj is a Software Architect, Developer and an active Author. He is contributing author to a couple of books "Enterprise Java Computing-Applications and Architecture" (Cambridge University Press, June '99) and "The Awesome Power of JavaBeans" (Manning, July'98). His expertise spans enterprise component architectures and distributed object computing. Visit him at his Web Cornucopia site ( or mail him at

Go to the Component Engineering Cornucopia page

This site was developed and is maintained by Gopalan Suresh Raj

This page has been visited times since March 13,1998.

Last Updated : Apr 4, '98

If you have any questions, comments, or problems regarding this site, please write to me I would love to hear from you.

Copyright (c) 1997-2000, Gopalan Suresh Raj - All rights reserved. Terms of use.

All products and companies mentioned at this site are trademarks of their respective owners.