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.

Visit opalorb.sourceforge.net for:

  • Download
  • Documentation
  • FAQs
  • License Terms


  • Uses an intuitive mapping of IDL to Perl. (Note: opalORB utilizes its own Perl to IDL mappings as, at this time, there is no OMG standard mapping for Perl.)

  • Provides a single threaded mode in addition to a thread-per-connection mode.

  • Provides an implementation of synchronous DII/DSI.

  • Provides an implementation of DynamicAny.

  • Provides an Interoperable Name Service (with persistence) and an Event Service.

  • Provides a graphical Name Service editor/viewer.

Benefits of using opalORB

  • opalORB is free open source software (FOSS), which means no vendor lock-in and maximum user control. There are no license fees whatsoever, and the full source code is available at no cost.
  • Simple and easy to use.
  • Implements IIOP and is, therefore, able to interact with most other ORB services, even when written in other languages.
  • Preliminary testing indicates it is faster than a JDK ORB reference implementation by about a factor of 2.)
  • Implements UIOP (UNIX domain sockets) which provides a slight performance advantage over IIOP.
  • Implements SSLIOP (SSL over TCP/IP) and Level 1 Security to provide secure communication.

Who Should be Using opalORB?

The most likely uses of opalORB include:

  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. Testing fault tolerance of the overall system. (For example: by injecting invalid data, for testing purposes.)

  5. Automated application testing or unit testing.

  6. 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.

WebSanity Top Secret