New York University

Computer Science Department

Courant Institute of Mathematical Sciences

 

POA and CORVAL

 

Course Title: Application Servers                                                Course Number: g22.3033-011

Instructor: Jean-Claude Franchitti                                                          Session: 5

 

 

Two programs within the Object Management Group (OMG) were initiated to improve the portability of software developed using the Common Object Request Broker Architecture (CORBA). The goal of the first of these programs, the Portable Object Adapter (POA), was to address the weaknesses in version 2.0 of the CORBA standard that negatively affected the portability of CORBA server object source code between vendor implementations. Also, the OMG in cooperation with the Open Group launched the CORBA Validation (CORVAL) initiative. The focus of this effort was the production of a standard compliance test suite for CORBA Object Request Broker (ORB) implementations. This handout summarizes these ventures and their impact on source code portability.

 

The POA concept was developed as a replacement for the Basic Object Adapter (BOA). An object adapter is the interface software that resides between a server object and the ORB. Object adapters are responsible for managing the mapping of object references to a corresponding implementation object (especially important in systems with multiple active server objects), activation and deactivation of server objects, and the invocation of methods on server objects in response to remote requests. Although the OMG envisions the availability of different object adapters for different environments, the Basic Object Adapter (BOA) was defined in the 2.0 revision of the standard to provide a baseline level of functionality for any ORB implementation. However, the standard for the BOA is ambiguous, containing little or no guidance for object activation and deactivation mechanisms, event dispatching and method upcalls, and the interface between the BOA and object implementation skeleton. These ambiguities have resulted in incompatible variations in implementation of the BOA between vendors.

 

The POA provides a facility for the flexible management of server objects. Instead of providing only one object adapter, the POA has a root object adapter from which a set of additional POA objects can be created. Each of these POA objects can be tailored with a set of policies constructed to match the particular execution characteristics of an individual server object. By splitting up the job of the object adapter into many discrete objects, the POA creates a portable mechanism for supporting a wide range of object adapter behaviors. This architecture creates additional flexibility in the CORBA architecture.

 

The CORVAL effort, moreover, was developed to help both ORB makers and ORB users determine if their products fully adhere to the CORBA 2.0 standard. The main product of this effort is the VSOrb Test Suite deployed in a formal branding program in which ORB implementations are evaluated for conformance and by individual vendors during product development and testing. The testing ensures that the standard interfaces and functionality are available from all branded products, enhancing the portability of applications.

 

VSOrb conformance testing can be divided into four groups:

 

·        OMG Interface Definition Language (IDL) and language mappings, compiler testing,

·        CORBA standard Application Programming Interfaces (APIs), and interoperability.

 

Vendor products and IDL compilers should be tested for adherence to standard IDL syntax and semantics and for correct mapping of IDL data structures to corresponding structures in C and C++ according to the standard mappings. The CORBA APIs, available in C and C++ to the application programmer as provided by the vendor in libraries, should also be tested. These interfaces include the ORB, the invocation interfaces, and some of the BOA interfaces. Finally, the messages generated by the vendor product using the Internet Inter-ORB Protocol (IIOP) must be examined for adherence to the standard. IIOP testing ensures that an ORB product will interoperate with products from other vendors.

 

These initiatives further enhanced the capabilities of CORBA as a cross-platform middleware architecture. Furthermore, the POA and the product testing will assist users in both selecting ORB products which conform to the CORBA standard and to develop applications portable across vendor tools. This capabilities increase the degree of reuse of software components and maximize initial software development investment.

 

More information regarding the POA and the ORB portability enhancements can be found at the OMG web site: http://www.omg.org.


Information about the CORVAL effort, VSOrb, is available from the Open Group web page: http://www.rdg.opengroup.org/public/vsorb/