ACE自适应通信环境(ADAPTIVE CommunicationEnvironment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步等。
ACE体系结构包括3个基本层次:操作系统适配层、C++包装层、框架组件层。操作系统适配层直接驻留在用C写成的本地OS API之上,将ACE中的其他层与OS API相关联的平台专有特性屏蔽开来。由于ACE操作适配层所提供的抽象,极大地增强了ACE的可移植性和可维护性。C++包装层通过提供类型安全的C++接口简化通信应用程序的开发,各种应用可以有选择地继承、聚合或实例化其中的组件来使用这些包装。ACE还包括一个高级的网络编程框架,集成并增强较低层次的C++包装层,该框架支持并发分布式服务动态配置。
大多数的网络化应用可以通过ACE这样的可移植中间件进行开发,因为ACE封装并加强了本地操作系统机制,通过其组件可以移除底层操作系统API的繁琐和易错性创建可重用的网络程序
ACE这个开源项目的代码的量是很大的。对于系统编程、网络编程是非常的有用,但是对其介绍的书和资料是非常的少。要想了解和很好的使用,就必须要自己去看源代码了。(好在还有三本书,库中的事例还是比较的多)
ACE库中的代码大体可以分为三大部分
1 OS Adaptation(操作系统适配)部分。这部分主要是屏蔽各操作系统的API的不同,将系统调用接口统一到C++函数的接口,以实现平台的可移植。
2 C++ Wrapper Facade(C++外包)部分。这部分主要是将相互关联的操作和数据结构封装到C++类中,提供统一的接口。提供强类型的检测,降低不必要的认为错误。 利用C++多态、继承等能力,形成一个架构,使本地的、远端的操作统一在一个相同接口和使用策略下。
3 Framework(框架)部分。为一组相关的应用提供可复用的架构。开发者在确定了应用后,选择可用的架构开发应用程序,不用考虑平台和底层机制。快速的开发。
第一部分面对大量的底层的细节,而且目标是平台的移植,如果对平台的移植感兴趣的兄弟姐妹可以看看。一般情况下没什么看的必要。
第二部分和第三部分对我们的应用和学习如何利用C++来设计程序非常的有价值,要多看。细心揣摩,特别是配上设计的问题(宏观的和微观的)。