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