網格與集羣、CORBA、DCE和P2P的比較

摘自:http://searchwebservices.techtarget.com.cn/tips/172/2501672.shtml
英文原文:http://www-128.ibm.com/developerworks/grid/library/gr-heritage/

  網格與集羣計算的區別

  集羣計算實際上不能真正地被看作是一種分佈式計算解決方案。不過對於理解網格計算與集羣計算之間的關係是很有用的。通常,人們都會混淆網格計算與基於集羣的計算這兩個概念,但實際上這兩個概念之間有一些重要的區別。

  網格是由異構資源組成的。集羣計算 主要關注的是計算資源;網格計算 則對存儲、網絡和計算資源進行了集成。集羣通常包含同種處理器和操作系統;網格則可以包含不同供應商提供的運行不同操作系統的機器。(IBM、Platform Computing、DataSynapse 和 United Devices 提供的網格工作負載管理軟件都可以將工作負載分發到類型和配置不同的多種機器上。)

  網格本質上就是動態的。集羣包含的處理器和資源的數量通常都是靜態的;而在網格上,資源則可以動態出現。資源可以根據需要添加到網格中,或從網格中刪除。

  網格天生就是在本地網、城域網或廣域網上進行分佈的。通常,集羣物理上都包含在一個位置的相同地方;網格可以分佈在任何地方。集羣互連技術可以產生非常低的網絡延時,如果集羣距離很遠,這可能會導致產生很多問題。

  網格提供了增強的可擴展性。物理臨近和網絡延時限制了集羣地域分佈的能力;由於這些動態特性,網格可以提供很好的高可擴展性。

  例如,最近 IBM、United Devices 和多個生命科學合作者完成了一個設計用來研究治療天花的藥品的網格項目。這個網格包括大約兩百萬臺個人計算機。使用常見的方法,這個項目很可能需要幾年的時間才能完成 —— 但是在網格上它只需要 6 個月。設想一下如果網格上已經有兩千萬臺 PC 會是什麼情況。極端地說,天花項目可以在分鐘級內完成。

  集羣和網格計算是相互補充的。很多網格都在自己管理的資源中採用了集羣。實際上,網格用戶可能並不清楚他的工作負載是在一個遠程的集羣上執行的。儘管網格與集羣之間存在很多區別,但是這些區別使它們構成了一個非常重要的關係,因爲集羣在網格中總有一席之地 —— 特定的問題通常都需要一些緊耦合的處理器來解決。

  然而,隨着網絡功能和帶寬的發展,以前採用集羣計算很難解決的問題現在可以使用網格計算技術解決了。理解網格固有的可擴展性和集羣提供的緊耦合互連機制所帶來的性能優勢之間的平衡是非常重要的。

  網格還是 CORBA?

  對於所有的分佈式計算環境來說,CORBA 與網格計算表面的相似性可能比其他技術都要多。這是由於開放網格服務架構(OGSA)中網格計算和 Web 服務之間的策略關係所決定的。它們都是基於面向服務架構(SOA)的概念。CORBA 是很多任務關鍵的應用程序的骨幹,從 1991 年創建以來不斷髮展成熟。在很多方面,CORBA 都是今天 Web(網格)服務的先驅。它提供了一個重要的基礎,就像是幾年之後 Java™ Remote Method Invocation(RMI)的地位一樣。

  例如,Boeing 在自己的 DCAC/MRM(Define and Control Airplane Configuration/Manufacturing Resource Management 的縮寫)應用程序中使用了基於 CORBA 的解決方案,尤其是管理商業飛機所採用的零部件配置和目錄部分的應用程序更是如此(噴氣式客機有很多零部件)。Peter Coffee 是 e-Week 的一名技術編輯,他最近分析說新 Cunard Queen Mary 2 遠洋航線中所有的操作都是由 CORBA 支持的。

  CORBA 與網格計算之間的主要區別是 CORBA 假定是面向對象的(畢竟,這是名字中的一部分),但是網格計算沒有采用這種假定。在 CORBA 中,每個實體都是一個對象,可以支持諸如繼承和多態之類的機制。在 OGSA 中,存在一些與對象非常類似的概念,但是這並沒有假定架構中有面向對象的實現。架構是面向消息的;面向對象是一個實現概念。然而,在 WSRF(Web Services Resource Framework)中使用形式定義語言(例如 WSDL,Web Services Definition Language)就意味着接口和交互操作都與 CORBA 中的定義一樣,它們共享一個主要軟件工程的優點,同時可以採用面向對象的設計呈現。

  另外一點區別是網格計算(OGSA)是在 Web 服務的基礎上進行構建的。CORBA 與 Web 服務進行了集成,並與 Web 服務進行交互操作。CORBA 的一個問題是它假設了太多的 “端點”,這通常是參與 CORBA 環境的所有機器(客戶機和服務器)。供應商的 CORBA 實現中也存在交互操作的問題,CORBA 節點之間在 Internet 上如何操作的問題,以及端點如何命名的問題。這意味着所有的機器都必須遵守特定的規則和特定的方法,只有這樣 CORBA 才能正常工作(所有這些都假設採用與 IDL、IOR 和 IIOP 類似的協議)。在構建高可用、緊耦合、預編譯的系統時,這是一種比較合適的方法。

  然而,在 CORBA 執行作業的方式和 Internet 方法之間缺少協作能力。CORBA 的確爲 Web 服務標準的創建提供了靈感 —— 人們非常喜歡 CORBA 基礎所提供的功能,並開始建立諸如 XML、WSDL、SOAP 之類的標準。他們通過在開放的 Internet 基礎上構建 Web 服務對 CORBA 的交互操作能力和靈活性問題進行了改進,這種方法在服務請求者和服務之間採用的是松耦合和延後綁定技術。爲了實現這種改進,OGSA 增加了一種 “軟狀態” 方法來進行容錯。這些正是它們的設計目標。

  Web 服務架構是一個面向服務的架構,CORBA 也是。不過 CORBA 的目標不同 —— 它被設計用來構建相當封閉的集成系統。

  DCE 如何?

  顧名思義,分佈式計算環境(DCE)與其說是一個架構,還不如說是一個環境,二者之間有一個重要的區別。DCE 可以定義爲一個設計用來促進分佈式計算的緊密集成的技術集;網格計算(以 OGSA 的格式)不僅僅是一個設計用來封裝分佈式計算衆多複雜機制的架構。

  正如我們在對 CORBA 的介紹中看到的一樣,在 DCE 中我們也可以看到緊耦合與松耦合方法之間的區別。DCE 技術包括安全性技術(DCE ACL 或 Access Control Lists)、對象和組件技術(DCE 分佈式對象)、文件系統(DFS 或 Distributed File System)以及一個目錄定義(DCE 註冊項) —— 實際上,OGSA 可以在很多 DCE 技術基礎上工作。

  例如,網格安全協議可以採用 GSI(Grid Security Infrastructure)格式,也可以採用適當的 Web 服務標準格式,可以用來與 DCE ACL 進行交互。很多網格應用程序都利用底層的 DFS(或其前輩 AFS,Andrew File System)。核心網格註冊服務可以利用 DCE 註冊項。

  儘管這些技術大部分都被認爲是服務,但是 DCE 與其說是一個面向服務的架構,還不如一組技術的集合。它對於 SOA 環境中構建應用程序的支持是有限的,因爲 DCE 主要是通過採用一些塊來構建分佈式應用程序,但是並不需要去構建分佈式的面向服務的應用程序。

  網格計算與 DCE 之間另外一點重要的區別也與 CORBA 有關:OGSA 網格計算定義了以下 3 類服務:

  網格核心服務
  網格數據服務
  網格程序執行服務
  CORBA、DCE 和 Java RMI 並不會特別關注數據(DFS 之外的數據)或程序執行服務,因爲這些技術都是遠程過程調用(RPC)系統所必需的。(RPC 是一種協議,應用程序可以使用這種協議向網絡中另外一臺機器上的一個程序請求提供服務,而無需理解網絡的詳細信息。這是一個同步 操作,需要請求程序一直掛起等待遠程過程返回結果,除非您使用了共享相同地址空間的輕量級進程(lightweight processe)。在網格核心服務(以及 WSRF)中定義和實現的很多服務都與 DCE 和 CORBA 中的基本服務類似。但是數據和程序執行服務是網格計算所特有的。

  最後,我們對網格計算和 CORBA 與 Web 服務標準的關係所總結的區別也同樣適用於 DCE。同樣,我們在 Web 服務中所看到的很多改進都得益於使用諸如 DCE 和 CORBA 之類優秀分佈式系統的經驗。

  最後來看一下 P2P

  諸如 KaZaA —— 由於一些版權問題,它總是以大字標題的形式出現 —— 之類的應用程序是最近吸引人們對點對點(P2P)計算的注意的主要原因。不過這種技術本身展示了一些有趣的分佈式特性,如果在網格環境中使用這些特性,很多都會非常有用。

  首先,P2P 系統的特點是缺少集中管理點;這使它非常適合於提供匿名服務,或者提供一些反跟蹤保護機制。另一方面,網格環境通常都有某種形式的集中管理和安全性(例如,資源管理和工作負載調度)。

  P2P 環境中這種沒有集中點的特性引發了兩個重要結果:

  P2P 系統的可擴展性通常都比網格計算系統好。即使我們要在響應能力的控制和分佈之間達成某種平衡時,網格計算系統也天生不如 P2P 系統的可擴展性好。
  P2P 系統容忍單點失效的能力通常比網格計算系統更好。儘管網格比緊耦合的分佈式系統的彈性更好,但是網格不可避免地要包含一些可能成爲單點故障的關鍵元素。
  這意味着構建網格計算系統的關鍵是在分散與管理能力之間達成某種平衡 —— 這可不是件簡單的事情。

  另外,網格計算的一個重要特性是資源都是動態的;在 P2P 系統中,資源的動態性天生就比網格計算系統更好,資源出現和消失的變化比網格中更快。對於 P2P 和網格計算系統來說,分佈式資源的利用率是一個主要目標。給定一定的計算資源,這兩種系統都可以儘可能地對這些資源進行使用。

  這兩個系統之間最後一點區別是標準:與網格領域中的標準相比,在 P2P 中通常缺少標準。另外,有了諸如 Global Grid Forum 之類的實體,網格領域就有了一種機制來重新定義現有的標準並建立新標準。

  基於網格和 P2P 系統提供的互補優點,我們可以期望這兩種方法最終會殊途同歸,尤其是當網格達到 “網格間” 的開發階段時,屆時這兩種技術都將成爲一些公共工具。 

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