ACE

Table of Contents

http://www.cs.wustl.edu/~schmidt/ACE.html

参考书籍:

1 网络应用体系

网络应用体系设计空间主要包含下面这几个部分:

  • 通信协议及机制。网络应用进行交互的规则,形式和抽象层次。
  • 并发体系。一些策略和机制,用来控制如何正确使用进程和线程,以表达多个服务实例,以及每个服务实例如何在内部使用多线程。
  • 服务体系。网络应用服务的主要性质,比如每个服务实例的持续时间和结构。
  • 服务配置策略。如何识别网络服务,何时将网络服务绑定在一起以构成完整的应用。

1.1 通信设计空间

对于通信设计我们需要考虑的问题包括:

  • 无连接协议和面向连接协议。对于面向链接协议还需要考虑数据成帧策略,以及连接多路复用策略。
  • 同步和异步信息交换。
  • 消息传递和共享内存。

1.2 并发设计空间

对于并发设计我们需要考虑的问题包括:

  • 循环,并发以及反应式服务器。这里所谓的反应式就是使用epoll来做通知,但是处理部分还是循环或者是并发。
  • 进程线程选择以及创建策略。创建策略包括即式创建(eager spawning,预创建)以及随需创建(on-demand spawning).
  • 用户,核心以及混合线程模型。
  • 分时(time-shared)以及实时(real-time)调度级别。
  • 基于任务与基于消息的体系。基于任务的并发体系根据应用程序中服务功能单元来组织CPU,而基于消息的并发体系是根据接收到的消息来组织CPU.

2 ACE体系结构

ACE-Layer.gif

  • ACE OS Adaption Layer.由一个名为ACE_OS类构成,包含500+静态方法来封装原始的基于C的OS API.
  • ACE C++ Wrapper Facade Layer.由很多类组成,主要是将这些ACE_OS提供的静态类方法,封装成为独立类来使用。
  • ACE Framework Layer.框架,比如ACE Reactor和Proactor框架
  • ACE Service Layer.使用框架编写实现的各种服务,比如Logger Server,Name Server等。