14. Conformance to Standards

14.1. CORBA standards conformance

The OMG defines a CORBA-compliant ORB as an implementation of the CORBA specifications that supports CORBA Core and one mapping of CORBA’s IDL.

Here is a summary of PolyORB’s conformance issues with the latest CORBA specifications (revision 3.0, formal/02-06-01).

14.1.1. CORBA IDL-to-Ada mapping

PolyORB supports the IDL-to-Ada specification :cite:`corba-ada-mapping1.2:2001`, with the following limitations in both the CORBA API and the IDL-to-Ada compiler idlac:

  • no support for abstract interfaces, object-by-value, context data;

  • no support for CORBA Components;

  • implemented API may present some divergences with current mapping.

Note: generated code is constrained by the limitations of the Ada compiler used. Please refer to its documentation for more information.

Conforming to documentation requirements from section 4.11 of the IDL-to-Ada specification :cite:`corba-ada-mapping1.2:2001`, note that PolyORB’s implementation of CORBA is tasking-safe. The use of the CORBA personality on typical GNAT runtimes is task-blocking, unless specified in platform notes.

14.1.2. CORBA Core

This set encompasses chapters 1-11. Chapters 3 to 11 are normative.

  • Chapter 3 describes OMG IDL syntax and semantics. See CORBA IDL-to-Ada mapping for a description of non-implemented features;

  • Chapter 4 describes the ORB Interface.

    PolyORB partially supports this chapter.

  • Chapter 5 describes Value Type Semantics.

    PolyORB does not support this chapter.

  • Chapter 6 describes Abstract Interface Semantics.

    PolyORB does not support this chapter.

  • Chapter 7 describes Dynamic Invocation Interface (DII)

    PolyORB supports only the following methods: Create_Request, Invoke and Delete.

  • Chapter 8 describes Dynamic Skeleton Interface (DSI)

    PolyORB partially supports this chapter: this interface is fully implemented except for context data.

  • Chapter 9 describes Dynamic Management of Any Values

    PolyORB partially supports this chapter: this interface is fully implemented except for object references and value types.

  • Chapter 10 describes The Interface Repository

    PolyORB supports this chapter, except for the ExtValueDef interface, and all CORBA CCM related interfaces.

  • Chapter 11 describes The Portable Object Adapter

    PolyORB supports this chapter with the following limitations:

    • the USE_SERVANT_MANAGER policy is partially supported: the ServantLocator object is not implemented;

    • support for SINGLE_THREAD policy is incomplete, reentrant calls may not work;

    • Wait_For_Completion and Etherealize_Objects are not taken into account in PortableServer.POAManager;

    • the PortableServer.POAManagerFactory API is not implemented.

14.1.3. CORBA Interoperability

This set encompasses chapters 12-16.

14.1.4. CORBA Interworking

This set encompasses chapters 17-21.

  • Chapters 17 to 20 describe interoperability with Microsoft’s COM/DCOM.

    PolyORB provides no support for these chapters.

  • Chapter 21 describes PortableInterceptor.

    PolyORB provides partial support for this chapter.

14.1.5. CORBA Quality Of Service

This set encompasses chapters 22-24.

  • Chapter 22 describes CORBA Messaging

  • Chapter 23 describes Fault Tolerant CORBA

  • Chapter 24 describes Secure Interoperability.

PolyORB provides no support for these chapters.

14.1.6. CORBA COS Services

COS Services are specifications of high level services that are optional extensions to the CORBA specification. They provide helper packages to build distributed applications. PolyORB implements the following COS Services:

  • COS Event and TypedEvent;

  • COS Naming;

  • COS Notification;

  • COS Time;

14.1.7. CORBA Specialized services

PolyORB supports the following specialized services:

  • Unreliable Multicast (MIOP), proposed 1.0 specification :cite:`miop`. .. index:: MIOP

  • RT-CORBA extensions, see RT-CORBA for more information on this point.

  • CORBA security extensions, see :cite:`csiv2` for more information on this point.

14.2. RT-CORBA standards conformance

RT-CORBA specifications rely on the CORBA application personality; the same issues and implementation notes apply.

In addition, here is a list of issues with the implementation of RT-CORBA static :cite:`rt-corba1.1:2002` and dynamic scheduling :cite:`rt-corba2.0:2003` specifications.

  • RT-CORBA static and dynamic scheduling (Chapter 2)

    Chapter 2 is common to these two specifications. It describes key mechanisms of RT-CORBA that are common to both specifications.

    PolyORB partially implements this chapter from section 2.1 up to section 2.10. PolyORB does not provide support for all connection-related policies.

    See implementation notes in the different package specifications for more details.

  • RT-CORBA static scheduling (Chapter 3)

    PolyORB supports this chapter.

  • RT-CORBA dynamic scheduling (Chapter 3)

    PolyORB does not support this chapter.

14.3. CSIv2 standards conformance

PolyORB supports IIOP/SSL.

14.4. CORBA/GIOP standards conformance

GIOP supports part of the CORBA Interoperability specification, from chapters 12 to 16 of CORBA specifications.

Chapter 12 defines general concepts about ORB interoperability. It defines an interoperbility-compliant ORB as an ORB that supports:

  • API that supports the construction of request-level inter-ORB bridges, Dynamic Invocation Interface, Dynamic Skeleton Interface and the object identity operations described in the Interface Repository. See CORBA standards conformance for more details.

  • IIOP protocol as defined in chapter 15.

Support for other components is optional.

  • Chapter 13 describes the ORB Interoperability Architecture.

    PolyORB fully supports this chapter.

  • Chapter 14 describes how to build Inter-ORB Bridges.

    PolyORB fully supports this chapter.

  • Chapter 15 describes the General Inter-ORB Protocol (GIOP).

    PolyORB supports GIOP version 1.0 to 1.2, the CDR representation scheme. Support for IOR and corbaloc addressing mechanisms is supported in the CORBA personality, see CORBA for more details.

    PolyORB does not support the optional IIOP IOR Profile Components, Bi-directional GIOP. PolyORB also does not support fragmentation in GIOP 1.1.

  • Chapter 16 describes the DCE ESIOP protocol.

    PolyORB does not support this optional chapter.

14.5. SOAP standards conformance

The documentation of the SOAP standards conformance of PolyORB will appear in a future revision of PolyORB.