This is version 3.0 of omniORB. We also refer to this version as omniORB3.

This release is a minor release since omniORB 3.0.1.  For a summary of
changes since the last release, please read the file ReleaseNote_omniORB_302.

omniORB3 is copyright AT&T Laboratories - Cambridge. It is free
software. The programs in omniORB3 are distributed under the GNU
General Public Licence as published by the Free Software Foundation.
See the file COPYING for copying permission of these programs. The
libraries in omniORB3 are distributed under the GNU Library General
Public Licence. See the file COPYING.LIB for copying permission of
these libraries.

We impose no restriction on the use of the IDL compiler output. The
stub code produced by the IDL compiler is not considered a derived
work of it.

README files
============

README.win32 - contains important information on building and using omniORB3 
               on Windows NT and Windows 95.

README.unix  - contains important information on building and using omniORB3
               on Unix platforms.

README.openvms 
README.openvms_6 - contains important information on building and using
                   omniORB3 on openVMS.


README.aix
README.FreeBSD
README.linux
README.hpux11
README.SGI   - contains further information on using omniORB3 on the
               different unix variants.

README.egcs  - contains information on building omniORB3 with egcs-1.0.

README.ETSKernel  - contains important information on building and using
                    omniORB3 with Phar Lap's ETS kernel.

README.SunC++5 - contains warnings on using omniORB3 with Sun C++ v5

PORTING      - contains instructions on porting omniORB3.

CHANGES_280      - contains details of changes from 2.7.1 to 2.8.0.

CHANGES_271      - contains details of changes from 2.6.1 to 2.7.1.

CHANGES_261      - contains details of changes from 2.5.0 to 2.6.1.

CHANGES_250      - contains details of changes from 2.4.0 to 2.5.0.

CHANGES_240      - contains details of changes from 2.2.0 to 2.4.0.

ReleaseNote_omniORB_302 - release notes of 3.0.2

IMPORTANT NOTE for users upgrading from 2.7.1 or earlier:
   Since 2.8.0, omniORB has been updated to CORBA 2.3. In order to comply 
   with the 2.3 specification, it is necessary to change the
   semantics of the extraction of string, object reference and typecode
   from an Any. Please read CHANGES_280 for details.


Technical Highlights
====================

omniORB3 is an Object Request Broker (ORB) which implements
specification 2.3 of the Common Object Request Broker Architecture (CORBA).

- C++ language bindings are supported. The mapping conforms to the
  latest revision of the CORBA specification.

- support for the Portable Object Adapter (POA)

- support for the Interoperable Naming Service (INS)

- 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:
 
  o Solaris 2.{5,6}/ Sun SparcCompiler C++ version 4.2
  o Windows NT / Windows 95 / Visual C++ version 5.0 (and also version 6.0)
  o Linux 2.x (x86)/egcs-1.1.2/binutils-2.9.1.0.14/GNU Libc version 2
  o HPUX 11.00/ aC++
  o 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.

  o Digital Unix 4.0D/ DEC C++ compiler version 6.0
  o IBM AIX 4.2/ IBM C Set++ 3.1.4
  o IBM AIX 4.3/ IBM C Set++ 3.6.6
  o HPUX 10.20/ aC++ (B3910 A.01.04)
  o OpenVMS Alpha 6.2/ DEC C++ compiler 6.2/5.5 (UCX 4.1 ECO 8)
  o OpenVMS Vax 6.1/ DEC C++ compiler 5.5 (UCX 4.0 ECO 1)
  o NextStep 3.3/ gcc-2.7.2
  o Reliant Unix 5.43/CDS++
  o Phar Lap's Real Time ETS Kernel
  o SCO Unixware 7
  o Linux 2.x powerpc/Debian

  o An earlier port to MacOS exists but has not been fully integrated into the
    source tree. An adaption kit is available here:

            http://www.cia.com.au/stevec/
 
  o An earlier port to the embedded OS RTEMS exists. More information is
    available here:

            http://www.connecttel.com/corba/rtems_omni.html

  o Linux 2.0 (x86)/ GNU C++ compiler version 2.7.2 /libc-5/
    Linuxthreads 0.5

  o 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.)

  o 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.)

  
  Ports to LynxOS is known to exist but they have 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 longlong, longdouble, wchar, wstring, fixed,
  valuetype

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.


Installation	
============

Installation instructions are provided in the following files:

- README.unix  for all unix platforms
- README.win32 for Windows NT and Windows 95


Documentation
=============

- omniORB3 user guides are located in the ./doc directory. They are 
  available in latex, postscript, acrobat and html formats.

- Man pages for the programs in this distribution are located in
  ./man directory.  

- README files are provided throughout the distribution tree. They
  provide specific information about the directories and files, tools
  and examples.  You may want to explore the tree to become familiar
  with the information provided in the README files.


Examples
========

- Example programs that demonstrate the use of omniORB3 are located in
  ./src/examples.


Recommended Additional Documentation
====================================

omniORB3 is based on the following OMG specifications. 

- The Common Object Request Broker: Architecture and
  Specification. The current version is available on-line at

         http://www.omg.org/corba/corbiiop.htm

  In particular, omniORB3 users will find chapter 3 "OMG IDL Syntax
  and Semantics" and chapter 23 "Mapping of OMG IDL to C++"
  particularly relevant.

- The COS Naming Service Specification. The current version is
  available on-line at

          http://www.omg.org/corba/sectrans.htm


Contact
=======

If you have any queries, suggestions and problems in using omniORB3,
contact omniorb@uk.research.att.com. We'd like to hear from you.

The latest version of omniORB3 is available from our Web pages:

         http://www.uk.research.att.com/omniORB/omniORB.html

There is also a mailing list: omniorb-list@uk.research.att.com.

This list carries announcements of new releases and provides a forum
for omniORB3 users and developers to discuss the usage and future
development of omniORB3.

If you want to add yourself to this mailing list, send the following
command in the body of your email to

  "omniorb-list-request@uk.research.att.com":

     subscribe


The archives of the mailing list are available at:

         http://www.uk.research.att.com/omniORB/archives/
