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