摘要:首先通過(guò)對(duì)網(wǎng)格計(jì)算和Web服務(wù)的討論,得出了網(wǎng)格和Web服務(wù)融合的結(jié)論;然后引入移動(dòng)代理,進(jìn)一步擴(kuò)展網(wǎng)格服務(wù)。
關(guān)鍵詞:網(wǎng)格服務(wù); Web服務(wù); 移動(dòng)代理
中圖法分類號(hào):TP311.12文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1001-3695(2007)01-0043-03
1引言
網(wǎng)格計(jì)算(Grid Computing)是一個(gè)分布式和并行計(jì)算的支持平臺(tái),是一種無(wú)縫的集成計(jì)算和協(xié)同環(huán)境。它可以作為虛擬的整體使用在地理上分散的計(jì)算資源,如高速互連的異構(gòu)計(jì)算機(jī)、數(shù)據(jù)庫(kù)、科學(xué)儀器、文件和超級(jí)計(jì)算系統(tǒng)等。
開放網(wǎng)格服務(wù)結(jié)構(gòu)(Open Grid Services Architecture,OGSA)定義了網(wǎng)格服務(wù)(Grid Service)的概念。在OGSA中,將一切都看作是網(wǎng)格服務(wù),因此網(wǎng)格就是可擴(kuò)展網(wǎng)格服務(wù)的結(jié)合,即網(wǎng)格={網(wǎng)格服務(wù)}。
網(wǎng)格服務(wù)是擴(kuò)展了的Web Service。一個(gè)Web Service就是一個(gè)可以被URI識(shí)別的軟件應(yīng)用,其接口和綁定可以被XML(eXtensible Markup Language)描述與發(fā)現(xiàn),并且可以通過(guò)基于Internet的協(xié)議直接支持與其他基于XML消息的軟件應(yīng)用的交互。
本文首先對(duì)網(wǎng)格通信與Web Service作出分析,得出網(wǎng)格計(jì)算與Web Service融合的結(jié)論;然后闡述了網(wǎng)格服務(wù)的概念;最后引入移動(dòng)代理,分析網(wǎng)格服務(wù)的改進(jìn)。
2網(wǎng)格計(jì)算與Web Service
2.1網(wǎng)格通信
在網(wǎng)格計(jì)算中,基本存在兩種主要的組件類型,即服務(wù)器和客戶機(jī)。服務(wù)器用于分發(fā)工作請(qǐng)求及保存有關(guān)構(gòu)成整個(gè)工作的獨(dú)立工作單元的信息;客戶機(jī)(典型情況下有多個(gè))負(fù)責(zé)處理獨(dú)立的工作單元。這兩者之間的通信方式有多種,但是系統(tǒng)的核心是對(duì)工作的分發(fā)。系統(tǒng)采用兩種工作方式中的一種,要么是客戶機(jī)管理自己的工作流,并向服務(wù)器請(qǐng)求新的工作單元,要么是服務(wù)器將工作單元分發(fā)給客戶機(jī)。
通信過(guò)程通常還需要額外的服務(wù)器和服務(wù)來(lái)支持網(wǎng)格服務(wù)器的基礎(chǔ)設(shè)施,它們相互之間需要進(jìn)行對(duì)話并交換信息。關(guān)鍵的問(wèn)題在于,通常情況下網(wǎng)格解決方案中交換的是相當(dāng)分散的信息片斷。在客戶機(jī)與服務(wù)器之間交換的是原始的工作單元和處理之后的響應(yīng),甚至在數(shù)據(jù)負(fù)載相當(dāng)高的情況之下,如進(jìn)行數(shù)據(jù)處理或視頻呈現(xiàn)時(shí),我們依然在交換信息包,而不是在客戶機(jī)和服務(wù)器元素之間建立完全、雙向、永久的通信。
規(guī)則中當(dāng)然總有例外,并不是所有的網(wǎng)格系統(tǒng)都依賴于如此直接的簡(jiǎn)單包交換。比如說(shuō),資源網(wǎng)格通常依賴于網(wǎng)格提供者(客戶機(jī))之間相當(dāng)繁重的相互通信,這樣才能在網(wǎng)格上實(shí)現(xiàn)實(shí)時(shí)的存儲(chǔ)請(qǐng)求。不過(guò)在這些情況下,即便當(dāng)客戶機(jī)之間直接進(jìn)行通信,依然是一種基本的信息交換。因此,如果我們僅僅在交換信息,當(dāng)然就應(yīng)該用一種標(biāo)準(zhǔn)的方法在服務(wù)器和客戶機(jī)之間進(jìn)行通信,即Web服務(wù)。
2.2Web Service概覽
在能夠理解Web Service如何為網(wǎng)格解決方案提供支柱之前,我們需要理解 Web Service的工作方式。最簡(jiǎn)單的方法是將其想像成一種遠(yuǎn)程過(guò)程調(diào)用(RPC),通過(guò)這種方式我們可以從一臺(tái)計(jì)算機(jī)(客戶機(jī))上調(diào)用某個(gè)功能,而代碼和實(shí)際的功能是在另外一臺(tái)計(jì)算機(jī)(服務(wù)器)上執(zhí)行的。
通過(guò)以某種方式標(biāo)準(zhǔn)化信息的交換過(guò)程,就得到了Web Service,請(qǐng)求和響應(yīng)均以 XML 編碼。從基本相同的技術(shù)派生出兩個(gè)變種:①XMLRPC 的設(shè)計(jì)目標(biāo)與其縮寫名所暗示的完全一樣——發(fā)送和接收用 XML 格式化的遠(yuǎn)程過(guò)程調(diào)用;②簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(Simple Object Access Protocol, SOAP)更加高級(jí),SOAP 的核心依然是一種 RPC 技術(shù),但是這種技術(shù)經(jīng)過(guò)增強(qiáng),可以實(shí)現(xiàn)對(duì)一個(gè)對(duì)象的遠(yuǎn)程操縱,這樣 SOAP 就不是一種簡(jiǎn)單的 RPC 調(diào)用,而是可以創(chuàng)建對(duì)象、操縱對(duì)象,并用這個(gè)對(duì)象在服務(wù)器與客戶機(jī)之間進(jìn)行更加確切和格式化的信息交換。
Web Service可以由任何一種 Web 服務(wù)器提供,可以在幾乎所有的支持平臺(tái)上用幾乎所有的語(yǔ)言書寫,其中包括Perl,Python,C/C++,Java 語(yǔ)言以及 Visual Basic。Web 服務(wù)的核心基本上是 Web 服務(wù)器上的一個(gè)動(dòng)態(tài)組件,它能夠正確地處理 Web 服務(wù)請(qǐng)求和響應(yīng)。這意味著在很多情況下,可以很容易地在已有系統(tǒng)中創(chuàng)建一個(gè) Web 服務(wù)的接口,需要做的只是在通常進(jìn)行的常規(guī)系統(tǒng)調(diào)用外圍編寫的一個(gè)包裝器。
2.3網(wǎng)格計(jì)算與Web Service的融合
到目前為止,我們已經(jīng)探討了通過(guò)交換信息而實(shí)現(xiàn)的網(wǎng)格技術(shù),這種交換既可以在服務(wù)器和客戶機(jī)之間進(jìn)行,也可以直接在客戶機(jī)之間進(jìn)行,從而實(shí)現(xiàn)對(duì)信息的處理和分發(fā)。但是這種交換系統(tǒng)需要借用某種方式進(jìn)行真正的信息交換。這些年來(lái),人們使用了很多種系統(tǒng),包括 FTP 協(xié)議和定制的協(xié)議系統(tǒng)。
目前在 Web 服務(wù)陣營(yíng)中,我們已經(jīng)擁有了一種通用的工具可以用來(lái)在兩臺(tái)機(jī)器之間交換信息,如請(qǐng)求執(zhí)行某項(xiàng)特定的功能,或簡(jiǎn)單地在這兩者之間交換信息。因?yàn)閃eb Service是建立在 XML 等其他標(biāo)準(zhǔn)之上的,因此很容易開發(fā)并擴(kuò)展到各種不同環(huán)境中,并且也容易部署。我們擺脫了不同系統(tǒng)間數(shù)據(jù)交換的所有問(wèn)題,并且不需要擔(dān)心處理器字節(jié)中的位次序,也不需要將我們傳遞的信息轉(zhuǎn)換成中性格式,因?yàn)閃eb Ser ̄vice的標(biāo)準(zhǔn)已經(jīng)替我們做了這些事情。 在一個(gè)網(wǎng)格計(jì)算環(huán)境中,Web Service能夠扮演網(wǎng)格節(jié)點(diǎn)的角色;而在一個(gè)Web Service環(huán)境中,用戶也將網(wǎng)格系統(tǒng)當(dāng)作服務(wù)進(jìn)行調(diào)用。
因?yàn)樾枰媚撤N類型的偵聽程序/分發(fā)服務(wù)來(lái)處理請(qǐng)求、分發(fā)工作以及收集結(jié)果,所以,Web Service就是最理想的選擇。Web Service系統(tǒng)帶來(lái)的主要益處在于,因?yàn)樗蕾囉?HTTP,因此很容易將Web Service集成到已有的 HTTP 平臺(tái)、路由器、防火墻以及其他系統(tǒng)中。大多數(shù)組織已經(jīng)運(yùn)行了 HTTP 服務(wù),因此可以用已有的技術(shù)和安全系統(tǒng)來(lái)支持網(wǎng)格系統(tǒng),而不需要對(duì)網(wǎng)絡(luò)進(jìn)行改造,也不會(huì)對(duì)網(wǎng)格系統(tǒng)中的設(shè)備造成限制。
這樣,用 Web 服務(wù)開發(fā)網(wǎng)格系統(tǒng)就具有了一些無(wú)可比擬的優(yōu)勢(shì),其中包括:
①增強(qiáng)的兼容性;
②增強(qiáng)的靈活性;
③通過(guò)消除數(shù)據(jù)交換的復(fù)雜性使跨平臺(tái)開發(fā)成為可能;
④很容易部署在已有的Web 服務(wù)器上;
⑤很容易通過(guò)已有的 HTTP 安全機(jī)制與防火墻的支持來(lái)提供安全性;
⑥通過(guò) Intranet 或 Internet 訪問(wèn)網(wǎng)格組件的難度降低,這樣就使得通信變得容易,可訪問(wèn)性增強(qiáng)。
Web 服務(wù)方法還帶來(lái)其他一些好處。Web 服務(wù)可以通過(guò)多種不同的 Web 服務(wù)目錄和系統(tǒng)發(fā)布,其中包括像統(tǒng)一描述、發(fā)現(xiàn)與集成(Universal Description,Discovery and Integration,UDDI)和 Web 服務(wù)描述語(yǔ)言(Web Services Description Language, WSDL)這樣的系統(tǒng)。為了讓網(wǎng)格計(jì)算更容易部署,我們需要通過(guò)這樣的目錄和系統(tǒng)來(lái)發(fā)布服務(wù)。
出于所有上面這些理由以及更多的原因,Web Service已經(jīng)逐漸成為新的網(wǎng)格服務(wù)標(biāo)準(zhǔn)——開放網(wǎng)格服務(wù)架構(gòu)以及與之相伴的開放網(wǎng)格服務(wù)基礎(chǔ)設(shè)施(Open Grid Services Infrastructure, OGSI)的一個(gè)組成部分。
3開放網(wǎng)格服務(wù)體系結(jié)構(gòu)
開放網(wǎng)格服務(wù)結(jié)構(gòu)OGSA是Global Grid Forum4的重要標(biāo)準(zhǔn)建議,是繼五層沙漏結(jié)構(gòu)之后最重要,也是目前最新的一種網(wǎng)格體系結(jié)構(gòu),被稱為是下一代的網(wǎng)格結(jié)構(gòu)。
如果說(shuō)五層沙漏結(jié)構(gòu)是以協(xié)議為中心的協(xié)議結(jié)構(gòu),則OGSA就是以服務(wù)為中心的服務(wù)結(jié)構(gòu),如圖1所示。
這里的服務(wù)是指具有特定功能的網(wǎng)絡(luò)化實(shí)體,在五層沙漏結(jié)構(gòu)中,強(qiáng)調(diào)的是被共享的物理資源(或者是這些資源所支持的服務(wù))。在OGSA中,服務(wù)所指的概念更廣泛,包括各種計(jì)算資源、存儲(chǔ)資源、網(wǎng)絡(luò)、程序、數(shù)據(jù)庫(kù)等,簡(jiǎn)而言之,一切都是服務(wù)。五層模型試圖實(shí)現(xiàn)的是對(duì)資源的共享,而在OGSA中,實(shí)現(xiàn)的是對(duì)服務(wù)的共享。從資源到服務(wù),這種抽象將資源、信息、數(shù)據(jù)等統(tǒng)一起來(lái),十分有利于靈活的、一致的、動(dòng)態(tài)的共享機(jī)制的實(shí)現(xiàn),使得分布式系統(tǒng)管理有了標(biāo)準(zhǔn)的接口和行為。為了使服務(wù)的思想更加明確和具體,OGSA定義了網(wǎng)格服務(wù)的概念。網(wǎng)格服務(wù)是一種Web Services,該服務(wù)提供了一組接口,這些接口的定義明確并且遵守特定的慣例,解決服務(wù)發(fā)現(xiàn)、動(dòng)態(tài)服務(wù)創(chuàng)建、生命周期管理、通知等問(wèn)題。在OGSA中,將一切都看作是網(wǎng)格服務(wù),因此網(wǎng)格就是可擴(kuò)展的網(wǎng)格服務(wù)的結(jié)合,即網(wǎng)格:={網(wǎng)格服務(wù)}。網(wǎng)格服務(wù)能以不同的方式聚集起來(lái)滿足虛擬組織的需要,虛擬組織自身也可以部分地根據(jù)它們操作和共享的服務(wù)來(lái)定義。
網(wǎng)格服務(wù)=接口/行為+服務(wù)數(shù)據(jù)。與五層模型一樣,在OGSA中也非常重視互操作性。但是從服務(wù)的觀點(diǎn)來(lái)看,OGSA將互操作性問(wèn)題轉(zhuǎn)換為兩個(gè)子問(wèn)題,即定義服務(wù)的接口和識(shí)別激活特定接口的協(xié)議。五層模型是按照支持虛擬組織互操作協(xié)議要求來(lái)構(gòu)造的,更多地體現(xiàn)出一種解剖學(xué)的特點(diǎn);而OGSA強(qiáng)調(diào)的是與協(xié)議相對(duì)應(yīng)的服務(wù),側(cè)重于實(shí)體表現(xiàn)出來(lái)的行為特征,即特定對(duì)象的生理機(jī)能。
以網(wǎng)格服務(wù)為中心的模型具有如下好處:
(1)由于網(wǎng)格環(huán)境中所有組件都是虛擬的(這里的具體含義是指對(duì)相同接口實(shí)現(xiàn)不同的封裝),因此,通過(guò)提供一組相對(duì)統(tǒng)一的核心接口,所有的網(wǎng)格服務(wù)均基于這些接口實(shí)現(xiàn),就可以很容易地構(gòu)造出具有層次結(jié)構(gòu)的、更高級(jí)別的服務(wù),可以跨越不同的抽象層次,以一種統(tǒng)一的方式來(lái)看待。
(2)虛擬化使得將多個(gè)邏輯資源實(shí)例映像到相同的物理資源上成為可能,在對(duì)服務(wù)進(jìn)行組合時(shí)不必考慮具體的實(shí)現(xiàn),能以底層資源組成為基礎(chǔ),在虛擬組織中進(jìn)行資源管理。通過(guò)網(wǎng)格服務(wù)的虛擬化,可以將通用的服務(wù)語(yǔ)義和行為無(wú)縫地映像到本地平臺(tái)的基礎(chǔ)設(shè)施之上。
OGSA符合標(biāo)準(zhǔn)的Web Services框架。Web Services解決了發(fā)現(xiàn)和激發(fā)永久服務(wù)的問(wèn)題,但是網(wǎng)格中大量的是臨時(shí)服務(wù),因此OGSA對(duì)Web Services進(jìn)行了擴(kuò)展,提出了網(wǎng)格服務(wù)的概念,使得它可以支持臨時(shí)服務(wù)實(shí)例,并且能夠動(dòng)態(tài)地被創(chuàng)建、刪除。
由于OGSA采用統(tǒng)一的Web Services框架,因此很自然就具備了原來(lái)的Web Services的所有有利因素,如服務(wù)描述和發(fā)現(xiàn);可以從服務(wù)描述中自動(dòng)產(chǎn)生客戶與服務(wù)端的代碼,將服務(wù)描述和互操作的網(wǎng)絡(luò)協(xié)議綁定在一起;與新出現(xiàn)的高級(jí)開放標(biāo)準(zhǔn)、服務(wù)和工具兼容,有廣泛的商業(yè)支持等。
4基于移動(dòng)代理的網(wǎng)格服務(wù)
如何在網(wǎng)格計(jì)算環(huán)境下實(shí)現(xiàn)資源共享、交互通信、協(xié)作研究,Web服務(wù)是理想的架構(gòu),分布式計(jì)算技術(shù)是基礎(chǔ),但傳統(tǒng)的分布式計(jì)算往往難以充分利用資源,交互通信的開銷也大,而移動(dòng)代理技術(shù)則可以解決這一難題。
如圖2所示,網(wǎng)格服務(wù)可以通過(guò)類似于Web Service的工廠來(lái)解決用戶提交的作業(yè)。這個(gè)MathService工廠負(fù)責(zé)管理一系列MathService實(shí)例。當(dāng)一個(gè)客戶端需要調(diào)用MathService操作時(shí),MathService工廠把一個(gè)實(shí)例通過(guò)移動(dòng)代理發(fā)送到合適的網(wǎng)格資源節(jié)點(diǎn)上,然后利用本地資源執(zhí)行用戶的作業(yè)。當(dāng)客戶端需要?jiǎng)?chuàng)建(撤銷)一個(gè)實(shí)例時(shí)才會(huì)與工廠通信。
移動(dòng)代理作為軟件對(duì)象模型,可以攜帶可執(zhí)行代碼、數(shù)據(jù)和運(yùn)行狀態(tài)在網(wǎng)絡(luò)各主機(jī)之間自主移動(dòng),具有可移動(dòng)性、自主性和協(xié)同性等特點(diǎn),非常適合實(shí)現(xiàn)類型非常復(fù)雜、數(shù)目眾多、地理分布廣,而且總是在動(dòng)態(tài)變化的網(wǎng)格服務(wù)中的資源發(fā)現(xiàn)與監(jiān)控任務(wù),并能將用戶提交的任務(wù)分解到各個(gè)資源節(jié)點(diǎn)上執(zhí)行。
(1)與基于RPC方式的分布式應(yīng)用相比,移動(dòng)代理的遷移不需要保持網(wǎng)絡(luò)的長(zhǎng)時(shí)間穩(wěn)定連接,可以大大減輕網(wǎng)絡(luò)負(fù)荷。當(dāng)監(jiān)控廣域分布的網(wǎng)格資源時(shí),移動(dòng)代理避免了大量數(shù)據(jù)的網(wǎng)絡(luò)傳送,顯著提高了系統(tǒng)執(zhí)行效率和可靠性程度。
(2)移動(dòng)代理封裝了通信協(xié)議,克服了在異構(gòu)的網(wǎng)格計(jì)算環(huán)境中可能存在的協(xié)議沖突,而且移動(dòng)代理平臺(tái)大多數(shù)是基于 Java的,具有非常好的可移植性和擴(kuò)展性。
(3)一個(gè)移動(dòng)代理是一個(gè)獨(dú)立的自治程序單元,在進(jìn)行某項(xiàng)任務(wù)時(shí),可以同時(shí)創(chuàng)建多個(gè)代理并行工作,同時(shí)代理之間又可以相互協(xié)作,共同完成任務(wù)。因此,在資源眾多的網(wǎng)格計(jì)算環(huán)境中,移動(dòng)代理可以極大地提高工作效率。
5結(jié)論
基于移動(dòng)代理的網(wǎng)格服務(wù)將移動(dòng)代理技術(shù)融合到網(wǎng)格技術(shù)中去,充分適應(yīng)了網(wǎng)格環(huán)境的特點(diǎn)。對(duì)于如何將Web Service和移動(dòng)代理結(jié)合,也是一種探索的思路。
進(jìn)一步要思考的是,將網(wǎng)格應(yīng)用程序和Web Service集成實(shí)際上并不像剛開始看上去那么復(fù)雜。大多數(shù)網(wǎng)格應(yīng)用程序的基礎(chǔ)使它們很容易轉(zhuǎn)移到Web Service的架構(gòu)上來(lái),但是需要考慮對(duì)網(wǎng)格應(yīng)用程序設(shè)計(jì)的影響,以保證后端系統(tǒng)(包括代理、工作單元管理器以及其他組件)均能與期望的客戶機(jī)工作方式兼容。
參考文獻(xiàn):
[1]D Talia. The Open Grid Services Architecture: Where the Grid Meets the Web[J]. IEEE Internet Computing, 2002,6(6): 6771.
[2]I Foster, C Kesselman, J M Nick, et al. Grid Services for Distributed System Integration[J]. Computer, 2002,35(6):3746.
[3]R Prodan, T Fahringer. From Web Services to OGSA: Experiences in Implementing an OGSAbased Grid Application[C]. Proceedings of the 4th International Workshop on Grid Computing, 2003.29.
[4]Mack Hendricks,Ben Galbraith,et al.Java Web服務(wù)編程指南[M].盧剛,等.北京:電子工業(yè)出版社,2002.
[5]張?jiān)朴?移動(dòng)Agent技術(shù)[M]. 北京:清華大學(xué)出版社,2003.
[6]都志輝, 陳渝, 劉鵬,等.網(wǎng)格計(jì)算[M].北京:清華大學(xué)出版社,2002.
作者簡(jiǎn)介:
方康年(1953),男,安徽池州人,講師,主要研究方向?yàn)橛?jì)算機(jī)軟件和應(yīng)用;
王汝傳(1943),男,安徽合肥人,教授,博導(dǎo),主要研究方向?yàn)橛?jì)算機(jī)軟件、計(jì)算機(jī)網(wǎng)絡(luò)和網(wǎng)格、信息安全、移動(dòng)代理和虛擬現(xiàn)實(shí)技術(shù)等。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文