ACE

the C+⁠+ framework

Remedy IT is the leading commercial support organization for ACE, with core-developer expertise and extensive experience delivering ACE-based solutions in mission-critical environments worldwide.

ACE stands for ADAPTIVE Communication Environment. ACE is an object-oriented C+⁠+ framework that implements many established patterns for building communication software.

A pattern is a reusable solution to a recurring programming or design problem. Using well-known patterns gives designers and developers a common vocabulary and helps teams build stable, portable, and efficient software. Many of the patterns implemented in ACE are described in the POSA2 book by Douglas C. Schmidt.

ACE provides portability across a wide range of compilers and operating systems. Its abstraction layers allow applications to be developed largely independently of the underlying platform, making it easier to support multiple operating systems, including real-time platforms such as VxWorks.

ACE is open source and has been used for many years in demanding communication and middleware systems. A comprehensive regression test suite helps detect changes that could introduce compatibility or reliability problems.

ACE has extensive documentation, books, and technical papers. Although ACE has a substantial learning curve, Remedy IT can help teams adopt it efficiently through commercial support, consultancy, and tailor-made on-site training.

ACE also provides the foundation for TAO, The ACE ORB. TAO is a CORBA implementation for applications that require standardized, interoperable distributed communication.

Key benefits of ACE include:

  • Portability across many compilers and operating systems
  • Reusable implementations of established software patterns
  • Efficient and predictable communication infrastructure
  • A mature, extensively tested framework used worldwide
  • A strong foundation for TAO and CORBA-based middleware

At its lowest level, ACE provides an operating-system abstraction layer that hides platform-specific details. On top of this, C+⁠+ wrapper classes provide type-safe access to operating-system APIs and shield applications from many platform differences.

ACE builds reusable frameworks and services on these abstraction layers. These include Reactor and Proactor for event handling, Acceptor/Connector for connection management, and Service Configurator for dynamically configured applications. TAO itself is built on these ACE capabilities.

The C+⁠+NPv2 book describes many of these frameworks and patterns in detail.