Distributed Systems – PolyORB
Middleware implementation providing development tools
and an innovative runtime library architecture for
collaboration of application components using open
standards for distributed sytems.
Key features
- Support of standard application personalities: CORBA, Ada DSA (Annex E)
- Support of standard protocol personalities: GIOP, SOAP
- Interoperability between hardware platforms and operating environments,
between distribution models
- Support for multiple tasking profiles (full Ada tasking, Ravenscar
tasking, no tasking)
- Support for security and real-time extensions
- Tailorability to application and platform specific requirements
PolyORB is a middleware toolset that provides distribution services through
standard programming interfaces (e.g. CORBA, the Ada Distributed Systems
Annex, or the MOMA messaging API) and communication protocols (e.g. GIOP
and SOAP). It addresses distribution model interoperability issues by
allowing a single middleware instance to efficiently support multiple
personalities executing simultaneously. Its modular architecture
emphasizing code reuse allows the definition and deployment of middleware
configurations that are specially adapted for real-time, high integrity
applications.
To browse online documentation, please click here.
Versatile middleware architecture
The PolyORB architecture brings increased versatility to
middleware technology. Existing middleware solutions
for distributed applications define two interface aspects:
- The interface seen by the developer’s application objects
(“application personality”)
- The protocol used by the middleware environment to talk to other
nodes in the distributed application.
(“protocol personality”)
Middleware implementing a given distribution model usually supports
only one set of such interfaces, and isn’t interoperable with other
platforms or distribution models. PolyORB addresses this “middleware
paradox” with dual, complementary approaches.
- The use of a generic component-based design allows multiple
implementations of each middleware aspect to coexist and share
internal state and behaviour with a common framework.
- The internal representation of interactions between distributed
application components is independant of both the application
and protocol personalities, allowing full decoupling of the two
layers, and making it possible to mix and match personalities
arbitrarily.
The decoupling of application and protocol personalities, and the
support for multiple personalities simultaneously executing within
the same running middleware are key features required for the construction
of interoperable distributed applications. This allows PolyORB to
communicate with middleware products that implement different
distribution standards: PolyORB provides middleware-to-middleware
interoperability.
PolyORB’s modularity lets users extend or modify its core components
and personalities to meet specific requirements. Thus you can create
standards-compliant or specific personalities ranging from early stage
prototyping to full-featured implementation. The PolyORB architecture
also supports automatic “just-in-time” creation proxies between
incompatible environments by combination of multiple protocol
personalities.
Supported application personalities
CORBA 3.0
PolyORB includes an implementation of the standard Ada Language Mapping
of CORBA:
- IAC: OMG IDL compiler generating Ada server and
client stubs
- an ORB implemented as personality
modules within the PolyORB framework, providing runtime communication
services and distribution support to application components.
Various standard CORBA services such as Naming, Events,
Notifications, Time and the Interface Repository are provided,
as well as support for standard security and real-time extensions
of CORBA.
Ada Distributed Systems Annex (DSA)
The Ada Distributed Systems Annex allows easy creation and deployment of
distributed applications using standard language features. The
construction of a distributed appplication is facilitated by leveraging
on existing Ada constructs to identify distributed component boundaries
and interfaces. Applications can be written as though not distributed,
and later on partitioned into multiple subsets assigned to distinct
nodes, and communicating through remote subprogram calls and shared
data.
The PolyORB/DSA implementation includes:
- a distribution stubs generator, included in the GNAT Pro compiler;
- GNATDIST: a partitioning tool allowing the generation of executable
images for each partition in a DSA distributed appplication
- a PCS (Partition Communication Subsystem) implemented as personality
modules within the PolyORB framework, providing runtime communication
services and distribution support to application components.
Supported protocol personalities
The following protocol personalities are supported, and can all be used
in conjunction with all application personalities:
- SOAP
- GIOP (CORBA protocol layer) and the following instantiations:
- IIOP (over TCP),
- SSLIOP (over secure, encrypted SSL TCP links)
- DIOP (over UDP for one-way requests)
- MIOP/UIPMC (group communication over multicast UDP)