摘? 要: OGSA的基本結構及其關鍵技術——網格服務,并介紹了實現網格服務的Globus工具包。
關鍵詞: 網格體系結構? OGSA結構? 網格服務
?
1? 網格體系結構
組成網格系統的資源是廣域分散的,不像傳統的計算機體系結構那樣局限于單臺計算機和小規模局域網范圍內。網格計算的最終目標是用網上的多臺計算機構成一臺虛擬的超級計算機。因此,首先應了解網格系統的體系結構。
網格體系結構是關于如何建造網格的技術,包括對網格基本組成部分和各部分功能的定義和描述,網格各部分相互關系與集成方法的規定以及網格有效運行機制的刻畫。網格體系結構是網格的核心技術,只有建立合理的網格體系結構,才能更好地設計和建造網格并使網格有效地發揮作用。
到目前為止,比較重要的網格體系結構有二個。一個是Forster等在早些時候提出的“五層沙漏結構”;另一個是由Globus項目組聯合IBM公司、結合Web Service推出的開放式網格服務體系結構OGSA(Open Grid Services Architecture)。本文介紹的是OGSA體系結構。
2? OGSA
2.1 OGSA體系結構
OGSA被稱為下一代網格體系結構。它是一種基于網格服務的分布式交互和計算體系結構,用來確保異構系統間的互操作性,使不同類型的系統可以相互通信、共享信息。OGSA是在Globus基礎上、結合最新的Web Service技術提出來的。它利用Web Services定義了WSDL(Web Services Definition Language),WSDL定義了服務訪問的參數及其類型。所有的服務都遵循指定的網格服務接口和行為,網格服務的標準接口包含多重綁定和實現。所有的網格服務都是用Globus Toolkit構建的,所以,OGSA的基本思想=網格結構+Web Service+工具包。OGSA的結構如圖1所示。
?

?
2.2 網格服務
OGSA最顯著的特點是以服務為中心。在OGSA框架中,將一切都抽象為服務,包括計算機、程序、數據、儀器設備等。基于網格環境,OGSA在原來Web Service服務概念的基礎上,定義了一個公開的服務語義,即網格服務。
2.2.1 Web Service
OGSA的一個重要支撐技術是Web Service。Web Service描述了一種新出現的、重要的分布式計算范式。它強調基于單個Internet標準XML來解決異構分布計算的問題。它定義了一種技術,用于描述被訪問的軟件組件、訪問組件的方法以及找到相關服務提供者的發現方法。
與Web Service有關的標準分別是SOAP、WSDL、UDDI。SOAP是基于XML的RPC協議,用于描述通用的WSDL目標,通過將SOAP進行擴展(如數字簽名、加密等)支持Web Services框架的安全性。WSDL適用于描述服務,包括接口和訪問的方法,復雜服務可由幾個服務組成,它是Web Services的接口定義語言。SOAP和WSDL都基于XML,這保證了XML的跨平臺操作。同時SOAP一般使用標準的HTTP協議,因此可以透明地穿越合作企業防火墻。當需要將不同平臺下使用不同編程語言開發的應用程序集成為一個相互協調互動的Web應用時,就可以采用WebService技術實現。
2.2.2 網格服務
網格服務是一種提供了定義好的接口的Web Service。這些接口服務包括服務發現、動態服務創建、生存期管理、通知、可操控性等。網格服務可以以不同的方式聚集起來滿足虛擬組織的需要。虛擬組織自身也可以部分地根據它們操作和共享的服務來定義。
可以說,網格服務=服務數據+不同的接口,通過運行產生的實例可能運行在不同的運行環境上,與每個服務實例有關的是一系列服務數據。一組定義了不同服務的接口構成了WSDL的接口類型,每個網格服務都必須支持網格服務接口。網格服務提供的接口包括Factory、Registry、GridService、NotificationSource、NortificationSink等。網格服務接口對應于WSDL中的portTypes,在網格服務中用serviceType來描述,serviceType是OGSA定義的WSDL的擴展元素。
(1)網格服務接口
OGSA的不同功能通過不同網格服務的接口實現。下面是與服務接口相關的一些概念。
①網格服務實例的語義。OGSA定義了網格服務實例的語義:它是如何被創建的和被命名的,生命周期是如何被確定的以及如何與它進行通信等。OGSA允許應用程序和用戶創建瞬時服務,發現和確定可用服務的屬性。OGSA中,Factory、Registry、GridService和HandleMap等接口都支持創建瞬時服務實例,并支持發現與實際的組織相關聯的服務實例以及確定這些服務實例的特征。
目前的網格應用程序通常依賴本機操作系統作為它們的托管環境,創建新的服務實例要涉及到創建新的流程。在OGSA上下文中,托管環境(容器)主要負責確保它支持的服務遵守網格服務語義,這樣,OGSA就可以促進對容器/組件接口的修改或添加。
②軟狀態管理。OGSA中的服務主要是臨時服務,臨時服務必然會有一個服務生命周期的問題。OGSA引入了軟狀態,網格服務通過維護一個內部狀態來管理服務的生命周期,以便把一個服務實例與另一個提供相同接口的服務實例區分開來。服務通過交換消息進行交互。由于內部狀態的存在,因而保證服務一次性收到一條完整消息的能力十分重要。軟狀態協議通過不斷收到keepalive消息,不斷進行狀態刷新來維持存活。在一個結合了瞬時的、有狀態的服務實例的系統中,必須提供一些機制使操作失敗的服務恢復原狀。假設用戶應用程序因為某種原因失敗了,網格服務計算暫時還在繼續,但如果沒有其他方對計算結果感興趣,就不再生成keepalive消息。由于應用程序出了故障,keepalive消息停止了,網格服務實例最終超時,這時釋放它們使用的存儲和計算資源,網格服務即終止。
③網格服務句柄。由于網格服務是動態的并且是有狀態的,所以每個網格服務實例都被分配了一個全局惟一的名稱,即網格服務句柄(GSH)。它是一個惟一標識該服務的URL,將網格服務實例區別開來。GSH不能攜帶與特定協議或者實例相關的信息,因此必須將這些相關信息封閉起來,和其他特定實例相關的信息一起,形成一個稱為網格服務引用(GSR)的抽象實體。在網格實例的生命周期中,該實例的GSH不會改變,而GSR會改變。如果GSR改變了,則必須將該服務的GSH映射到一個新的GSR。GSR格式能將客戶端與網格服務實例通信的機制綁定起來。例如,如果客戶端使用SOAP綁定,則GSR需要采取一種有注解的WSDL文檔格式。
④服務注冊。支持通過持續收集GSH及其有關規則的服務發現的網格服務叫做注冊。如果客戶端想發現其服務能力、屬性和其他相關規則,則可以通過請求注冊服務來實現。注冊服務可由注冊接口和相關的服務數據元素來定義。注冊接口提供GSH的注冊操作;相關的服務數據元素包括注冊GSH需要的信息,Registry接口主要用于注冊一個GSH。
⑤通知機制。OGSA的通知機制將感興趣的消息從源端發向目的端。NotificationSource是一種發布消息的網格服務實例,NotificationSink則是一種接收消息的網格服務實例。要通知一特定的網格服務,消息的接收方用自己的GSH通過NotificationSource接口激活訂閱操作,操作執行后,通知消息便從源端發向目的端,同時目的端不斷發送存活消息給源端,告知源端它仍對接收通知感興趣。OGSA通知機制與服務數據緊密結合,一個訂閱操作只是請求一系列在特定條件下要傳送的服務數據。
(2)服務數據
在網格服務中,與每個服務實例有關的是一系列服務數據。這種服務數據是由XML單元壓縮成服務數據單元匯集而成,它為網格服務實例的信息提供一個標準的表示法。OGSA的這個重要特征提供了潛在的動態網格服務性質的基礎。每個服務單元包括獨一無二的網格服務實例名稱、類型以及用于生命周期管理的存活時間信息。
例如:在portType中聲明serviceData,定義一個CPU接口的代碼如下所示:
……
……
……
……
在上例中,包含了CPUSpeed和CPULoad二個服務數據。CPULoad服務數據元素包含了原始的服務數據元素。
服務數據包含以下二方面的內容:①元數據,它是有關服務實例結構的數據。②狀態數據,它是有關服務實例
的屬性。它們把服務數據與服務實例聯系起來。首先,一個服務描述可以包含服務數據元素(SDEs);其次,每個實例也維持一個它自己的特殊實例SDEs集或一般實例SDEs集,它們可包括額外的動態或靜態SDEs。客戶端可以用FindServiceData操作來請求實例SDEs集。
2.3 OGSA開發工具Globus Toolkit
網格結構采用Globus技術實現對互聯網上計算資源、存儲資源等各種資源的共享。現有的數據共享和互操作方案(如P2P、COM/DCOM、CORBA、DCE、J2EE等),在共享配置的靈活性、動態性和共享資源的種類上不能完全滿足動態虛擬組織的需要。Globus技術首先定義一系列支持網格計算的通信協議(如網格計算安全協議、網格計算的數據傳輸協議、網格計算的信息獲取協議等),然后在這些協議之上開發出支持網格計算的服務(如網格安全服務、網格信息服務、網格數據傳輸服務等),以實現互聯網上各種資源的動態共享。
所有的網格服務都是用Globus Toolkit構建的。它來自開放源代碼社區。Globus Toolkit可支持分布式狀態管理、輕量級的檢查和發現以及異步通知。該工具包也是支持網格和網格應用程序的軟件庫,解決了安全性、信息發現、資源管理、數據管理、通信、故障檢測和可移植性等問題。
現有的網格開發應用項目中,有很多是基于Globus Toolkit 2.0(GT2)。但是GT2有著不可克服的缺點,例如:在GT2中,調用、通知、授權等沒有標準的語義,缺少對數據庫、儀器、工作流的支持;對整個網格系統層次的系統特性,如可靠性、端對端QoS、事務等支持較少。為了克服這些缺點,Globus項目組聯合IBM公司共同推出了OGSA網格體系結構。OGSA網格體系結構集中了GT2和工業界已經廣泛認同的B2B平臺Web Services的優點。Globus Toolkit 3.0(GT3)以OGSA核心基礎設施為基礎,是OGSI(Open Grid? Service Infrastructure,開放式網格基礎設施)的一種參考實現。
3? 結束語
OGSA是目前最重要也是最新的一種網格體系結構。現有的大多數Web Services都可以按照體系結構和特定的技術組件被設計成網格計算空間,用以增強當前網格計算基礎架構。但作為一個新興技術,OGSA還不夠成熟,需要進一步完善。隨著OGSA相關技術和網格應用的發展,OGSA會不斷得到完善和提高,它將直接推動網格計算的發展。
?
參考文獻
1?都志輝,陳渝.網格計算.北京:清華大學出版社,2002
2?Foster I,Kesselman C,Nick J et al.The Anatomy of the?Grid:Enabling Scalable Virtual Organizations.Supercomputer Applications,2001
3?Foster I,Kesselman C,Nick J et al.The Physiology of the?Grid:An Open Grid Services Architecture for Distributed? Systems Open Grid Service Infrastructure.Global Grid Forum, 2002;(6)
4?Tuecke S,Czajkowski K,Foster I.Grid Service Specification,Draft3.http://www.gridforum.org/ogsi-wg,2002
