ORB Overview

The Novell exteNd Messaging Platform's ORB is an enterprise-class JavaTM CORBA ORB and set of services featuring industry leading performance and scalability. It has a small footprint and an excellent set of features for developing, deploying, and managing large scale distributed Java applications.

The ORB implements the core and interworking sections of CORBA 2.4. It includes features such as:

Interoperability

Existing infrastructure and applications often exist across various hardware architecture, operating systems and languages. CORBA, OMG's open, vendor-independent architecture and infrastructure help these diverse applications work together over networks. A CORBA based application from any vendor, computer, operating system, programming language, and network can interoperate with any other system using the standard protocol, IIOP. CORBA is a proven, reliable, scalable technology and Novell's ORB takes full advantage of everything it has to offer.

This release of the ORB has been tested to interoperate with the 1.3 version of the Sun Java 2 Enterprise Edition (J2EE) reference implementation.

Flexible Runtime & Compilers

The ORB contains a complete set of feature rich compilers that support programming using OMG IDL as well as Java RMI using a variety of Object Adapters. The ORB contains a high-performance, flexible CORBA/IIOP ORB runtime. It implements several object adapters, delegates, transports, protocols, interceptors, and connection/threading policies.

High Performance and Scalability

The ORB is one of the fastest Java CORBA ORB in the industry. It contains a high performance and flexible CORBA/IIOP ORB runtime. Several object adapters, delegates, transports, protocols, interceptors, and connection/threading policies are implemented.

IIOP Connection Concentrator: The IIOP Connection Concentrator feature of the ORB funnels client/server communication (in both directions) to reduce resource utilization on the server. Using this feature, a distributed application can literally support tens of thousands of simultaneously connected clients. The gateways can be statically or dynamically configured with fail-over support. The gateway can also be used as an IIOP proxy to navigate a firewall. When this feature is used, some round trip performance is compromised for gains in the overall scalability of the system.

Doors Transport (Solaris only): The Doors transport feature allows the ORB to further optimize intra-machine communication using the Doors inter-process communication APIs provided by the Solaris Operating System. For the average message sizes, there is typically a 100% performance boost. The figure below compares the ORB performance against some of the other popular Java CORBA ORBs.

Figure 1: ORB Performance comparison on Solaris with JDK 1.2.

Fault Tolerant COS Naming: The ORB provides multiple COS Naming Context implementations - transient, persistent (with pluggable data store.) It also provides the notion of Object and Context Groups for providing load balancing and fault tolerance of published objects and the name space itself. A Name Service can be started inside a dedicated server or in-process along with any server implementation.

Server Clustering: The ORB's POA implementation provides support for pooling together multiple machines into a single cluster using the ORB's Load Balancing and Fail Over policies. An application can be run over several machines and can tolerate process, computer, and network failures and stay available.

Security Service

The ORB implements the level 0 of the CORBA standard Common Secure Interoperability v2.0 (CSIv2) specification. This includes client authentication using GSS username/password and public key, Identity Assertion, and IIOP over SSL and TLS. It also supports the notion of pluggable protection spaces (realms) for authenticating the users/applications.

Interoperable Name Service

The ORB supports the latest Interoperable Name Service specification. This includes the extended naming Context and the various URL schemes (corbaloc, corbaname, etc.) for resolving Initial objects. Both transient and persistent Name Services are included. The ORB provides multiple COS Naming Context implementations - transient, persistent (with pluggable data store.)

The ORB's Name Service is also accessible using the Java Naming and Directory (JNDI) APIs using the COSNaming JNDI provider from Sun Microsystems.

Server Activation Service

The ORB provides mechanisms and APIs for defining, monitoring, activating, and deactivating servers (Java VMs). When a method is invoked on an object, the client and server ORB runtime interact with the ORB activation daemon to automatically locate or restart an instance of a server containing the object implementation.

Transaction Service Pluggability

The ORB is Object Transaction Service (OTS) v1.2 aware. It provides OTS POA policies for creating transactional objects, supports both implicit and explicit transaction context propagation, and callbacks to the sender/receiver hooks of the transaction service.

The Novell exteNd Messaging Platform's JTS transaction manager is plugged into the ORB to provide distributed transactions using OTS as well as XA resources.

Administration and Monitoring

The ORB provides several command line tools for managing ORB servers, browsing name space, and managing the security realms.

It also includes APIs for monitoring runtime properties of the various Messaging Platform technologies. A GUI based console can be used to view the ORB, JMS, and JTS runtime properties.



Copyright © 2003, 2004 Novell, Inc. All rights reserved. Copyright © 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.