(中國地質(zhì)大學(xué) a.信息工程學(xué)院; b.教育部地理信息系統(tǒng)軟件及應(yīng)用工程中心, 武漢 430074)
摘 要:
海量空間信息的處理需要分布式協(xié)同工作的GIS平臺(tái)的支持,為了解決經(jīng)典的分散式結(jié)構(gòu)化的分布式哈希表邏輯網(wǎng)絡(luò)結(jié)構(gòu)增加的延時(shí)和在構(gòu)建哈希表的過程中邏輯覆蓋網(wǎng)絡(luò)往往和物理網(wǎng)絡(luò)不一致的問題,提出一種分布式空間信息的對(duì)等協(xié)同混合發(fā)現(xiàn)模型。基于空間資源發(fā)現(xiàn)代理節(jié)點(diǎn)和普通鄰居節(jié)點(diǎn),該模型實(shí)現(xiàn)了集中式的全局空間資源發(fā)現(xiàn)模型與分散式結(jié)構(gòu)化的分布式哈希表模型之間的自動(dòng)切換,能夠自適應(yīng)地調(diào)整空間資源的邏輯網(wǎng)絡(luò)結(jié)構(gòu)以提供更好的性能。基于節(jié)點(diǎn)交換機(jī)制,設(shè)計(jì)了構(gòu)建路由表和降低延時(shí)的算法,通過發(fā)現(xiàn)有利于覆蓋網(wǎng)絡(luò)和物理網(wǎng)絡(luò)匹配的節(jié)點(diǎn)交換來降低網(wǎng)絡(luò)時(shí)延、提高性能。模擬實(shí)驗(yàn)表明,該模型避免了集中式執(zhí)行引擎帶來的網(wǎng)絡(luò)擁塞和單點(diǎn)失效問題,提高了海量空間信息資源和計(jì)算資源協(xié)作的可靠性和可用性。
關(guān)鍵詞:分布式哈希表; 資源發(fā)現(xiàn); 分布式計(jì)算; 對(duì)等協(xié)同計(jì)算;地理信息系統(tǒng)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2009)04-1353-04
Peer-to-peer and cooperating computing hybrid discovering model of distributed geospatial information
WU Lianga, XIE Zhonga, CHEN Zhan-longa,b
(a. Faculty of Information Engineering, b. China GIS Software Research Application Engineering Center of Ministry of Education, China University of Geosciences, Wuhan 430074, China)
Abstract:The management of the magnanimous spatial data needs the distributed cooperative GIS platform. In order to resolve the service delay of classical decentralized but structured distributed hash table logical network structure and the mismatch between the overlay and physical network which becomes the obstacle in the way of building an effective peer-to-peer system in a large-scale environment, this paper proposed the peer-to-peer and cooperating computing hybrid discovering model of distributed geospatial information. Based on the SRDA and ordinary neighbor node, this model realized the automatic switch between centralized global spatial resources discovering model and centralized decentralized but structured distributed hash table model and automatically adjusted the logical network of spatial resources to improve performance. Based on the swaps of peers, this paper designed the algorithms that constructed the distributed hash table and decreased the delay. By discovering and performing the potential swaps that are beneficial to the match between overlay and physical network, it could reduce the average latency and improve the performance of the system. The experimental results show that the peer to peer and cooperating computing hybrid discovering model of distributed geospatial information has several benefits, such as avoiding network congestion and single point of failure, and improving the availability and reliability of geospatial data information and computational resources.
Key words:distributed hash table; resources discovering; distributed computing; P2P and cooperative computing; GIS
0 引言
對(duì)等協(xié)同計(jì)算模型是一種構(gòu)建高性能計(jì)算系統(tǒng)的有效方法,在這種系統(tǒng)中用戶可以很方便地訪問地理上分散的計(jì)算機(jī)及其程序與海量空間信息數(shù)據(jù)。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,海量空間信息數(shù)據(jù)勢(shì)必要分布存儲(chǔ)在網(wǎng)絡(luò)環(huán)境下的各個(gè)服務(wù)器中,分布式存儲(chǔ)和分布式處理計(jì)算變得越來越重要。空間信息的對(duì)等協(xié)同計(jì)算不同于一般的空間數(shù)據(jù)共享或交換,也不同于以存在集中式瓶頸和提供預(yù)先定制服務(wù)為特征的Web service計(jì)算,而是用戶可以隨意定制的、大范圍內(nèi)多計(jì)算機(jī)的空間數(shù)據(jù)直接訪問、協(xié)同計(jì)算和結(jié)果匯總處理。另一方面,除數(shù)據(jù)資源共享外,還需要實(shí)現(xiàn)計(jì)算資源(CPU、海量存儲(chǔ)器等)的共享。雖然OGC提出了一系列空間數(shù)據(jù)共享和互操作方面的技術(shù)規(guī)范與標(biāo)準(zhǔn),但它只解決了操作協(xié)議的統(tǒng)一定義問題,既沒有解決計(jì)算服務(wù)的組織問題和用戶層面計(jì)算的分布式實(shí)現(xiàn)機(jī)制,也沒有解決計(jì)算的協(xié)同和數(shù)據(jù)一致性保障機(jī)制[1]。國內(nèi)很多學(xué)者圍繞網(wǎng)格計(jì)算和對(duì)等計(jì)算技術(shù)提出了一些頗有價(jià)值的理論。2006年,方裕等人[1]提出由于空間數(shù)據(jù)的特殊性,網(wǎng)格計(jì)算平臺(tái)不能直接用于空間數(shù)據(jù)的網(wǎng)格計(jì)算的觀點(diǎn),并對(duì)分布式協(xié)同對(duì)等計(jì)算GIS技術(shù)進(jìn)行了研究。中國科學(xué)院計(jì)算技術(shù)研究所的方金云與中國科學(xué)院地理科學(xué)與資源研究所的何建邦提出了網(wǎng)格GIS的五層體系結(jié)構(gòu)模型,分析了空間元數(shù)據(jù)標(biāo)準(zhǔn)、空間服務(wù)標(biāo)準(zhǔn)、分布空間對(duì)象技術(shù)、構(gòu)件與構(gòu)件庫技術(shù)、基于框架的互操作技術(shù)、中間件技術(shù)關(guān)鍵技術(shù);馬修軍等人在文獻(xiàn)[2]中描述的節(jié)點(diǎn)協(xié)作共享資源與計(jì)算雖然采用 P2P的體系結(jié)構(gòu),沒有設(shè)置中心服務(wù)器,不會(huì)出現(xiàn)單點(diǎn)故障和性能瓶頸問題;但是其采用 P2P全局空間資源目錄,每一個(gè)節(jié)點(diǎn)保存系統(tǒng)中所有節(jié)點(diǎn)的 IP地址和空間資源的分布信息和全局目錄,全局信息(全局節(jié)點(diǎn)表和全局目錄)以廣播方式進(jìn)行同步。當(dāng)系統(tǒng)中的節(jié)點(diǎn)和文件數(shù)量增加到一定規(guī)模時(shí),全局信息的同步將耗費(fèi)大量帶寬,最終將很難維護(hù)全局信息的同步,這種組織方式限制了系統(tǒng)向更大的規(guī)模擴(kuò)展。經(jīng)典的分布式哈希表(distributed hash table, DHT)算法如CAN、Chord、Pastry、Tapestry、Koorde和Viceroy采用多跳路由算法進(jìn)行發(fā)現(xiàn)服務(wù)[3],即路由表僅需要維護(hù)O(log N)或O(1)個(gè)節(jié)點(diǎn)狀態(tài),發(fā)現(xiàn)服務(wù)僅需要O(log N)跳路由有效地解決較大網(wǎng)絡(luò)波動(dòng)問題,但卻以增加延時(shí)為代價(jià)。P2P空間資源服務(wù)發(fā)現(xiàn)模型的另一個(gè)問題是:由于每個(gè)節(jié)點(diǎn)被隨機(jī)映射到一個(gè)節(jié)點(diǎn)ID,這樣的映射過程丟失了很多物理網(wǎng)絡(luò)的性質(zhì),構(gòu)建的邏輯覆蓋網(wǎng)絡(luò)往往與物理網(wǎng)絡(luò)不一致。
本文給出了通用的P2P協(xié)同處理中間件及其與P2P協(xié)同混合資源發(fā)現(xiàn)模型的關(guān)系,給出了現(xiàn)有對(duì)等協(xié)同空間信息模型的建立和基于空間資源發(fā)現(xiàn)代理節(jié)點(diǎn)和普通鄰居節(jié)點(diǎn)的空間信息路由算法,并對(duì)該模型進(jìn)行了性能評(píng)價(jià)。
1 P2P協(xié)同處理中間件
在分布式網(wǎng)絡(luò)中,各個(gè)GIS平臺(tái)的服務(wù)器利用網(wǎng)絡(luò)連接,這些GIS平臺(tái)服務(wù)器即為分布式網(wǎng)絡(luò)中的空間數(shù)據(jù)的管理者,負(fù)責(zé)空間信息的服務(wù),按照面向服務(wù)的思想,每個(gè)節(jié)點(diǎn)上的數(shù)據(jù)管理者必須提供“服務(wù)”,在“誰管數(shù)據(jù)誰提供服務(wù)”的基礎(chǔ)上,P2P協(xié)同處理中間件一方面負(fù)責(zé)對(duì)用戶屏蔽空間數(shù)據(jù)源的異構(gòu)性,這是通過空間信息一致性操作接口的設(shè)計(jì)實(shí)現(xiàn)的,向用戶提供統(tǒng)一的空間信息訪問接口,而不用關(guān)心具體的空間數(shù)據(jù)格式以及分布的物理存儲(chǔ);另一方面,為了充分利用網(wǎng)絡(luò)連接各個(gè)節(jié)點(diǎn)的CPU計(jì)算能力,分布式協(xié)同處理中間件負(fù)責(zé)對(duì)用戶提交的空間信息操作進(jìn)行任務(wù)分解,考慮空間數(shù)據(jù)遷移和負(fù)載平衡,協(xié)同其他節(jié)點(diǎn)一起完成空間信息操作任務(wù),這是通過分布式協(xié)同GIS計(jì)算引擎模塊來實(shí)現(xiàn)的。P2P的協(xié)同混合資源發(fā)現(xiàn)模型則是分布式協(xié)同GIS計(jì)算引擎模塊實(shí)現(xiàn)的核心,部署在各個(gè)GIS應(yīng)用服務(wù)器節(jié)點(diǎn)的P2P協(xié)同處理中間件的結(jié)構(gòu)如圖1所示。
2 P2P資源發(fā)現(xiàn)模型
2.1 P2P節(jié)點(diǎn)角色模型設(shè)計(jì)
P2P網(wǎng)絡(luò)中,各個(gè)空間信息節(jié)點(diǎn)擔(dān)任不同的角色,信息化時(shí)代的GIS應(yīng)用要作出一項(xiàng)決策,往往需要在查詢多個(gè)基于各種異構(gòu)數(shù)據(jù)源的業(yè)務(wù)系統(tǒng)和外部系統(tǒng)后,進(jìn)行大量數(shù)據(jù)分析后才能作出決策。空間信息數(shù)據(jù)和空間信息數(shù)據(jù)服務(wù)分布在網(wǎng)絡(luò)的不同位置,本文用P來表示空間數(shù)據(jù)和處理服務(wù)分布的可能性,無論是客戶端還是服務(wù)器,D表示地理數(shù)據(jù),F(xiàn)代表地理處理功能。Da:所有的空間信息數(shù)據(jù);Sa:所有的空間信息服務(wù);Dp:部分空間信息數(shù)據(jù);Sp:部分空間信息服務(wù);NULL:沒有空間信息數(shù)據(jù)和空間信息服務(wù)[4]。得到空間信息數(shù)據(jù)的三元組 D={ Da,Dp,NULL },空間信息服務(wù)的三元組S={Sa,Sp,NULL};則
P= D*S= {( Da, Sa) (Da, Sp) (Da, NULL)
(Dp, Sa) (Dp,Sp) (Dp,NULL)
(NULL, Sa) (NULL, Sp) (NULL, NULL)}
空間服務(wù)的分布含義如表1所示。
表1 空間服務(wù)分布模型
空間服務(wù)分布含 義
1( NULL, NULL)只存在于客戶端,客戶端沒有空間信息數(shù)據(jù)和空間信息服務(wù),是瘦客戶端情況
2(Da, Sa)這是典型的服務(wù)器端,所有的空間信息數(shù)據(jù)和空間信息服務(wù)都由服務(wù)器提供
3(Dp, Sa)部分空間信息數(shù)據(jù),所有的空間信息服務(wù),擁有部分?jǐn)?shù)據(jù)的GIS應(yīng)用服務(wù)器
4(Da, Sp)包括所有的空間信息數(shù)據(jù)和部分空間信息服務(wù),可能是服務(wù)器也可能是客戶端
5(NULL, Sa)擁有所有的空間信息服務(wù),但沒有空間信息數(shù)據(jù),這是典型的GIS應(yīng)用服務(wù)器
6(Dp, Sp)部分空間信息數(shù)據(jù)和空間信息服務(wù),可能是服務(wù)器也可能是客戶端
7(NULL, Sp)部分空間信息服務(wù),沒有空間信息數(shù)據(jù)
8(Da, NULL)這可能是一個(gè)數(shù)據(jù)中心,為GIS應(yīng)用服務(wù)器提供空間信息數(shù)據(jù)
9(Dp, NULL)部分空間信息數(shù)據(jù),為應(yīng)用服務(wù)器管理的部分空間信息數(shù)據(jù)服務(wù)器
2.2 混合資源發(fā)現(xiàn)模型設(shè)計(jì)
根據(jù)上一節(jié)提出的P2P節(jié)點(diǎn)角色模型,為了解決引言中的兩個(gè)問題,需要采取一種改進(jìn)的P2P的路由模型,在P2P全局空間資源目錄模型和多跳路由發(fā)現(xiàn)服務(wù)模型之間自適應(yīng)地調(diào)整并解決失配問題,以提供更好的性能,模型如圖2所示。
在該P(yáng)2P混合路由模型中,對(duì)于N個(gè)節(jié)點(diǎn)的P2P網(wǎng)絡(luò),通過DHT算法所有節(jié)點(diǎn)分布在網(wǎng)絡(luò)環(huán)境中,DHT算法為每個(gè)空間資源發(fā)現(xiàn)代理(spatial resource discovery agent, SRDA)分配一個(gè) ID。SRDA節(jié)點(diǎn)之間采用P2P全局空間資源目錄,所有點(diǎn)采用同一個(gè)DHT算法分配 ID[3]。假設(shè)第i個(gè)SRDA節(jié)點(diǎn)ID為 SRDAi,第i+1個(gè)SRDA節(jié)點(diǎn)ID為 SRDAi+1, SRDAi+1負(fù)責(zé)管理ID空間(SRDAi, SRDAi+1)內(nèi)的所有普通節(jié)點(diǎn),圖4中SRDAi的全局信息(全局節(jié)點(diǎn)表和全局目錄)以廣播方式進(jìn)行同步維護(hù)SRDAi的狀態(tài),這種只包含所有SRDAi節(jié)點(diǎn)的路由表稱之為全局路由表(global routing table, GRT)。普通節(jié)點(diǎn)Ni維護(hù)一個(gè)路由表,該路由表包含前后鄰居節(jié)點(diǎn)的信息,這種只包含鄰居節(jié)點(diǎn)的路由表稱之為鄰居路由表(neighbor routing table,NRT)。可以定義為無向圖(S,U),其中:S={S1,S2,…,Si}為某一空間分布內(nèi)的節(jié)點(diǎn)集合;U為S={S1,S2,…,Si}中任意兩個(gè)節(jié)點(diǎn)的邊。由于SRDA節(jié)點(diǎn)之間采用全局信息(全局節(jié)點(diǎn)表和全局目錄),(S,U)被定義為連通的,即任意(Si,Sj)都有一個(gè)有向路徑(Si,Sj)∈U。令 SRDAiSi為第i空間分布的空間資源發(fā)現(xiàn)代理節(jié)點(diǎn)集合。若對(duì)所有i=1,…,I,SRDAi =Si即所有點(diǎn)都是空間資源發(fā)現(xiàn)代理節(jié)點(diǎn),此時(shí),P2P空間資源發(fā)現(xiàn)路由結(jié)構(gòu)為全局路由表結(jié)構(gòu);若對(duì)所有i=1,…,I,Si!=SRDAi,即沒有超級(jí)點(diǎn), P2P空間資源發(fā)現(xiàn)路由結(jié)構(gòu)又退化成鄰居路由表結(jié)構(gòu),這樣就實(shí)現(xiàn)了兩種空間資源發(fā)現(xiàn)路由結(jié)構(gòu)的自由切換。
2.3 路由轉(zhuǎn)發(fā)機(jī)制
P2P混合模型節(jié)點(diǎn)存儲(chǔ)互相的聯(lián)系信息,以用于路由查詢消息。對(duì)于任何0≤i<160,每個(gè)節(jié)點(diǎn)保存那些到本節(jié)點(diǎn)的距離為2i到2i+1之間的節(jié)點(diǎn)信息列表,包括〈IP地址、UDP端口、節(jié)點(diǎn)ID〉。筆者將這些列表稱為K-桶。每個(gè)K-桶中的節(jié)點(diǎn)按最后聯(lián)系的時(shí)間排序——最久未聯(lián)系的節(jié)點(diǎn)放在頭部,最近聯(lián)系的節(jié)點(diǎn)放在尾部。對(duì)于比較小的i值,K-桶通常是空的(因?yàn)闆]有合適的節(jié)點(diǎn)存在于系統(tǒng)中);對(duì)于比較大的i值,列表節(jié)點(diǎn)數(shù)可以達(dá)到k的大小,k是一個(gè)系統(tǒng)級(jí)別的冗余參數(shù)。k值的選擇必須滿足一個(gè)條件,那就是任意k個(gè)節(jié)點(diǎn)在一個(gè)小時(shí)內(nèi)都失效的可能性很小(如k =20)[5]。
P2P混合模型節(jié)點(diǎn)存儲(chǔ)互相的聯(lián)系信息如表2所示。
表2 存儲(chǔ)桶節(jié)點(diǎn)個(gè)數(shù)表
編號(hào)節(jié)點(diǎn)距離個(gè)數(shù)說明
info0[1,2]的node1ID前159 bit相同,第160 bit一定不同的node: 1個(gè)
info1[2,4]的node2ID前158 bit相同,第159 bit一定不同的node: 2個(gè)
info2[4,8]的node4ID前157 bit相同,第158 bit一定不同的node: 4個(gè)
info159[2×159,2×160]的nod2*159ID第1 bit不同node: 2×159個(gè)。此list中最多保存最近訪問的k個(gè)
當(dāng)一個(gè)node收到另一個(gè)node發(fā)來的消息時(shí),它根據(jù)以下規(guī)則(least-recently seen eviction policy)來刷新相應(yīng)的k-bucket:
如果發(fā)送者已經(jīng)在某一個(gè)k-bucket中,將它在該k-bucket中移動(dòng)到尾部。
a)如果發(fā)送者不在其對(duì)應(yīng)的k-bucket中,且該k-bucket還不滿k個(gè)Node,將這個(gè)發(fā)送者加入到k-bucket的尾部。
b)如果該k-bucket已經(jīng)滿了(有k個(gè)node),那么接收消息的 node向該k-bucket中最老(也就是頭部的)node發(fā)送一個(gè)ping消息,如果這個(gè)最老的node沒有響應(yīng),則將其從k-bucket中刪除,將新的發(fā)送消息的node加入到k-bucket的尾部;如果這個(gè)最老的node響應(yīng)了,則將它移動(dòng)到k-bucket的尾部,并拋棄新的node信息。
節(jié)點(diǎn)查找過程如下[5]:找到距離給定的ID最近的k個(gè)node。定義a為系統(tǒng)范圍內(nèi)的并發(fā)參數(shù)。
a)從k-bucket里面取出a個(gè)最近的node,然后向這a個(gè) node發(fā)送并行的、異步的FIND_NODE RPC。
b)再次發(fā)送 FIND_NODE RPC給從前一步返回的node(這一步可以不必等到前一步中所有a個(gè) PRC都返回后才開始)。從發(fā)送者已知的k個(gè)最接近目標(biāo)的node當(dāng)中,取出a個(gè)還沒有查詢的node,向這a個(gè)node發(fā)送 FIND_NODE RPC。沒有迅速響應(yīng)的node將被排除出考慮之列,直到其響應(yīng)。如果一輪FIND_NODE RPC沒有返回一個(gè)比已知的所有node更接近目標(biāo)的node,發(fā)送者將再向k個(gè)最接近目標(biāo)的、還沒有查詢的node發(fā)送 FIND_NODE RPC。
c)查找結(jié)束的條件。發(fā)送者已經(jīng)向k個(gè)最近的node發(fā)送了查詢,并也得到了響應(yīng)。
當(dāng)a=1 時(shí),查詢過程就是逐跳查詢過程,如圖3所示。
2.4 節(jié)點(diǎn)信息交換機(jī)制
P2P混合模型中采用的主要方法是在保證路由信息有效性的前提下,使得節(jié)點(diǎn)ID可以動(dòng)態(tài)交換,根據(jù)鄰居路由表記錄的前后鄰居節(jié)點(diǎn)的信息,采用Kademli邏輯距離的思想,每隔一段固定的時(shí)間T,節(jié)點(diǎn)u就周期性地探測(cè)一個(gè)隨機(jī)節(jié)點(diǎn)v,根據(jù)邏輯記錄和延遲來確定節(jié)點(diǎn)u與v是否可以交換。
P2P混合模型中每個(gè)節(jié)點(diǎn)均有一個(gè)160 bit的ID值作為標(biāo)志符,根據(jù)特定的任務(wù)分解策略共享空間信息資源key也是一個(gè)160 bit的標(biāo)志符,每一個(gè)加入P2P網(wǎng)絡(luò)的計(jì)算機(jī)都會(huì)在160 bit的key空間被分配一個(gè)節(jié)點(diǎn)ID(node ID),值(〈key,va-lue〉對(duì)的數(shù)據(jù)就存放在ID值最接近key值的節(jié)點(diǎn)上。
為了發(fā)布和尋找〈key,value〉對(duì),P2P混合發(fā)現(xiàn)模型必須計(jì)算兩標(biāo)志符間的距離。給定兩個(gè)標(biāo)志符,x和y, 采用Kademlia網(wǎng)絡(luò)中定義兩者的位異或(XOR)的結(jié)果作為兩者的距離,d(x,y)=x⊕y。異或運(yùn)算具有下面的性質(zhì)[5]:
d(x, x) = 0
d(x, y)λ > 0, if x ≠ y
∨x, y : d(x,λ y) = d(y, x)
d(x, y) + d(y, z) ≥ d(x, z)λ
d(x, y) ⊕ d(y,λ z) = d(x, z)
判斷兩個(gè)節(jié)點(diǎn)x,y的距離遠(yuǎn)近是基于數(shù)學(xué)上的異或的二進(jìn)制運(yùn)算,d(x,y) = x⊕y,既對(duì)應(yīng)位相同時(shí)結(jié)果為0,不同時(shí)結(jié)果為1。
根據(jù)以上計(jì)算的邏輯距離,開始時(shí)設(shè)置 TTL=k,每經(jīng)過一個(gè)節(jié)點(diǎn),TTL減 1,當(dāng)TTL=0時(shí),節(jié)點(diǎn)v被選中。此后,節(jié)點(diǎn)u和節(jié)點(diǎn)v交換它們的地址列表和初始信息。兩節(jié)點(diǎn)分別計(jì)算交換后的局部時(shí)延信息,它們交換新的時(shí)延信息并獨(dú)立計(jì)算差值Diff,如果Diff≤0,表明節(jié)點(diǎn)u與v之間的標(biāo)號(hào)交換不能達(dá)到降低平均時(shí)延的效果,所以沒有進(jìn)一步的操作;如果Diff >0,節(jié)點(diǎn)u和v就要發(fā)生交換操作,即交換節(jié)點(diǎn)的標(biāo)號(hào)和路由表信息。此外,它們還要通知自己的鄰居節(jié)點(diǎn)更改路由表信息[6]。
3 模型評(píng)價(jià)
為了對(duì)本文提出的服務(wù)發(fā)現(xiàn)算法作出客觀評(píng)價(jià),本文采取以下標(biāo)準(zhǔn)[7]:
a)查詢成功率。查詢成功率查詢成功的數(shù)量。
b)查詢延遲。指示了從請(qǐng)求發(fā)起點(diǎn)發(fā)出查詢請(qǐng)求到所有查詢結(jié)果返回所需的時(shí)間。
c)服務(wù)請(qǐng)求總數(shù)量響應(yīng)時(shí)間。響應(yīng)時(shí)間是指信息節(jié)點(diǎn)從發(fā)出服務(wù)請(qǐng)求到收到成功應(yīng)答之間所需要的平均時(shí)間,它是評(píng)價(jià)服務(wù)發(fā)現(xiàn)機(jī)制性能的重要指標(biāo)[8,9]。實(shí)驗(yàn)中,服務(wù)請(qǐng)求由服務(wù)器主動(dòng)發(fā)出。另外由于每個(gè)節(jié)點(diǎn)的處理時(shí)間與查詢?cè)谵D(zhuǎn)發(fā)路徑上的延遲比較起來相對(duì)較小,而網(wǎng)絡(luò)延遲又具有不確定性,因此忽略了每個(gè)節(jié)點(diǎn)上的轉(zhuǎn)發(fā)時(shí)間。
在文中提出的P2P混合資源發(fā)現(xiàn)模型中,由于每個(gè)IP節(jié)點(diǎn)建有本資源發(fā)現(xiàn)代理節(jié)點(diǎn)的全局源路由表和以跳數(shù)為基礎(chǔ)的動(dòng)態(tài)資源路由表,顯著地提高了資源找效率,減少了網(wǎng)絡(luò)帶寬消耗。在模擬實(shí)驗(yàn)中,每一次模擬從9 000個(gè)節(jié)點(diǎn)中隨機(jī)選擇n個(gè)節(jié)點(diǎn),并順序從這些節(jié)點(diǎn)發(fā)出搜索請(qǐng)求,隨機(jī)選取某一節(jié)點(diǎn)i為請(qǐng)求發(fā)起點(diǎn),由節(jié)點(diǎn)i發(fā)起一個(gè)查詢N個(gè)節(jié)點(diǎn)的查詢請(qǐng)求,分別用經(jīng)典的Gnutella洪泛算法、Chord算法和P2P空間資源代理節(jié)點(diǎn)算法對(duì)網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行搜索,然后分別統(tǒng)計(jì)。從圖上可以看出,隨著網(wǎng)絡(luò)節(jié)點(diǎn)的增加,可以很好地減少查找請(qǐng)求的響應(yīng)時(shí)間。圖4顯示了隨著網(wǎng)絡(luò)節(jié)點(diǎn)的增加,各個(gè)系統(tǒng)之間響應(yīng)時(shí)間的對(duì)比情況。同時(shí),在P2P協(xié)同混合資源發(fā)現(xiàn)模型中,空間資源代理節(jié)點(diǎn)根據(jù)全局路由表中的信息,按照一定的算法選擇最好的節(jié)點(diǎn)轉(zhuǎn)發(fā)查找請(qǐng)求,而不是以泛洪的方式向其所有相鄰節(jié)點(diǎn)轉(zhuǎn)發(fā)請(qǐng)求,很好地減輕了網(wǎng)絡(luò)負(fù)載。P2P協(xié)同混合資源發(fā)現(xiàn)模型與Gnutella和 Chord系統(tǒng)網(wǎng)絡(luò)負(fù)載的對(duì)比如圖5所示。
4 結(jié)束語
該研究在國家十一五“863”課題——面向矢量數(shù)據(jù)的分布式空間分析運(yùn)算模型研究與軟件開發(fā)中進(jìn)行了原型設(shè)計(jì),主要目標(biāo)是在現(xiàn)有的矢量空間數(shù)據(jù)運(yùn)算的基礎(chǔ)上,研究具有一定智能的矢量空間運(yùn)算模型,充分利分布式環(huán)境中的計(jì)算資源對(duì)空間數(shù)據(jù)庫中的矢量數(shù)據(jù)進(jìn)行深加工。本文提出了一個(gè)基于資源發(fā)現(xiàn)代理節(jié)點(diǎn)和普通鄰居節(jié)點(diǎn)為基礎(chǔ)的P2P混合資源發(fā)現(xiàn)模型。主要解決現(xiàn)有分布式網(wǎng)絡(luò)中空間信息的資源發(fā)現(xiàn)問題。初步解決了實(shí)現(xiàn)空間信息分布式協(xié)同計(jì)算的資源發(fā)現(xiàn)模型的設(shè)計(jì),但空間信息的P2P資源發(fā)現(xiàn)模型的實(shí)現(xiàn)與實(shí)用還有一定的距離,需進(jìn)一步完善空間數(shù)據(jù)P2P資源發(fā)現(xiàn)模型的細(xì)節(jié)實(shí)現(xiàn),并對(duì)其安全性能進(jìn)行改進(jìn),將是筆者今后研究的重點(diǎn)。
參考文獻(xiàn):
[1]
方裕,鄔倫,謝昆青,等.分布式協(xié)同計(jì)算的GIS技術(shù)研究[J].地理與地理信息科學(xué),2006,22(3):9-12.
[2]馬修軍,劉晨,謝昆青,等. P2P環(huán)境中的全局空間數(shù)據(jù)目錄研究[J].地理與地理信息科學(xué),2006,22(3):23-25.
[3]楊峰,李鳳霞,余宏亮,等.一種基于分布式哈希表的混合對(duì)等發(fā)現(xiàn)算法[J].軟件學(xué)報(bào),2007,18(3):715-721.
[4]高剛毅.分布式地理信息系統(tǒng)研究[D].杭州:浙江大學(xué), 2004.
[5]PETAR M, DAVID M. Kdaemlia.A peer-to-peer information system based on the XOR metric[C]//Proc of IPTPS. Berlin:Springer, 2002:53-65.
[6]邱彤慶,陳貴海.一種令P2P覆蓋網(wǎng)絡(luò)拓?fù)湎嚓P(guān)的通用方法[J].軟件學(xué)報(bào), 2007,18(2):381-389.
[7]盧葦.對(duì)等網(wǎng)絡(luò)分組搜索算法研究[D].成都:四川大學(xué), 2006.
[8]CRESPO A, GARCIA-MOLINA H. Routing indices for peer-to-peer systems[C]//Proc of the 22nd Int’l Conf on Distributed Computing Systems (ICDCS’02). Washington DC: IEEE Computer Society, 2002:23-32.
[9]馬慧,徐孟春,張德文,等.基于資源路由表的P2P資源查找機(jī)制研究[J].微電子學(xué)與計(jì)算機(jī), 2007,24(4):170-173.