Overview of the ACE+TAO Project

Over the past decade, my research group has worked with many collaborators on large-scale distributed application R&D projects in diverse domains, including command and control systems, telecom, datacom, medical engineering, distributed interactive simulations, and financial services. Regardless of the domain and application requirements, we've found that software developers wrestle with the same core infrastructure challenges. Key challenges focus on OS platform portability, connection management and service initialization, event demultiplexing and event handler dispatching, multi-threading and synchronization, fault detection and fault tolerance, and various quality-of-service (QoS) issues, such as controlling latency, throughput, and jitter end-to-end.

Unfortunately, it's very costly, time consuming, and error-prone for researchers and developers companies to independently rediscover and reinvent ad hoc solutions to these core distributed application software development challenges. Fortunately, we have identified a relatively concise set of patterns and framework components that can be applied systematically to eliminate many tedious, error-prone, and non-portable aspects of developing and maintaining distributed applications. A decade of intense R&D on these topics has yielded ACE, which is an object-oriented framework that implements many core patterns for concurrent communication software. We have applied the patterns and components in the ACE framework to develop The ACE ORB (TAO), which is our standards-based, CORBA middleware framework that allows clients to invoke operations on distributed objects without concern for object location, programming language, OS platform, communication protocols and interconnects, and hardware. TAO is designed using the best software practices and patterns that we have discovered in our work on ACE in order to automate the delivery of high-performance and real-time QoS to distributed applications.

ACE+TAO have been funded by the DARPA Quorum program, NSF, and many visionary industrial sponsors. Our motivations for developing ACE+TAO include the following:

  1. Empirically determine the capabilities needed to enable Real-time CORBA ORBs to support mission-critical DRE systems with hard and soft QoS requirements.

  2. Combine the strategies for real-time I/O subsystem architectures and optimizations with ORBs to provide vertically-integrated ORB endsystems that can support end-to-end throughput, latency, jitter, and dependability QoS requirements.

  3. Capture and document the key design patterns and optimization principle patterns necessary to develop standards-compliant, portable, and extensible QoS-enabled ORBs.

  4. Provide a high-quality, freely available, open-source CORBA-compliant middleware platform that can be used effectively by researchers and developers. Since TAO is open-source, it can be downloaded from the Internet and freely used and redistributed without developer or run-time licensing costs.

  5. Guide various CORBA-related standardization efforts within the OMG, in particular, the Real-time CORBA specification. TAO has played an important role in influencing key features in the OMG's Real-time CORBA specification, particularly its capabilities for explicit binding and portable synchronizers. In addition, TAO was selected by the DII COE Real-Time Integrated Product Team (DII COE RT IPT) as one of two ORBs recommended for DISA's Joint Technical Architecture (JTA).

Both ACE and TAO are supported commercially by multiple companies using an open-source business model. This support comes at a time when open-source software is achieving critical mass, and users are not just accepting it, but are recognizing its importance in the mix of software development models. In particular, a rapidly increasing number of projects and sponsors are applying ACE+TAO to help lower their development cost, improve their QoS, and decrease their time-to-market.

Now that ACE+TAO have matured into a stable standards-based, open-source, COTS middleware framework, our future plans focus on

  1. Continuing to improve the quality, predictability, and performance of the ACE+TAO middleware,

  2. Adding support for emerging standard OMG services and features, and

  3. Working closely with our end-user community, sponsors, and commercial collaborators to identify opportunities for further enhancements.
With respect to the latter point, it's important to recognize the extent to which ACE+TAO's open-source development model is responsible for its success. We're proud to have so many bright staff, students, and members of the ACE+TAO development community working with us over the years. In recognition of all their efforts, we have listed all the contributors to the ACE+TAO projects. As you work with ACE+TAO, please feel free to experiment with, dissect, repair, and improve it. We accept bug reports, appreciate bug fixes/enhancements, and strive to integrate correct bug fixes using our online problem tracking system as time permits. If you need more ``predictable'' help, we recommend you contact ACE+TAO's commercial support companies. We look forward to seeing your name in subsequent releases of ACE+TAO!

Douglas C. Schmidt
Electrical & Computer Engineering
University of California, Irvine
d.schmidt@vanderbilt.edu
616E Engineering Tower
Irvine, CA 92697-2625
TEL (949) 824-1901


Back to the TAO intro page.

Last modified 18:06:18 CST 25 January 2019