摘 要:網(wǎng)格資源的組織與發(fā)現(xiàn)是網(wǎng)格計算的關(guān)鍵問題。為了有效地組織和發(fā)現(xiàn)資源,在LDAP目錄服務(wù)的基礎(chǔ)上,利用移動Agent技術(shù)和分塊索引技術(shù),提出一種改進(jìn)的基于移動Agent的網(wǎng)格資源組織與發(fā)現(xiàn)方法,較好地解決了資源的組織與快速發(fā)現(xiàn)問題。
關(guān)鍵詞:移動Agent; 虛擬組織; 資源發(fā)現(xiàn); LDAP
中圖分類號:TN915-34文獻(xiàn)標(biāo)識碼:A文章編號:1004-373X(2011)19-0037-04
Improved Method of Grid Resource Organization and Discovery Based on Mobile Agent
QIAO Ping-an
(School of Computer Science and Technology, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)
Abstract: Grid resource organization and discovery is the key of grid computing. In order to effectively organize and discover resources, on the basis of LDAP (Light Directory Access Protocl) technology in directory service, an improved method of grid organization and discovery based on mobile Agnent is proposed. It can solve the problems of resource organization and discovery by the technology of mobile Agent and the method of block indexing.
Keywords: mobile Agent; virtual organization; resource discovery; LDAP
基金項目:陜西省自然科學(xué)基金資助項目(2009JM8019)
0 引 言
網(wǎng)格是一種在動態(tài)多機(jī)構(gòu)虛擬組織中實現(xiàn)資源共享和協(xié)同的技術(shù),是當(dāng)今網(wǎng)絡(luò)發(fā)展的一門核心技術(shù)[1]。目前最常用的網(wǎng)格資源組織方法是基于LDAP目錄服務(wù)[2]。該方法將網(wǎng)絡(luò)環(huán)境中的用戶、資源等對象統(tǒng)一組織起來,以分層的方式在目錄樹結(jié)構(gòu)中存儲,允許用戶對這些資源進(jìn)行訪問和管理,資源需求者利用目錄服務(wù)提供的接口發(fā)現(xiàn)和定位資源。隨著網(wǎng)格技術(shù)的快速發(fā)展,網(wǎng)格資源劇增,網(wǎng)格環(huán)境更為復(fù)雜,導(dǎo)致資源的組織與發(fā)現(xiàn)存在許多問題,如對大量的資源如何組織、如何快速滿足用戶或應(yīng)用對資源的需求,尤其是對于虛擬組織,隨時間的推移,網(wǎng)格資源的加入和離開導(dǎo)致用戶可享用資源的改變等。
針對以上問題,本文提出一種改進(jìn)的網(wǎng)格資源組織與發(fā)現(xiàn)方法,該方法基于Agent的技術(shù),在LDAP目錄服務(wù)的基礎(chǔ)上,結(jié)合分塊索引方法,對資源的組織方式進(jìn)行了改進(jìn),并充分利用Agent的特點,動態(tài)自主地、有目的地實現(xiàn)網(wǎng)格資源信息的發(fā)現(xiàn),提高了資源發(fā)現(xiàn)效率,緩解了網(wǎng)絡(luò)負(fù)載不平衡問題,改進(jìn)了網(wǎng)格系統(tǒng)的性能。
1 相關(guān)技術(shù)
1.1 LDAP協(xié)議
LDAP協(xié)議(Lightweight Directory Access Protocol),即輕量級目錄訪問協(xié)議。該協(xié)議基于X.500標(biāo)準(zhǔn)并進(jìn)行了簡化,且允許根據(jù)需要進(jìn)行定制。與X.500不同,LDAP支持TCP/IP,它是一個目錄服務(wù)標(biāo)準(zhǔn)。通過使用LDAP,可以在信息目錄的正確位置讀取(或存儲)數(shù)據(jù)。LDAP服務(wù)器可以是分布式,可以通過LDAP內(nèi)部機(jī)制實現(xiàn)服務(wù)器間的同步[3]。大多數(shù)的LDAP服務(wù)器都為讀密集型的操作進(jìn)行專門的優(yōu)化,所以當(dāng)從LDAP服務(wù)器中讀取數(shù)據(jù)的時候會比從專門為OLTP優(yōu)化的關(guān)系型數(shù)據(jù)庫中讀取數(shù)據(jù)快一個數(shù)量級。但也正是因為專門為讀的性能進(jìn)行優(yōu)化,大多數(shù)的LDAP目錄服務(wù)器并不適合存儲需要經(jīng)常改變的數(shù)據(jù)[4-6]。
1.2 分塊索引方法
分塊索引也叫分塊查找,主要用于“分塊有序”表的查找。所謂“分塊有序”是指將線性表L分成m個子表,且第i+1個子表中的每一個項目均大于第i個子表中的所有項(如圖1所示)。
對于關(guān)鍵字r1,r2,…,rn,按照分段有序的特征分成m段,每段k個記錄(r1,r2,…,rk),(rk+1,rk+2,…,r2k),…,(rm,rm+1,…,rn);再以每塊的起始記錄地址add ri和每塊的最大關(guān)鍵字max ki為分量建立索引表,其中,max ki≤max ki+1。查找時,先在索引表中查到關(guān)鍵字有可能等于給定值k的記錄所在塊,然后再到原表對應(yīng)的塊中進(jìn)行查找。
圖1 分塊索引方法1.3 移動Agent技術(shù)
移動Agent(Mobile Agent)是一類特殊的Agent,除了具有智能Agent的最基本特性——自主性、反應(yīng)性、主動性和交互性[7]外,還具有移動性,即它可以攜帶可執(zhí)行代碼、數(shù)據(jù)和運(yùn)行狀態(tài)在網(wǎng)絡(luò)上從一臺主機(jī)自主地移動到另一臺主機(jī),代表用戶完成指定的任務(wù)。
移動Agent可在異構(gòu)的軟、硬件網(wǎng)絡(luò)環(huán)境中移動。在基于目錄服務(wù)資源發(fā)現(xiàn)機(jī)制的基礎(chǔ)上,動態(tài)自主地實現(xiàn)網(wǎng)格資源信息的發(fā)現(xiàn),并實現(xiàn)虛擬組織的管理。使用移動Agent計算模式能有效地降低分布式計算中的網(wǎng)絡(luò)負(fù)載,提高通信效率。Agent的基本結(jié)構(gòu)[8]如圖2所示。
圖2 Agent基本結(jié)構(gòu)2 改進(jìn)的基于Agent的資源組織與發(fā)現(xiàn)
2.1 框架結(jié)構(gòu)
基于網(wǎng)格環(huán)境的異構(gòu)性、動態(tài)性等特點[9],本文提出一種基于Agent的分層資源組織方式,其結(jié)構(gòu)如圖3所示。該框架由一個全局目錄服務(wù)和若干個虛擬組織構(gòu)成。
全局目錄服務(wù)由LDAP服務(wù)器、Agent中間件及一級索引組成,主要存儲各虛擬組織的相關(guān)信息,如各虛擬組織所含資源的類型、位置等,不存儲具體資源結(jié)點信息。每個虛擬組織均由一個域服務(wù)器和若干個結(jié)點組成。其中,域服務(wù)器主要包括一個LDAP服務(wù)器、Agent中間件和一個二級索引。域服務(wù)器主要存儲其所在虛擬組織內(nèi)各資源結(jié)點的具體相關(guān)信息,如資源名稱、位置以及是否可用等。每個結(jié)點均設(shè)置一個Agent中間件及一個本地LDAP服務(wù)器。
圖3 基于Agent的網(wǎng)絡(luò)資源組織與發(fā)展框架全局LDAP定期通過異步遠(yuǎn)程復(fù)制機(jī)制更新匯總來自各個虛擬組織的狀態(tài)信息;域LDAP匯總其所在域中各結(jié)點的資源情況及資源是否有效;本地LDAP主要存儲本結(jié)點的資源狀態(tài)信息,Agent中間件通過Sensor Agent監(jiān)控本機(jī)資源變化情況,并通過Update Agent反饋給域服務(wù)器中的LDAP服務(wù)器。虛擬組織之間通過全局Agent中間件進(jìn)行交互。
2.2 資源的組織
2.2.1 虛擬組織的劃分
網(wǎng)格資源具有類型繁多,數(shù)量龐大,動態(tài)變化等特點,為了有效地管理網(wǎng)格資源,對網(wǎng)格資源按照一定的規(guī)則進(jìn)行劃分,使其形成若干個邏輯上的整體,即虛擬組織(Virtual Organization,VO)。虛擬組織的建立基于資源屬性分類并結(jié)合地理位置,由域服務(wù)器管理。每個資源節(jié)點只受其所對應(yīng)域服務(wù)器的管理。劃分規(guī)則是:資源屬性分類相同優(yōu)先,兼顧資源地理位置。具體方法是,對具有相同類型的資源進(jìn)行組織,使得“局部興趣”[10]相同的資源聚集在一起,同一虛擬組織中資源結(jié)點采用星型拓?fù)浣Y(jié)構(gòu)組織,如圖4所示。
圖4 虛擬組織劃分為了避免出現(xiàn)由于虛擬組織內(nèi)資源數(shù)量過大而導(dǎo)致性能瓶頸、單點失效問題,可對虛擬組織的規(guī)模進(jìn)行控制,使其在一定的范圍內(nèi)。當(dāng)虛擬組織內(nèi)資源數(shù)量過多時,可以建立一個新的同類虛擬組織并將它們聚合在一起,由域服務(wù)器統(tǒng)一管理。
若網(wǎng)格節(jié)點要加入某個虛擬組織,則通過Register Agent移動到域服務(wù)器上進(jìn)行申請,批準(zhǔn)后將相應(yīng)的名稱和位置等信息加入目錄樹中。
2.2.2 索引表
網(wǎng)格中的資源狀態(tài)是動態(tài)變化的,而LDAP目錄服務(wù)器的更新速度較慢,不能及時反應(yīng)資源的當(dāng)前狀態(tài),所以,在LDAP目錄服務(wù)的基礎(chǔ)上引入分塊索引方法,即利用分塊索引技術(shù)在全局服務(wù)器及域服務(wù)器分別設(shè)置一級索引表和二級索引表。其中,一級索引表用于記錄最近訪問的虛擬組織的相關(guān)信息,如該虛擬組織所含資源類型編號、可用資源數(shù)目、訪問時間、訪問頻率、虛擬組織所在位置等;二級索引用于記錄最近訪問的資源結(jié)點的相關(guān)信息,如資源ID、訪問時間、訪問頻率、是否可用等。對于網(wǎng)格中資源的動態(tài)變化情況,可以通過Sensor Agent及時發(fā)現(xiàn)可用資源的狀態(tài),并通過Update Agent隨時更新二級索引表中相應(yīng)資源的狀態(tài)及一級索引表中的可用資源數(shù)目。
2.3 Agent中間件
Agent中間件是本框架結(jié)構(gòu)的核心部分,主要包括一個移動Agent運(yùn)行環(huán)境和多個Agent實例,通過這些Agent實現(xiàn)資源的增加、刪除、修改及查詢操作。系統(tǒng)中的Agent主要包括Sensor Agent,Update Agent,LDAP Agent,Query Agent以及Logout Agent。有關(guān)各Agent的相關(guān)功能見文獻(xiàn)[2]。
需要說明的是,Query Agent根據(jù)一級索引表或二級索引表的信息過濾結(jié)果,針對符合要求的網(wǎng)格資源的位置信息進(jìn)行并行查詢,復(fù)制自己,然后將查詢結(jié)果返回并進(jìn)行匯總。
3 資源發(fā)現(xiàn)機(jī)制
基于Agent的網(wǎng)格資源發(fā)現(xiàn),主要通過Agent中間件進(jìn)行工作,資源發(fā)現(xiàn)過程如圖5所示。當(dāng)一個應(yīng)用或用戶提出資源請求時,首先檢查本地LDAP目錄服務(wù)器上是否有可用資源以及是否有效,若有則直接返回結(jié)果;否則,Agent中間件派發(fā)一個Query Agent到域目錄服務(wù)器上,Query Agnet根據(jù)域服務(wù)器上二級索引的資源信息查找滿足條件的網(wǎng)格資源位置信息,若有則復(fù)制并返回結(jié)果Agent,否則到域LDAP服務(wù)器上進(jìn)行查找并返回結(jié)果Agent;若本虛擬組織中查找不到相關(guān)資源,則復(fù)制并派發(fā)查詢Agent到全局目錄服務(wù)器;全局目錄服務(wù)器首先通過一級索引信息查找相關(guān)資源所在的域服務(wù)器,若沒有,則到全局LDAP服務(wù)器進(jìn)行查找,復(fù)制多個Query Agent,并移動到多個域服務(wù)器上。域目錄服務(wù)器再復(fù)制多個查詢Agent,通過二級索引中網(wǎng)格資源位置信息移動到多個目標(biāo)資源上,根據(jù)用戶的權(quán)限查詢相應(yīng)結(jié)點上LDAP目錄服務(wù)器中的資源信息并返回結(jié)果Agent;域服務(wù)器和全局服務(wù)器直接將各結(jié)點派生的結(jié)果Agent遷移到原結(jié)點進(jìn)行匯總;在規(guī)定時間內(nèi),將返回到原結(jié)點上的結(jié)果Agent帶回的網(wǎng)格資源信息提交給用戶,對于沒有返回的結(jié)果Agent作拋棄處理,銷毀返回的結(jié)果Agent。
圖5 基于Agent的資源發(fā)現(xiàn)過程4 性能分析
移動Agent是一個智能化的軟件對象,具有一定的自適應(yīng)能力和智能算法,可以對環(huán)境的變化做出適當(dāng)?shù)姆磻?yīng),所以能夠確保移動Agent在快速變化的異構(gòu)式環(huán)境中操作運(yùn)行。
移動Agent能夠主動或被動地在異構(gòu)網(wǎng)絡(luò)中進(jìn)行遷移并與其他Agent交互,能有效地降低分布式計算中的網(wǎng)絡(luò)負(fù)載,提高通信效率。
使用分塊索引技術(shù),能夠有效提高資源查詢效率。若用Lm表示一級索引表內(nèi)查找的平均查找長度,用Lk表示二級索引表內(nèi)查找的平均查找長度,則索引查找的平均查找長度ASLmk=Lk+Lm,即取決于Lm和Lk對應(yīng)采用的查找方法。由于給定表本身關(guān)于關(guān)鍵字有序,對一級索引表和二級索引表都可采用折半方法查找,則:ASLmk≈log(k+1)+lognk+1 求ASLmk對k的一階導(dǎo)數(shù):dASLmkdk=1(k+1)ln 2-n/k2(n/k+1)ln 2令其為零取得有意義的極值點k=n,顯然在該點有:d2ASLmkdk2=1ln 21k2-1(k+1)2-1(n+k)2
=2n2n+4n2+2nnn(n+1)2(n+n)2>0即當(dāng)k取不小于n的最小整數(shù)時,平均查找長度有最小值A(chǔ)SLmk=2log(n+1)。
5 結(jié) 論
資源的組織與發(fā)現(xiàn)是網(wǎng)格計算的關(guān)鍵問題。本文針對目前資源發(fā)現(xiàn)機(jī)制中存在的問題,提出了一種改進(jìn)的網(wǎng)格資源組織方式,并對該資源發(fā)現(xiàn)機(jī)制進(jìn)行論述。該資源組織與發(fā)現(xiàn)方法充分利用了移動Agent的特點,并結(jié)合分塊索引技術(shù)提高了資源的查找效率,具有較好的可擴(kuò)展性。
參 考 文 獻(xiàn)
[1] 王景華,張建軍,徐娟,等.基于分布式Agent的網(wǎng)絡(luò)任務(wù)調(diào)度模型研究[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2010,33(2):179-181,225.
[2] 徐聰淵,劉萬軍.網(wǎng)格環(huán)境中基于移動Agent的資源發(fā)現(xiàn)模型[J].計算機(jī)工程與科學(xué),2010,32(1):109-112.
[3] 鄧建剛,余敏,章志明.一種基于移動Agent的網(wǎng)格資源發(fā)現(xiàn)模型[J].計算機(jī)與現(xiàn)代化,2006(6):1-5.
[4] LI Maozhen,BAKER Mark.網(wǎng)格計算核心技術(shù)[M].王相林,張善卿,王景麗,譯.北京:清華大學(xué)出版社,2006.
[5] 都志輝,陳渝,劉鵬.網(wǎng)格計算[M].北京:清華大學(xué)出版社,2002.
[6] FOSTER I, KESSELMAN C. The grid2: blueprint for a new computing infrastructure [M] San Francisco: Morgan Kaufmain Publishers Inc., 2004.
[7] 黃崇本,龔松杰.一種基于本體和Agent的網(wǎng)格服務(wù)發(fā)現(xiàn)機(jī)制[J].計算機(jī)工程與科學(xué),2008,30(8):108-110.
[8] 劉明.多Agent技術(shù)的研究與應(yīng)用[J].科技信息,2010(11):51.
[9] 胡志剛,胡秋霞.一種基于移動Agent的網(wǎng)格資源發(fā)現(xiàn)方法[J].計算機(jī)工程與應(yīng)用,2006(8):118-120.
[10] 劉國清.網(wǎng)格環(huán)境下層次式資源發(fā)現(xiàn)方法研究[D].長沙:湖南大學(xué),2007.
[11] 殷鋒社.基于Agent的網(wǎng)絡(luò)協(xié)作學(xué)習(xí)環(huán)境的研究與設(shè)計[J]電子設(shè)計工程,2010(7):94-96.
[12] 孫喁喁,劉萍萍.基于黑板的多Agent智能決策支持系統(tǒng)的Agent實現(xiàn)[J]電子設(shè)計工程,2009(2):22-24.