In recent years, with the growing maturity and application of new technologies such as software architecture, software component, large-granularity software reuse and so on, software engineering methodology based on product line, which rises the widespread concern and attention, has become a hot and key topic in software engineering field. ORBA is often described as a “software bus” because it is a software-based communications interface through which objects are located and accessed. The illustration below identifies the primary components seen within a Common Object Request Broker Architecture (CORBA) implementation.
Overview of CORBA
The Common Object Request Broker Architecture (CORBA) is a standard developed by the Object Management Group (OMG) to provide interoperability among distributed objects. CORBA is the world’s leading middleware solution enabling the exchange of information, independent of hardware platforms, programming languages, and operating systems. CORBA is essentially a design specification for an Object Request Broker (ORB), where an ORB provides the mechanism required for distributed objects to communicate with one another, whether locally or on remote devices, written in different languages, or at different locations on a network.
The OMG’s vision of a distributed application is shown in Figure, which I have adapted from Siegel’s diagram of the Object Management Architecture (Siegal, 1998). This proposes that a distributed application should be made up of a number of components:
- Application objects that are designed and implemented for this application.
- Standard objects that are defined by the OMG for a specific domain. These domain object standards cover finance/insurance, electronic commerce, healthcare, and a number of other areas.
- Fundamental Common Object Request Broker Architecture (CORBA) services that provide basic distributed computing services such as directories, security management, etc.
- Horizontal CORBA facilities such as user interface facilities, system management facilities, etc. The term horizontal facilities suggest that these facilities are common to many application domains and the facilities are therefore used in many different applications.
Figure: CORBA Architecture
The CORBA standards cover all aspects of this vision. There are four major elements to these standards:
- An object model for application objects where a Common Object Request Broker Architecture (CORBA) object is an encapsulation of state with a well-defined, language-neutral interface described in an IDL (Interface Definition Language).
- An object request broker (ORB) that manages requests for object services. The ORB locates the object providing the service, prepares it for the request, sends the service request and returns the results to the requester.
- A set of object services that are general services likely to be required by many distributed applications. Examples of services are directory services, transaction services and persistence services.
- A set of common components built on top of these basic services that may be required by applications. These may be vertical domain-specific components or horizontal, general-purpose components that are used by many applications.
The Common Object Request Broker Architecture (CORBA) object model considers an object to be an encapsulation of attributes and services, as is normal for objects. However, CORBA objects must have a separate interface definition that defines the public attributes and operations of the object. CORBA object interfaces are defined using a standard, language-independent interface definition language (IDL). If an object wishes to use services provided by another object then it accesses these services through the IDL interface. CORBA objects have a unique identifier called an Interoperable Object Reference (IOR). This IOR is used when one object requests services from another. These requests are processed by the object request broker.
 Jianli Dong, “Framework and CORBA Implementation of A New Industrialized PL-ISEE Database Platform”, Journal of Software, Volume 7, Number 7, July 2012
 Chambers, John M., Mark H. Hansen, David A. James, and Duncan Temple Lang. “Distributed computing with data: A CORBA-based approach”, Computing Science and Statistics (1998).
 “CORBA”, available online at: http://iansommerville.com/software-engineering-book/web/corba/
 “What is CORBA?” available online at: http://www.ois.com/Products/what-is-corba.html
 Vinoski, Steve. “CORBA: integrating diverse applications within distributed heterogeneous environments.” IEEE Communications magazine 35, no. 2 (1997): 46-55.