The Common Object Request Broker Architecture (CORBA), an object oriented environment, is for building distributed object-oriented applications. It allows objects on one computer to invoke the methods of objects on other computers. The CORBA specification was developed by the Object Management Group (OMG), an industry group representing computer manufacturers, independent software vendors, and a variety of government and academic organizations
CORBA makes use of objects that are accessible via Object Request Brokers (ORBs). ORBs are used to connect objects to one another across a network. An object on one computer (client object) invokes the methods of an object on another computer (server object) via an ORB. CORBA ORBs are middleware mechanisms. CORBA can be thought of as a generalization of remote procedure call (RPC).
Components of the CORBA Specification
ORB Core
The CORBA runtime infrastructure. The interface to the ORB Core is not defined by CORBA, and will be vendor proprietary.
ORB Interface
A standard interface (defined in IDL) to functions provided by all CORBA- compliant ORBs.
IDL Stubs
Generated by the IDL processor for each interface defined in IDL. Stubs hide the low-level networking details of object communication from the client, while presenting a high-level, object type-specific application programming interface (API).
Dynamic Invocation Interface (DII)
An alternative to stubs for clients to access objects. While stubs provide an object type-specific API, DII provides a generic mechanism for constructing requests at run time (hence "dynamic invocation"). An interface repository (another CORBA component not illustrated in Figure 2) allows some measure of type checking to ensure that a target object can support the request made by the client.
Object Adaptor
Provides extensibility of CORBA- compliant ORBs to integrate alternative object technologies into the OMA. For example, adaptors may be developed to allow remote access to objects that are stored in an object-oriented database. Each CORBA-compliant ORB must support a specific object adaptor called the Basic Object Adaptor (BOA) (not illustrated in Figure 2). The BOA defines a standard API implemented by all ORBs.
IDL Skeletons
The server-side (or object implementation-side) analogue of IDL stubs. IDL skeletons receive requests for services from the object adaptor, and call the appropriate operations in the object implementation.
Dynamic Skeleton Interface (DSI)
The server-side (or object implementation-side) analogue of the DII. While IDL skeletons invoke specific operations in the object implementation, DSI defers this processing to the object implementation. This is useful for developing bridges and other mechanisms to support inter-ORB interoperation.

COBRA: The Common Object Request Broker Architecture
Related Terms: Object Oriented, Distributed Application, Middleware, RPC
