CORBA is the acronym for Common Object Request Broker Architecture, a vendor-independent architecture that applications can use to work together over a network designed by Open Management Group (OMG). It is an open standard that uses the standard protocol IIOP so a program based on CORBA by any software company on any computer can interoperate with a CORBA-based program from another vendor on almost any other system. In other words, it is a distributed system

A CORBA application is composed of objects that usually represent something in the real world. For example, a shopping web site would have a number of instances of a shopping cart object. CORBA 1.0 was released in October, 1991 and defined the Interface Definition Language (IDL) and the Application Programming Interfaces (API) which made it possible for clients and servers to interact within a certain implementation of an Object Request Broker (ORB). It was followed by CORBA 1.1 in February, 1992 which was the first widely released version of CORBA. Version 1.2 (December, 1993) closed some ambiguities, mostly in memory management and object reference comparison. CORBA 2 was introduced in August, 1996 and refers to the version of CORBA that uses the IIOP protocol and CORBA 3 refers to the CORBA Component Model. Companies such as Raytheon and The Weather Channel have found CORBA to be very useful in their internal systems

What makes CORBA unique is the separation of interface from implementation which is enabled by IDL. Although the interface to each object is very strictly defined the implementation of an object is hidden from the rest of the system so the client cannot see it. Only through the public interface can a client access an object. The remote invocations work first through having the client obtaining the object reference so the client knows what kind of object they're invoking. The client also knows which operations they can perform on an object. Although the client's Object Request Broker (ORB) and the object's ORB must agree on a common protocol, almost all of the speak IIOP since OMG requires it for interoperability. For example, a customer on an online shopping web site clicks on a shopping cart object. The customer does not know which machine the object is on, but they know exactly what actions they can perform (update cart, checkout), what parameters they are limited to (prices, how many of the items in question are in stock), and what they need to do.

An example of a problem and the IDL file CORBA would use to help solve it:
"The application that we will build involves an AircraftCarrier class and an Aircraft class. The client application will send a message to an AircraftCarrier instance to launch an Aircraft instance. Once the Aircraft has been launched, it can be queried for it's code number and also ordered to change altitude. "

// Ship.idl
module Ship {

interface Aircraft {
string codeNumber();
void attitude(inout long altiude, in string direction);
};

interface AircraftCarrier {
Aircraft launch(in string name);
};

};
- From Infowave's CORBA Java Code Clinic


Sources:
http://www.corba.org
http://www.omg.org
http://www.waveman.com/etac/corba/page2.html

Y'know, if you log in, you can write something here, or contact authors directly on the site. Create a New User if you don't already have an account.