??? 摘? 要: 利用Spaces模型的時(shí)間和空間透明性,將Spaces用作網(wǎng)格計(jì)算中共享數(shù)據(jù)和分配任務(wù)的“黑板”,,設(shè)計(jì)了一個(gè)基于Spaces的網(wǎng)格計(jì)算構(gòu)架——GCFS,,為網(wǎng)格計(jì)算的框架設(shè)計(jì)提供了一種新方法,。
??? 關(guān)鍵詞: 網(wǎng)格計(jì)算? 異步通信? Spaces模型? Master-Worker模型
?
??? 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)格計(jì)算作為一種新型的分布式技術(shù),,提供了集成的計(jì)算與資源環(huán)境,,在提高資源利用率方面起到越來(lái)越重要的作用。但在分布式系統(tǒng)中,進(jìn)程間的通信,、事件同步是必須解決的問(wèn)題,。目前出現(xiàn)了眾多的解決方法,具有代表性的有RMI,、CORBA,、Web Service等分布式計(jì)算模型。由于這些方法在解決問(wèn)題時(shí)的抽象層次不一樣,,所以對(duì)系統(tǒng)的開(kāi)銷,、可擴(kuò)展性、跨平臺(tái)性以及易實(shí)現(xiàn)性等方面的影響程度也不一樣,。
??? 耶魯大學(xué)的David Gelernter在Linda系統(tǒng)中提出了元組空間(Tuple Space)的思想,。該系統(tǒng)的初衷是利用Spaces為并行計(jì)算提供全局的通信緩存。由于Spaces模型簡(jiǎn)單且能較好地協(xié)調(diào)進(jìn)程間的同步,,因此,,可將它作為另一種抽象的分布式計(jì)算模型應(yīng)用于當(dāng)前的各種分布式計(jì)算領(lǐng)域。T Spaces,、JavaSpaces作為由Tuple Space模型發(fā)展起來(lái)的通用分布式中間件,,已被應(yīng)用到很多分布式計(jì)算中。但在實(shí)際應(yīng)用中,,它們的一些功能是不必要的,,且容易引起性能效率的降低。網(wǎng)格計(jì)算中一個(gè)很重要的性能是可將位于異構(gòu)網(wǎng)絡(luò)的多種資源整合為虛擬的統(tǒng)一視圖,,由不同的應(yīng)用動(dòng)態(tài)地共享,。本文把Spaces用作網(wǎng)格計(jì)算中共享數(shù)據(jù)和分配任務(wù)的“黑板”,通過(guò)動(dòng)態(tài)地創(chuàng)建或取消Spaces服務(wù)來(lái)適應(yīng)網(wǎng)格計(jì)算環(huán)境的變化并設(shè)計(jì)了具有良好可伸縮性的GCFS(Grid Computing Framework with Spaces)框架,。
1? Spaces模型
??? 分布式應(yīng)用中的通信通常有兩種,。一種是異步通信,指不同進(jìn)程間的消息傳遞,;另一種是同步通信,,指遠(yuǎn)程過(guò)程的調(diào)用。Spaces擴(kuò)展了進(jìn)程間異步通信的模型,,應(yīng)用的參與者集中在一個(gè)或多個(gè)Spaces中,,資源提供者將信息放到Spaces,訂閱該資源的請(qǐng)求者可從Spaces訪問(wèn)到這些信息,,也就是說(shuō)Spaces為網(wǎng)絡(luò)資源的提供者和請(qǐng)求者的相互協(xié)作提供了共同的虛擬空間,。圖1為Spaces模型,它體現(xiàn)了Spaces的以下特點(diǎn):
?
??? (1)具有分布式應(yīng)用的四個(gè)最基本操作:讀,、寫、取、通知,。
?? ?(2)計(jì)算機(jī)間的進(jìn)程通信是間接的,,并不需要預(yù)先知道其他進(jìn)程的情況,直接和Spaces進(jìn)行信息交互即可,。與多個(gè)點(diǎn)對(duì)點(diǎn)通信的方式相反,,所有的計(jì)算機(jī)都能通過(guò)Spaces看到相同的全局消息。
?? ?(3)具有持久性,,即使創(chuàng)建消息的進(jìn)程不再存在,,它們所生成的消息也仍然可以保留。
?? ?(4)作為允許N個(gè)進(jìn)程同時(shí)進(jìn)行協(xié)作通信的公共中介,,Spaces以一種自然的方式實(shí)現(xiàn)了分布式計(jì)算的可擴(kuò)展性,。新進(jìn)程的加入和離開(kāi)不需分別通知其他進(jìn)程,只需由對(duì)應(yīng)的Spaces進(jìn)行管理,。
??? 根據(jù)上述特點(diǎn),,可把Space定義為一個(gè)可通過(guò)網(wǎng)絡(luò)訪問(wèn)并提供協(xié)作異步通信服務(wù)的共享消息庫(kù)。與RMI,、CORBA,、Web Service等進(jìn)程間直接通信的計(jì)算模型不同,在Spaces模型中,,進(jìn)程間的協(xié)作交互是通過(guò)在一個(gè)或多個(gè)Spaces中交換消息來(lái)實(shí)現(xiàn)的,。Spaces模型具有異步性,對(duì)Spaces內(nèi)的信息操作具有時(shí)間和空間的透明性,。該特性能有效地解決分布式系統(tǒng)設(shè)計(jì)中所遇到的局部失敗,、平臺(tái)獨(dú)立性、系統(tǒng)間難以相互發(fā)現(xiàn)等問(wèn)題,,從而減低了開(kāi)發(fā)分布式應(yīng)用程序的難度,。
??? 盡管Spaces能夠存儲(chǔ)各種消息,支持在應(yīng)用間共享消息,,但它們并不是分布式文件系統(tǒng)或者數(shù)據(jù)庫(kù),。Spaces側(cè)重于利用消息來(lái)協(xié)調(diào)分布式計(jì)算,而分布式文件系統(tǒng)側(cè)重于對(duì)信息進(jìn)行存儲(chǔ)管理,。由于兩者的應(yīng)用目的不同,,所以使用方式也有很大差別。例如,,在文件系統(tǒng)中,,通過(guò)命名對(duì)先前存儲(chǔ)的數(shù)據(jù)進(jìn)行訪問(wèn),用惟一的名字來(lái)標(biāo)識(shí)文件,,并通過(guò)文件的名字或內(nèi)容來(lái)查找文件,。而Spaces是邏輯共享內(nèi)存模型,,與常規(guī)的共享內(nèi)存模式不同,它與值關(guān)聯(lián),,但沒(méi)有地址,,可通過(guò)模板進(jìn)行匹配查找。消息的名字,、類型,、內(nèi)容以及消息間的關(guān)系等都可以作為查找條件。
2? GCFS的設(shè)計(jì)
2.1 體系結(jié)構(gòu)
??? GCFS是利用Spaces的異步性來(lái)創(chuàng)建一個(gè)靈活且具有可擴(kuò)展性的網(wǎng)格計(jì)算框架,。圖2所示的體系結(jié)構(gòu)包含了六個(gè)主要構(gòu)件,,分別是:Space管理器、任務(wù)管理器,、任務(wù)調(diào)度器,、Space服務(wù)、負(fù)責(zé)通信的Agent以及網(wǎng)格應(yīng)用程序,。
?
??? Space管理器本身也是由Spaces模型建立起來(lái)的,,它的主要功能是負(fù)責(zé)管理系統(tǒng)中的各個(gè)Space服務(wù)。Space管理器通過(guò)所掌握的參與網(wǎng)格計(jì)算的所有計(jì)算機(jī)的信息,,動(dòng)態(tài)地創(chuàng)建或者撤銷Space服務(wù),,即系統(tǒng)中的Space服務(wù)能夠隨著計(jì)算環(huán)境的變化而動(dòng)態(tài)變化。例如,,在網(wǎng)格搭建的初期,,A地參與的計(jì)算機(jī)數(shù)量較少,可以通過(guò)位于B地的Space服務(wù)為A地的計(jì)算機(jī)提供任務(wù)分配服務(wù),。但隨著A地越來(lái)越多的計(jì)算機(jī)參與該網(wǎng)格平臺(tái),,Space管理器將采用評(píng)估算法判斷是否有必要專門在A地建立一個(gè)Space服務(wù),從而減少兩地之間的通信開(kāi)銷,。相反,,如果A地網(wǎng)格節(jié)點(diǎn)數(shù)量減少到一定程度,為了減輕Space管理器的管理成本,,Space管理器也會(huì)評(píng)估是否有必要撤銷A地的Space服務(wù),,并將A地的計(jì)算機(jī)重新引導(dǎo)到相鄰地區(qū)的Space服務(wù)中。
??? 在Space管理器中的任務(wù)管理器將任務(wù)劃給各個(gè)Space服務(wù),。相應(yīng)地,,Space服務(wù)的任務(wù)調(diào)度器負(fù)責(zé)將任務(wù)分配給合適的網(wǎng)格節(jié)點(diǎn)執(zhí)行。Space服務(wù)為網(wǎng)格節(jié)點(diǎn)提供信息的公共存儲(chǔ)和共享服務(wù),,在GCFS中起到了連接網(wǎng)格節(jié)點(diǎn)和待處理任務(wù)的中間橋梁作用,。一個(gè)Space服務(wù)可以管理多個(gè)網(wǎng)格節(jié)點(diǎn),但每個(gè)網(wǎng)格節(jié)點(diǎn)只接受一個(gè)Space服務(wù)管理,。此外,,GCFS框架具有良好的負(fù)載均衡性,,參與計(jì)算機(jī)首先連接平臺(tái)的Space管理器,Space管理器根據(jù)當(dāng)前各個(gè)Space服務(wù)的負(fù)載,、計(jì)算機(jī)的處理能力以及地理位置等情況,,將計(jì)算機(jī)引導(dǎo)到相應(yīng)的Space服務(wù),。如果某個(gè)Space服務(wù)出錯(cuò)或者出現(xiàn)過(guò)載,,Space管理器會(huì)根據(jù)調(diào)度算法重新將該服務(wù)區(qū)域中的網(wǎng)格節(jié)點(diǎn)切換到其他的Space服務(wù)。
??? 圖3描述了將GCFS應(yīng)用于Master-Worker模式的方法示例,。一個(gè)位于A地的Master(同時(shí)作為Space管理器)通過(guò)任務(wù)管理器劃分多個(gè)任務(wù)到各個(gè)Space服務(wù),。位于各地的Worker通過(guò)Space管理器訪問(wèn)相應(yīng)的Space服務(wù),從中獲取任務(wù)進(jìn)行計(jì)算并將計(jì)算結(jié)果返回Space服務(wù),。Master從各個(gè)Space服務(wù)中收集返回的結(jié)果進(jìn)行匯總分析,。圖3中用虛線圈出的Space是虛擬的,由位于各地的多個(gè)Space服務(wù)構(gòu)成,,它們可以被動(dòng)態(tài)地創(chuàng)建或撤銷,。位于各地的Worker看到的是一個(gè)虛擬統(tǒng)一的Space,其中真實(shí)存在的Space服務(wù)的變動(dòng)對(duì)Workers來(lái)說(shuō)是透明的,。
?
2.2 實(shí)現(xiàn)方法
??? 由于Java語(yǔ)言具有良好的跨平臺(tái)性和可移植性,,因此GCFS的實(shí)現(xiàn)采用Java語(yǔ)言。本節(jié)重點(diǎn)討論GCFS的主要類設(shè)計(jì),,其類結(jié)構(gòu)如圖4所示,。
?
??? Computer類負(fù)責(zé)管理參與網(wǎng)格的計(jì)算機(jī)基本信息。這些基本信息主要包括計(jì)算機(jī)的所在位置,、計(jì)算機(jī)名,、用戶、IP地址,、CPU處理能力,、內(nèi)存大小、硬盤空間,、操作系統(tǒng)版本,、網(wǎng)絡(luò)連接情況以及開(kāi)始參與系統(tǒng)的時(shí)間等。evaluateComputer方法根據(jù)計(jì)算機(jī)的屬性評(píng)估其性能指標(biāo),,為SpaceManager類的evaluateSpace方法提供算法判斷依據(jù),,使Space管理器能夠選擇計(jì)算能力強(qiáng)的計(jì)算機(jī)提供Space服務(wù)。同時(shí),,任務(wù)管理器和任務(wù)調(diào)度器也能夠根據(jù)計(jì)算機(jī)的性能情況分配合適的任務(wù)給各個(gè)網(wǎng)格節(jié)點(diǎn)進(jìn)行處理,。
??? SpaceManager類用于管理網(wǎng)格中的Space服務(wù),包括Space服務(wù)的動(dòng)態(tài)創(chuàng)建,、撤銷和監(jiān)控,。evaluatedSpace方法的作用是評(píng)估在某個(gè)網(wǎng)格節(jié)點(diǎn)上創(chuàng)建或者撤銷一個(gè)Space服務(wù)的必要性,。該方法首先要判斷網(wǎng)格中是否需要?jiǎng)?chuàng)建新的或者撤銷一個(gè)已有的Space服務(wù),然后再選擇應(yīng)該在哪個(gè)網(wǎng)格節(jié)點(diǎn)上執(zhí)行新建或者撤銷的操作,。
??? TaskManager類管理網(wǎng)格中的任務(wù),,決定如何進(jìn)行任務(wù)劃分和分配。assignTask方法利用智能任務(wù)調(diào)度算法,,根據(jù)各個(gè)Space的當(dāng)前負(fù)載情況,,決定在何時(shí)將何任務(wù)分配給何Space服務(wù)。
??? Space類用于提供Space服務(wù),。在本框架中,,Space服務(wù)的主要作用是為任務(wù)提供管理服務(wù),網(wǎng)格節(jié)點(diǎn)能夠從Space服務(wù)中獲取任務(wù),。該類提供了read,、write、take,、inform等基本方法操作存放在Space服務(wù)中的系統(tǒng)信息和任務(wù),。
??? TaskScheduler類對(duì)在Space服務(wù)中的任務(wù)進(jìn)行調(diào)度。它的scheduleTask方法與TaskManager類的assignTask方法功能類似,,都是將任務(wù)分配給合適的資源,,其差別為二者分配的資源對(duì)象不同。scheduleTask是將在Space服務(wù)中的任務(wù)分配給該服務(wù)轄下的網(wǎng)格節(jié)點(diǎn),。
??? Task類表示子任務(wù)的信息,,starttime屬性表示任務(wù)的開(kāi)始時(shí)間,estimatedinterval屬性表示預(yù)計(jì)要處理的時(shí)間,。這兩個(gè)屬性用于容錯(cuò),,如果當(dāng)前時(shí)間超出了starttime+k×estimatedinterval(其中k是一個(gè)經(jīng)驗(yàn)值),任務(wù)調(diào)度器就會(huì)通知Space服務(wù),,要求其檢查負(fù)責(zé)該任務(wù)的網(wǎng)格節(jié)點(diǎn)是否出現(xiàn)故障,。taskobject屬性包含了任務(wù)的可執(zhí)行代碼,當(dāng)網(wǎng)格節(jié)點(diǎn)從Space服務(wù)獲得一個(gè)Task實(shí)例后,,taskobject會(huì)自動(dòng)地下載到節(jié)點(diǎn)上執(zhí)行,,并將計(jì)算結(jié)果返回給Space服務(wù)。
??? ClientAgent類和ServerAgent類用于網(wǎng)格節(jié)點(diǎn),、Space服務(wù)和Space管理器之間的相互通信,。connectServer、listentoServer等方法采用的是UDP通信協(xié)議,。目前GCFS在安全方面的措施還較少,,參與任務(wù)計(jì)算的網(wǎng)格節(jié)點(diǎn)不需驗(yàn)證就可以直接連接到Space服務(wù)和Space管理器上,且網(wǎng)格節(jié)點(diǎn)對(duì)服務(wù)器傳送的數(shù)據(jù)也是信任的,。
3? 結(jié)束語(yǔ)
??? 網(wǎng)格技術(shù)要對(duì)計(jì)算資源進(jìn)行“虛擬”組合,,使得位于不同位置,、具有不同硬件和操作系統(tǒng)的資源能夠協(xié)同工作。Spaces模型是一種非常抽象的分布式計(jì)算模型,,可管理消息,、資源和任務(wù)等信息。通過(guò)在網(wǎng)格中動(dòng)態(tài)地創(chuàng)建Space服務(wù),,GCFS系統(tǒng)建立了一個(gè)輕量級(jí)的網(wǎng)格計(jì)算框架,。為了提高3G無(wú)線網(wǎng)絡(luò)仿真的性能,該框架正被應(yīng)用于移動(dòng)通信的3G仿真,。該框架還存在著許多需要深入研究的問(wèn)題,,例如,,如何使多個(gè)Spaces進(jìn)行相互協(xié)作,,如何更好地增強(qiáng)Spaces在Internet中的安全性以及如何有效地對(duì)任務(wù)進(jìn)行分解和調(diào)度等。
參考文獻(xiàn)
1?? Freeman E,,Hupfer S,,Arnold K.JavaSpaces(TM) Principles,Patterns and Practice.Addison-Wesley Pub Co,,1999
2?? Edwards W K.Jini核心技術(shù).北京:機(jī)械工業(yè)出版社,,2002
3?? GigaSpacesTM Technologies Ltd.GigaSpaces Grid Server for Web Services Applications[R/OL].http://www.gigaspaces.com/whitepaper.htm.2005,1
4?? Sterck H D,,Markel R S,,Pohl T et al.A lightweight Java Taskspaces framework for scientific computing on computational grids.In:Proceedings of the ACM Symposium on?Applied Computing,Track on Parallel and Distributed?Systems and Networking,,2003
5?? Lehman T J,,Cozzi A,Xiong Y et al.Hitting the distributed computing sweet spot with TSpaces.Computer Networks,,2001,;35(4)
6?? Liu M L.Distributed Computing Principles and Applications.Pearson Education,Inc,,2004
7?? Noble M,,Slateva S.Scientfic computation with JavaSpaces.Harvard-Smithsonian Center for Astrophysics.Boston? University,Boston,,2001