DCFramwork架構主要由四個核心的dll構成:DCFramework.dll、DCFramework.Master.dll、DCFramework.Worker.dll、DCFramework.Client.dll。
我們看到,另外三個dll都依賴於最基礎的DCFramework.dll,這個三個dll除了依賴DCFramework.dll外,相互之間沒有任何依賴關係。
DCFramework.dll提供了DCF架構需要用到的基礎和公用的類型定義,比如分布式任務DCTask,分散式運算節點WorkerNode,以及DC Master發布給Client使用的服務介面IDCService和發布給分散式運算節點使用的動態註冊/登出服務介面IWorkerRegistryService,另外還有DC Worker給DC Master回調的介面IWorkerService。這些類型的定義如所示:
DCFramework.Master.dll是DC Master Node使用的核心程式集,其中包含三個主要的類:DCMaster類用於管理所有註冊的DC Woker Node,並負責分發分布式任務到某個DC Woker Node上;DCService是DC Master Node發布給Client使用的服務;而WorkerRegistryService是DC Master Node發布給DC Woker Node使用的服務。其類圖如下:
DCFramework.Worker.dll是DC Worker Node使用的核心程式集,其中主要的類型定義有:DCAppDomain用於封裝AppDomain,使分散式運算任務可以再一個獨立的AppDomain中運行;DCJobWorker是真正執行分散式運算任務的"工作者",它可以在目標DCAppDomain或臨時建立的DCAppDomain中執行任務。DCAppDomainManager用於管理所有非臨時的DCAppDomain對象,並負責分布式任務的指派調用。關於臨時與非臨時的DCAppDomain對象,會在後續文章中詳細介紹。
DCFramework.Client.dll是給客戶使用的程式集,客戶藉助DCFramework.Client.dll可以非常方便的使用已經部署好的DCF架構執行個體來執行自己的分布式任務。DCFramework.Client.dll中最核心的類是DCJobDispatcher,正如前文介紹的,DCJobDispatcher 會自動Remoting串連到DC Master Node,並將分散式運算任務封裝為一個DCTask,然後將DCTask提交給DC Master。這一切都是DCJobDispatcher在後台自動幫你完成的,你所需要做的只是提交任務,然後等待返回結果,如此而已。其類圖如下所示:
本文只是對DCFramework基本結構進行了簡單介紹,DCFramework的實現比上述的描述要複雜許多,在後續的文章中,我們會詳細地深入到每一個部分去。
最後給出一個使用DCFramework的完整Demo的源碼,包括Master、Worker、Client。你可以先運行起來看看動態分散式運算的效果,我會在下一篇文章中對這個Demo的做詳細的解釋。
歡迎討論,謝謝。
轉到:DCFramework 動態分散式運算架構(00)-- 序