1 介紹
此文描述了組成ACE框架的Reactor模式的設(shè)計和執(zhí)行。Reactor負責處理由一個或多個client并發(fā)的傳遞給一個應用程序的服務(wù)請求。應用程序的每個服務(wù)由一個分離的event handler(事件句柄)執(zhí)行,event handler包括一個或多個進程的服務(wù)器特殊請求的方法。
此文描述的Reactor模式的執(zhí)行,event handler分發(fā)是由ACE_Reactor實現(xiàn)的。ACE_Reactor結(jié)合I/O事件的分離器,以及其他類型的時間,比如timers和signals。ACE_Reactor的核心實現(xiàn)是基于同步事件分離,比如select或者WaitForMultipleObjects。當分離器指示指定的事件發(fā)生了,ACE_Reactor會自動分發(fā)預先注冊的事件句柄的方法。注冊的event handler方法會完成應用程序?qū)埱笫录姆?wù)。
本文組織如下:第二章描述ACE_Reactor框架主要特性;第三章大致介紹ACE_Reactor實現(xiàn)的OO(面向?qū)ο螅┰O(shè)計;第四章舉了服務(wù)器端實現(xiàn)的例子,用以證明ACE_Reactor怎樣簡化并發(fā)的,基于事件的網(wǎng)絡(luò)應用程序的發(fā)展;第五章描述當使用ACE_Reactor開發(fā)基于事件的應用程序的設(shè)計規(guī)則;第六章是結(jié)束語。
2 ACE_Reactor的特性
ACE_Reactor提供OO的事件分離機制和消息分發(fā)框架,它簡化基于事件的應用程序的開發(fā)。以下特性是:
OO的事件分離和消息分發(fā)接口:
使用ACE_Reactor的應用程序不直接調(diào)用底層OS(操作系統(tǒng))的事件分離API函數(shù)。比如select或WaitForMultipleObjects。他們繼承ACE Event Handler基類并創(chuàng)建了具體的event handlers。這個類用特定的虛擬函數(shù)處理不同類型的事件,比如I/O事件,timer事件,signals(信號量機制),和同步事件。
應用程序用Reactor框架創(chuàng)建具體的event handler,并注冊他們。特性1顯示了ACE Reactor.的關(guān)鍵組件。這個特性描述執(zhí)行日子服務(wù)的事件句柄,這個在第四章講述。