이글은 C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns 의 Chapter 0. Design Challenges, Middleware Solutions, and ACE 을 대강 정리한 것이다.
사실 별 내용은 없고... ACE 가 몇가지 레이어로 구현되어 있다.. 정도만 알아두면 된다.
Contents
an overview of the ace toolkit
The ACE OS Adaptation Layer
OS 를 추상화한 이 layer 로 인해서, 모든 OS 플래폼(ace 가 컴파일되는)의 소스트리를 하나로 할수 있다.
The ACE C++ Wrapper Facade Layer
C 스타일의 api 를 C++ 스타일의 wrapper 클래스를 이용해서, C++ 의 장점을 누리도록 해준다. (socket, file, concurrency, synchronization wrapper facades...)
The ACE Framework Layer
재사용가능(resuable)한 여러 소프트웨어의 집합
- Event demultiplexing and dispatching frameworks
- ACE Reactor and Proactor framework. 이 두개의 프레임웍은, I/O-based, timer-based, signal-based, and synchronization-based events 들의 demultiplexing 과 dispatching 을 자동화 해준다.
- Connection establishment and service initialization framework
- The ACE Acceptor-Connector framework. This framework decouples the active and passive initialization roles from application processing performed by communicating peer services after initialization is complete.
- Concurrency framework
- ACE provides the Task framework that can be used to implement key concurrency patterns [SSRB00, Lea99], such as Active Object and Half-Sync/Half-Async, which simplify concurrent programming by decoupling method execution from method invocation and decoupling asynchronous and synchronous processing, respectively
- Service configurator framework
- This framework implements the Component Configurator pattern [SSRB00] to support the configuration of applications whose services can be assembled dynamically late in their design cycle, for example, at installation time. It also supports the dynamic reconfiguration of services in an application at run time.
- Streams framework
- This framework implements the Pipes and Filters pattern [BMR+96], wherein each processing step is encapsulated in a filtering module that can access and manipulate data flowing through the stream of modules. The ACE Streams framework simplifies the development of hierarchically layered services that can be composed flexibly to create certain types of networked applications, such as user-level protocol stacks and network management agents [SS94].
The ACE Networked Service Components Layer
프레임워크 윗단의, library of networked services that are packaged as components.
