PolyORB

Distributed Systems

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)

Integral to all our products: Frontline Support

Expertise

The world’s largest team of Ada experts at your fingertips. Learn More »

GNAT Tracker

Our powerful, secure, customer web server, brings you timely online support. Learn More »

Knowledge Center

Developer Gems    

  • Gem #111: The Distributed Systems Annex, Part 5—Embedded Name Server

    This is the fifth in a series of Gems introducing the facilities defined by the optional annex for Distributed Systems of the Ada Reference Manual (Annex E). In the previous installment, we showed how to integrate DSA code as a stand-alone Ada library in a C/C++ application.

    In this installment, we show how the DSA name server can be embedded in the main partition, rather than started as a stand-alone process.

  • Gem #90: The Distributed Systems Annex, Part 4—- DSA and C

    This is the fourth in a series of Gems introducing the facilities defined by the optional annex for distributed systems in the Ada Reference Manual (Annex E). In the previous installments, we introduced the Distributed Systems Annex (DSA), and we explained how it allows various interaction paradigms to be implemented. In this Gem, we show how these useful tools can be used from a C program.

Live Docs

Code Samples

Development Log

Press Releases

In the Press

Events