摘 要 探讨了如何应用ACE进行网络通信编程,从而大大减少了网络通信中的一些重复性且易出错的细节。通过一个程序实例说明如何应用ACE的相关技术。
关键词 ACE;Reactor;Acceptor;Connector;反应堆;事件处理器
1 ACE
Adaptive Communication Environment (ACE) 是一种免费开放原代码的面向对象框架结构,该结构实现了许多并行通信软件的核心设计模式。ACE提供丰富的C++ wrapper facades, 以及可跨平台执行通信软件的基本任务的框架对象。ACE提供的基本任务包括事件分离与事件处理的分发、 信号量处理、服务初始化、 进程间通信、 共享内存管理、 消息路由、 分布式服务的动态配置、并发执行与同步。
ACE 的使用对象是面向开发高性能与实时通信服务应用的开发人员。它可以简化实现进程间通信,event demultiplexing , 直接动态链接explicit dynamic linking,以及并发处理功能的面向对象网络应用与服务的开发过程。 同时, ACE 通过在运行过程中动态将服务连接到应用中,并在一个或多个进程或线程中执行这些服务,这种方式实现了系统的自动配置与重新配置。
ACE 仍在不断地发展,它的应用前景非常光明。ACE的商业用途的支持由 Riverace 公司使用公开原代码方式进行。同时,许多ACE 开发小组的成员正在进行 ACE ORB (TAO)的开发工作。
2 网络通信的ACE组件
2.1 ACE Acceptor-Connector
接收器/连接器模式设计用于降低连接建立与连接建立后所执行的服务之间的耦合。例如,在WWW浏览器中,所执行的服务或“实际工作”是解析和显示客户浏览器接收到的HTML页面。连接建立是次要的,可能通过BSD socket或其他一些等价的IPC机制来完成。使用这些模式允许程序员专注于“实际工作”,而最少限度地去关心怎样在服务器和客户之间建立连接。而另一方面,程序员也可以独立于他所编写的、或将要编写的服务例程,去调谐连接建立的策略。
|