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:
-
Empirically determine the capabilities needed to enable Real-time
CORBA ORBs to support mission-critical DRE systems with hard and
soft QoS requirements.
- 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.
- Capture and document the key design
patterns and optimization
principle patterns necessary to develop standards-compliant,
portable, and extensible QoS-enabled ORBs.
- 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.
- 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
- Continuing to improve the quality, predictability,
and performance
of the ACE+TAO middleware,
- Adding support
for emerging standard OMG services and features, and
- 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!
Back to the TAO intro
page.
Last modified 18:06:18 CST 25 January 2019