1. 程式人生 > >Jeffery Lee的專欄

Jeffery Lee的專欄

GRID新手入門

網格計算入門

許多對網格計算感興趣的讀者都會問一些非常基本的問題:

* 從哪裡開始?

* 如何使用這些資料?

* 如何把這些資料串到一起?

* 我該如何適應網格計算?

* 是否已經有網格專案可以參與?

這正是這樣一份指南,指導您學習網格技術提供的令人激動的優點。本文在適當的上下文環境中介紹了網格計算的基本概念,並把相關的 developerWorks 文章、教程、技巧、IBM 學習服務教育、研討會和 IBM 產品串聯到一起,供日後深入研究。本文以一種直觀的框架介紹網格計算,嘗試整合多方資料,同時突出重點。

如果您感覺這些還不夠,那就對了。因為網格領域正在迅速發展。網格計算擁有紮實的學術研究基礎,並被穩健地運用到商業應用中。標準、框架、實現和應用程式的改變日新月異。當前的網格計算也許會讓您想起從前的

Web,或者 XML Web 服務的出現,它們一開始發展也都非常緩慢。但是與這些技術領域一樣,一旦穩定的標準和工具的產生,並且相互融合,那麼我們可以預測網格計算領域就會快速成長。因此,我們撰寫了這份指南,讓開發人員可以有一個基礎來了解網格技術了。

什麼是網格計算?

由於網格計算是一種新興的技術,對於不同的人來說可能會有不同的定義,但是網格計算有一個非常簡單卻又廣泛適用的定義:

有了網格計算技術,您可以將伺服器、儲存系統和網路聯合在一起,組成一個大的系統,從而為使用者提供功能強大的多系統資源來處理特定的任務。對於終端使用者或應用程式來說,資料檔案、應用程式和系統看起來就像是一個巨大的虛擬計算系統。

網格計算是分散式網路發展的下一代產物。就像是 Internet 讓使用者可以分享思想和檔案並以此來滋生專案一樣,網格計算讓我們可以分享分散的計算系統資源,這樣人們就可以真正地開展這些專案的工作。網格計算利用了計算機(及其使用者)的能力來進一步的通訊:有了網格計算之後,您就可以走出門去使用其他人的計算和儲存資源,而不僅僅限定在您自己所擁有的範圍之內。

有了網格計算之後,組織就可以將自己分佈的、難以管理的系統轉換到一個大型的虛擬計算機上,這樣就可以讓那些由於工作量太大而在一臺計算機上很難處理的問題和流程可以得到有效的處理。要解決的問題包括資料處理、網路頻寬以及資料儲存的問題。連結到網格中的系統可能在同一間房子裡面,也可能分佈於世界上的各個角落。它們可能執行在不同的作業系統和硬體平臺。甚至它們歸屬於不同的組織。不管網格資源的深度如何,所有的網格使用者所體驗到的都是一個巨大的虛擬計算機處理資源。

網格的主要目的是對資源進行虛擬化來解決問題。網格計算用來訪問的資源主要包括(但不侷限於)以下內容:

* 計算/處理能力。

* 資料儲存/網路檔案系統。

* 通訊和頻寬。

* 應用程式軟體。

由於真正構建網格的概念也還比較新,因此另外一種好的描述網格的方法就是解釋清楚網格不是什麼。以下都不是網格:

* 叢集

* 網路附加儲存裝置

* 科學設施

* 網路

這些都可能是網格中的重要元件,但是它們本身卻並不構成網格。能夠把幾百萬臺計算機緊密聯結在一起——叢集、工作站、臺式PC、超級計算機——提供資料儲存、工具、視覺化裝置,一直是網格計算技術所力爭實現的夢想。而一旦能成為現實,網格計算將能給科學以及工業界帶來革命性的改變。

那麼,需要採取些什麼措施才能將網格計算的概念所展示的遠景變成現實呢?這需要制定一些標準和無縫的、開放的通用協議和介面,所有這些東西現在都在定義之中,這些與允許從 Web 訪問資訊的技術非常相似。

更多資訊:

  • 詳細介紹了網格是如何構成的,並與其他分散式系統進行了比較。
  • 描述了網格計算和平行計算之間異同。
  • IBM 紅皮書雖然是在幾年之前發表的,但是這本紅皮書收集的有關網格計算及其概念和體系結構的內容現在仍然非常有用。
  • ,這裡有豐富的白皮書、分析報告和成功案例。此處解釋了網格是什麼,為什麼說網格非常有用,以及 IBM 如何幫助您利用網格技術。
  • IBM
  • Ian FosterCarl Kesselman Steven Tuecke 撰寫的準白皮書對網格計算的領域進行了定義,並重點介紹了網格的體系結構。
  • Ian FosterCarl KesselmanJeffrey Nick Steven Tuecke 撰寫的介紹瞭如何在 Web 服務環境中利用網格計算。
  • 能幫助您在網格計算、SOA、基礎架構,以及虛擬化等概念中找出它們之間的不同和優異之處。

上面有很多為網格技術新手準備的,有關網格計算的介紹性讀物。

為什麼網格計算非常重要?

網格計算將會把許多計算機聯合到一起工作。幾乎所有機構都存在大量的閒置計算資源,廣泛分佈在各個地方。UNIX® 伺服器只有少於10% 的時間在真正“執行”任務,幾乎所有的 PC 每天有 95% 的時間什麼都不做。請想象一下,如果一家航空公司 90% 的飛機在地面上,一家汽車製造商 40% 的組裝車間被閒置,或者一家連鎖旅店 95% 的房間是空置的,那該是多麼糟糕的情況。

計算環境的虛擬化(或稱為網格計算)是 IBM 隨需應變策略中的一個關鍵元件。虛擬化讓組織可以:

* 使用空閒的計算機資源來加速業務處理過程。

* 加速應用程式的執行,這樣就可以縮短處理時間,從而可以快速對市場做出響應。

* 開發更新的、生產效率更高的應用程式。

* 降低開發新應用程式的成本。

* 提高協作能力和生產能力。

* 最大化使用者可以使用的資源。

* 提高 IT 環境的彈性和利用率。

系統管理員和開發人員可以從網格計算中獲益,這是因為網格讓他們可以:

* 優化基礎設施來平衡任務負載,併為高需求的應用程式提供額外的處理能力。

* 提高對資料的訪問,支援不同學科、組織和業務之間的協作。

* 提供彈性更好的基礎架構。

業務也可以從網格計算中獲益,這是因為可以:

* 提高生產效率,這是通過為使用者提供需要的資源而實現的。

* 更有效地使用現有的資源。

* 快速響應業務和市場需求的變化。

* 可以在不同實體之間進行協作。

* 建立一些可以共享資源和資料的虛擬組織。

網格計算所解決的一個最重要的業務問題是提高了對現有資源的利用率。公司對計算能力進行了非常大的投資,但是大部分站點在 90% 的時間裡面都是空閒的。網格計算可以幫助這些業務連線到那些沒有充分使用的機器上,利用它們的計算能力,將其作為一個大型計算機進行管理。

更多資訊:

  • 這裡有許多關於真實的組織部署網格的

我可以使用網格計算做些什麼?

Internet 一樣,網格計算也起源於研究和學術領域。現在,商業企業也開始使用網格了。網格計算帶來了新型的財務和商業模型,以下是一些例子:

* 在財經服務領域,網格計算被用於加速交易處理、處理海量資料,併為只能容忍極短停機時間的關鍵業務(mission-critical)工作平臺提供更穩定的 IT 環境。

* 政府機關使用網格來集中、保護和整合大量資料儲存。許多市政和軍事機構都特別要求跨代理機構協作、資料整合和安全,以及跨數千個數據儲存庫快速獲取資訊。

* 涉足生命科學(比如基因組研究和藥物開發)的公司使用並行和網格計算對大量資料執行處理、淨化、交叉製表和比較操作。更快的處理速度意味著更快地佔領市場。在這些行業,任何微小的優勢都可能成為決定因素。

這些面向網格的業務模型不僅僅是 可以 實現,而且有些已經實現了(在您閱讀下面這些例子時會看到)。

更多資訊:

網格計算有哪些主要元件?

網格計算有 6個主要元件:

* 安全性

* 使用者介面

* 任務負載管理

* 排程

* 資料管理

* 資源管理

現在讓我們詳細介紹一下各個元件。

網格中的計算機都連線到了網路上,並且都正在執行應用程式。它們可能正在處理敏感的或非常有價值的資料,因此網格的安全性元件是非常值得關注的一個問題。這個元件包括諸如加密、認證和授權之類的元素。

訪問網格中的資訊也非常重要,使用者介面元件為使用者處理這種任務。這通常有兩種方法:

* 由使用者正在執行的應用程式提供介面

* 由網格管理員提供的介面,可能是 Web 門戶,在一個單一的虛擬空間中為應用程式和網格中的可用資源提供訪問許可權

門戶風格的介面也非常重要,因為這可以幫助使用者瞭解如何對網格進行查詢。

使用者想要在網格上執行的應用程式必須瞭解有哪些資源可用。這就是任務負載管理服務的用武之地了。應用程式可以與任務負載管理器進行通訊,從而瞭解可用的服務以及這些服務的狀態。

排程器需要用來定位在哪個計算機上執行應用程式,並分配所需要的作業。這可以非常簡單,只是利用下一個可用資源;但是通常都會涉及作業佇列的優先順序排序、管理負載、在需要保留資源時尋找其他資源並對整個過程進行監視。

如果應用程式正在某個系統上執行,而這個系統卻沒有應用程式所需要的資料,那麼就需要採用一種安全可靠的資料管理機制將資料通過各臺計算機移動到正確的位置,這可能需要採用各種協議。

要處理這種關鍵的任務,例如使用特定的資源來啟動作業、監視這些作業的狀態並返回結果,就需要一種資源管理機制。

重要的一點是,記住網格計算並不是在一個真空環境中進行操作的:它可能要利用目前的各種協議和計算機技術。記住這一點之後,為了充分理解網格計算的功能,您可能還需要學習下面這些技術和標準。

更多資訊:

有關這些技術和規範的簡介:

網格計算有哪些相關標準?

要更好地理解網格計算所涉及的標準,您還需要理解網格架構是如何定義的。這樣就可以瞭解一點兒有關 OGSA 對架構定義的知識,這是由 Global Grid ForumGGF)成員之一開發的。

架構—— OGSA 定義了什麼是網格服務,並定義了網格環境提供的整體結構和服務。網格服務是建立在 Web 服務的標準之上,OGSA 將網格服務定義為一個符合特定規範的 Web 服務。例如,網格服務的定義採用了帶有少許擴充套件的標準 WSDLWeb Services Definition LanguageWeb 服務定義語言)。

這一點為什麼十分重要?因為這樣的話,我們就可以使用現有的標準(比如 SOAPXML WS-Security)來訪問各種網格服務。有了這個基礎,我們就可以無縫地新增並整合其他服務了(例如生命週期的管理)。當新的網格服務可用時,我們可以通過標準的方式查詢、識別和利用它們。

除此之外,OGSA 將會為採用不同底層工具構建的網格服務提供彼此之間的互操作性。

規範——網格規範正在逐漸出現。GGF 上有很多工作組正忙於在各個領域定義一系列網格標準,這些領域包括:

* 應用程式和程式設計模型

* 架構

* 資料管理

* 安全性

* 效能

* 排程和資源管理

開放網格服務基礎設施(Open Grid Services InfrastructureOGSI) OGSA 用於描述概念的正式規範,不過正在被 Web 服務資源框架(Web Services Resource FrameworkWSRF)所取代。WSRF 的目標是能夠以一種更能接近通用的 Web 服務的方式來提供網格架構,這些規範可以讓在 OGSA 中定義的服務完全基於標準的 Web 服務。

(注:OGSIGT3.2中被廣泛使用,WSRF則被GT4採用)

您應該對這些正在不斷髮展的網格標準瞭解多少呢?這要看情況決定。IBM 和其他一些業界的領先者與研究人員和來自很多網格軟體供應商的代表們一起積極地參與到網格標準的制定工作中來。您是一個社團的軟體開發人員麼?如果是,那麼您就可能會使用基於這些新標準的網格工具和產品。此時您就可能希望瞭解一下這些標準,並瞭解這些工作的進展情況。

更多資訊:

  • 利用這些 developerWorks 教程學習有關 WSRF 的知識(2005 3 月)。
  • developerWorks 中國提供了豐富的文章、教程、新聞和培訓資料,可以幫助開發人員快速瞭解 SOA Web 服務技術。
  • PDF)介紹瞭如何利用網格機制實現一個 SOA,並解釋瞭如何在一個 Web 服務框架中整合網格功能,還闡述瞭如何在商業計算中利用這種架構作為分散式系統整合的基礎,這可以在組織內部,也可以是跨組織的。

我可以馬上構建網格嗎?

當然。您可以使用開放原始碼工具或者供應商提供的專利工具和產品馬上開始構建網格。隨著時間推移,網格標準將會穩定下來,那時供應商將會提供符合新標準的工具,使您可以更加方便地把各個元件結合到一起。

對於構建網格來說,哪些技術是基礎的呢?服務在網格計算中是至關重要的。這些服務包括:

* 資料查詢

* 資料管理

* 處理器請求

* 任務負載的平衡

* 作業排程

* 頻寬分配

在網格服務中可以呼叫這些服務。有些計算機會執行網格服務,另外一些計算機則會執行應用程式,它們作為客戶機與網格服務進行聯絡。網格服務實際上就是具有其他功能的 Web 服務。

Web 服務——一組可以通過網路進行呼叫的應用程式,讓應用程式可以相互進行通訊,而不管採用哪種平臺或哪種程式語言。

要構建網格,您需要一些工具。網格工具可以分為以下幾類:

* 基礎設施基礎設施包括檔案系統、排程程式和資源管理器、訊息傳送系統、安全應用程式、證書頒發機構,以及像 GridFTP 這樣的檔案傳輸機制。

* 網格上的系統必須能夠發現可用的服務。簡言之,網格系統必須能夠定義(和監視)網格的拓撲,這樣才能達到共享和協作的目的。許多網格目錄服務實現建立在以往成功的模型之上,比如 LDAPDNS、網路管理協議和索引服務。

* 網格的主要優勢之一在於效率最大化,這可以通過排程程式和負載均衡器實現。排程程式確保任務按照一定的順序(例如,優先順序、最後期限、緊急程度)來完成,負載均衡器在整個系統內分配任務和資料管理,減少瓶頸產生的機會。

* 開發人員工具針對網格開發人員的工具定位各有不同(檔案傳輸、通訊、環境控制),其範圍覆蓋了從各種工具程式到所有 API

* 網格環境的安全性是指驗證和授權——換句話說,也就是控制誰/什麼可以訪問網格的資源——但不侷限於此。例如,訊息完整性和訊息保密性在財務和醫療領域中是十分重要的。

現在要構建一個網格,從下載 Globus Toolkit 開始是一個不錯的選擇。該工具由 Globus Project 開發,這是一個致力於把網格概念應用於科學和工程計算的研究和開發專案。這個工具由一組支援網格和網格應用程式的服務和軟體庫組成。

Commodity Grid KitsCoG)提供了通過特定的框架來訪問網格服務的能力,包括 Java™、 Python Perl

更多資訊:

怎樣才能在我的應用程式中啟用網格?

這需要一定的規劃。

首先需要考慮網格的基本結構和它所提供的服務。您必須知道如何把基礎設施的各個部分組合到一起,其中包括安全性、資源管理、資訊服務和資料管理,這些將會影響應用程式的架構、設計和部署。

更多資訊: