From: http://www.cppblog.com/cxiaojia/archive/2013/04/08/199198.html
Introduction
Ace adaptive communication environment (Adaptive Communication Environment) is a free-to-use and open-source object-oriented (OO) framework ), many core modes for concurrent communication software are implemented. ACE provides a rich set of reusable C ++ wrapper facade (Packaging appearance) and architecture components to complete common communication software tasks across multiple platforms, including: multi-channel event separation and event processor allocation, signal processing, service initialization, inter-process communication, shared memory management, message routing, distributed service dynamic (heavy) configuration, concurrent execution and synchronization, and so on.
Ace is intended for developers of high-performance and real-time communication services and applications. It simplifies the development of OO network applications and services that use inter-process communication, event Multi-Channel Separation, explicit dynamic links, and concurrency. In addition, through the dynamic link between the service and the application at runtime, ACE also automates the system configuration and reconfiguration.
Benefits
Enhanced portability: With the help of ACE components, it is easy to write concurrent network applications on an OS platform, and then quickly port them to a variety of other OS platforms. Besides, because Ace is an open-source free software, you don't have to worry about being locked to a specific operating system platform or compiler.
Better software quality:Ace's design uses a number of key patterns that improve software quality, including communication software flexibility, scalability, reusability, and adequacy.
Higher efficiency and predictability:Ace is carefully designed to support a wide range of application Quality of Service (QoS) requirements, including low response waiting times for latency-sensitive applications, high performance of high-bandwidth applications, and real-time application predictability.
It is easier to switch to standard advanced middleware:Tao uses reusable components and modes provided by Ace. It is the development source code and standard implementation of CORBA, and optimizes high-performance and real-time systems. To this end, ACE and Tao are designed to work together well to provide a comprehensive middleware solution.
Architecture
OS Adaptation Layer:Ace underlying layer, which is related to the OS API. This part of ACE unifies different types of OS interfaces, so that the high-level Ace can get rid of the platform dependency. The adaptation layer is enhanced.CodePortability.
C ++ packaging layer:Ace middle layer, the main function implementation part. Including concurrency and synchronization, IPC, memory management component, Timer class, container class, signal processing, file system component and thread management.
Architecture and mode layer:Ace high-level, architecture and mode. They are based on several design patterns for specific communication software fields. Includes event processing, connection, or service initialization components, flow components, and service configuration components.