蘭明敬,胡建偉
(解放軍信息工程大學(xué) 信息工程學(xué)院,河南 鄭州450002)
DHT機(jī)制具有單值映射的特點(diǎn),即為實(shí)體選取一個(gè)關(guān)鍵字,系統(tǒng)通過哈希算法將關(guān)鍵字一對一映射為空間標(biāo)識,使用此標(biāo)識與結(jié)點(diǎn)標(biāo)識相匹配以決定存儲位置;發(fā)現(xiàn)過程中,若選取的關(guān)鍵字與存儲過程使用的關(guān)鍵字相等,則能夠快速定位到存儲點(diǎn),取出實(shí)體信息;若不相等,則無法查找到實(shí)體。但很多情況下,人們無法準(zhǔn)確描述所搜索的目標(biāo),無法給出實(shí)體存儲時(shí)所使用的關(guān)鍵字,只能給出搜索目標(biāo)的大致特征描述。
一般的解決方法是使用多個(gè)關(guān)鍵字存儲實(shí)體,增大發(fā)現(xiàn)概率,同時(shí)建立集中式服務(wù)器存儲關(guān)鍵字信息用于模糊檢索。這種方法一定程度上損失了P2P技術(shù)的優(yōu)勢,重新帶來單點(diǎn)失效和性能瓶頸風(fēng)險(xiǎn),并可能涉及到版權(quán)問題。人們還利用語義思想來改善結(jié)構(gòu)化P2P系統(tǒng)的搜索[1-3],文獻(xiàn) [2]提出了一種向量空間模型,首先將描述實(shí)體的多個(gè)關(guān)鍵詞向量化,然后再使用哈希函數(shù)處理該向量,得到一個(gè)空間標(biāo)識符;檢索文檔時(shí),將檢索關(guān)鍵詞進(jìn)行同樣的向量化操作,通過比較兩個(gè)向量的相似程度來判斷兩文檔是否匹配。相對于傳統(tǒng)的關(guān)鍵字相等,這種機(jī)制在一定程度上擴(kuò)充了搜索關(guān)鍵字檢索的范圍,但距離模糊搜索還有一定差距,其缺陷主要體現(xiàn)在兩個(gè)方面:一是受限于標(biāo)識符長度,一個(gè)特征向量中包含的特征詞數(shù)目是十分有限的,當(dāng)搜索關(guān)鍵字與特征向量中的特征詞差別較大時(shí)即難以成功檢索;二是特征詞的選取和向量距離計(jì)算算法較為復(fù)雜,不合適的特征詞選取和距離計(jì)算算法將嚴(yán)重降低檢索效果。
本文在傳統(tǒng)的Kademlia算法基礎(chǔ)上進(jìn)行改進(jìn),提出了一種基于類別樹的、靜態(tài)和動(dòng)態(tài)描述相結(jié)合的索引機(jī)制。歸納應(yīng)用系統(tǒng)涉及到的實(shí)體類別建立類別樹,依據(jù)類別樹形成結(jié)點(diǎn)、實(shí)體以及查詢所需的標(biāo)識,使得結(jié)點(diǎn)組織、實(shí)體存儲、結(jié)點(diǎn)和實(shí)體發(fā)現(xiàn)均圍繞類別分布、實(shí)施。為每個(gè)類別編制描述該類別實(shí)體特征的靜態(tài)描述,實(shí)體發(fā)現(xiàn)過程中,先使用關(guān)鍵字列表檢索類別的靜態(tài)描述,綜合考慮關(guān)鍵字匹配情況、樹結(jié)點(diǎn)深度、結(jié)點(diǎn)祖先匹配程度、查詢者喜好等各類因素,得到若干最為滿足查詢需求的類別,將查詢聚焦到類別對應(yīng)的若干P2P結(jié)點(diǎn)上。得到正確結(jié)果時(shí),發(fā)現(xiàn)算法將查詢所用關(guān)鍵字添加到對應(yīng)類別的動(dòng)態(tài)描述中,以此在發(fā)現(xiàn)過程中進(jìn)一步過濾不滿足查詢需求的目標(biāo)結(jié)點(diǎn),使查詢始終圍繞關(guān)鍵字列表進(jìn)行,逐步收斂到滿足需求的P2P結(jié)點(diǎn)上。
為不引起混淆,將改進(jìn)后的P2P結(jié)構(gòu)簡稱為SKad。SKad由若干結(jié)點(diǎn)組成,結(jié)點(diǎn)是互聯(lián)網(wǎng)上的主機(jī),結(jié)點(diǎn)間相互路由形成P2P覆蓋網(wǎng)絡(luò)。Skad可用于分享書籍、文獻(xiàn)、影音、程序等電子文件,實(shí)體是描述這些文件的信息單元,也是Skad存儲、管理的基本元素。
在搭建P2P系統(tǒng)之前,搭建者需要充分分析應(yīng)用特征,歸納系統(tǒng)涉及到的實(shí)體類別,建立類別樹。
類別樹的結(jié)構(gòu)及例子如圖1、圖2所示,樹結(jié)點(diǎn) (C)枚舉了給定P2P系統(tǒng)中可能存儲的所有實(shí)體的類別,樹結(jié)點(diǎn)間的父子關(guān)系等價(jià)于對應(yīng)類別的包含關(guān)系。
樹結(jié)點(diǎn)表示為:C= (cn,sd,ddi)。其中cn為類別名;sd為類別的靜態(tài)描述;ddp為動(dòng)態(tài)描述標(biāo)識,用于查找類別的動(dòng)態(tài)描述。
靜態(tài)描述(sd)記錄了本類別所涵蓋實(shí)體的詳細(xì)特征,直接存儲在對應(yīng)的樹結(jié)點(diǎn)中。實(shí)體存儲、發(fā)現(xiàn)過程中,算法首先依據(jù)描述實(shí)體的關(guān)鍵字列表,檢索類別樹中各類別的靜態(tài)描述,獲得若干與實(shí)體相匹配的類別,以此定位實(shí)體的存儲結(jié)點(diǎn),縮減查詢范圍。P2P系統(tǒng)搭建者需要在建立類別樹的同時(shí),為每個(gè)類別編制詳細(xì)的靜態(tài)描述??赏ㄟ^互聯(lián)網(wǎng)搜索引擎或其他途徑,搜集某類別相關(guān)的各類文字描述,整理、合到該類別的靜態(tài)描述中。靜態(tài)描述的格式可以是字符串文本,也可以是數(shù)據(jù)庫或其他格式,前提是該格式能夠支持上述關(guān)鍵字檢索過程,且易于增量式擴(kuò)充。
靜態(tài)描述存儲在類別樹中,而類別樹則和其他實(shí)體一樣存儲在P2P網(wǎng)絡(luò)中 (如圖3所示)。一般情況下,類別樹使用一個(gè)全局唯一且公開的標(biāo)識符,以單一文件的方式存儲在P2P中。若類別樹較大,也可按類別劃分為若干子樹,分布存儲在P2P中。劃分的數(shù)目不宜過多,過多的子樹將帶來更多的流量開銷和管理負(fù)擔(dān)。
圖3 類別樹和類別描述存儲方法
在系統(tǒng)運(yùn)行過程中,類別樹結(jié)構(gòu)應(yīng)較為固定。類別樹應(yīng)具有明確且固定的分類方法,系統(tǒng)運(yùn)行過程中,分類方法不能改變,類別樹中已經(jīng)存在樹結(jié)點(diǎn)的名稱、動(dòng)態(tài)描述標(biāo)識以及樹結(jié)點(diǎn)間的連接關(guān)系不能改變。類別樹創(chuàng)建者(或其他人)可低頻度地、增量式地更新完善類別樹,包括增加樹結(jié)點(diǎn),豐富類別靜態(tài)描述信息。盡管不是所有應(yīng)用都滿足上述要求,但大部分的、常見的互聯(lián)網(wǎng)P2P應(yīng)用都是滿足此要求的。比如音樂、軟件分享類應(yīng)用,不難確定一種可用的、無需經(jīng)常改變、易于維護(hù)的音樂、軟件分類方法。
動(dòng)態(tài)描述同樣記錄了類別所包含實(shí)體的特征,差別在于動(dòng)態(tài)描述是在系統(tǒng)運(yùn)行過程中由發(fā)現(xiàn)算法動(dòng)態(tài)地生成并不斷擴(kuò)充的。類別樹按其動(dòng)態(tài)描述標(biāo)識 (ddp),分散存儲在P2P網(wǎng)絡(luò)中 (如圖3所示),其存儲格式也應(yīng)支持關(guān)鍵字檢索以及增量式擴(kuò)充。類別樹創(chuàng)建者在建立類別樹的同時(shí)應(yīng)為每個(gè)類別設(shè)定相應(yīng)的動(dòng)態(tài)描述標(biāo)識,此標(biāo)識一般為從類別樹根到所在類別的路徑向量經(jīng)過編碼得到的二進(jìn)制串,動(dòng)態(tài)描述標(biāo)識直接存儲在類別樹的樹結(jié)點(diǎn)中。
實(shí)體存儲、發(fā)現(xiàn)過程中,算法得到下一跳結(jié)點(diǎn)列表時(shí),使用描述實(shí)體的關(guān)鍵字列表檢索下一跳結(jié)點(diǎn)對應(yīng)類別的動(dòng)態(tài)描述,判斷該結(jié)點(diǎn)是否符合實(shí)體特征,進(jìn)一步縮減路由目標(biāo),提高結(jié)點(diǎn)和實(shí)體發(fā)現(xiàn)效果。
結(jié)點(diǎn)和實(shí)體標(biāo)識決定了P2P網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和實(shí)體存儲位置,本文中,實(shí)體和結(jié)點(diǎn)的標(biāo)識均來源于類別樹。
實(shí)體標(biāo)識的產(chǎn)生方法為:從實(shí)體相關(guān)信息 (如音樂文件的名稱、作者、描述信息)中抽取若干有代表性的關(guān)鍵字,遍歷類別樹各結(jié)點(diǎn),檢索結(jié)點(diǎn)的靜態(tài)描述和動(dòng)態(tài)描述文本,獲得與實(shí)體相匹配的樹結(jié)點(diǎn)列表;從列表中選擇一個(gè)匹配度最高的結(jié)點(diǎn),設(shè)為Cij,則實(shí)體標(biāo)識eid為
eid =hash (cn1,cn2,…,cni,en)
其中cn1、cn2、…、cni為類別樹從根結(jié)點(diǎn)到Cij結(jié)點(diǎn)路徑上各樹結(jié)點(diǎn)的結(jié)點(diǎn)名;en為實(shí)體名稱;hash是哈希函數(shù),將字符串轉(zhuǎn)變二進(jìn)制碼。哈希函數(shù)與具體的P2P系統(tǒng)相關(guān),本文中不做要求,但建議類別相近的實(shí)體,其標(biāo)識距離也應(yīng)相近,這樣會(huì)使得實(shí)體按照類別聚集,從而使P2P網(wǎng)絡(luò)具有更好的收斂特性,采用合適的搜索算法可以有效降低一次查詢所需的消息交換次數(shù)。
參考以下條件并采用加權(quán)的方式,從匹配的樹結(jié)點(diǎn)列表中選擇最匹配的樹結(jié)點(diǎn):樹結(jié)點(diǎn)靜態(tài)、動(dòng)態(tài)描述文本中,與關(guān)鍵詞匹配的詞匯數(shù)越多則樹結(jié)點(diǎn)匹配度越高;深度越大則樹結(jié)點(diǎn)匹配度越高;父結(jié)點(diǎn)越匹配則樹結(jié)點(diǎn)匹配度越高;越多祖先結(jié)點(diǎn)匹配則樹結(jié)點(diǎn)匹配度越高。選擇樹結(jié)點(diǎn)的過程就是依據(jù)類別樹對實(shí)體進(jìn)行分類的過程,為使這種分類更為精確,可讓人參與到最優(yōu)結(jié)點(diǎn)的選擇過程中,即由程序給出推薦的樹結(jié)點(diǎn)列表,由實(shí)體發(fā)布者從中選擇一個(gè)最合適的。
結(jié)點(diǎn)標(biāo)識的產(chǎn)生過程與實(shí)體標(biāo)識類似,不同之處在于由于結(jié)點(diǎn)沒有適于檢索類別樹的描述信息,因此在優(yōu)先考慮路徑較深樹結(jié)點(diǎn)的前提下,采用隨機(jī)的方法為結(jié)點(diǎn)分配樹結(jié)點(diǎn),設(shè)為Cij,結(jié)點(diǎn)標(biāo)識nid為:nid =hash (cn1,cn2,…,cni,nn),nn為結(jié)點(diǎn)名稱。
將與實(shí)體/結(jié)點(diǎn)相匹配并用于生成實(shí)體/結(jié)點(diǎn)標(biāo)識的類別,稱為該實(shí)體/結(jié)點(diǎn)的所屬類別。
以結(jié)點(diǎn)發(fā)現(xiàn)為核心的發(fā)現(xiàn)算法,是新增、更新、檢索結(jié)點(diǎn)和實(shí)體等管理過程的基礎(chǔ),下面以實(shí)體發(fā)現(xiàn)過程為例,闡述基于類別樹和靜態(tài)、動(dòng)態(tài)描述的發(fā)現(xiàn)算法。
實(shí)體發(fā)現(xiàn)過程可劃分為生成檢索和查找實(shí)體兩個(gè)階段:
生成檢索階段:①拆分用戶的檢索請求,得到描述待發(fā)現(xiàn)實(shí)體的關(guān)鍵字列表keys= {key,key2,…};②使用上述關(guān)鍵字列表遍歷類別樹,檢索樹結(jié)點(diǎn)的靜態(tài)描述描述,得到若干匹配的樹結(jié)點(diǎn),從中選取k個(gè)匹配度較高的樹結(jié)點(diǎn)。k為系統(tǒng)參數(shù),k越大則查全率越高但消耗的帶寬和計(jì)算資源也越多;③依據(jù)上述k個(gè)樹結(jié)點(diǎn)生成實(shí)體標(biāo)識列表ids= {id1,id2,…,idk};④使用實(shí)體標(biāo)識列表和關(guān)鍵字生成k個(gè)查詢請求reqs= {req1,req2,…,reqi,… },其中reqi= (idi,keys)。每個(gè)請求中均附帶完整的關(guān)鍵字列表,此列表用于在查詢過程中進(jìn)一步過濾不滿足條件的路由目標(biāo) (見查找實(shí)體階段第3步);⑤分別使用上述查詢請求查找實(shí)體。
查找實(shí)體階段:①訪問P2P的任一結(jié)點(diǎn)提交查詢請求,稱此結(jié)點(diǎn)為起始點(diǎn);②依據(jù)路由算法,起始點(diǎn)返回若干備選下一跳結(jié)點(diǎn);③考察查詢點(diǎn)和備選下一跳結(jié)點(diǎn),從中選取p個(gè)更為匹配的結(jié)點(diǎn)形成下一跳結(jié)點(diǎn)列表。p為并行度,更大的并行度意味著更全面的查詢結(jié)果和更大的計(jì)算、帶寬消耗。選擇下一跳結(jié)點(diǎn)的方法有兩種:一是結(jié)點(diǎn)id與請求id距離更小;二是結(jié)點(diǎn)描述與請求中的關(guān)鍵字列表更為匹配??删C合考慮上述兩種方法得到更優(yōu)的下一跳結(jié)點(diǎn)列表;④分別向下一跳結(jié)點(diǎn)列表中的結(jié)點(diǎn)提交查詢請求,得到更多的備選下一跳結(jié)點(diǎn);依據(jù)步驟3的方法,從中選擇p個(gè)更為匹配的結(jié)點(diǎn)形成新的下一跳結(jié)點(diǎn)列表;循環(huán)此步驟,直至下一跳結(jié)點(diǎn)列表不再變化;⑤訪問下一跳結(jié)點(diǎn)列表中的結(jié)點(diǎn),從其實(shí)體表中獲取備選實(shí)體。依據(jù)步驟3中的選擇方法,選擇若干更為匹配的實(shí)體返回給查詢者。
上述過程中可以明顯地看出類別樹、靜態(tài)描述和動(dòng)態(tài)描述的作用。類別樹將實(shí)體、結(jié)點(diǎn)與類別關(guān)聯(lián)起來,形成按類別的實(shí)體、結(jié)點(diǎn)分布。靜態(tài)描述用在檢索階段,依托靜態(tài)描述,以字符串匹配的方式且同時(shí)使用多個(gè)關(guān)鍵字,檢索類別樹,綜合考慮匹配數(shù)目、樹結(jié)點(diǎn)深度、祖先匹配度甚至和人工選擇結(jié)合在一起,優(yōu)選出若干用于查詢的標(biāo)識。而傳統(tǒng)算法只能夠?qū)我魂P(guān)鍵字進(jìn)行哈希運(yùn)算產(chǎn)生單一標(biāo)識,多個(gè)關(guān)鍵字分別產(chǎn)生不同的標(biāo)識符,相互之間完全獨(dú)立。
在傳統(tǒng)算法中,查詢所用的標(biāo)識符與被查詢的目標(biāo)結(jié)點(diǎn)是一一對應(yīng)的,前者一旦確定,后者則相應(yīng)地也被確定,查詢過程只是按路由算法找到標(biāo)識符對應(yīng)的這個(gè)目標(biāo)點(diǎn)。而本文中,檢索階段將查詢聚焦到與關(guān)鍵字相匹配的若干類別上,查詢這些類別對應(yīng)P2P結(jié)點(diǎn)的過程中,使用關(guān)鍵字列表檢索下一跳結(jié)點(diǎn)的動(dòng)態(tài)描述,修正查詢路線,使得查詢過程始終圍繞關(guān)鍵字進(jìn)行,不斷收斂到與關(guān)鍵字最為匹配的結(jié)點(diǎn)上。
查詢者在每次查詢過程中都要去訪問類別樹、靜態(tài)描述和相關(guān)類別的動(dòng)態(tài)描述,可采用兩種方法降低此過程所需要的帶寬開銷。對于類別樹以及存儲在樹結(jié)點(diǎn)中的靜態(tài)描述,由于其唯一性且變動(dòng)頻率較小,因此可將其內(nèi)置到P2P軟件中,定期更新即可,無需每次查詢都去存儲點(diǎn)下載。對于動(dòng)態(tài)描述,考慮到其動(dòng)態(tài)且分散存儲的特點(diǎn),可在P2P系統(tǒng)軟件中增加動(dòng)態(tài)描述更新、檢索模塊,與系統(tǒng)軟件一起部署在所有的P2P結(jié)點(diǎn)上,需要檢索動(dòng)態(tài)描述時(shí),查詢者只需發(fā)送檢索請求至對應(yīng)的存儲點(diǎn)即可。
依據(jù)上述方法,我們對p2psim仿真環(huán)境進(jìn)行改造,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)原型系統(tǒng) (簡稱SKad)。在Skad存儲了若干書籍、文獻(xiàn)信息,就信息檢索效果做了與Kademlia的對比測試。表1羅列了測試環(huán)境及數(shù)據(jù)構(gòu)成。
表1 測試環(huán)境及數(shù)據(jù)構(gòu)成
依托上述環(huán)境共進(jìn)行了五次試驗(yàn),分別編號為實(shí)驗(yàn)1、實(shí)驗(yàn)2、…、實(shí)驗(yàn)5,各實(shí)驗(yàn)得到的總正確結(jié)果如圖4所示。
圖4 總正確結(jié)果對比
實(shí)驗(yàn)結(jié)果顯示SKad正確結(jié)果明顯高于Kademlia,這是符合預(yù)期的,因?yàn)镾kad支持模糊檢索而Kademlia只能進(jìn)行精確匹配。
下面就實(shí)驗(yàn)3結(jié)果數(shù)據(jù)進(jìn)行具體分析。圖5描述了本次實(shí)驗(yàn)每次查詢Skad和Kademlia分別得到的正確結(jié)果數(shù)。可以看到,50次查詢中Kademlia共得到21個(gè)正確結(jié)果,正確率為0.42;每次查詢的正確結(jié)果數(shù)大多為0、1,很少達(dá)到2;結(jié)果為非零的查詢有20次。對于Kademlia來說,某個(gè)查詢關(guān)鍵字能否得到有效結(jié)果取決于此關(guān)鍵字是否是某實(shí)體發(fā)布時(shí)所使用的關(guān)鍵字。在本實(shí)驗(yàn)中,實(shí)體發(fā)布時(shí)所使用的關(guān)鍵字是從5*2000個(gè)關(guān)鍵字中隨機(jī)選取的2*2000個(gè)關(guān)鍵字;而查詢關(guān)鍵字是從5*2000個(gè)關(guān)鍵字中隨機(jī)選取的50個(gè)關(guān)鍵字;因此,對于每個(gè)查詢關(guān)鍵字來說,其等同于發(fā)布關(guān)鍵字的概率為0.4?;诖?,查詢關(guān)鍵字能夠查得結(jié)果的概率為0.4,這與實(shí)驗(yàn)結(jié)果相符。第9次查詢結(jié)果數(shù)為2,這意味著存在兩個(gè)使用同樣關(guān)鍵字進(jìn)行存儲的實(shí)體。
圖5 實(shí)驗(yàn)3正確查詢結(jié)果對比
觀察Skad的查詢結(jié)果,正確結(jié)果數(shù)為305,平均每次查詢得到6.1個(gè)正確結(jié)果,顯然,在類別樹和靜態(tài)、動(dòng)態(tài)描述的輔助下,Skad查詢效果得到顯著提升。但同時(shí)Skad的正確結(jié)果數(shù)目波動(dòng)較大,第21次查詢結(jié)果數(shù)為39,第33次查詢結(jié)果數(shù)為0??疾斓?1次查詢,此次查詢選取的查詢關(guān)鍵字為 “醫(yī)療”,對比類別樹可以發(fā)現(xiàn),這種關(guān)鍵字具有較大的覆蓋范圍,描述醫(yī)療類別的書籍和文獻(xiàn)都滿足條件,因此得到了大量的查詢結(jié)果。而第33次查詢使用的關(guān)鍵字為 “洞室襯護(hù)”,此關(guān)鍵字出現(xiàn)在文獻(xiàn) “巖石流變力學(xué)及其工程應(yīng)用研究的若干進(jìn)展”的摘要中,考察類別樹我們發(fā)現(xiàn)在此關(guān)鍵字既非類別結(jié)點(diǎn),也未出現(xiàn)在靜態(tài)描述中,也沒有使用此關(guān)鍵字存儲或查詢過SKad(即未加入動(dòng)態(tài)描述中),故此次查詢沒有得到正確結(jié)果。查詢結(jié)果的這種波動(dòng)現(xiàn)象反映出Skad的特點(diǎn),即SKad的查詢效果與類別樹結(jié)構(gòu)是否合理、靜態(tài)描述是否完善、動(dòng)態(tài)描述是否充分、查詢關(guān)鍵字選取是否合理等因素緊密相關(guān),第1、2點(diǎn)是系統(tǒng)構(gòu)建者需要考慮的問題,構(gòu)建一個(gè)較完善合理的類別樹、編制詳細(xì)的類別描述可有效提高查詢效果;第3點(diǎn)取決于系統(tǒng)的運(yùn)行時(shí)間和使用頻度,運(yùn)行時(shí)機(jī)越長,經(jīng)歷的查詢越多,則系統(tǒng)累積的動(dòng)態(tài)描述越充分;第4點(diǎn)取決于P2P系統(tǒng)查詢者,按照人們的行為習(xí)慣,人們往往并不是隨機(jī)選擇關(guān)鍵字,而是選取那些與所查目標(biāo)關(guān)系較為緊密,能夠直觀描述所查目標(biāo)的詞匯作為查詢關(guān)鍵字,這有助于提升Skad發(fā)現(xiàn)效果。
本文提出一種基于類別樹的、靜態(tài)和動(dòng)態(tài)相結(jié)合的索引機(jī)制。類別樹中歸納了系統(tǒng)所存儲實(shí)體的類別,用于形成結(jié)點(diǎn)、實(shí)體以及查詢所需的標(biāo)識,使得結(jié)點(diǎn)組織、實(shí)體存儲、結(jié)點(diǎn)和實(shí)體發(fā)現(xiàn)均圍繞類別分布、實(shí)施。靜態(tài)描述用于依據(jù)關(guān)鍵字為結(jié)點(diǎn)、實(shí)體和查詢請求選擇類別,選擇過程是模糊的,采用字符串匹配的方式,綜合考慮各關(guān)鍵字匹配程度、樹結(jié)點(diǎn)深度、祖先結(jié)點(diǎn)匹配程度、查詢者喜好等各因素,能夠取得充分的、滿足查詢需求的若干實(shí)體類別。當(dāng)查詢成功時(shí),系統(tǒng)會(huì)搜集查詢所用關(guān)鍵字,累積到對應(yīng)類別的動(dòng)態(tài)描述中,用于豐富類別描述信息,在查詢過程中動(dòng)態(tài)地過濾不滿足請求的類別結(jié)點(diǎn),使查詢始終圍繞查詢關(guān)鍵字,不斷收斂到滿足需求的類別上。
本文同時(shí)給出了類別樹和靜態(tài)描述、動(dòng)態(tài)描述的生成時(shí)機(jī)、管理方法。
本文提出的基于類別樹的、靜態(tài)和動(dòng)態(tài)描述相結(jié)合的索引機(jī)制,適用于能夠?qū)λ鎯?shí)體進(jìn)行明確分類的應(yīng)用領(lǐng)域,實(shí)現(xiàn)了結(jié)構(gòu)化P2P中的模糊檢索功能。無需集中式索引服務(wù)器,無需大量的索引管理工作,有效避免單點(diǎn)失效和性能瓶頸問題。實(shí)驗(yàn)證明,本方法相對于傳統(tǒng)的結(jié)構(gòu)化P2P網(wǎng)絡(luò),具有較好的查詢效果。算法已在某服務(wù)計(jì)算平臺中成功應(yīng)用,此平臺已通過驗(yàn)收并連續(xù)運(yùn)行近一年。
今后,我們將研究、測試類別樹的結(jié)構(gòu)對網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)負(fù)載的影響,同時(shí)尋求合適的分詞算法,應(yīng)用到關(guān)鍵字與類別描述文本的匹配過程中,提高檢索效果。
[1]Zhu X S.Research on semantic peer-to-peer overlay route model[J].Computer Engineering,2008,43 (13):110-112.
[2]Wang Z X,Zhang D L,Liu L.Study on semantic-supporting search in P2P [J].Computer Engineering and Applications,2007,43 (3):8-11.
[3]Zhang Y J,Gu J H,Wang X Z.A hierarchical P2Psemantic overlay network architecture based on topic and physical proximity [J].Journal of Electronics &Information Technology,2008,30 (8).
[4]Wang C Z,Yang N,Chen H W.Improving lookup performance based on kademlia [C]// Proc of the Second International Conference on Networks Security,Wireless Communications and Trusted Computing,2010:446-449.
[5]Chand R,Cosnard M,Liquori L.Powerful resource discovery for Arigatoni overlay network [J].Future Generation Computer Systems,2008,24 (1):31-38.
[6]Stevens T,Wauters T,Develder C,et al.Analysis of an anycast based overlay system for scalable service discovery and execution [J].Computer Networks,2010,54 (1):97-111.
[7]Liu Z Z,Wang H M,Zhou B.A two layered P2Pmodel for semantic service discovery [J].Journal of Software,2007,18(8):1922-1932.
[8]Wu W M,Wu Y J,Zhao W Y.Chord-based semantic web service discovery [J].Acta Electronica Sinica,2007,35 (B12):152-155.
[9]Zhang Y,Huang H,Yang D,et al.Bring QoS to P2P-based semantic service discovery for the universal network [J].Personal and Ubiquitous Computing,2009,13 (7):471-477.
[10]Di Stefano A,Morana G,Zito D.A P2Pstrategy for QoS discovery and SLA negotiation in grid environment [J].Future Generation Computer Systems,2009,25 (8):862-875.
[11]Zhou J,Dou W.A QoS-aware service selection approach on P2Pnetwork for dynamic cross-organizational workflow development [C]//Proc of the International Conference on Web Information Systems and Mining.Berlin:Springer-Verlag,2009:289-298.
[12]Xie C G,Guo D K,Chen H H.Research on service discovery protocol of global information grid based on peer-to-peer network [J].Computer Engineering,2007,33 (2):97-98.