【兴趣爱好】之:ACE介绍

ACE(Adaptive Communication Environment)是一个跨平台的用于并发通信的C++框架。ACE提供了丰富的可重用的C++封装器(Wrapper Facade)和框架组件。使用ACE,开发者可以开发出高性能、实时的通信服务和应用。ACE利用进程间通信、事件分离、动态链接和并发技术简化了面向对象的网络开发。ACE的总体结构如图1-1所示
(来自ACE官方网站)。 

ACE的结构可以分为以下几个部分(参考图1-1)。 
(1)ACE操作系统适配层和C++封装器 
ACE是一个跨平台的通信框架,支持Windows、UNIX、Linux以及VxWorks等常用操作系统。操作系统适配层直接驻留在操作系统接口之上,主要用于屏蔽各类操作系统的差异,增强ACE的可移植性和可维护性。C++封装器为上层提供统一的面向对象的接口,这些类型安全的C++接口可以大大简化应用程序的开发。这一层主要采用Facade设计模式封装各主要操作系统的常用功能。 
q 并发和同步—多进程、多线程和同步功能。 
q 进程间通信和共享内存—本机及远程间通信和共享内存功能。 
q 事件分离—同步和异步I/O、定时器、信号、同步事件的分离功能。 
q 动态链接—使用动态链接来提供应用程序的配置。 
q 文件系统—文件和目录服务。 
图1-1   ACE结构图 
(2)框架 
ACE框架是一个在操作系统适配层和C++封装器之上的网络编程框架,可以分为以下几个组件。 
q 事件分离组件—包括Reactor和Proactor框架,它们为应用程序响应特定I/O、定时器、信号和同步事件提供分离和调度功能。 
q 服务初始化组件—Acceptor_Connector框架,它将网络通信的初始化和应用程序的处理解耦。 
q 服务配置组件—Service Configurator框架,它使得应用程序的配置功能可以延缓到执行期。 
q Task组件—Task框架,主要应用于多线程的并发编程。 
q 流组件—Streams框架,它为处理流数据的系统提供了结构。 
q ORB适配器组件—ORB Adapter,ACE使用它可以实现与CORBA的无缝整合。 
(3)分布式服务库和组件 
除了操作系统适配层、C++封装器和框架组件外,ACE还提供了包装成自包含组件的标准分布式服务库。 
q 可重用的分布式应用组件块—提供可重用的分布式应用模块,如命名服务、事件路由服务、日志服务等。 
q 框架应用实例—演示怎样使用Reactor、Service Configurator、Acceptor_Connector、Active Object以及IPC这样的ACE组件来有效地开发灵活、高效、可靠的通信软件。 
(4)分布式计算中间件组件 
在ACE中还绑定了如下的高级中间件组件。 
q ACE ORB(TAO)—利用ACE框架和模式实现的实时CORBA。 
q JAWS—利用ACE框架和模式实现的自适应Web服务器。 
ACE源代码可以从ACE官方网站 下载 ,可以根据不同的使用目的 下载 不同的代码包。ACE的代码包如表1-1所示(来自ACE官方网站)。 
表1-1   ACE的代码包 
文件名    描      述    下载链接 
ACE+TAO+CIAO-6.0.0.tar.gz      ACE+TAO+CIAO (tar+gzip format)     [HTTP] [FTP] 
ACE+TAO+CIAO-6.0.0.tar.bz2     ACE+TAO+CIAO (tar+bzip2 format)   [HTTP] [FTP] 
ACE+TAO+CIAO-6.0.0.zip   ACE+TAO (zip format)  [HTTP] [FTP] 
ACE+TAO+DAnCE.tar.gz     ACE+TAO+DAnCE (tar+gzip format)   [HTTP] [FTP] 
ACE+TAO+DAnCE.tar.bz2    ACE+TAO+DAnCE (tar+bzip2 format)[HTTP] [FTP] 
ACE+TAO+DAnCE.zip  ACE+TAO+DAnCE (zip format)   [HTTP] [FTP] 
ACE+TAO-6.0.0.tar.gz   ACE+TAO (tar+gzip format)[HTTP] [FTP] 
ACE+TAO-6.0.0.tar.bz2ACE+TAO (tar+bzip2 format)       [HTTP] [FTP] 
ACE+TAO-6.0.0.zip      ACE+TAO (zip format)  [HTTP] [FTP] 
ACE-html-6.0.0.tar.gz    Doxygen documentation for ACE+TAO (tar+gzip format)   [HTTP] [FTP] 
ACE-html-6.0.0.tar.bz2  Doxygen documentation for ACE+TAO (tar+bzip2 format)[HTTP] [FTP] 
ACE-html-6.0.0.zipDoxygen documentation for ACE+TAO (zip format)   [HTTP] [FTP] 
ACE-6.0.0.tar.gz    ACE only (tar+gzip format)   [HTTP] [FTP] 
ACE-6.0.0.tar.bz2   ACE only (tar+bzip2 format)[HTTP] [FTP] 
ACE-6.0.0.zipACE only (zip format)    [HTTP] [FTP] 
表1-1中: 
q ACE包是整个ACE的基础包,其包含了ACE操作系统适配层、C++封装器和网络 编程 框架的代码。 
q ACE+TAO包含了ACE和TAO的代码,其中TAO是在ACE基础上实现的CORBA请求代理(CORBA Object Request Broker)。 
q ACE+TAO+CIAO包含了ACE、TAO和CIAO的代码,其中CIAO是在TAO基础上实现的CORBA 组件模型(CORBA Component Model)。 
q ACE+TAO+DAnCE包含了ACE、TAO和DAnCE的代码,其中DAnCE是在TAO基础上实现的配置标准(Deployment and Configuration standard)。 
我们选择ACE-6.0.0作为分析的代码包,读者在下载代码时可以选择ACE+TAO-6.0.0,因为只下载ACE-6.0.0可能无法编译。图1-2显示ACE+TAO-6.0.0包展开后的源代码组织。 


图1-2   展开后ACE+TAO-6.0.0的代码组织 
本书重点分析的代码在ace目录下,它包含了操作系统适配层、C++封装器和网络 编程 框架的代码。操作系统适配层封装了各种操作系统的差异,为上层提供统一的接口,这一层不在我们的分析之列,但是在分析的代码中会对其有一些直接的调用。因为这一层的接口基本保持了操作系统接口的原义,故无须过多的解释。C++封装器是ACE对操作系统接口面向对象的封装,它覆盖了当前主流操作系统的很多功能,我们没有对这些功能进行一一分析,而是采用Lazy Fetching[10]的方式,在用到时才进行分析。网络编程框架是我们的分析重点。 
其他目录的简要说明如下。 
q apps:ACE应用实例目录,如Gateway(网关)实例,JAWS(自适应Web服务器)实例。 
q examples:这里都是ACE的示例代码,其中包含了《ACE  Programmers Guide》、《C++ Network Programming Volume 1》和《C++ Network Programming Volume 2》这3本书的示例代码。 
q tests:测试代码,也可以作为学习ACE的示例代码。 
q TAO:只有下载了ACE+TAO包展开后才会有该目录,ACE包展开后没有该目录。它包含了TAO源代码。 
在安装了ACE之后,还会有一个build目录,它保存了当前的系统配置和安装文件。搜索build目录,我们可以找到一个名为config.h的文件。该文件使用宏定义的方式保存了当前系统的很多配置信息。ACE_wrappers目录下还有很多目录,它们和本书没有关系,这里忽略这些目录下的文件,TAO目录也不在我们的分析之列。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值