Implementation of OpenORB
Implementation of the OpenORB ideals have been executed across three generations:
- Generation 1 - Python based rapid prototypes
- Generation 2 - An efficient CORBA implementation
- Generation 3 - Applying Open ORB across application domains
Generation 1: Python based rapid prototypes
The early proof of concept work on the OpenORB meta models was carried out by developing a set of individual Python implementations. For interest, the OpenORB python protoype API (OOPP) can be found here.
Generation 2: An efficient CORBA implementation
The second generation implementation (known as OpenORB v2) was our first system to be based upon our lightweight and reflective component model (OpenCOM). A CORBA ORB was implemented as a set of configurable and reconfigurable component frameworks. This ORB was then able to offer improved support to multimedia applications in the face of changing network QoS.
OpenORB v2 is structured as a top-level CF that is composed of three layers of further CFs (as seen in the diagram). The top-level enforces the structure that a CF can only depend on layers below itself. The binding layer offers the programming model to the user, abstracting over multiple interaction styles (e.g. RPC, publish-subscribe, group, auction etc.). The lower levels then concentrate on reconfigurable aspects of middleware functionality and resources e.g. communication, threads and memory management.
To evaluate this implementation, OpenORB v2 was compared to the performance of a well known CORBA ORB - Orbacus and a high performance multimedia ORB - GOPI. The results in the graph illustrate that OpenORB is comparable to these implementations irrespective of the the extra overhead incurred from being a reflective platform. N.b. These results do not examine dynamic change, and the overhead comes from the explicit structure of OpenORB (namely OpenCOM receptacles)
Generation 3: Applying OpenORB across application domains
We are now in the process of developing middleware platforms for different application domians. In paricular, mobile computing, the Grid and programmable networks. More information about these can be found in our projects list. However, each is still heavily influenced by the OpenORB philosophy.
To support these new systems, we have revised the original version of OpenCOM to the version found on this web page. In particular making it platform neutral i.e. it can operate on WinCE devices, and linux based routers, as required by the application domains.

