23-06-2014, 03:06 PM
CORBA Technology
CORBA.docx (Size: 28.32 KB / Downloads: 14)
Introduction
of CORBA Technology
The Common Object Request Broker Architecture (CORBA) is an emerging open distributed object computing infrastructure being standardized by the Object Management Group (OMG). CORBA automates many common network programming tasks such as object registration, location, and activation; request demultiplexing; framing and error-handling; parameter marshalling and demarshalling; and operation dispatching. The following figure illustrates the primary components in the OMG Reference Model architecture.
How CORBA Works:
A CORBA Object Request Broker (ORB) is the middleware that establishes the client-server relationship between objects. Using an ORB, a client object can invoke a method on a server object that can be on the same machine or across a network. The ORB intercepts the call and finds an object that can implement the request, pass it the parameters, invoke its method, and return the results. CORBA, like SQL, provides both static and dynamic interfaces to its services. The client does not have to know the object's location, its programming language, its operating system, or any other system aspects that are not part of an object's interface. Also, the client and server roles are dynamic: an object on the ORB can act as either client or server, depending on the occasion
Together, ORBs and the CORBA architecture provide the mechanism for CORBA objects to communicate. The objects are small software components that provide some kind of a service, such as access to a database, account management, or inventory tracking. Fundamental to the architecture are the ORBs. For any client or server to be a part of the CORBA scheme, it must include an ORB to help it find and communicate with other CORBA objects. Once outfitted with an ORB, a client or server can use the services of any CORBA object on any server or host on the network.
An object can be both a client and a server: when it provides services to another object, it's a server; when it requests services from another object, it's a client. The CORBA architecture provides a set of services that help objects interact with each other. (In the CORBA world, services means both the services provided by the CORBA architecture to help objects communicate and the functionality provided by the objects themselves.)
Interface Definition Language
CORBA also defines a special language - IDL -which provides a language-neutral way of describing a specification for a CORBA object and the service(s) it provides. IDL lets components written in different languages communicate with each other using IIOP and the rest of the CORBA architecture. (Objects with IDL-defined interfaces are said to be CORBA-compliant.). Currently, it’s easiest to provide an IDL specification for objects written in C, C++, and Java, because the OMG has completed mapping schemes - or translation guides - from IDL to those languages. Also, there are already compilers that employ those mapping schemes to translate IDL to C, C++, and Java. (OMG is currently working on IDL mappings for ADA, SmallTalk, and other languages.)
CORBA objects may sit on different types of systems - Windows or Unix servers, IBM 3090 or DEC VAX mainframes. They may even be written in different languages. In fact, the objects don't need any inherent knowledge of each others' existence. As long as the interface to the service provided by the object is written in IDL, all the objects can communicate and use each others' services through ORBs sitting on clients, servers, database systems, mainframes, and other systems on the network.