omniORB is an Object Request Broker (ORB)
which implements specification 2.3 of the Common Object Request Broker Architecture
(CORBA). Technical highlights
- C++ language bindings are supported. The mapping conforms to the
latest revision of the CORBA specification.
- Support for the Portable Object Adapter (POA) NEW!
- Support for the Interoperable Naming Service (INS)NEW!
- The Internet Inter-ORB Protocol (IIOP 1.0) is used as the native
protocol.
- The omniORB3 runtime is fully multithreaded. It uses native
platform thread support encapsulated with a small class library,
omnithread, to abstract away from differences in native thread APIs.
- TypeCode and type Any are supported.
- DynAny is supported (CORBA 2.2)
- The Dynamic Invocation and Dynamic Skeleton interfaces are
supported
- A COS Naming Service, omniNames, is provided.
- The following platforms are supported:
- Solaris 2.{5,6,7,8}, Sun C++ version 4.2 /
5.x or gcc 2.95.2
- Windows NT / Windows 95 / Visual C++ version 5.0
(and also version 6.0)
- Linux 2.x (x86)/egcs-1.1.2/binutils-2.9.1.0.14/GNU Libc
version 2
- HPUX 11.00/ aC++
- SGI Irix 6.x/SGI C++ compiler 7.2
Ports to the following platforms are available. These ports are
done by external contributors and have been integrated into the
source tree. For these platforms, no pre-compiled binary is
available.
- Digital Unix 4.0D/ DEC C++ compiler version 6.0
- IBM AIX 4.2/ IBM C Set++ 3.1.4 and xlC 5.0 (Visual Age C++ 5.0)
- IBM AIX 4.3/ IBM C Set++ 3.6.6 and xlC 5.0 (Visual Age C++ 5.0)
- HPUX 10.20/ aC++ (B3910 A.01.04)
- OpenVMS Alpha 6.2/ DEC C++ compiler 6.2/5.5 (UCX 4.1 ECO 8)
- OpenVMS Vax 6.1/ DEC C++ compiler 5.5 (UCX 4.0 ECO 1)
- NextStep 3.3/ gcc-2.7.2
- Reliant Unix 5.43/CDS++
- Phar Lap's Real Time ETS Kernel
- SCO Unixware 7
- Linux 2.x powerpc/Debian
- Fujitsu Siemens BS2000 (with patch in current CVS)
- An earlier port to MacOS exists but has not been fully
integrated into the source tree. An adaption kit is available
here.
- An earlier port to the embedded OS RTEMS exists. More
information is available
here.
- Linux 2.0 (x86)/ GNU C++ compiler version 2.7.2 /libc-5/ Linuxthreads 0.5
- SCO OpenServer 5/g++ (May need some changes in the source to
work around compiler bugs.
The compiler can compile omniORB 2.7.1 unchanged.)
- Digital Unix 3.2/ DEC C++ compiler version 5.5 (Need to apply
the patch in patches/dec_CXX_5.6.patch to work around compiler
bugs.)
A ports to LynxOS is known to exist but it has not been integrated
into the source tree.
It should be straightforward to port omniORB3 to any platform
which supports POSIX style threads, BSD style sockets and has a
decent C++ compiler which supports exceptions.
- It has been tested for interoperability via IIOP with other ORBs,
such as Iona Orbix 2.2 MT, Iona OrbixWeb 2.0.1, Visigenic Visibroker
for C++, and HP ORB Plus 2.5.
Work in progress
omniORB3 is not yet a complete implementation of the CORBA core.
The following features are not supported in the current release.
- Support for IDL type longdouble, wchar, wstring, fixed,
valuetype. Longlong type is supported if the C++ compiler has native
support for 64-bit types. Also, longlong cannot be inserted into an Any
yet, to retain library binary compatibility.
Missing features
The following features are missing from omniORB3. We are not
currently planning on adding support for these features.
- omniORB3 does not have its own Interface Repository. However any
CORBA compliant Interface Repository can be used with omniORB3.
|