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

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