What is CORBA?
CORBA (Common Object Request Broker Architecture) is a distributed Object-oriented client/server platform.
• An object-oriented Remote Procedure Call (RPC) mechanism
• object services (such as the Naming or Trading Service)
• Language mappings for different programming languages
• Interoperability protocols
• Programming guidelines and patterns
CORBA replaces ad-hoc special-purpose mechanisms (such as socket Communication)
with an open, standardized, scalable, and portable Platform.
OMG Common Object Request Broker Architecture (CORBA)
The Object Management Group's (OMG's) Common Object Request Broker Architecture (CORBA®) middleware standard enables software applications to invoke operations on distributed objects without concern for object location, programming language, operating system platform, communication protocols, interconnections or hardware.
CORBA remains the most successful open standard in supporting distributed heterogeneous mission critical systems that require exceptional levels of performance and QoS. PrismTech's Open Fusion provides the most comprehensive range of CORBA middleware products available from any vendor.
CORBA uses an interface definition language (IDL) to specify the interfaces that objects will present to the outside world. CORBA then specifies a “mapping” from IDL to a specific implementation language such as C++ or Java. Standard mappings exist for Ada, C, C++, Lisp, Smalltalk, Java, COBOL, PL/I and Python. There are also non-standard mappings for Perl, Visual Basic, Ruby, Erlang, Tcl and even VHDL implemented by object request brokers (ORBs) written for those languages.
A language mapping requires the developer to create some IDL code that represents the interfaces to his objects. Typically, a CORBA implementation comes with a tool called an IDL compiler which converts the developer's IDL code into some language-specific generated code. A traditional compiler then compiles the generated code to create the linkable-object files for the application. the figure below illustrates how the generated code is used within the CORBA infrastructure.
The CORBA specification dictates that there shall be an object request broker (ORB) through which the application interacts with other objects. In practice, the application simply initializes the ORB, and accesses an internal Object Adapter which maintains such issues as reference counting, object (& reference) instantiation policies, object lifetime policies, etc.
The Object Adapter is used to register instances of the generated code classes. Generated Code Classes are the result of compiling the user IDL code which translates the high- level interface definition into an OS- and language-specific class base for use by the user application. This step is necessary in order to enforce the CORBA semantics and provide a clean user processes for interfacing with the CORBA infrastructure.