【導讀】過去有兩種主要的需求極大地增長了網格計算的價值。不對稱經濟使得那些 IT 預算有限的公司只能更加充分地利用現有的計算資產,并通過智能地將有限的資源分配給適當的業務應用程序,才能更加靈活地對迅速變化的市場作出快速的響應。
過去有兩種主要的需求極大地增長了網格計算的價值。不對稱經濟使得那些 IT 預算有限的公司只能更加充分地利用現有的計算資產,并通過智能地將有限的資源分配給適當的業務應用程序,才能更加靈活地對迅速變化的市場作出快速的響應。本文是這個 “網格觀點” 系列文章的第一篇。在本文中,作者 Matt Haynos 對網格計算和諸如 P2P(端到端)、CORBA、集群計算和分布式計算環境(DCE)之類的分布式計算系統之間的異同進行了簡要的分析。
網格計算最近作為一種分布式計算體系結構日益流行,它非常適合企業計算的需求。很多領域都正在采用網格計算解決方案來解決自己關鍵的業務需求,例如:金融服務已經廣泛地采用網格計算技術來解決風險管理和規避問題、 自動化制造業使用網格解決方案來加速產品的開發和協作、石油公司大規模采用網格技術來加速石油勘探并提高成功采掘的幾率。
隨著網格計算的不斷成熟,該技術在其他領域技術的應用也會不斷增加。
從這個特征定義上來說,網格計算與其他所有的分布式計算范例都有所區別:網格計算的本質在于以有效且優化的方式來利用組織中各種異構松耦合資源,來實現復雜的工作負載管理和信息虛擬化功能。(注意,一個組織可能會跨越很多部門、物理位置等。我們此處使用的是 “組織” 一詞的抽象意義。)
上一段提到的特征怎么將網格計算與其他分布式模型區分開來呢?這就是我們在本文中希望解答的問題 。我們不是展望網格的未來,而是探索一下網格的起源,并了解網格技術是如何逐漸成熟的,然后闡述網格技術與其他分布式計算解決方案(例如 P2P 和 CORBA)之間的區別。我們將通過對網格概念與最流行的分布式計算解決方案進行對比來探索這個問題。首先,我們來理解一下網格計算的價值。
為什么要進行網格計算?
在過去幾年中,隨著對自己在信息技術方面投資的重新審視,很多工作公司都得出這樣一個結論:最重要的事情是更充分地利用已有的計算資源。因此,利用率的重要性就不斷增加。從有限的 IT 預算中榨取更多功能已經很有必要。 另外,分布式企業中出現一個廣泛的需求:要求能夠將有限的資源智能地 分配給適當的業務應用程序。這種技術為企業提供了一定的靈活性,形式可能是對資源重新進行分發,來解決新的市場問題;也可能是讓業務應用程序可以更好地服務于迅速變化的現有客戶。
從制造業來看 —— 它們將自己的大部分資源都投入到了利潤最高的產品中 —— 工作負載管理的目標是將計算資源分配給最重要的應用程序。我們稱之為工作負載優化(workload optimization)。這是一個非常有吸引力的概念,不過它可以表示很多業務轉換的挑戰。例如,我們如何確定企業中到底是哪些東西構成了組件或組織上最重要的工作呢?
現在,這種概念所產生的潛在生產力和與向工作負載優化轉化的趨勢相關的商業利益都仍然如此巨大,因此這個概念還不可能被丟棄。網格計算背后的思想是解決平衡和重新分配現有 IT 資源所需要的壓力。接下來,我們來看看這些思想和概念的起源。
網格計算的起源
與 Internet 類似,學術機構在開發構成網格計算基礎的第一代技術和架構時,也走在了最前面。很多機構,例如 Globus Alliance、China Grid 和 e-Science Grid 核心程序,都是第一批開始孵化并培育網格解決方案使其不斷成熟并適用于商業解決方案的地方。
網格誕生于那些非常需要進行協作的研究和學術社區。研究中非常重要的一個部分是分發知識的能力 —— 共享大量信息和幫助創建這些數據的計算資源的效率越高,可以實現的協作的質量就越好,協作級別也越廣泛。
在商業領域也存在這樣需要分發知識能力的一種類似情況。網格計算也可以解決這些需求,這是由于在 Web 服務標準的推動下,業務過程和事務的集成的重要性繼續提高。隨著商業網格計算的繼續采用,(例如由 Global Grid Forum(即 GGF)之類的組織提出)標準會使從實際需求到商業應用程序都會受益。
目前,網格計算從學術界基于標準的技術的早期界定和開發中獲益良多,這些標準可以滿足商業業務所需要的更實際、更穩健的實現需求。我們沒有理由去猜測這種協同趨勢會隨著網格計算的不斷成熟而沒落。
網格填充了一個重要的空白
在過去幾年中,網格處理能力(網格每秒可以處理的位數)和微處理器的速度(它依賴于每個集成電路中晶體管的數量)之間出現了一個巨大的差距,如圖 1 所示。
圖 1. 摩爾定律與存儲發展、光纖發展的比較
正如圖中所示的一樣,網絡處理能力現在每 9 個月就會翻一倍,而在歷史上這種增長曾經一度非常緩慢。摩爾定律指出每個集成電路中晶體管中的數量每 18 個月就會翻一倍。這樣就出現了一個問題。與網絡能力的發展相比,處理器的發展速度(摩爾定律)要慢很多。
如果您接受這樣一個前提:關鍵的網絡技術現在正以比微處理發展速度更快的速度發展,為了利用網絡的優點,我們需要另外一種更有效利用微處理器的方法。這個新觀點改變了歷史上網絡與處理器成本之間的平衡。類似的討論同樣適用于存儲設備。
網格計算就是解決這種差距的手段,它通過將分布式資源綁定在一起構成一個單一的虛擬計算機從而改變了資源之間的平衡。這個資源豐富的虛擬計算機以及應用程序加速所帶來的優點(從幾周變成幾天,從幾天變成幾小時,從幾小時變成幾分鐘,依此類推)為商業業務邏輯提供了一個誘人的前景(不過這也可能會需要在通信業務實踐中作出重大的變化,以價格變化最為突出)。
現在我們已經介紹了網格計算的起源,并給出了一個例子來證明它的重要性,接下來我們將對其與其他分布式計算概念(集群計算、CORBA、DCE 和 P2P)進行比較,這樣就可以
網格與集群計算的區別
集群計算實際上不能真正地被看作是一種分布式計算解決方案。不過對于理解網格計算與集群計算之間的關系是很有用的。通常,人們都會混淆網格計算與基于集群的計算這兩個概念,但實際上這兩個概念之間有一些重要的區別。
網格是由異構資源組成的。集群計算 主要關注的是計算資源;網格計算則對存儲、網絡和計算資源進行了集成。集群通常包含同種處理器和操作系統;網格則可以包含不同供應商提供的運行不同操作系統的機器(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 系統提供的互補優點,我們可以期望這兩種方法最終會殊途同歸,尤其是當網格達到“網格間” 的開發階段時,屆時這兩種技術都將成為一些公共工具。
充分利用數據
我們已經介紹了網格計算的組件和起源,并解釋了它在基于 Web 服務的企業級應用程序中的重要性,并對網格計算與其他 4 種主要分布式計算系統之間的異同進行了簡要的分析。
幾乎每個組織現在都有很多廣泛分布的未用計算能力。虛擬化 —— 網格計算背后的驅動力 —— 可以幫助我們利用這些尚未使用的計算能力,IBM 參與虛擬內存、虛擬存儲和虛擬處理器技術已經有很長的時間了。但是它并不僅僅是為客戶創建這些技術。
文章來源于領測軟件測試網 http://www.kjueaiud.com/