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