------------------------------------------------------------------------------ -- -- -- POLYORB COMPONENTS -- -- -- -- Copyright (C) 1999-2005 Free Software Foundation, Inc. -- -- -- -- PolyORB is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- -- Software Foundation; either version 2, or (at your option) any later -- -- version. PolyORB is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- -- -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -- -- License for more details. You should have received a copy of the GNU -- -- General Public License distributed with PolyORB; see file COPYING. If -- -- not, write to the Free Software Foundation, 59 Temple Place - Suite 330, -- -- Boston, MA 02111-1307, USA. -- -- -- -- As a special exception, if other files instantiate generics from this -- -- unit, or you link this unit with other files to produce an executable, -- -- this unit does not by itself cause the resulting executable to be -- -- covered by the GNU General Public License. This exception does not -- -- however invalidate any other reasons why the executable file might be -- -- covered by the GNU Public License. -- -- -- -- PolyORB is maintained by AdaCore. -- -- (email: sales@adacore.com) -- -- -- ------------------------------------------------------------------------------ This files lists PolyORB's main features, as well as some known limitations. These limitations will be addressed in next releases. Configuration options --------------------- Different configuration options allow for a complete control of the middleware. - PolyORB allows for the dynamic configuration of some of its internals through a detailed configuration file (see polyorb.conf for more details). - 3 tasking runtimes: - No tasking; - Full tasking, using constructions as proposed by the Ada 95 Reference Manual; - Ravenscar, using the Ada Ravenscar restricted profile for tasking constructs. - ORB's request dispatching policies to control thread allocation: - Thread Pool; - Thread Per Session (i.e. active connection); - Thread Per Request; - Single Thread (if 'No Tasking' tasking runtime is used). - ORB Controller's policy to control concurrency patterns used to synchronize the middleware internal threads: - Workers; - Half Sync/Half Async; - Leader/Followers; - No Tasking. Configuration options are detailed in the PolyORB User's Guide. ----------- -- CORBA -- ----------- PolyORB implements a CORBA application personality, compatible with the OMG's specifications, that supports: - Static invocation models based on generated stub and skeletons, - Dynamic Invocation Interface (DII), - Dynamic Skeleton Interface (DSI), It also provides an implementation of the CORBA Portable Object Adapter (POA); CORBA DynamicAny, CORBA PortableInterceptors interfaces; and RT-CORBA 1.1 and the RTCosScheduling Service. CORBA Services -------------- PolyORB implements the following CORBA COS Services: - Event, - Interface Repository, - Naming, - Notification, - Time. Note that the current COS Naming implementation does not support corbaloc references. IDL Compiler ------------ PolyORB provides idlac, a CORBA 'IDL to Ada compiler' written entirely in Ada 95. It generates full stub and skeleton from an IDL contract. It supports all common IDL constructs; yet it does not support the following advanced constructs: value-type, abstract interfaces. ---------- -- MOMA -- ---------- PolyORB offers the Message Oriented Middleware for Ada (MOMA) personality. It proposes an API comparable to Sun's Java Message Service, and supports Publish/Subscribe and Point-to-Point. ---------- -- GIOP -- ---------- GIOP is the Generic Inter-ORB Protocol, defined as part of the CORBA specifications to support Inter-ORB communications. PolyORB follows this specification and proposes the following instances of GIOP: IIOP ---- PolyORB proposes an implementation of the IIOP 1.0, 1.1 and 1.2 protocols. Request marshaling operations are complete. IIOP-level interoperability with other ORBs have been tested with - Jonathan 3.0 - omniORB 4.0 - OpenORB 1.3.0 - VisiBroker 4.5 SSLIOP ------ PolyORB proposes an implementation of the SSLIOP protocol. It provides support for data encryption for GIOP requests. MIOP/UIPMC ---------- PolyORB proposes an implementation of the MIOP 1.0 proposed specification. It provides group communication mechanisms using IP/multicast. DIOP ---- PolyORB proposes a specialization of GIOP for oneway requests based on UDP/IP.