PolyORB - Home Page

Latest News

April, 11th 2006: New publications announced

As part of our research work around PolyORB, many papers have been presented to conferences.See Publications for more details.

The PolyORB schizophrenic middleware

PolyORB logo

Distributed applications and middleware

PolyORB aims at providing a uniform solution to build distributed applications; relying either on industrial-strength middleware standards such as CORBA, the Distributed System Annex of Ada 95, distribution programming paradigms such as Web Services, Message Oriented Middleware (MOM), or to implement application-specific middleware.

Basically, middleware are framework that hide the complex issues of distribution and provide the programmer with high-level abstractions that enable easy and transparent construction of distributed applications.

A number of different standards exist for creating object-oriented distributed applications. These standards offer two subsystems that enable interaction between application partitions:

  • the API seen by the developer's applicative objects;
  • the protocol used by the middleware environment to interact with other nodes in the distributed application.

Besides, middleware provide implementation guidelines as well as development tools to ease the construction of large heterogeneous distributed systems. Yet, many issues typical to distributed programming may arise: application architectural choice, configuration or deployment. Since there is no "one size fits all" architecture, choosing the adequate distribution middleware in its most appropriate configuration is a key design point that dramatically impact the design and performance of an application.

Consequently, applications need to rapidly tailor middleware to the specific distribution model they require. A distribution model is defined by the combination of distribution mechanisms made available to the application. Common examples of such mechanisms are Remote Procedure Call (RPC), Distributed Objects or Message Passing. A distribution infrastructure or middleware refers to software that supports one (or several) distribution model, e.g.: OMG CORBA, Java Remote Method Invocation (RMI), the Distributed System Annex of Ada 95, Java Message Service (MOM).

PolyORB : a generic middleware with an instance per distribution model

Typical middleware implementations for one platform supports only one set of such interfaces, pre-defined configuration capabilities and cannot interoperate with other platforms. In addition to traditional middleware implementations, PolyORB proposes an original architecture to enable support for multiple interoperating distribution models in a uniform canvas.

PolyORB is a polymorphic, reusable infrastructure for building or prototyping new middleware adapted to specific application needs. It provides a set of components on top of which various instances can be elaborated. These instances (or personalities) are views on PolyORB facilities that are compliant to existing standards, either at the API level (application personality) or at the protocol level (protocol personality). These personalities are mutually exclusive views of the same architecture.

The decoupling of application and protocol personalities, and the support for multiple simultaneous personalities within the same running middleware are key features required for the construction of interoperable distributed applications. This allows PolyORB to communicate with middleware that implement different distribution standards: PolyORB provides middleware-to-middleware interoperability (M2M).

Besides, PolyORB's modularity allows for the easy extension or modification of its core components and personalities to meet specific requirements. Thus standard compliant or specific personalities can be created in a unique process, from early stage prototyping to full featured implementation. The PolyORB architecture also permits the automatic, just-in-time creation of proxies between incompatible environments.

PolyORB currently supports the following personalities (in the main development branch, available through CVS access):

  • application personalities: CORBA, Distributed System Annex of Ada 95 (DSA), MOMA - MOM for Ada. Interaction between CORBA and DSA partitions has been successfully tested;
  • protocol personalities: SOAP, GIOP (CORBA protocol layer) and the folowing instanciations: IIOP (over TCP/IP), DIOP (over UDP/IP for oneway requests), and MIOP/UIPMC (group communication over multicast/IP);
  • under development: Web Services personality, an adaptation of the AWS API to PolyORB.

Note: PolyORB is the project formerly known as DROOPI, a Distributed Reusable Object-Oriented Polymorphic Infrastructure.

Copyright © 1999-2004, ObjectWeb Consortium | contact | webmaster | Last modified at 2006-04-11 01:44 PM