openorb enterprise suite an opensource corba platform n.
Skip this Video
Download Presentation
OpenORB Enterprise Suite : An OpenSource CORBA platform

Loading in 2 Seconds...

play fullscreen
1 / 33

OpenORB Enterprise Suite : An OpenSource CORBA platform - PowerPoint PPT Presentation

  • Uploaded on

OpenORB Enterprise Suite : An OpenSource CORBA platform. Jérôme DANIEL O’Reilly Conference Santa Clara. 2000 Alameda de las Pulgas, Suite 250 San Mateo, CA 94403. What is the OpenORB Enterprise Suite ?. A CORBA ORB for Java

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'OpenORB Enterprise Suite : An OpenSource CORBA platform' - tyra

Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
openorb enterprise suite an opensource corba platform

OpenORB Enterprise Suite : An OpenSource CORBA platform


O’Reilly Conference Santa Clara

2000 Alameda de las Pulgas, Suite 250

San Mateo, CA 94403

what is the openorb enterprise suite
What is the OpenORB Enterprise Suite ?
  • A CORBA ORB for Java
    • compliant to the latest specification 2.4.2
    • includes POA & BOA
    • supports Object By Value
  • A set of very valuable services
    • includes 10 CORBA Services
    • some very interesting services :
      • Transaction
      • Persistence
      • Notification
  • Some powerful extensions
    • RMI over IIOP
    • SSL

An OpenSource project

sponsored by

openorb core

OpenORB Core

OpenORB Enterprise Suite

the main features
The main features
  • Designed for large scalability
  • Fullywritten in Java ( compliant with JDK 1.2 & JDK 1.3 )
  • Mapping 2.4.2
  • Two object adapters : BOA & POA
  • Object By Value supported
  • IIOP 1.2 and Bidirectional IIOP
  • Portable Interceptors
  • Dynamic API ( DII, DSI, DynAny )
  • Reusable IDL compiler ( IDL reflection )
  • Some utilities ( IDL to HTML, IDL to RTF )
corba feedback
CORBA Feedback
  • From developers :
    • complex to configure
    • complex to deploy and maintain an application
  • From managers :
    • Too heavy for the needs
    • Does not contain the specific features for our IT logic
    • Too expensive
openorb an open orb
OpenORB : an Open ORB
  • OpenORB is not a monolithic ORB : it’s a truly modular ORB
  • OpenORB can be customized to fit an application requirements :
    • The user can specify the features to use
  • Within a configuration file, the user describes what he wants :
    • He only includes the required parts,
    • He takes advantage of a better distributed environment : lighter, faster
  • Some parts can also be replaced by some others. For example, the communication protocol ( by default IIOP ) could be replaced by another one ( developed for example by the user ) : OpenORB is an Open ORB.
the openorb architecture
The OpenORB Architecture

Objects, Stubs and Skeletons





Kernel Connector

OpenORB Kernel


OA Connector


Communication Protocol Connector



configuration deployment
Configuration & Deployment
  • OpenORB requires an XML configuration file. This file mainly contains two parts :
    • Module : an enumeration of properties
    • Profile : a set of modules
  • A Profile is a full configuration that can be used to start the ORB.
  • A default configuration file is delivered with OpenORB as an embedded configuration directly located within the Jar file.
  • A user can define its own configuration file to customize the OpenORB behavior :
    • Specify the ORB features to use
    • Customize the ORB behavior
    • Customize all other OpenORB services and extensions
  • Then, this configuration can be included in its own Jar file ( for its application ).
    • easy deployment ( no configuration required for the CORBA part when deploying )
openorb services extensions

OpenORB Services & Extensions

OpenORB Enterprise Suite

the basic services
The basic services
  • NamingService ( Interoperable Naming Service )
  • Concurrency Service
  • Event Service
  • Property Service
  • TimeService
  • Trading Service
the complex services
The complex services
  • Notification Service
  • Transaction Service
  • Persistent State Service
several extensions
Several extensions
  • OpenORB Enterprise Suite also provides several extensions :
    • A Management Board
    • SSL
    • RMI over IIOP
the transaction service

The Transaction Service

OpenORB Enterprise Suite

what is the transaction service
What is the Transaction Service ?
  • The OTS ( Object Transaction Service ) provides :
    • Distributed transactions management
    • Recovery management
    • Flat transactions and sub transactions ( close model )
    • Initiator and subordinate models are supported
    • does not provide any API for XA and OSI/TP interoperability
  • A set of objects are managed by the OTS
    • The transaction factory
    • The control object
    • The coordinator and terminator objects
how is working the transaction service

A set of objects is created

for the current transaction.

The Transaction Monitor begins a

Two Phases Commit algorithm

with all the participants.


Thanks to the transactional context,

the participant registers a resource within

the current transaction.


Commit ok







Invoke business method

The transactional context is

now on the participant side


transactional context



Same thing with the

second participant



How is working the transaction service ?








the openorb ots
  • A fully compliant implementation of the OMG OTS specification
  • Some extensions
    • JTA interfaces
    • XA management
    • Administration interface
  • The Exolab also sponsors another Transaction Monitor implementation : Tyrex ( )
    • A complete Transaction Monitor
    • An OTS version
the persistent state service

The Persistent State Service

OpenORB Enterprise Suite

what is the pss
What is the PSS ?
  • The Persistent State Service ( PSS ) provides several CORBA friendly APIs to store/restore CORBA data types within datastores.
  • The PSS provides a link between the « ORB domain » and the « Datastore domain ».

ORB domain

Datastore domain


External interface

Internal interface

the psdl
  • To describe persistent data, a new description language is used : PSDL ( Persistent State Description Language ) which is a super set of IDL.
  • A PSDL description is divided into two parts :
    • The abstract model which describes the persistent data types.
    • The concrete model which implements the abstract model.
  • A PSDL description is compiled and generates a set of APIs which are independent of the datastore.

API ( independent of

the datastore ) : abstract model


API implementation :

concrete model

a simple example
A simple example
  • Description of persistent data : « abstract storage type »
  • Description of set of persistent data : « abstract storage home »
    • Includes finder and factory

abstract storagetype Person


state string firstname;

state string lastname;

state long age;


abstract storagehome PersonHome of Person


key name( firstname, lastname );

key firstname;

factory create( firstname, lastname, age );


storagetype PersonImpl implements Person

{ };

Use of the default

concrete model

storagehome PersonHomeImpl of PersonIml

implements PersonHome

{ };

how to use a storage type
How to use a storage type ?
  • No need to invoke a store/restore operation
  • The PSS implementation automatically stores the object if it has been modified.
  • To get or create a new storage type, we only use the storage home.
    • A storage home is retrieved thanks to a connector that implements the link between the concrete implementation and the the data store.

PersonHome home = …

Person joe = home.create("Joe","Smith",31);

joe.age( 32 ); // Happy birthday !

System.out.println("My name is " : joe.firstname() );

openorb pss implementation
OpenORB PSS Implementation
  • Full implementation of the PSS implementation
    • PSDL compiler
    • 3 connectors :
      • Database, File and Memory
    • 3 session types per connector :
      • Basic, transactional, session
  • Several extensions
    • Extended API
    • Iterator
    • Multiple connectors with the same application implementation
rmi over iiop


OpenORB Enterprise Suite

  • RMI over IIOP is a way to run RMI applications over CORBA !
    • It means that an ORB is used
    • It’s completely transparent from the user point of view
  • A RMI client uses RMI over IIOP to invoke RMI objects
  • A CORBA client directly uses the standard CORBA invocation model
    • An IDL description is required for a RMI object
  • With RMI over IIOP, it’s not possible :
    • To invoke a standard CORBA object from a RMI client
some details about rmi over iiop
Some details about RMI over IIOP
  • RMI/IDL is a set of rules that define how to describe a RMI object in IDL.
  • A RMI/IDL tool is provided to automatically generate :
    • The RMI object IDL description
    • The RMI object stub and skeleton ( also called « Tie Object » )
  • To invoke a RMI object from a CORBA client :
    • The IDL description must be compiled to generate the CORBA stub
    • The ORB used on client side must provide Object By Value
    • Most of complex data types must be re-implemented on the client side ( as for instance the Vector type ).
openorb rmi over iiop
  • OpenORB Enterprise Suite provides a complete implementation of the RMI over IIOP specification :
    • A tool to generate a IDL description, stubs and skeletons
    • A JNDI implementation to bind RMI objects within the CORBA naming service
    • It takes advantage of the OpenORB platform ( Scalability, Interoperability )
    • It’s possible to use several extensions at the same time
      • Combine for instance RMI over IIOP and SSL

RMI Clients

RMI Objects





  • OpenEJB is a fully compliant implementation of the EJB 1.1 specification.
    • OpenEJB is also an OpenSource project sponsored by (
    • It’s not an EJB Server
    • It’s a EJB container system ( it means that OpenEJB provides several containers to deploy and execute session and entity beans )
openejb architecture
OpenEJB Architecture




  • The Service Provider Interfaces
  • provides connectivity to the
  • implementation of :
    • transaction management
    • security
    • persistence


Invocation API

This interface is used to invoke Home and

Bean implementations.

the adapter purpose
The adapter purpose
  • To use the OpenEJB container system over CORBA
    • Reuse RMI over IIOP without any change
    • Reuse OpenEJB without any change

Bean implementation ( RMI object )


The Adapter is responsible

to rely incoming requests to

the EJB container. It's also

responsible for transaction

and security managements.

Invocation API



The CORBA Object delegates the invocation to the RMI object

openejb openorb adapter
OpenEJB/OpenORB Adapter
  • The OpenEJB/OpenORB Adapter will be available in several weeks :
    • Provides a complete application server over CORBA
      • EJB components ( session, entity )
      • Transaction, Persistence and Security Management
    • Takes advantages of the OpenORB Enterprise Suite Platform
      • OpenORB Scalability
      • Secured communication
      • Distributed transaction management


OpenORB Enterprise Suite

openorb enterprise suite
OpenORB Enterprise Suite
  • A complete CORBA Framework
    • An ORB 2.4.2 ( scalability, interoperability, portability )
    • 10 services ( Transaction, Persistence, Notification, … )
    • 3 extensions ( RMI over IIOP, SSL )
    • Several kinds of application ( CORBA application, RMI application, EJB component )
  • An Open Source project sponsored by
    • Team : Jerome DANIEL, Marina DANIEL, Olivier MODICA, Chris WOOD
    • Contributors