ACE Technical Papers and Documentation
The following papers present many aspects of the patterns and
framework components related to ACE. For
comprehensive coverage of the ACE patterns and pattern language,
please see our books
PDF for all ACE technical papers and documentation are
available for downloading below. If you have
trouble obtaining or printing these files see my troubleshooting
- C++ Network Programming: Systematic Reuse with ACE & Frameworks
- C++ Network Programming: Mastering Complexity with ACE & Patterns
- Pattern-Oriented Software Architecture: Patterns for
Concurrent and Networked Objects
I suggest reading the following papers papers first since they give an
overview of the key components in ACE:
In addition, papers are available that document the patterns used in ACE and compare the performance and programming features of ACE and CORBA.
has created a complete mapping of all ACE
files into class
Documents on ACE Components
The following diagram illustrates the patterns available in ACE.
Additional information about these components is available further
below, grouped according to class category.
- Systems Programming with C++ Wrappers:
Encapsulating Interprocess Communication
Services with Object-Oriented Interfaces, C++
Report, September/October 1992.
- IPC_SAP: A Family of Object-Oriented Interfaces for Local and Remote Interprocess Communication C++
Report, November/December 1992.
- Object-Oriented Components for High-speed
Network Programming Proceedings of the 1st Conference on
Object-Oriented Technologies and Systems (COOTS), USENIX
, Monterey, CA, June, 1995.
- External Polymorphism: an
Pattern for Transparently Extending Concrete
Data Types, Proceedings of PLoP '96,
Allerton Park, Illinois, Sept. 1996. An extended version of
this pattern focusing on C++-related issues appeared in
the C++ Report.
- Douglas C. Schmidt, ``Wrapper
Facade: A Structural Pattern for Encapsulating Functions
within Classes,'' C++ Report, SIGS, Vol. 11, No 2, February, 1999.
- Reactor: An Object Behavioral Pattern for
Concurrent Event Demultiplexing and Event
Handler Dispatching, Proceedings of the
1st Pattern Languages of
Programs Conference, August 1994.
- The Reactor: An Object-Oriented Interface for
Event-Driven UNIX I/O Multiplexing (Part 1 of
2) C++ Report, February 1993.
- The Object-Oriented Design and Implementation
of the Reactor: A C++ Wrapper for UNIX I/O
Multiplexing (Part 2 of 2) C++ Report,
- Asynchronous Completion Token, Proceedings of
the ``3rd Pattern Languages of Programs
conference,'' Allerton Park, Illinois,
- Proactor -- An Object Behavioral Pattern
for Demultiplexing and Dispatching Handlers for Asynchronous
Events. 4th Pattern
Languages of Programming conference in Allerton Park, Illinois,
September 2-5, 1997. (with Tim Harrison, Irfan Pyarali), and Thomas
- Object Lifetime Manager -- A Complementary
Pattern for Controlling Object Creation and Destruction.
Proceedings of the 5th
Pattern Languages of Programing Conference, Allerton Park,
Illinois, USA, 15 -- 18 August 1999.
- Acceptor and Connector -- A Family of
Object Creational Patterns for Initializing Communication
Services. Presented at the European
Pattern Language of Programs conference, July 10-14, 1996,
Kloster Irsee, Germany, as well as appeared as a chapter in the book
Pattern Languages of Program Design 3.
- Acceptor -- A Design Pattern for
Passively Initializing Network Services C++
Report, SIGS, Vol. 7, No. 8, November/December 1995.
- Connector -- a Design Pattern
for Actively Initializing Network Services, C++ Report, SIGS,
Vol. 8, No. 1, January 1996.
- An OO
Encapsulation of Lightweight OS Concurrency Mechanisms in the ACE
Toolkit. Washington University technical report WUCS-95-31.
- Active Object: an Object Behavioral Pattern
for Concurrent Programming, Proceedings of the 2nd Pattern
Languages of Programs Conference, September 1995
- Transparently Parameterizing Synchronization
into a Concurrent Distributed Application ,
C++ Report, July/August 1994
- Double-Checked Locking,
``Proceedings of the 3rd Pattern Languages of Programs conference,''
Allerton Park, Illinois, September, 1996.
- Half-Sync/Half-Async: A Pattern for Efficient
and Well-structured Concurrent I/O Systems. Proceedings of the
3rd Pattern Languages of Programs Conference,
- Strategized Locking, Thread-safe
Interface, and Scoped Locking: Patterns and Idioms for Simplifying
Multi-threaded C++ Components, C++ Report, SIGS, Vol. 11, No. 9,
- Thread-Specific Storage -- An Object
Behavioral Pattern for Accessing per-Thread State Efficiently.
Appeared in the 4th annual Pattern
Languages of Programming conference in Allerton Park, Illinois,
September 2-5, 1997 and in the C++ Report, SIGS, Vol. 9, No. 10,
- Service Configurator, C++
Report, SIGS, Vol. 9, No. 6, June, 1997.
- The Service Configurator Framework: An
Extensible Architecture for Dynamically
Configuring Concurrent, Multi-Service Network
Daemons, 2nd IEEE International Workshop on
Configurable Distributed Systems, March 1994.
- An Object-Oriented Framework for Developing
Network Server Daemons, 2nd C++ World
conference, Dallas, Texas, October 1993.
- A System of Reusable Design
Patterns for Application-level Gateways,
The Journal of Theory
and Practice of Object Systems Special Issue
on Patterns and Pattern Languages, to appear 1996
- A Family of Design Patterns For Flexibly
Configuring Network Services in Distributed Systems. Proceedings
of the International Conference on Configurable Distributed Systems,
Annapolis, Maryland, May 6--8, 1996.
- Experience Using Design Patterns to
Evolve Communication Software Across Diverse OS Platforms.
Proceedings of the 9th European Conference on Object-Oriented
Programming held in Aarhus, Denmark on August 7-11, 1995. (with
- Applying Patterns to Develop
Extensible ORB Middleware,
to appear in IEEE Communications Magazine
the Impact of Event Dispatching and Concurrency Models on Web
Performance Over High-speed Networks (updated August
7th, 1997), Proceedings of the
Internet Conference (held as part of GLOBECOM '97) in Phoenix, AZ,
November 4-8, 1997. (with James Hu and Irfan Pyarali)
- Techniques for Developing and
Measuring High-performance Web Servers over ATM Networks,
(updated August 2nd, 1997), proceedings of INFOCOM '98 (with
James Hu and Sumedh Mungee)
- Applying Design Patterns and Frameworks to
Develop Object-Oriented Communication Software (updated
May 20th), to appear in the Handbook of
Programming Languages, Volume I, edited by Peter Salus, MacMillan
Computer Publishing, 1997.
- JAWS: A Framework for High-performance Web
Servers (updated October 29th) Submitted to the OO
Application Frameworks book, John Wiley & Sons (with James Hu).
Back to the ACE
Last modified 18:06:18 CST 25 January 2019