ACE简介<o:p></o:p>
一、ACE综述<o:p></o:p>
ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。<o:p></o:p>
ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE还使系统的配置和重配置得以自动化。<o:p></o:p>
ACE正在进行持续的改进。Riverace公司(http://www.riverace.com)采用开放源码商业模式对ACE进行商业支持。此外,ACE开发组的许多成员目前正在进行The ACE ORB(TAO,http://www.cs.wustl.edu/~schmidt/TAO.html)的开发工作。<o:p></o:p>
二、使用ACE的好处<o:p></o:p>
使用ACE的好处有:<o:p></o:p>
增强可移植性:在ACE组件的帮助下,很容易在一种OS平台上编写并发网络应用,然后快速地将它们移植到各种其他的OS平台上。而且,因为ACE是开放源码的自由软件,你无需担心被锁定在特定的操作系统平台或编译器上。<o:p></o:p>
更好的软件质量:ACE的设计使用了许多可提高软件质量的关键模式,这些质量因素包括通信软件灵活性、可扩展性、可复用性和模块性。<o:p></o:p>
更高的效率和可预测性:ACE经仔细设计,支持广泛的应用服务质量(QoS)需求,包括延迟敏感应用的低响应等待时间、高带宽应用的高性能,以及实时应用的可预测性。<o:p></o:p>
更容易转换到标准的高级中间件:TAO使用了ACE提供的可复用组件和模式。它是CORBA的开发源码、遵循标准的实现,并为高性能和实时系统作了优化。为此,ACE和TAO被设计为能良好地协同工作,以提供全面的中间件解决方案。<o:p></o:p>
三、ACE的结构和功能 <o:p></o:p>
下图显示了ACE中的关键组件以及它们的层次关系: <o:p></o:p>
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path=" m@4@5 l@4@11@9@11@9@5 xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0 "></v:f><v:f eqn="sum @0 1 0 "></v:f><v:f eqn="sum 0 0 @1 "></v:f><v:f eqn="prod @2 1 2 "></v:f><v:f eqn="prod @3 21600 pixelWidth "></v:f><v:f eqn="prod @3 21600 pixelHeight "></v:f><v:f eqn="sum @0 0 1 "></v:f><v:f eqn="prod @6 1 2 "></v:f><v:f eqn="prod @7 21600 pixelWidth "></v:f><v:f eqn="sum @8 21600 0 "></v:f><v:f eqn="prod @7 21600 pixelHeight "></v:f><v:f eqn="sum @10 21600 0 "></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape coordsize="21600,21600" id="_x0000_i1025" type="#_x0000_t75" alt="" style="WIDTH: 415.5pt; HEIGHT: 282pt"><v:imagedata o:href="http://www.flyingdonkey.com/ace/image/layer3.jpg" src="file3067.files/image001.jpg"></v:imagedata></v:shape><o:p></o:p>
图中的结构和各层的组成部分描述如下。<o:p></o:p>
四、ACE OS适配层<o:p></o:p>
该层直接位于用C写成的本地OS API之上。它提供轻型的类POSIX OS适配层,将ACE中的其他层及组件和以下与OS API相关联的平台专有特性屏蔽开来:<o:p></o:p>
并发和同步:ACE的适配层封装了用于多线程、多进程和同步的OS API。<o:p></o:p>
进程间通信(IPC)和共享内存:ACE的适配层封装了用于本地和远地IPC、以及共享内存的OS API。<o:p></o:p>
事件多路分离机制:ACE的适配层封装了用于对基于I/O、定时器、信号和同步的事件进行同步和异步多路分离的OS API。<o:p></o:p>
显式动态链接:ACE的适配层封装了用于显式动态链接的OS API。显式动态链接允许在安装时或运行时对应用服务进行配置。<o:p></o:p>
文件系统机制:ACE的适配层封装了用于操作文件和目录的OS文件系统API。<o:p></o:p>
ACE OS适配层的可移植性使得ACE可运行在许多操作系统上。ACE已在广泛的OS平台上进行了移植和测试,包括Win32(也就是,在Intel和Alpha平台,使用MSVC++、Borland C++ Builder和IBM Visual Age的WinNT 3.5.x、4.x、2000、Win95/98和WinCE)、Mac OS X、大多数版本的UNIX(例如,SPARC和Intel上的Solaris 1.x和2.x、SGI IRIX 5.x和6.x、DG/UX、HP-UX 9.x、10.x和11.x、DEC/Compaq UNIX 3.x和4.x、AIX 3.x和4.x、UnixWare、SCO,以及可自由使用的UNIX实现,比如Debian Linux 2.x、RedHat Linux 5.2、6.x和7.x、FreeBSD和NetBSD)、实时操作系统(比如,LynxOS、VxWorks、Chorus ClassiX 4.0、QnX Neutrino、RTEMS和PSoS)、MVS OpenEdition和CRAY UNICOS。<o:p></o:p>
由于ACE的OS适配层所提供的抽象,所有这些平台使用同一棵代码树。这样的设计极大地增强了ACE的可移植性和可维护性。此外,还有Java版本的ACE可用(http://www.cs.wustl.edu/~eea1/JACE.html)。<o:p></o:p>
五、OS接口的C++ Wrapper Facade<o:p></o:p>
可以直接在ACE OS适配层之上编写高度可移植的C++应用。但是,大多数ACE开发者使用的是上图中所示的C++ Wrapper Facade层。通过提供类型安全的C++接口(这些接口封装并增强本地的OS并发、通信、内存管理、事件多路分离、动态链接和文件系统API),ACE Wrapper Facade简化了应用的开发。应用可以通过有选择地继承、聚合和/或实例化下面的组件来组合和使用这些包装:<o:p></o:p>
并发和同步组件:ACE对像互斥体和信号量这样的本地OS多线程和多进程机制进行抽象,以创建高级的OO并发抽象,像主动对象(Active Object)和多态期货(Polymorphic Future)。<o:p></o:p>
IPC和文件系统组件:ACE C++包装对本地和/或远地IPC机制进行封装,比如socket、TLI、UNIX FIFO和STREAM管道,以及Win32命名管道。此外,ACE C++包装还封装了OS文件系统API。<o:p></o:p>
内存管理组件:ACE内存管理组件为管理进程间共享内存和进程内堆内存的动态分配和释放提供了灵活和可扩展的抽象。<o:p></o:p>
ACE C++包装提供了许多与ACE OS适配层一样的特性。但是,这些特性是采用C++类和对象、而不是独立的C函数来构造的。这样的OO包装有助于减少正确地学习和使用ACE所需的努力。<o:p></o:p>
例如,C++的使用提高了应用的健壮性,因为C++包装是强类型的。所以,编译器可在编译时、而不是运行时检测类型系统违例。相反,不到运行时,不可能检测像socket或文件系统I/O这样的C一级OS API的类型系统违例。<o:p></o:p>
ACE采用了许多技术来降低或消除额外的性能开销。例如,ACE大量地使用C++内联来消除额外的方法调用开销;这样的开销可由OS适配层和C++包装所提供的额外的类型安全和抽象层次带来。此外,对于性能要求很高的包装,比如socket和文件I/O的send/recv方法,ACE会避免使用虚函数。<o:p></o:p>
六、框架<o:p></o:p>
ACE还含有一个高级的网络编程框架,集成并增强了较低层次的C++ Wrapper Facade。该框架支持将并发分布式服务动态配置进应用。ACE的框架部分包含以下组件:<o:p></o:p>
事件多路分离组件:
分享到:
相关推荐
ACE(Adaptive Communication Environment,自适配通信环境)是一个强大的开源通信框架,它为开发复杂的分布式实时和嵌入式系统提供了全面的软件基础设施。ACE利用C++模板技术,旨在实现跨平台兼容性,使得开发者...
#### 一、ACE简介 ACE(Adaptive Communication Environment,自适配通信环境)是一种面向对象(Object-Oriented, OO)的工具包,旨在帮助开发者简化通信软件的开发过程。ACE的目标群体主要是那些在UNIX和Win32平台...
#### 一、ACE简介 Adaptive Communication Environment(自适配通信环境),简称ACE,是一种基于C++模板技术构建的开源跨平台网络应用程序库。ACE提供了一系列面向对象的封装,如socket、threading、memory ...
2.1 **ACE简介** ACE是一个强大的框架,它提供了大量预定义的类和模板,用于处理并发性、同步、网络通信等复杂问题。ACE的核心特性包括反应器(Reactor)和预行动器(Proactor)模式,它们是事件驱动设计的关键部分。 ...
- **ACE简介**: - ACE(Adaptive Communication Environment,自适应通信环境)是一个跨平台的开源中间件框架,用于高效地构建高性能的网络通信和实时系统。 - 支持多种操作系统(如Windows、Linux等)和编译器...
1. **ACE简介**:首先,了解ACE的基本概念至关重要。ACE是一个开源库,提供了许多网络编程中常见的服务,如线程管理、同步机制、I/O复用、时间管理和事件处理等。它通过提供可移植的接口,简化了在不同操作系统上的...
1. **ACE简介**:ACE的核心理念是提供一组可重用的、适应性强的软件组件,以简化分布式系统开发。它支持多种网络协议,如TCP/IP、UDP,并提供了线程管理、同步机制、事件处理等服务。 2. **ACE设计模式**:ACE采用...
#### 一、ACE简介与适用人群 ACE(Adaptive Communication Environment,自适配通信环境)是一套强大的跨平台开发工具包,它将复杂的操作系统底层API进行封装,使得开发者能够更加高效地进行底层系统级编程。ACE...
1. **ACE简介**:ACE是一个开源的、可移植的、面向对象的网络编程框架,其设计目标是简化分布式系统开发,提高软件的可移植性和可维护性。ACE通过提供一系列的C++类和模板,使开发者能够以统一的方式处理不同操作...
#### 一、ACE简介与背景 **ACE(Adaptive Communication Environment)** 是一套跨平台的C++类库框架,它主要用于高性能网络通信软件的开发。该框架支持多种操作系统和硬件平台,使得开发者能够更加高效地编写可移植...
#### 一、ACE简介 ACE(Adaptive Communication Environment,自适应通信环境)是一个面向对象(OO)的工具包,由Douglas C. Schmidt等人开发,旨在解决通信软件开发中的挑战。该工具包特别针对在UNIX和Win32平台上...
一、ACE简介 ACE是一个C++库,提供了多种网络通信的抽象接口,包括TCP/IP、UDP/IP、套接字、命名管道、多路复用I/O等。它支持事件驱动、并发处理、线程管理、对象间通信等多种编程模型,旨在简化分布式系统的设计和...
### ACE简介 ACE(Adaptive Communication Environment)是一种开源中间件框架,用于开发高性能网络应用和服务。它提供了广泛的特性,包括跨平台支持、异步I/O、并发模型等。ACE主要面向C++开发者,并提供了一套...
#### 一、ACE简介 **ACE** (Adaptive Communication Environment) 是一个面向对象的网络应用程序框架,支持多种操作系统和编译器。ACE 的主要目标是简化 C++ 开发者在网络编程方面的任务,使得开发者可以更轻松地...
#### 一、ACE简介 **ACE自适配通信环境**(Adaptive Communication Environment)是一款开放源码的面向对象框架,它为开发高性能和实时通信服务与应用程序提供了丰富的工具集。ACE的核心优势在于其能够简化跨平台并发...
##### 2.1 ACE简介 ACE (Adaptive Communication Environment) 是一个跨平台的C++框架,用于快速开发高性能、实时的应用程序和服务。它提供了丰富的组件库,包括但不限于网络通信、线程池管理、信号处理等功能。 ##...
- **ACE简介**:ACE是一个高度可移植的框架,用于构建分布式实时和嵌入式软件。它提供了许多高级服务,如线程管理、I/O复用、事件处理模型等。 - **环境搭建**:这部分内容会指导用户如何在不同的操作系统上安装和...
#### 一、ACE简介 ACE(Adaptive Communication Environment,适应性通信环境)是一种高性能的中间件框架,它为开发者提供了丰富的库支持,以便构建可移植、实时的分布式应用程序。ACE的核心设计原则是高度可配置性...