亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

DCFramework 動態分布式計算框架(00) -- 序

系統 1612 0

分布式計算最基本的目的之一就是為了充分利用空閑的計算節點的計算能力。通常,我們 首先 會將要被分布式計算的 程序 在每個計算節點 部署 好,然后才可以調用分布式計算。這種 部署 是一種靜態的。之所以稱為靜態的,是因為還有一種更動態更靈活的方式 -- 我們可以 隨時的、動態的 將我們 完成的程序 自動【提交】到 已經部署好的 分布式框架里動態運行起來。比如,假設我剛寫了一個新的排序的算法程序(假設程序集為 X.dll ),然后我要對現有的 10000000 個數據進行排序,但是,我的機器配置太差,運行不了如此大的計算任務,那么我就可以將 X.dll 和要排序的數據傳遞給部署在其它地方的動態分布式計算框架實例,動態分布式計算框架會調用 X.dll 中的排序算法來對數據進行排序,并返回結果。這就是 動態 的含義。我寫 DCFramework Dynamic Distributed Computing Framework )這個框架的主要目標是達到這樣的一個效果。不知道這種分布式計算架構和 云計算 是否有點關系?

如果是使用 C C++ 來實現這樣的動態效果,應該不是一件簡單的事情,但是強大的 .Net 平臺使得實現這一目標稱為可能,并且不是那么難。

我將平臺選定在 .NET ,這可以使很多功能更加容易實現,也使得很多問題得到簡化。 DCFramework 的主要特性如下:

1 )基于 .NET 平臺。這有兩種含義: DCFramework 是用 .NET 2.0 )實現的;也只有基于 .NET 的程序才可以使用 DCFramework 支撐的動態分布式計算架構。

2 DCFramework 使用 DCTask 表示動態分布式計算任務。

3 )分布式計算節點可以動態的增加、刪除。所謂計算節點就是用于真正執行分布式計算任務的節點,在 DCFramework 中稱為 DC Worker Node

4 )在 DCFramework 架構中有一個特殊的節點叫 DC Master Node ,它的作用在于統一管理所有的 DC Worker Node ,并將新的分布式計算任務分配給當前負載最低的那個 DC Worker Node

5 DCFramework 使用 Remoting 技術解決 DC Worker Node DC Master Node ,以及 DC Master Node Client (需要動態分布式計算的客戶端)之間的通信。

6 DCFramework 使用反射技術來動態加載程序集和調用計算方法。

7 DCFramework 使用 DCAppDomain (對 .NET AppDomain 的封裝)來構建執行分布式任務的獨立環境。即每個分布式計算任務最終在一個獨立的 DCAppDomain 種執行。

8 DCFramework 使用序列化技術來傳遞被調用的對象。

關于 DCFramework 中節點部署的簡單圖示如下:

DCFramework 動態分布式計算框架(00) -- 序

現在,我們假設某個Client A有個計算任務要提交給DCFramework執行,讓我們來看看這個過程是怎樣進行的。

Client A 將計算的邏輯封裝在MyClass類中,其位于X.dll程序集中,而X.dll有依賴于Y.dll,Y.dll又依賴于Z.dll,而X.dll、Y.dll、Z.dll都是用戶自定義的程序集。如果是在Client A本地執行計算任務,是這樣做的:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> MyClass myClass = new MyClass ();
// 為myClass屬性賦值,并初始化,此處省略若干代碼
object result = myClass.DoSomething();

下面的代碼將會在DCFramework架構的某個DC Worker Node上執行MyClass.DoSomething()方法。

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> MyClass myClass = new MyClass ();
// 為myClass屬性賦值,并初始化,此處省略若干代碼

DCJobDispatcher dispatcher = ...... ;
dispatcher.Dispatch(myClass,
" DoSomething " );

分布式計算執行的過程簡述如下:

(1)DCJobDispatcher 會自動Remoting連接到DC Master Node。

(2)DCJobDispatcher 將分布式計算任務封裝為一個DCTask,DCTask實例中會包含X.dll、Y.dll、Z.dll程序集對應的文件數據。

(3)DCJobDispatcher 將DCTask提交給DC Master ,DC Master 會將其交與DC Worker Node中負載最小的那個節點(假設為Worker A)執行。

(4)Worker A會為新任務創建一個單獨的DCAppDomain,然后加載傳遞過來的DCTask中的X.dll、Y.dll、Z.dll,接著就可以反序列化 MyClass 對象,最后通過反射調用其DoSomething方法,以開始執行計算任務。

(5)計算完成后,Worker A會卸載對應的DCAppDomain,并將計算結果返回。

上述就是DCFramework執行動態分布式任務的一個簡單介紹,更詳細的部分會在后續的文章中介紹。

歡迎討論,謝謝。

目錄:

DCFramework 動態分布式計算框架(01)-- 基礎結構

下載:

1.DCFramework 的完整Demo源碼 DCFrameworkDemo

DCFramework 動態分布式計算框架(00) -- 序


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天综合天天添夜夜添狠狠添 | 国产亚洲精品福利在线 | 国产三级做爰在线观看∵ | 台湾佬中文娱乐2222vvv | 国产欧美在线观看 | 九九99香蕉在线视频网站 | 久久久精品国产免费观看同学 | 国产深夜福利 | 阿v视频在线观看免费播放 阿v天堂2017 | 欧美伊人久久大香线蕉综合69 | 99精品视频在线在线视频观看 | 黄色的网站在线观看 | 国产黄色一级大片 | 色综合色狠狠天天综合色hd | 免费四虎永久在线精品 | 欧美性视频在线 | 国产一区二区三区免费在线观看 | 九月丁香婷婷亚洲综合色 | 五月天婷婷激情 | 欧美日韩亚洲综合久久久 | 99久久精品费精品国产 | 亚洲精品乱码久久久久久中文字幕 | 国产成人精品magnet | 免费观看黄色网 | 99涩涩| 久久国产免费福利资源网站 | 免费四虎永久在线精品 | 亚洲 欧美 日韩 在线 | 国产高清在线精品二区一 | 国产精品mm | 高清在线一区二区三区亚洲综合 | 欧美日韩免费大片 | 国内精品久久久久久网站 | 日本精品一区二区三区视频 | 国产精品福利资源在线 | 日日碰夜夜 | 亚洲乱码一区二区三区国产精品 | 国产精品怡红院永久免费 | 久久精品国产乱子伦多人 | 成人老司机深夜福利久久 | 亚洲精品国自产拍影院 |