opalORB

opalORB is an OMG CORBA 3.0 implementation written completely in Perl. Perl is a dynamic and portable language, which means opalORB will run on any platform that supports Perl and TCP/IP sockets. opalORB implements both the client and the server (POA) sides of the CORBA model.

The implementation follows the intent of the “CORBA/e Micro Profile” recommended subset of the more usual ORB functionality. This ensures it is simple, small and easy to use. Additionally through its support of the CORBA::Any data type, DSI, and DII, opalORB is able to interact with most other ORB services.

OpalORB implements the OMG specification IIOP™ and is therefore able to interoperate with other ORBs, even when written in other languages.

Note: opalORB utilizes its own Perl to IDL mappings as, at this time, there is no OMG standard mapping for Perl.

CORBA Services

opalORB implements the CORBA Naming Service and CosEvent Service. However, as is usual with CORBA, any ORB can utilize any other ORB's services. Therefore, opalORB can utilize, for instance, a Notification Service provided by another ORB on any platform within the network. The intent of opalORB is not to provide a full featured CORBA implementation, but rather facilitate the use of Perl in conjunction with CORBA systems. If additional services are needed in the Perl language they can be implemented.

Why opalORB?

Perl is a very easy to use, free, scripting language and is widely available on most platforms. Perl is not only used by serious developers, but by systems administration engineers who wish to rapidly develop and test utility applications to explore some concepts, or to provide some narrowly defined functionality on a particular platform. opalORB combines the ease of use offered by Perl with the rich distributed programming model offered by CORBA. This makes it even easier to distribute Perl applications and orchestrate their behaviors across a network.

The most likely uses for Perl with its ORB are

1)  Rapid prototyping.

2) To quickly create “CORBA aware” graphical user interfaces (GUIs) using Tk. (Tk is a highly regarded open source, cross-platform widget toolkit.)

3) Creating simple monitoring/management tools for CORBA services or applications built with any ORB. For example, a simple tool could be written to use any monitoring and control interfaces that might be embedded in a CORBA service.

4) Take advantage of its speed. (Preliminary testing indicates it is faster than a JDK ORB reference implementation by  about a factor of 2.)

5) Testing fault tolerance of the overall system. (For example: by injecting invalid data, for testing purposes.)

6) Automated application testing or unit testing.

7) It is perfect for writing automated configuration scripts for CORBA services (e.g., Naming, Notification, and Implementation Repository). For example, an opalORB script could be used to create a group of Naming Contexts in the Naming Service at start up, create a collection of Event Channels and set QoS on the Notification Service at start up, etc.