朱祥林
(岳陽石油化工總廠廣播電視大學,湖南岳陽 414014)
資源是網(wǎng)格中的主要對象,網(wǎng)格的目的就是要管理好網(wǎng)格中的各種資源,為需要資源的用戶提供透明一致的訪問接口。資源管理包含資源收集、更新、發(fā)現(xiàn)、分配、定位、遷移、預約等操作,其中資源發(fā)現(xiàn)具有承前啟后的重要作用。它的主要目的就是能及時發(fā)現(xiàn)網(wǎng)格中滿足條件的資源,為以后使用提供依據(jù)。
資源發(fā)現(xiàn)是把資源請求者和資源提供者聯(lián)系在一起的中介者的主要功能之一。目前主要的資源發(fā)現(xiàn)規(guī)范有 UDDI和 WS-Inspection兩種,在 Web Service上使用較廣,但它們在網(wǎng)格上的應用還有待于人們的進一步研究。然而,網(wǎng)格技術(shù)是以Web Service為基礎(chǔ)的,是Web Service技術(shù)的進一步擴展。Web Service最有趣的特點之一就是能夠用WSDL進行自我描述,告訴使用者如何操作和使用它。因此,在網(wǎng)格資源發(fā)現(xiàn)中我們也可使用這一技術(shù)。但是,WSDL太專業(yè)且重于方法調(diào)用、協(xié)議等細節(jié),使用起來較復雜也不太方便。我們需要一個能很容易分類和索引的手段來代替它,這就是本文要闡述的重點——網(wǎng)格的服務信息技術(shù)。
這里我們引進服務信息元素(Service Data Element縮寫為SDE)的概念。網(wǎng)格中每個服務實例都可能包含0個或多個SDE,每個SDE有唯一的名字以區(qū)別于其它的SDE。SDE中包含了若干元素(Element)用于存儲資源信息。它以xsd文件形式表示,在GWSDL文件中設(shè)定并生成對應的Java類。在Java類中包含設(shè)置和獲取SDE元素信息的函數(shù)。
下面為便于說明,以一個實例來進行闡述。即:在IP地址范圍為10.226.136.51-10.226.136.60的網(wǎng)格環(huán)境中查找“可用內(nèi)存空間”大于X的計算機資源。這里假設(shè)IP為10.226.136.50的機器為資源發(fā)現(xiàn)者,它要在10.226.136.51-10.226.136.60中查找滿足條件的資源。通過建立接口文件、xsd文件、GWSDL文件、服務實現(xiàn)程序、WSDD文件,并對它們進行編譯和部署來構(gòu)建資源發(fā)現(xiàn)環(huán)境,當然,在此之前還要建立網(wǎng)格環(huán)境(安裝 JAVA、ANT、GT3)。資源發(fā)現(xiàn)者建立客戶端程序并編譯之(主要功能是發(fā)出請求,進行判斷)。為突出重點,便于閱讀,下例每個文件或程序只寫出重要部分,且大部分用文字進行描述。
此文件可生成相應的Memory.wsdl文件
利用SDE名“Sde-Name”創(chuàng)建SDE,并添加到服務信息組中,給SDE賦初值。
利用相關(guān)語句獲得本機內(nèi)存的可用空間大小,并將此值存入SDE的free元素中。
此程序是通過回調(diào)方法 postCreatec()創(chuàng)建SDE,并初始化里面的元素。利用資源發(fā)現(xiàn)者程序調(diào)用MemoryFree()獲得當前本機可用空間大小,并存入到SDE的free元素中。
設(shè)置網(wǎng)格服務的名稱
網(wǎng)格實例的描述
設(shè)置WSDL的路徑(Memory.wsdl)
設(shè)置網(wǎng)格服務實例的基類
設(shè)置相關(guān)參數(shù)
完成上述步驟后,編譯相關(guān)文件并部署到地址為10.226.136.50-10.226.136.60的機器中去,然后啟動OGSA服務容器等待資源請求者查詢。
1.設(shè)置二個數(shù)組IP[]和usespace[]分別存放IP地址及對應的可用內(nèi)存大小。
2.給定10.226.136.50地址,自動產(chǎn)生由10.226.136.51到10.226.136.60十個地址分別放入IP[1]到IP[10]中,設(shè) I的初值為 1,循環(huán) 3-8 步,直到I=10為止。
3.由 IP[1]、/ogsa/services/、服務名稱(getfree)產(chǎn)生網(wǎng)格服務句柄(GSH)。
4.創(chuàng)建實例。
5.調(diào)用遠程方法MemoryFree()。
6.通過GSH及SDE名(Sde-Name)產(chǎn)生SDE-Type.xsd對應的SDE-Type類的對象。
7.獲取SDE中free的值存入usespace[I]中。
8.撤銷實例,I=I+1。
9.判斷usespace[I]中那些可用內(nèi)存空間值大于給定的x,并顯示滿足條件機器的內(nèi)存空間大小及對應的IP地址。
}
本文只在SDE中使用了一個元素信息,其實還可在SDE建立若干個元素信息用于存儲資源的動、靜態(tài)信息(如當前cpu是否空閑,資源能提供什么功能等),并且還可查詢通用的SDE(如服務實現(xiàn)接口名等)。SDE是有生命周期的,它是在服務實例下創(chuàng)建的,因此也隨實例的撤消而撤消。
[1]Laura Pearlman,Von Welch,Ian Foster,Carl Kesselman,Steven Tuecke.A Community Authorization Service For Group Collaboration.CiteSeer.2002.
[2]Ian Foster,Carl Kesselman,Jeffrey M.Nick,Steven.Tuecke.The Physiology of the Grid[EB/OL].http://www.globus.org/research/papers/ogsa.pdf.
[3]Randy Butler,Von Velch,Ian Foster,Steven Tuecke,John Volmer,Carl Kesselman.A National-Scale Authentication Infrastructure.IEEE,2000.
[4]Austin Gillbert,Ajith Abraham,Marcin Paprzycki.A System for Ensuring Data Integrity in Grid Environments.IEEE,2004.
[5]徐志偉,馮百明,李偉.網(wǎng)格計算技術(shù)[M].北京:電子工業(yè)出版社,2004.
[6]I.Foster,C.Kesselman.The Grid 2:Blueprint for a New Comuputing Infrastructure[M].北京:電子工業(yè)出版社,2004.