摘要:傳統的網格資源發現系統采用集中式或者層次化的結構,但這些結構不能滿足網格系統規模不斷擴大的需求。而P2P系統是一種擴展性好的分布式系統,采用已有的P2P技術解決網格環境下的資源發現問題是一種有效的途徑。簡要介紹了目前采用P2P技術解決網格資源發現的問題,提出了一種采用超級節點模型和資源主動聲明機制相結合的資源發現方法,并給出相應的算法描述,最后驗證了其有效性。
關鍵詞:網格;資源發現;主動聲明機制
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)34-1621-02
A Research on Grid Resource Discovery Based on P2P Mechanism
YE Shu-pu, KAMIL Muyiding
(School of Information Science and Engineering, Xinjiang University, Urumqi 830046, China)
Abstract: The systems of traditional grid resource discovery adopt centralized or hierarchical structure which cann'tmeet the needs of the grid systems’scale that on growing.P2P achieves good scalability in distributed systems,it is a effective approach to solve the problem of resource discovery in grid environments.This paper simply introduces some grid resource discovery problems that adopt the technic of P2P,puts forward a new resource discovery approach which combines super peer model with active declaration mechanism,meanwhile shows the corresponding algorithm description,and validates its efficiency at last.
Key words: grid; resource discovery; active declaration mechanism
1 引言
網格是把整個因特網整合成一臺巨大的超級計算機,實現計算資源、存儲資源、數據資源、信息資源、知識資源、專家資源的全面共享。在網格環境下,資源的發現是一個重要的工作。任何基于網格的服務程序或操作系統,首先要做的就是發現,然后才是分配任務和調度。目前的一些網格資源發現系統采用了P2P模型[1],結構化P2P模型在動態環境下難以維護,非結構化系統則適用于動態環境。傳統的非結構化P2P模型有中央索引模型如Napster和泛洪請求模型。中央索引模型的缺點在于中央服務器的能力限制了節點的數量,系統的可擴展性不夠,存在單點故障,容錯性不高。泛洪請求模型采用廣度優先搜索方法,會產生大量的網絡通訊[2],占用大量的網絡帶寬。改進的搜索模型GUESS[3](Gnutella UDP Extension for Scalbale Searches)和Gnutella2系統中采用超級節點的概念,可以有效的避免采用單純的泛洪搜索所產生的問題,如產生過大的網絡負載、不適應大規模的網絡、大量消耗網絡帶寬等問題。在此基礎上,本文提出超級節點模型,為了提高資源利用率和資源服務質量,又引入了資源主動聲明機制。
2 資源主動聲明機制
現有資源發現機制都未考慮資源自身在資源發現過程中的主動作用,據此提出了一種資源主動聲明機制。處于可用狀態的資源(空閑且無故障)可以有指向性的選對象用戶,向其發送廣告信息,聲明資源可用。使潛在的資源用戶不必經過資源發現,就可以得到滿足需求的資源。在該機制中,在資源節點的本地緩存中保存一定量的用戶信息。當資源處于可用狀態時,根據緩存中的用戶信息主動將包含自身資源信息的聲明發送給潛在用戶,供用戶在需要時直接選擇。資源節點在其本地維護一個緩存,存放最近一段時間內經常使用該資源的用戶信息。緩存為每一個用戶設置一個記錄,記錄用戶在一段時間內訪問該資源的次數(除記錄訪問次數外,還要記錄用戶地址等信息)。緩存在一次資源訪問結束后更新。
3 超級節點模型
節點按能力不同(計算能力、內存大小、連接帶寬、網絡滯留時間等)區分為普通節點和超級節點兩類。超級節點與其臨近的若干普通節點之間構成一個自治的域,域內采用基于集中目錄式的P2P模式,而整個P2P網絡中各個不同的域之間再通過純 P2P的模式將超級節點相連起來。可以在各個超級節點之間再次選取性能最優的節點,或者另外引入一新的性能最優的節點作為索引節點來保存整個網絡中可以利用的超級節點信息,并且負責維護整個網絡的結構。由于普通節點的文件搜索先在本地所屬的域內進行,只有查詢結果不充分的時候,再通過超級節點之間進行有限的泛洪。這樣就極為有效地消除純P2P結構中使用泛洪算法帶來的網絡擁塞、搜索遲緩等不利影響。同時,由于每個域中的超級節點監控著所有普通節點的行為,能確保一些惡意的攻擊行為能在網絡局部得到控制,在一定程度上提高整個網絡的負載平衡。超級節點模型[4]如圖1所示。
4 結合超級節點的主動聲明機制的算法描述
1) 節點首先查看本地是否有空閑的可用資源,如果有則創建聲明,聲明是一個資源的廣告,包括資源描述信息、資源地址、有效時間限定和其它信息等。根據本地緩存中的用戶信息,將聲明按照緩存中的排列順序依次發送給各個用戶。
2) 用戶節點有資源請求時,首先確認是否收到資源主動聲明,如收到聲明則進行資源匹配,匹配成功則根據聲明的資源的地址信息直接定位該資源并申請服務,同時更新緩存記錄,算法結束。
3) 如果用戶節點未收到資源主動聲明或資源匹配不成功,則將請求發送至超級節點,超級節點在自己當前的信息中查找,如果找到符合條件的資源,則返回給用戶節點,算法結束。
4) 如果超級節點在自己的當前信息中沒有找到符合條件的資源,則向同層次的其它超級節點發出查詢,接收到請求的超級節點在自己的當前信息中查找,如果找到則返回給發送請求的超級節點,再由發出請求的超級節點將信息返回給用戶節點,算法結束。
下面給出基于super_peer層快表的偽代碼的算法描述:
while(本地可用空閑資源)
{Create 聲明;
Send 聲明 to all users in cache;
Waiting for responses;
If(response)
Refreshcache;
}
//算法1:peer層
When a peer want to search resource
{if(receive聲明)
匹配資源,成功則返回;
Else send search to super_peer;
If(super_peer 找到資源)
返回給peer節點;
Else 調用super_peer層的算法;
}
//算法2:super_peer層
When a super_peer send a message to another super_peer
{search 快表;
If(super_peer 找到資源)
返回給申請的super_peer;
Else 繼續調用算法2;
}
5 有效性驗證
本文實驗采用的是仿真軟件是PeerSim。PeerSim是用JAVA實現、基于組件技術的仿真器,更好地支持了P2P網絡的可擴展性和動態性。它使用兩種模型,一種是基于環的模型,另一種是基于事件的模型。 它支持基于對象的有標準組件的編程,實現同一接口的組件可以很容易地替代其他的組件。它可以完成上百萬節點的模擬,特別是有節點隨機加入或退出,可以以兩種方式工作基于事件的和基于環的。本文采用的是基于環的模型,基于環的模型是首先設置配置文件,然后根據配置文件來進行模擬實驗。本文實驗設置每個super_peer節點含有100個peer節點,peer節點向super_peer節點注冊的信息以數組的方式存在super_peer中,實驗分別取super_peer節點為5、10、15、20、25個時,泛洪算法、超級節點算法和結合主動聲明機制的超級節點算法在響應時間上的比較,如表1所示。
表1
■
從上面的結果可以看出,當節點數目增加時,泛洪算法的時間消耗是巨大的,超級節點算法建立快表從而節省了響應時間,又由于資源主動聲明的存在,就進一步優化了超級節點算法,故而降低了查詢響應時間和網絡開銷。
6 結論
資源發現是網格中的一個重要的工作,傳統的資源發現算法如泛洪方法存在著消息不可控、網絡開銷大、響應時間長等缺陷,本文提出的結合資源主動聲明機制的超級節點模型在一定程度上優化了上述問題,實驗證明該模型是有效的。
參考文獻:
[1] Liu F,Ma F,Yu S,et al.Grid Resource Discovery Model Based on the Hierarchical Architecture and P2P Overlay Network[R]. Lecture Notes in Computer Science, Network and Parallel Computing.
[2] Tsoumakos D,Roussopoulos N.A Comparison of Peer-to-Peer Search Methods[C].Proc Int Workshop on Web and Databases (WebDB 2003),2003:61-66.
[3] Yanq B.patrick Vinoqrad.Evauliatnq GUESS and Non-Fowarding P2P Search[Z],2003 Reference7.
[4] Yang B,Molina H G.Designing a super-peer network[C]//Proceed-ings International Conference on Data Engineering(ICDE 2003),2003:49-60.
[5] 劉揚,何華燦.基于匹配引擎覆蓋網絡的網格資源發現模型[J],計算機工程,2008(1).
[6] 夏啟志.無結構p2p網絡搜索方法及其改進[M].北京:計算機應用研究,2005.
[7] 楊天路.凡P網絡技術原理與系統開發案例[M].北京:人民郵電出版社,2007.
[8] 陳貴海,李振華.對等網絡:結構、應用與設計[M].北京:清華大學出版社,2007.