- It's a heavyweight OO communication framework but it goes beyond just computer proress communication. In a high level point view, it contains three lays:- OS Adapter Layer: it abstracts the underlying native OS's services using raw C wrappers and provide a unified interface to upper layer components and application developers. The OS services include: .Concurrency and Synchronization .Inter-Process Communication .Event Demultiplexing .File System I/O - OO Facade Layer: it wraps the OS adapter layer using OO, more specifically, the C++ language. Its functionalities are all the same as the adapter layer.- Communication Framework Layer: it integrates and enhances the lower-level C++ wrapper facades and supports the dynamic configuration of concurrent distributed services into applications. The framework the following components:
.Event Demultiplexing - The Reactor and Proactor are extensible, object-oriented demultiplexers . .Service Initialization - The Acceptor and Connector components represents the active and passive initialization roles, respectively. .Service Configuration - The Service Configurator supports the configuration of applications dynamically.ACE is very heavy-weighted and contains many powerful components. It is also the pioneer of concurrent and communication software architect. It invents many famous design patterns in this area, for example, Reactor and Proactor.
ICE website also contains other two great articles:- The Rise and Fall of CORBA- API Design Matters