楊盛峰
(長江大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,湖北 荊州434023;荊州軍分區(qū)鐘鼓樓干休所,湖北 荊州434020)
王 焱
(鄖陽師范高等??茖W(xué)校教育系,湖北 十堰442000)
點(diǎn)對點(diǎn)技術(shù)(peer-to-peer,P2P)又稱對等互聯(lián)網(wǎng)絡(luò)技術(shù),充分挖掘了網(wǎng)絡(luò)節(jié)點(diǎn)的空閑資源,極大提高了網(wǎng)絡(luò)資源的使用效率,受到學(xué)術(shù)界和企業(yè)界的普遍關(guān)注。根據(jù)P2P網(wǎng)絡(luò)的組建方式不同,一般將P2P網(wǎng)絡(luò)分為結(jié)構(gòu)化P2P網(wǎng)絡(luò)和非結(jié)構(gòu)化P2P網(wǎng)絡(luò),結(jié)構(gòu)化P2P網(wǎng)絡(luò)主要通過分布式哈希表DHT(DHT,Distributed Hash Table)實(shí)現(xiàn),能夠快速對目標(biāo)資源進(jìn)行定位。非結(jié)構(gòu)化P2P網(wǎng)絡(luò)對資源的搜索主要是基于泛洪算法,消耗較多的系統(tǒng)資源。當(dāng)前國內(nèi)外最新研究表明,P2P網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)既不是確定性的結(jié)構(gòu)化網(wǎng)絡(luò),也不是隨機(jī)的非結(jié)構(gòu)化網(wǎng)絡(luò)。根據(jù)Small Worl d模型和冪規(guī)律[1],考慮了結(jié)構(gòu)化網(wǎng)絡(luò)和非結(jié)構(gòu)化的特點(diǎn),在原有Chor d模型的基礎(chǔ)上,提出了一種改進(jìn)的Chor d模型,并將改進(jìn)的Chor d模型應(yīng)用到遠(yuǎn)程教育系統(tǒng)中,以便提高遠(yuǎn)程教育系統(tǒng)的資源利用效率和資源搜索速度。
Chor d模型是基于環(huán)形結(jié)構(gòu)建立的,該模型中的每個關(guān)鍵字和節(jié)點(diǎn)都分別擁有一個m比特的標(biāo)識符。資源關(guān)鍵字標(biāo)識符K通過哈希關(guān)鍵字取得,而環(huán)節(jié)點(diǎn)標(biāo)識符N則通過哈希節(jié)點(diǎn)的IP地址取得,然后將資源關(guān)鍵字分配到等于或者最接近的環(huán)形節(jié)點(diǎn)上。Chor d模型中節(jié)點(diǎn)的分配是從邏輯上實(shí)現(xiàn)的,節(jié)點(diǎn)在網(wǎng)絡(luò)中的地位是完全平等的,共同承擔(dān)系統(tǒng)的負(fù)載任務(wù),查找具有確定性,而且還具有較好的可擴(kuò)展性[2]。但也存在沒有考慮節(jié)點(diǎn)的物理關(guān)系、沒有考慮到節(jié)點(diǎn)的實(shí)際能力大小和負(fù)載不均衡等方面的缺點(diǎn)[3],導(dǎo)致資源利用效率較低,存在一些資源的搜索時間過長的現(xiàn)象。
改進(jìn)Chor d模型的基本思想是在原Chor d模型的基礎(chǔ)上充分考慮了節(jié)點(diǎn)的實(shí)際能力和物理位置,將模型內(nèi)的節(jié)點(diǎn)分為群首節(jié)點(diǎn)、群節(jié)點(diǎn)、備份節(jié)點(diǎn),同一區(qū)域的節(jié)點(diǎn)構(gòu)成一個群組。其定義如下:
1)群組 根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的相對位置,劃分多個不同的群組,將位置較近的劃分到一個群組中。2)群首節(jié)點(diǎn) 根據(jù)節(jié)點(diǎn)的運(yùn)行速度、存儲容量、穩(wěn)定程度和在線時間等性能指標(biāo)選擇出一個群組中性能最優(yōu)的節(jié)點(diǎn)為群首節(jié)點(diǎn),其功能主要是負(fù)責(zé)所在群組節(jié)點(diǎn)的事務(wù)。
3)備份節(jié)點(diǎn) 又稱次群首節(jié)點(diǎn),在同一群組中,備份節(jié)點(diǎn)的性能僅次于群首節(jié)點(diǎn),高于其他節(jié)點(diǎn)的性能。
4)群節(jié)點(diǎn) 又稱普通節(jié)點(diǎn),在同一群組中除群首節(jié)點(diǎn)和備份節(jié)點(diǎn)外的節(jié)點(diǎn)。
改進(jìn)Chord模型中需要將節(jié)點(diǎn)分為多個群組,群組的劃分可以通過空間劃分法和時間劃分法2種方法來實(shí)現(xiàn)??臻g劃分法劃分群組的原理是通過IP地址的特點(diǎn)來實(shí)現(xiàn)的,根據(jù)IP地址的網(wǎng)絡(luò)部分和主機(jī)部分的值由哈希函數(shù)生成節(jié)點(diǎn)標(biāo)識符,根據(jù)節(jié)點(diǎn)標(biāo)識符網(wǎng)絡(luò)部分的哈希值判斷該節(jié)點(diǎn)是否在位于同一群組。時間劃分法的實(shí)現(xiàn)首先選定合適的若干界標(biāo)點(diǎn),界標(biāo)點(diǎn)的個數(shù)根據(jù)實(shí)際情況決定,界標(biāo)點(diǎn)個數(shù)越多,其群組數(shù)就越多。界標(biāo)點(diǎn)確定后分別計(jì)算網(wǎng)絡(luò)中的每個節(jié)點(diǎn)與這些界標(biāo)點(diǎn)的傳輸時間間隔,將傳輸時間間隔按升序或降序排序,順序相同的節(jié)點(diǎn)說明其在一個局部范圍內(nèi),將其劃分成一個群組,將順序相近的群組劃分成相鄰的群組。通過空間劃分法和時間劃分法保證了改進(jìn)Chor d模型中的節(jié)點(diǎn)的邏輯位置與物理位置的一致,減少了原有Chor d模型資源交換平均跳轉(zhuǎn)數(shù)和網(wǎng)絡(luò)的通信代價(jià)。
改進(jìn)Chor d模型是一種分層結(jié)構(gòu),由主環(huán)和子環(huán)組成。根據(jù)上述2種群組劃分法將節(jié)點(diǎn)分成不同的群組,每個群組形成一個子環(huán),物理位置相近的子環(huán)相互連接構(gòu)成主環(huán)。改進(jìn)后的Chor d模型有效的考慮了節(jié)點(diǎn)的物理位置和節(jié)點(diǎn)的性能差異,并且充分利用緩存技術(shù),將熱點(diǎn)資源的索引信息寫入到所有群首結(jié)點(diǎn)的緩存區(qū),其查詢大多數(shù)能夠在子環(huán)中實(shí)現(xiàn)。子環(huán)中節(jié)點(diǎn)的個數(shù)由實(shí)際網(wǎng)絡(luò)的結(jié)構(gòu)決定。改進(jìn)模型中群首節(jié)點(diǎn)、群節(jié)點(diǎn)和備份節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)如下[4]:
1)群首節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu) 群首節(jié)點(diǎn)負(fù)責(zé)管理所在群組節(jié)點(diǎn)的運(yùn)行,同時不同子環(huán)節(jié)點(diǎn)的通信也是通過群首節(jié)點(diǎn)建立聯(lián)系的,其數(shù)據(jù)結(jié)構(gòu)主要包括雙重路由表,熱點(diǎn)資源信息表和心跳次數(shù)表。①雙重路由表是指在群首節(jié)點(diǎn)中既包括了主環(huán)的路由表,也包括了所在子環(huán)的路由表,其定義方法遵循原Chor d模型的定義方法。②熱點(diǎn)資源信息表主要為快速查找熱點(diǎn)資源而建立的索引信息表。首先判斷一定時間內(nèi)訪問次數(shù)是否大于事先規(guī)定的臨界值,如果大于臨界值,該資源就為熱點(diǎn)資源,然后將其信息記錄在熱點(diǎn)資源信息表上,信息表的具體結(jié)構(gòu)為《關(guān)鍵字、節(jié)點(diǎn)標(biāo)識符、熱點(diǎn)資源所在節(jié)點(diǎn)IP》。③心跳次數(shù)表的主要用來判斷在一定時間期間內(nèi)群首結(jié)點(diǎn)的前趨節(jié)點(diǎn)、后繼節(jié)點(diǎn)和備份節(jié)點(diǎn)是否處于生命活動周期。心跳發(fā)送節(jié)點(diǎn)定期的向心跳接受接點(diǎn)發(fā)送消息,表示發(fā)送接點(diǎn)處于生命活動周期,如果大于一定時間時期未發(fā)送一次消息,說明該發(fā)送節(jié)點(diǎn)已經(jīng)離開網(wǎng)絡(luò),此時應(yīng)對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行調(diào)整。心跳次數(shù)表的數(shù)據(jù)結(jié)構(gòu)為《備份節(jié)點(diǎn)未發(fā)消息次數(shù)、前趨節(jié)點(diǎn)未發(fā)消息次數(shù)、后繼節(jié)點(diǎn)未發(fā)消息次數(shù)》。
2)群節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu) 群節(jié)點(diǎn)是子環(huán)內(nèi)的節(jié)點(diǎn),在一個子環(huán)內(nèi)除群首節(jié)點(diǎn)和備份節(jié)點(diǎn)上,其余節(jié)點(diǎn)均為普通節(jié)點(diǎn),其數(shù)據(jù)結(jié)構(gòu)主要由子環(huán)路由表、資源訪問次數(shù)信息表和附加信息表組成。①子環(huán)路由表:與原Chor d模型路由定義方法一致。②資源訪問次數(shù)信息表:通過資源的訪問次數(shù)來確定該資源是否為熱點(diǎn)資源,若為熱點(diǎn)資源,就將其索引信息寫入群首結(jié)點(diǎn),其數(shù)據(jù)結(jié)構(gòu)為《資源號、資源被訪問次數(shù)》。③附加信息表:其主要記錄子環(huán)中群首節(jié)點(diǎn)和備份節(jié)點(diǎn)的相關(guān)信息,為網(wǎng)絡(luò)結(jié)構(gòu)的調(diào)整提供信息。
3)備份節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu) 備份節(jié)點(diǎn)的主要功能是備份所在子環(huán)中群首節(jié)點(diǎn)的信息,當(dāng)群首節(jié)點(diǎn)離開網(wǎng)絡(luò)時將備份節(jié)點(diǎn)調(diào)整到主環(huán),取代當(dāng)前子環(huán)群首節(jié)點(diǎn)的功能,其數(shù)據(jù)結(jié)構(gòu)包括子環(huán)路由表、資源訪問次數(shù)信息表和群首節(jié)點(diǎn)備份表。子環(huán)路由表和資源訪問次數(shù)信息表與群節(jié)點(diǎn)的結(jié)構(gòu)一致,不需重新定義。群首節(jié)點(diǎn)備份表用來備份當(dāng)前子環(huán)群首節(jié)點(diǎn)的主環(huán)路由表、熱點(diǎn)資源信息表和心跳次數(shù)表。如果存在一個子環(huán)中只有1個節(jié)點(diǎn),則該子環(huán)中只有群首節(jié)點(diǎn),沒有其他類型的節(jié)點(diǎn)。
現(xiàn)代遠(yuǎn)程教育是隨著現(xiàn)代信息技術(shù)的發(fā)展而產(chǎn)生的一種新型教育方式[5],目前中小學(xué)的網(wǎng)絡(luò)帶寬有限,特別是農(nóng)村中小學(xué)的校園網(wǎng)絡(luò)帶寬更低[6]。由于教育資源網(wǎng)絡(luò)的層次性、動態(tài)性和異構(gòu)性特點(diǎn)[7],遠(yuǎn)程教育系統(tǒng)采用改進(jìn)的Chor d模型結(jié)構(gòu),根據(jù)區(qū)域的不同,選擇多個區(qū)域中心服務(wù)器,系統(tǒng)中讓多個節(jié)點(diǎn)同時承擔(dān)中心服務(wù)器的功能。按照區(qū)域?qū)⒂?jì)算機(jī)分組,每個區(qū)域選出一個群首節(jié)點(diǎn)作為區(qū)域中心服務(wù)器進(jìn)行分組管理,區(qū)域中心服務(wù)器的功能主要是維護(hù)所在區(qū)域的在線計(jì)算機(jī),區(qū)域內(nèi)的所有計(jì)算機(jī)都需要在區(qū)域中心服務(wù)器上注冊,并且退出網(wǎng)絡(luò)時,還需要發(fā)送消息告知區(qū)域中心服務(wù)器自己需要離開網(wǎng)絡(luò),區(qū)域中心服務(wù)器注銷該節(jié)點(diǎn)的信息,并將消息傳送給其他節(jié)點(diǎn)。遠(yuǎn)程教育系統(tǒng)的備份服務(wù)器在區(qū)域中心服務(wù)器失效時代替區(qū)域中心服務(wù)器的功能,具體的遠(yuǎn)程教育系統(tǒng)構(gòu)建方式如圖1所示。
在該遠(yuǎn)程教育系統(tǒng)中,任何一臺計(jì)算機(jī)都有可能成為服務(wù)器,也都有可能成為客戶機(jī)。根據(jù)遠(yuǎn)程教育系統(tǒng)的工作流程一般將遠(yuǎn)程教育系統(tǒng)分為遠(yuǎn)程教育系統(tǒng)管理模塊、電子白板教學(xué)模塊、課堂實(shí)時交流模塊、在線練習(xí)模塊、遠(yuǎn)程教育資源下載模塊和評價(jià)反饋等模塊?;谛履P偷倪h(yuǎn)程教育系統(tǒng)可擴(kuò)展性好,健壯性強(qiáng),具有很高的資源利用效率,是遠(yuǎn)程教育系統(tǒng)的有效解決方案。
基于改進(jìn)Chord模型的遠(yuǎn)程教育系統(tǒng)的物理網(wǎng)絡(luò)與邏輯網(wǎng)絡(luò)保持一致,并將熱點(diǎn)信息資源的索引信息保持在每個群首節(jié)點(diǎn)中,這種使得大多數(shù)的資源查找能夠在同一區(qū)域節(jié)點(diǎn)中完成,能夠有效的提高查詢效率。根據(jù)新的遠(yuǎn)程教育系統(tǒng)的特點(diǎn),資源查找需考慮不同搜索節(jié)點(diǎn)的類型,然后選擇不同的搜索算法實(shí)現(xiàn)資源查找。
由于模型中存在3種類型的節(jié)點(diǎn),備份節(jié)點(diǎn)和普通節(jié)點(diǎn)的資源算法一致,群首節(jié)點(diǎn)采用單獨(dú)的搜索算法。因此,整個資源搜索分為以下2種情況:①如果提出搜索資源請求的計(jì)算機(jī)是區(qū)域中心計(jì)算機(jī),則通過區(qū)域中心計(jì)算機(jī)搜索算法對目標(biāo)資源進(jìn)行搜索。②如果提出搜索請求的計(jì)算機(jī)是備份計(jì)算機(jī)或者是普通計(jì)算機(jī)時,首先通過單Chor d協(xié)議搜索算法在搜索計(jì)算機(jī)所在子環(huán)中搜索目標(biāo)資源,如果子環(huán)中沒有目標(biāo)資源則將查找消息發(fā)送到本地區(qū)域中心計(jì)算機(jī),由區(qū)域中心計(jì)算機(jī)完成目標(biāo)資源搜索。
上述搜索過程中子環(huán)內(nèi)的計(jì)算機(jī)搜索目標(biāo)資源方法與原Chor d模型搜索算法保持一致,區(qū)域中心計(jì)算機(jī)搜索算法相對較為復(fù)雜,其搜索算法如下:①首先在區(qū)域中心計(jì)算機(jī)的熱點(diǎn)資源緩存查找目標(biāo)資源,如果發(fā)現(xiàn)目標(biāo)資源,則返回目標(biāo)資源計(jì)算機(jī)標(biāo)識,搜索結(jié)束,否則轉(zhuǎn)下一步繼續(xù)搜索;②檢查當(dāng)前子環(huán)區(qū)域中心計(jì)算機(jī)是否存在目標(biāo)資源,有則返回當(dāng)前區(qū)域節(jié)點(diǎn)計(jì)算機(jī)標(biāo)識,搜索結(jié)束,否則繼續(xù)轉(zhuǎn)下一步;③按順時針方向發(fā)送搜索消息,遍歷整個主環(huán)上所有的群首結(jié)點(diǎn)及與每個群首結(jié)點(diǎn)相連的子環(huán)節(jié)點(diǎn),遍歷過程中如果發(fā)現(xiàn)目標(biāo)資源信息,查詢自動結(jié)束;④如果遍歷完主環(huán)和子環(huán)的所有的計(jì)算機(jī),沒有發(fā)現(xiàn)目標(biāo)資源,則返回未發(fā)現(xiàn)目標(biāo)資源的消息。
圖1 基于改進(jìn)Chor d模型的遠(yuǎn)程教育系統(tǒng)
為了比較基于改進(jìn)Chor d模型的遠(yuǎn)程教育系統(tǒng)與基于原Chord模型的遠(yuǎn)程教育系統(tǒng)的性能,筆者選擇查詢延時作為主要性能評價(jià)指標(biāo),對新舊系統(tǒng)進(jìn)行了多次比較,基于改進(jìn)Chor d模型的遠(yuǎn)程教育系統(tǒng)的性能良好,平均查詢延時值明顯變小,具有明顯的優(yōu)勢。表1顯示了5組不同計(jì)算機(jī)數(shù)量的的查詢延時對比。表1數(shù)據(jù)表明,改進(jìn)的Chor d模型更加符合當(dāng)前遠(yuǎn)程教育系統(tǒng)的實(shí)際情況,弱化了遠(yuǎn)程教育系統(tǒng)服務(wù)器的功能,并有效的改善了遠(yuǎn)程教育用戶間實(shí)時交流和資源利用問題。改進(jìn)Chor d模型的應(yīng)用實(shí)現(xiàn)了遠(yuǎn)程教育資源高效率查詢,提高了遠(yuǎn)程教育系統(tǒng)的服務(wù)質(zhì)量。
表1 新舊系統(tǒng)平均查詢延時對比
[1]張文,趙子銘.P2P網(wǎng)絡(luò)技術(shù)原理與C++開發(fā)案例[M].北京:人民郵電出版社,2008.
[2]盧衛(wèi)青,張振宇 .基于物理拓?fù)涞碾p向搜索Chord路由[J].計(jì)算機(jī)工程,2009,35(22):117-118.
[3]張建偉,劉思 .基于蟻群優(yōu)化算法的Chor d模型[J].計(jì)算機(jī)工程,2012(4):100-103.
[4]王焱.P2P網(wǎng)絡(luò)的資源搜索方法研究及其在遠(yuǎn)程教育系統(tǒng)中的應(yīng)用[D].武漢:湖北工業(yè)大學(xué),2011.
[5]陳平平,譚定英 .完全對稱的P2P技術(shù)在高校遠(yuǎn)程教育中的應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(7):1495-1499.
[6]劉方愛 邢長明 .教育資源共享網(wǎng)絡(luò)體系結(jié)構(gòu)及其關(guān)鍵策略[J].計(jì)算機(jī)科學(xué),2009(9):96-99.
[7]陳坤,劉方愛,邢長明 .一種基于分層P2P結(jié)構(gòu)的教育資源網(wǎng)格檢索模型[J].山東大學(xué)學(xué)報(bào)(理學(xué)版),2008(11):72-76.