主動器模式

一、定義及問題背景:

主動器體系結構模式使事件驅動的應用程序能有效地多路分解和分配由於異步操作的完成而激活的服務請求,這樣能獲取併發所帶來的好處。

異步接收和處理多個服務請求的事件驅動的應用程序。通常可以改善分佈式系統中的事件驅動應用程序的性能。

二、解決方案:
應用服務分成兩部分:異步執行的耗時長的操作和在這些操作完成後處理其結果的完成處理程序。

三、結構:
包過九個參與者
1.句柄。標識一個操作系統資源,該資源是異步操作的目標,或者是操作系統中的完成事件源。
2.異步操作。定義可以異步執行的操作。
3.完成處理程序。定義一個用於處理異步操作結果的接口。
4.具體完成處理程序。以一種與應用有關的方式處理異步操作的結果。
5.異步操作處理器。調用某一個句柄的異步操作並運行到結束,異步操作處理器產生相應的完成事件。跟進操作所針對的句柄,異步操作處理器將該完成事件插入到與句柄對應的完成事件隊列中。
6.完成事件隊列。當等待完成事件通過異步事件多路分解器刪除時,保存完成事件。
7.異步事件多路分解器。能夠阻塞等待完成事件隊列中出現完成事件,刪除完成事件並把它返回給調用者。
8.主動器。調用異步事件多路分解器將完成事件從隊列中刪除。向完成處理程序的鉤子方法事件多路分解和分配完成事件。
9.啓動程序。調用異步操作。可選擇地作爲具體完成處理程序。

時序圖:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章