Posted on 2007-08-03 12:42
寶杉 閱讀(1587)
評論(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.的關鍵組件。這個特性描述執行日子服務的事件句柄,這個在第四章講述。
