Adaptive Communication Environment
The Adaptive Communication Environment (often referred to as ACE) is an open-source framework used to simplify various aspects of network programming. It provides a set of high performance object oriented C++ classes designed to help address the inherent complexities and challenges in network programming by preventing common errors.[1]
History
ACE was initially developed by Douglas C. Schmidt during his graduate work at the University of California, Irvine. Development followed him to the Washington University in St. Louis where he was employed. It was there in the Distributed Object Computer (DOC) group where ACE was released as open source. Today, most of the development work on ACE continues as part of the Institute for Software Integrated Systems (ISIS) at Vanderbilt University.[2]
Features
ACE provides a standardized way for operating system/machine specific features to be utilized. It provides common data types and methods[3] to access the powerful but complex features of modern operating systems. These include: inter-process communication, thread management, efficient memory management, etc.
It was designed to be portable and provides a common framework. The same code will work on most Unixes, Microsoft Windows, VxWorks, QNX, OpenVMS etc, with minimal changes[4]. Due to this cross-platform support, it has been widely used in the development of communication software. Some of the successful projects that have used ACE includes: Motorola Iridium satellites, Boeing Wedgetail's Australian airborne early warning & control (AEW&C) system, and others.[5]
Design Patterns
One of the unique features of ACE is the extensive use of design patterns in addressing the complexity of software. The ACE framework utilizes the following design patterns[6]:
Event Handling Patterns:
Synchronization Patterns:
- Scoped Locking
- Strategized Locking
- Thread-Safe Interface
- Double-checked locking optimization
Concurrency Patterns:
- Thread-Specific Storage
- Monitor Object
- Active Object
- Half-Synch/Half-Asynch
- Leader/Follower
Service Access and Configuration Patterns:
- Component Configurator
- Interceptor
- Extension Interface
- Wrapper Facade
References
- ↑ C++ Network Programming, Volume 1, Schmidt and Huston, Addison Wesley Professional, 2001
- ↑ ACE Programmer's Guide, The: Practical Design Patterns for Network and Systems Programming, Huston, Johnson and Syyid, Addison Wesley Professional, 2003
- ↑ Wrapper Facade, A Structural Pattern for Encapsulating Functions within Classes, Schmidt, http://www.cs.wustl.edu/~schmidt/PDF/wrapper-facade.pdf, access October 22, 2008
- ↑ Porting ACE to a New OS, http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/docs/ACE-porting.html, accessed Oct. 22, 2008
- ↑ ACE and TAO Success Stories, http://www.cs.wustl.edu/~schmidt/TAO-users.html, Accessed Oct. 22, 2008
- ↑ Pattern-Oriented Software Architecture, Volume 2, Schmidt et al., Jon Wiley & Sons, Ltd, 2000
See also
- TAO (Component-Integrated ACE ORB a CORBA implementation)
- CIAO
- Communication software
- Cross-Platform Support Middleware
External links
- Official website
- Distributed Object Computer (DOC) Group website
- Institute for Software Integrated Systems (ISIS) website
- ACE Doxygen reference
cs:Adaptive Communication Environment de:ADAPTIVE Communication Environment fr:Adaptive Communication Environment zh:ACE自适配通信环境
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...