宝杉的博客

UNIX/LINUX;ACE;SNMP;C++
posts - 33, comments - 23, trackbacks - 0, articles - 0

【译】ACE Reactor 的设计和使用

Posted on 2007-08-03 12:42 宝杉 阅读(1578) 评论(0)  编辑 收藏 引用 所属分类: ACE/CORBA
 

1 介绍

此文描述了组成ACE框架的Reactor模式的设计和执行。Reactor负责处理由一个或多个client并发的传递给一个应用程序的服务请求。应用程序的每个服务由一个分离的event handler(事件句柄)执行,event handler包括一个或多个进程的服务器特殊请求的方法。

       此文描述的Reactor模式的执行,event handler分发是由ACE_Reactor实现的。ACE_Reactor结合I/O事件的分离器,以及其他类型的时间,比如timers和signals。ACE_Reactor的核心实现是基于同步事件分离,比如select或者WaitForMultipleObjects。当分离器指示指定的事件发生了,ACE_Reactor会自动分发预先注册的事件句柄的方法。注册的event handler方法会完成应用程序对应请求事件的服务。

       本文组织如下:第二章描述ACE_Reactor框架主要特性;第三章大致介绍ACE_Reactor实现的OO(面向对象)设计;第四章举了服务器端实现的例子,用以证明ACE_Reactor怎样简化并发的,基于事件的网络应用程序的发展;第五章描述当使用ACE_Reactor开发基于事件的应用程序的设计规则;第六章是结束语。

2 ACE_Reactor的特性

ACE_Reactor提供OO的事件分离机制和消息分发框架,它简化基于事件的应用程序的开发。以下特性是:

OO的事件分离和消息分发接口:

使用ACE_Reactor的应用程序不直接调用底层OS(操作系统)的事件分离API函数。比如select或WaitForMultipleObjects。他们继承ACE Event Handler基类并创建了具体的event handlers。这个类用特定的虚拟函数处理不同类型的事件,比如I/O事件,timer事件,signals(信号量机制),和同步事件。

应用程序用Reactor框架创建具体的event handler,并注册他们。特性1显示了ACE Reactor.的关键组件。这个特性描述执行日子服务的事件句柄,这个在第四章讲述。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理