Current Status of TAO

TAO is a C++ ORB that is compliant with most of the features and services defined in the CORBA 3.x specification, which includes the Real-time CORBA specification. TAO can be downloaded from the Internet and freely used and redistributed without developer or run-time licensing costs. Commercial support, documentation, training, and consulting for TAO are available from multiple vendors. Many other third-party tools and services have also been integrated with TAO. An open-source implementation of the CORBA Component Model (CCM) called CIAO is also available atop of TAO.

TAO has been ported to OS platforms including Windows (i.e., WinNT 3.5.x, 4.x, 2000, Embedded NT, XP, Win95/98, and WinCE using MSVC++, Borland's C++ Builder, and IBM's VisualAge on Intel and Alpha platforms), many versions of UNIX (e.g., Solaris on SPARC and Intel, SGI IRIX 6.x, HP-UX 10.x and 11.x, Tru64UNIX 4.x, AIX 4.x and 5.x, SCO, and freely available UNIX implementations, such as Debian Linux 2.x, RedHat Linux 5.2, 6.x, 7.x, 8.x, and 9.x, as well as the various Enterprise editions, SUSE Linux 8.1 and 9.2, Timesys Linux, FreeBSD, and NetBSD), real-time operating systems (e.g., LynxOS, VxWorks, QnX Neutrino, OS9, and ChorusOS), OpenVMS, and MVS OpenEdition. Ultimately, we plan to port TAO to all OS platforms that ACE runs on. In addition, we've gotten TAO to interwork with many other ORBs (e.g., Orbix, JacORB, ORB Express, VisiBroker, etc.), so we're confident that its IIOP implementation is robust and interoperable. See the TAO Press Release and TAO Success Stories pages for information on TAO's use in commercial projects.

TAO contains the components shown in Figure 1.

Figure 1. The TAO ORB Endsystem Architecture

Each of these TAO components is outlined below:

TAO also provides many of the standard CORBA services, including the following:

  1. Audio/Video Streaming Service -- TAO's A/V Streaming Service implements the standard Control and Management of Audio/Video Streams Specification. The service has been integrated and tested with the QuO framework. The integration demonstrated the applicability of standard middleware for applications that can adapt to changes in resource availability and QoS requirements.

  2. Concurrency Service -- TAO's Concurrency Service provides a mechanism that allows clients to acquire and release various types of locks in a distributed system. Note that TAO only currently supports a subset of the Concurrency Service, i.e., the non-transactional part.

  3. Event Service -- TAO's Event Service supports decoupled communication among multiple suppliers and consumers using the standard GIOP/IIOP protocol.

  4. Lifecycle Service -- TAO's Lifecycle Service provides a standard means to locate, move, copy, and remove objects.

  5. Logging Service -- TAO's implementation of the OMG's Telecom Log Service allows applications to send logging records to a centralized logging server.

  6. Naming Service -- TAO's Naming Service supports both persistent and non-persistent hierarchical mappings between sequences of strings and object references. In addition, TAO supports the Interoperable Naming Service, which defines a standard way for clients and servers to locate the Naming Service, as well as any other CORBA service.

  7. Notification Service -- TAO's Notification Service is a more powerful form of the Event Service that supports filtering and correlation.

  8. Persistent State Service -- TAO's Persistent State Service (PSS) provides a way to make a service persistent. PSS presents persistent information as storage objects that reside in storage homes.

  9. Property Service -- TAO's Property Service allows applications to associate properties with objects dynamically. The Property Service is used by TAO's A/V Streaming Service to transmit QoS information.

  10. Security Service -- TAO provides an implementation of portions of the CORBA Security Service.

  11. Time Service -- TAO's Time Service provides globally synchronized time to distributed clients.

  12. Trading Service -- TAO's Trading Service implements a mapping between attribute constraints and sequences of object references that match those constraints.

In addition, TAO provides the following additional services targeted for various types of DRE application domains:

  1. Load Balancing Service -- TAO's Load Balancing Service implements round robin and minimum dispersion algorithms to help balance out the load across a group of machines.

  2. Real-time Event Service -- TAO's Real-time Event Service augments the standard CORBA Event Service model by providing source and type-based filtering, event correlations, real-time dispatching, and UDP/IP multicast communication.

  3. Scheduling Service -- TAO's real-time Scheduling Service supports static rate monotonic scheduling and dynamic maximum urgency first scheduling to assign priorities and validate schedulability. It is currently integrated with TAO's Real-time Event Service, though we're ultimately planning to integrate this with the ORB. In addition, we are enhancing our Scheduling Service to conform to the Scheduling Service defined in the new Real-time CORBA specification, as well as the forthcoming dynamic scheduling specification.

Finally, TAO contains many tests and example applications that illustrate how to program the ORB for both real-time and non-real-time applications. C++ source code for all these open-source TAO ORB components, services, examples, and tests is available in the TAO release.


Work in Progress

Our goal for TAO is to be completely compliant with the latest OMG CORBA specification. We have most of the current specification implemented and we're in the midst of adding the following features to TAO: You can keep track of TAO's new features and results from the branding process online by tracking our release notes.


Fundable Work

TAO continues to improve and its future is bright. TAO is supported commercially by many companies who use an open-source business model. Since the CORBA specification continues to evolve, our collective goal is to track the evolution of CORBA in TAO. We therefore require external funding to accomplish this goal. The following are work items that we are seeking funding in order to complete. Please contact Douglas C. Schmidt <d.schmidt@vanderbilt.edu> or one of the commercial support providers if you'd like to help to fund any of these efforts.


Getting Involved

Please feel free to experiment with, dissect, repair, use, etc., TAO. We accept bug reports, appreciate bug fixes/enhancements, and will strive to integrate correct bug fixes quickly! Please see our online bug reporting and fixing process for more details on reporting problems with TAO.


Back to the TAO page.

Last modified 18:06:18 CST 25 January 2019