專利名稱:基于p2p的網絡地形系統的數據傳輸共享方法
技術領域:
本發明涉及網絡GIS數據傳輸技術領域,特別涉及基于P2P的網絡地形系 統的數據傳輸共享方法。
背景技術:
數據傳輸是網絡地形系統中的關鍵技術,它決定了地形系統中瓦片數據的 共享和傳輸策略,并且直接影響著網絡GIS地形系統的造價、負載能力和系統 的整體性能等。
冃前的分布式虛擬地理環境的大規模普及應用仍然受到眾多現實條件的限 制,包括有限的網絡帶寬資源、海量的空間數據信息和領域信息、龐大的用戶 請求量和機器性能的限制等。國內外相關專家學者、科研單位及企業一直致力 于利用現有的資源來提升分布式虛擬地理環境服務的能力,包括瀏覽速度、地 理空間分析效率、對龐大請求量的支持等,也取得了較多的科研成果和產品, 但是均存在一定程度的缺陷,或是以一方面的絕對犧牲來換取另一方面的提升, 如花費巨資增加有效物理負載能力和提升服務速度。然而,這些方法成本高昂, 且總是難以追趕由于用戶數增加而對地形服務器帶寬的爆炸式需求增長,如 Google Earth等,其管理者們在2006年的Interop展會上表示這種消耗速度簡直 讓人難以置信,對這些方面的前景甚為擔憂(參見喻占武,鄭勝,李忠民. 一種 混合式P2P下的大規模地形數據傳輸機制.測繪學報,2008,37(1):243-250 )。 為了解決這種大規模地形系統的傳輸和共享問題,有大量的研究,包括在服務器端給出三維物體不同分辨率的模型表示,客戶端根據系統的計算能力和網 絡帶寬請求合適的模型,從而滿足一定質量的漫游要求,以及采用一種在高速 和高帶寬的專用網絡上實現海量地形數據的實時漫游方法(參見汪國平,吳學禮:
陳斌,等.高速網上3維海量地形數據的實時交互瀏覽的實現.測繪學報,2002, 31(1): 34-38),和通過建立多級緩沖區減小網絡傳輸的延遲,實現地形數據的實 時渲染(參見段煉,朱欣焰.基于Internet的大范圍三維地形實時渲染.武漢大 學學報(理學版),2005, 51(S2): 199-202),還有利用漸進傳輸等方案,但是這 些方法都存在著性能等方面的缺陷,如當涉及大規模的場景漫游及空間分析請 求時,性能將急劇下降,甚至無法提供服務,同時大量的數據傳輸均集中在地 形服務器,對地形服務器的網絡帶寬將是一個挑戰,經常造成請求數據無法及 時傳達、空間分析請求很難及時完成等。
傳統的基于集中式的地形系統或者由于地形服務器的性能瓶頸問題不支持 大規模用戶訪問,或者由于需要部署大量地形服務器來滿足用戶日益增長的帶 寬要求而代價高昂而難以普遍實施;P2P(Peer-to-Peer),即對等計算或對等網絡) 的出現,為大規模海量地形漫游中的節點規模和地形服務器的帶寬和性能瓶頸 等矛盾提供了一條有效的解決途徑。分布式虛擬地理環境的客戶端在進行地理 地形數據信息的瀏覽時,都會在本地保存歷史數據,這對通過P2P進行數據共 享提供了有效的數據基礎。目前基于P2P的網絡地形系統主要涉及兩類, 一類 是利用P2P進行數據存儲,包括ASPEN系統和P2PR-Tree系統等;另一類是簡 單的利用P2P進行瓦片數據的共享,如GeoTorrent系統和APPOINT系統等。
利用P2P進行地形數據存儲并沒有真正解決前面集中式模式下的兩個問題, 其目的是解決存儲空間問題,而不是解決數據傳輸共享問題;而簡單的利用P2P進行數據共享模式中,由于沒有充分考慮地形系統的特點,如瓦片熱度問題(海
洋、沙漠、城市等熱度的差異)、節點性能差異問題(南北運營商差異、延時特
性、在線狀態)、地形漫游(平移操作、放大操作)的特征問題,導致無法滿足
節點動態性的要求,而P2P系統具有天生的動態性,因此,很難滿足實際應用
的需要。目前,還沒有實用的基于P2P的GIS地形系統出現。
發明內容
本發明目的在于解決現有技術不足,提供基于P2P的網絡地形系統的數據 傳輸共享方法。
本發明技術方案為一種基于P2P的網絡地形系統的數據傳輸共享方法,所 述網絡地形系統中設有地形服務器和節點,其特征在于在網絡地形系統中設 置中心服務器,節點上線時通過網絡與中心服務器建立通信;地形影像數據預 先按照不同比例尺分層分塊生成圖片并存儲于地形服務器中,形成地形瓦片金 子塔模型;
預先在中心服務器設置系統配置參數,包括節點分組規模大小、 一級代理 節點個數以及分組服務質量級差大小及查詢跳數;
節點上線接入網絡時,自動從中心服務器獲取查詢跳數;以地形瓦片金字 塔模型的0層瓦片劃分興趣區域,根據對應地形數據的0層瓦片個數即為劃分 的興趣區域個數,節點按照漫游時的瓦片坐標劃分到不同的興趣區域,然后根 據該節點與該興趣區域內其它節點之間的通信質量,加入興趣區域內不同分組, 分組時滿足節點分組規模大小和分組服務質量級差大小;
節點上線接入網絡后,每個節點在后臺開啟一個守護線程,實時監測和統 計與本組內其它節點之間的通信質量,依據通信質量的變化在興趣區域內調整所屬分組;分組內節點之間通過緩存映射交換組內各節點擁有的瓦片信息;每 個節點設置兩級代理,第一級的代理節點根據一級代理節點個數選定,第二級 的代理節點從本興趣區域的相鄰區域選定,分組內節點通過代理節點的代理映 射獲取代理節點信息;
節點在進行地形漫游瓦片下載時,具體處理步驟如下, 步驟l,首先通過本組的緩存映射査詢本組內節點是否存在目標瓦片,若查詢到 則直接請求通過P2P的方式下載;若查詢不到則從第一級的代理節點開始在所 屬興趣區域范圍內進行代理査詢,查詢到后通過P2P的方式下載,査詢不到時
進入步驟2;
步驟2,若請求的目標瓦片屬于相鄰興趣區域時,則從第二級的代理節點開始進
行代理查詢,査詢到后通過P2P的方式下載,查詢不到時進入步驟3;若請求的 目標瓦片不屬于相鄰興趣區域時,直接進入步驟3;
步驟3,調整節點所在興趣區域,并將節點在新的興趣區域加入分組后,返回步 驟1循環執行;
步驟1和2中所述代理查詢,實現方式為根據從中心服務器獲取的查詢跳 數;向代理節點發出查詢請求;代理節點在收到查詢請求后,首先在代理節點 的緩存映射中查詢,若存在目標瓦片則通過P2P的方式下載,若不存在則査詢 跳數減1后向代理節點的代理節點查詢,依此類推直到查詢跳數為0時判定査 詢不到。
而且,節點空閑時,通過計算瓦片的分布情況選擇一個節點所屬興趣區域 內局部稀少的瓦片作為目標瓦片,然后依據選擇的目標瓦片計算本組所有節點 針對該瓦片的服務提供能力,最終選擇一個服務提供能力最大的節點提供目標瓦片的下載服務。
而且,節點的本地緩存區滿時,后臺定時依據瓦片壽命和訪問熱度對瓦片 進行置換。
本發明具有以下特點(1)通過節點特征的測試,更準確的對節點進行分 類,減少木桶的"短板"效應,均衡組內各個節點的共享性能。(2)利用興趣區域 的劃分,大大減少緩存映射信息交互所額外消耗的網絡帶寬。可以計算,在2%
動態性時,SRTM90地形數據50個節點分組規模下的信息交互需要6.6Mbps的 帶寬,而采用興趣區域后,只需要41.7Kbps的帶寬。(3)更進一步,通過一級 代理和二級代理,可以大大減少分組節點規模的大小。通過測算,在分組節點 規模減少到10個時,其消耗的帶寬僅僅7.7Kbps,基本可以忽略。(4)同時, 通過兩級代理,不但擴大了節點共享規模,而且可以減少興趣區域變化造成的 節點分組的頻繁變動,降低共享時的"抖動"效應。(5)最后通過瓦片分布計算和 節點服務能力計算,充分利用了節點的空閑網絡資源,通過快速均勻分布瓦片 以提高瓦片請求時的節點命中率和節點匹配率,降低共享失敗的幾率,從而提 高共享效率。可見本發明提供了具有低花費、高性能、高可用性和高可擴展性 的空間數據傳輸與共享方案。
附圖1是本發明實施例中節點加入系統程序流程圖。
附圖2是本發明實施例中節點分組自我進發流程圖,其中圖2a為節點分組 自我進發主程序流程,圖2b為發送回調函數流程,圖2c為接收回調函數流程。
附圖3是本發明實施例中廣播緩存映射變化程序流程圖,其中圖3a為 Broadcast函數流程,圖3b為緩存映射接收消息函數。附圖4是本發明實施例中組領導獲取代理節點映射并通知組內其它成員的 程序流程圖。
附圖5是本發明實施例中請求通過P2P下載瓦片的程序流程圖,其中圖5a 為P2P下載請求函數,圖5b為P2P下載接收消息函數,圖5c為接收數據函數。
附圖6是本發明實施例中代理節點査詢的程序流程圖,其中圖6a為P2P下 載査詢函數,圖6b為瓦片査詢接收消息函數。
附圖7是本發明實施例中節點空閑時瓦片調度程序流程圖。
具體實施例方式
目前的地形系統中,其影像數據被預先按照不同比例尺分層分塊生成圖片, 形成地形瓦片金子塔模型,當用戶請求瓦片時,地形服務器不需要實時生成數 據,而是根據用戶請求的范圍和尺度,在地形服務器選擇預先生成好的圖片, 拼接成滿足用戶要求的范圍,返回給用戶,因此,其主要的性能瓶頸存在傳輸 方面,因此通過P2P的方式進行共享是減少地形服務器帶寬要求的有效手段之 一。但由于地形系統瓦片數量巨大,如90米分辨率的SRTM90,共有3538890 塊瓦片,如果按照傳統模式交換節點間的瓦片信息,將消耗大量的額外帶寬; 同時,由于P2P節點的動態性以及性能差異,部分節點閑置,而部分節點超載, 導致容易出現或者沒有瓦片,或者有瓦片但沒有剩余服務帶寬而出現共享失敗, 因此如何充分利用節點空閑資源,均勻化分布瓦片,減少部分節點的"熱"度,避 免共享失敗,提高共享效率也很關鍵。本發明在基于P2P的網絡地形系統中設 置負責管理節點的中心服務器,新系統由地形服務器、中心服務器和節點構成。 因為用戶登錄地形系統是通過客戶端計算機等設備接入網絡,與其它節點和中 心服務器進行通信,因此節點是動態的。預先在中心服務器設置系統配置參數,一級代理節點個數以及分組服務質量級差大小及查詢 跳數。節點上線時通過網絡與中心服務器建立通信,自動獲取這些系統配置參 數,以便進行分組和瓦片下載。在基于P2P的情況下,節點主要從其它節點下 載瓦片,只有節點需要從地形服務器之間下載瓦片時,才與地形服務器通過網 絡連接進行下載,下載完畢后可以斷開連接。
以下對本發明技術方案的具體實施提供詳細建議說明
(1)首先是對節點進行分組節點上線接入網絡時,自動從中心服務器獲 取査詢跳數;以地形瓦片金字塔模型的0層瓦片(即分辨率最低層的瓦片)劃 分興趣區域,根據對應地形數據的0層瓦片個數即為劃分的興趣區域個數,節 點按照漫游時的瓦片坐標劃分到不同的興趣區域,然后根據該節點與該興趣區 域內其它節點之間的通信質量,加入興趣區域內不同分組,分組時滿足節點分 組規模大小和分組服務質量級差大小。通過分組服務質量級差大小,可以根據 運營商下的通信質量等級劃分為最高級到最低級多個等級。在同一等級的節點 可能數目眾多,因此在節點分組規模大小的限制內進行分組,同一等級可能出 現多個分組。
根據地形瓦片金子塔模型,任意節點漫游區域可以依據式(1)計算對應的 興趣區域
其中/為對應層號,丄為金子塔模型的總層數,(《A)為對應坐標值,(義。,;r。) 為對應的o層瓦片坐標,即興趣區域。式中Lx」表示向下取整。 依據網絡通訊質量不同,將節點分入不同的組。具體實施時網絡之間的通訊質量可按照IP地址分類和網絡帶寬來劃分:根據全球IP地址表對節點區分對待, 將同一類運營商,且服務帶寬基本相同的節點歸為一組,并賦予一個組號;設 運營商的集合為F,對某一類運營商y的第/個節點,給定最小帶寬min間和帶
寬級別差異為r,則可得到該節點所屬組i ,.,的計算方法
對每一個分組尺,可賦予一個組號,不同運營商之間的節點,即使帶寬相同, 但其實際通信質量一般較差,將歸入不同的組。同一組內節點間通過緩存映射 交換瓦片信息。
(2)節點上線接入網絡后,每個節點在后臺開啟一個守護線程,實時監測 和統計與本組內其它節點之間的通信質量,依據通信質量的變化在興趣區域內 調整所屬分組;分組內節點之間通過緩存映射交換組內各節點擁有的瓦片信息; 每個節點設置兩級代理,第一級的代理節點根據一級代理節點個數選定,第二 級的代理節點從本興趣區域的相鄰區域選定,分組內節點通過代理節點的代理 映射獲取代理節點信息;
實施例中,第z'個節點的緩存映射信息由一個四元組〈/A, h,仏,^>來描 述,其中/Q是節點標識,全局唯一 (可以通過節點的MAC地址生成),^是該
節點帶寬,仏是該節點服務請求隊列,表明節點服務的繁忙程度,艮P"熱"度,M, 是數組(指針),用于存放節點是否擁有某塊瓦片,即w,表示節點/是否擁有瓦 片A, ^=1表示第!'個節點擁有瓦片&,為0則不擁有。經過緩存映射后, 一個 分組內的緩存映射信息BM (BufferMap)則是由組內不同節點的四元組構成的 內存塊來表示,按照<</馬,&,《,.,6w,《i+/, m,.+/>,......>的形
式組織。每個分組內節點都在其緩存映射存儲空間內存儲所屬分組內的緩存映射信息BM。
為了擴大節點共享搜索范圍,引入兩級代理,其中一級代理節點個數不限, 具體實施時可以根據需要在中心服務器預先設定,選取本興趣區域內其它分組 的節點即可;二級代理節點個數固定為8個,分別對應本興趣區域的8個相鄰
區域,-個相鄰區域一個;提供代理的節點稱為代理節點,對應的組稱為代理 組;從中心服務器獲取的代理節點信息也由一個四元組〈G" /馬,朽,; OW,來 描述,其中S是代理組的組號,/馬是從代理組內選擇的代理節點的標識,朽 和po巧分別為代理節點的IP地址和服務端口;代理節點映射信息PPM (Proxy Peer Map)則是由不同代理節點的四元組組成的內存塊來表示,按照<<《,/D,, &, / o《>,<(^+7, /馬w,朽+7, / o《+/>,……>的形式組織。 一個組內各個成 員節點之間具有相同的PPM映射信息,具體實施時可以為每個組依據服務質量 最大的原則選擇組內一個節點作為組領導,組領導負責從中心服務器獲取和刷 新代理節點映射,并將最新的代理節點映射信息通知組內其它節點,存入各節 點的代理映射存儲空間。為了減少傳輸數據量,采取更新刷新的原則,即每次 只傳輸更新的部分。 一個組領導下線時,依據同樣的原則在組內節點間產生新 的領導。
模型中的消息主要分為五類BM局部交換消息、BM全局交換消息、PPM 局部交換消息、PPM全局交換消息和節點搜索消息;為了減少在消息傳遞過程 中所消耗的網絡帶寬,可以分別對BM局部交換消息和BM全局交換消息形式 進行優化。
BM局部交換消息在節點瓦片部分更新時傳遞,是在節點新下載一塊(或多 塊)瓦片或新刪除一塊(或多塊)瓦片時使用,其消息體定義為< 6 ,打/eA/A,Mag〉的形式,其中7y/d^/r表示瓦片地址,F/ag表示瓦片狀態標志,新下載用 l表示,新刪除用O表示,由于通過傳輸通道可以定位節點,故省略節點標識的 傳遞;當同時出現有限塊瓦片信息更新時(如下載一塊新瓦片的同時刪除一塊 老瓦片),以<&, < 7y/"必o,尸/ag戶,< 7H&4必r2, /^^2 形式傳遞更新消息;如 表示帶寬為256Kbps的節點新下載1000號瓦片,同時新刪除2000號瓦片的消 息形式為<256, <1000, 1>, < 2000, 0 。對帶寬沒有變化的節點,消息可以更進 一步簡化為《 7Ha4cWo, F/ag,>, < "7^4^^2, F/ag戶〉的形式。
BM全局交換消息的交換則是全部瓦片的狀態序列〈/A, & F/ag,F/吸...>, 是在節點上線時傳遞全部瓦片信息時使用,擁有某瓦片時,對應位的f7"g為l, 否則為0,這樣按照一定組織順序,所有瓦片狀態信息都被傳遞,l個瓦片只占 用1位,8個瓦片才占用1個字節的傳輸數據量。
PPM局部交換消息和PPM全局交換消息由于變化較少,可以不做優化,只 需要簡單按照每個組代理節點占用16個字節計算。PPM全局交換消息在節點上 線時獲取,PPM局部交換消息則可以定時刷新,可以與現有BT協議一致,設 定每次刷新時更新PPM中三個最慢的代理節點信息的內存塊。
(3)節點在進行地形漫游瓦片下載時,具體處理步驟如下, 步驟l,首先通過本組的緩存映射查詢本組內節點是否存在目標瓦片,若査詢到 則直接請求通過P2P的方式下載;若查詢不到則從第一級的代理節點開始在所 屬興趣區域范圍內進行代理査詢,査詢到后通過P2P的方式下載,査詢不到時 進入步驟2;
步驟2,若請求的目標瓦片屬于相鄰興趣區域時,則從第二級的代理節點開始進 行代理查詢,査詢到后通過P2P的方式下載,查詢不到時進入步驟3;若請求的目標瓦片不屬于相鄰興趣區域時,直接進入步驟3;
步驟3,調整節點所在興趣區域,并將節點在新的興趣區域加入分組后,返回步 驟1循環執行。將節點在新的興趣區域加入分組,與節點上線接入網絡時加入 分組的實現方式一致,即根據該節點與新的興趣區域內其它節點之間的通信質 量,加入興趣區域內不同分組,分組時滿足節點分組規模大小和分組服務質量 級差大小。
步驟1和2中所述代理查詢,實現方式為根據從中心服務器獲取的查詢跳 數;向代理節點發出查詢請求;代理節點在收到查詢請求后,首先在代理節點 的緩存映射中査詢,若存在目標瓦片則通過P2P的方式下載,若不存在則査詢 跳數減1后向代理節點的代理節點查詢,依此類推直到查詢跳數為0時判定査 詢不到。代理節點在收到查詢請求后,首先在自己的緩存映射查詢所在分組的 緩存映射信息BM,有則直接請求P2P下載,否則才繼續代理査詢。
實施例中的節點搜索消息是在一個節點需要瓦片時,向本組的代理節點發 出的查詢請求。為了消息在代理之間、代理與代理本組之間傳遞,消息中必須 包含請求者的信息。可以用四元組々》,poW, 7TZ^來描述消息內容,其
中*和;^W分別表示請求者的地址和服務端口 。因為代理節點并沒有節點的緩 存映射信息,所以也沒有保存對應節點的地址信息;同時,代理節點在沒有査 詢到目標信息時,可能需要將該消息轉發給代理節點的代理,傳遞該信息便于 在消息反饋時直接反饋,而不需要像一般的洪泛搜索一樣逐級反饋,節省網際 流量。77/eA^r是搜索目標,即瓦片地址,全局唯一定義;7TX是消息允許的最 大查詢跳數,每傳遞一次,跳數減l,直到為0時停止搜索,消息則不再轉發, 顯然,調整7TZ跳數值可控制搜索的網絡直徑。(4)節點空閑時,通過計算瓦片的分布情況選擇一個節點所屬興趣區域內 局部稀少的瓦片作為目標下載瓦片,然后依據選擇的目標瓦片計算本組所有節 點針對該瓦片的服務提供能力,最終選擇一個服務提供能力最大的節點提供目 標瓦片的下載服務。
為了減少共享失敗,充分利用空閑資源,在節點空閑時,主動從中心服務節 點下載普通節點沒有的瓦片或者組內相對稀少的瓦片,提前為P2P共享準備數 據,由于有更多的節點提供所需要的瓦片下載,能有效的分擔下載服務,可以 減少部分"好"節點成為"熱點"的可能。
一個分組內,若設節點總個數為M,該分組對應的興趣區域內瓦片總塊數為 S,第i個節點標為m,,第k個瓦片標為外,考慮局部稀少的數據,同時兼顧全局 區域屬性以限制瓦片選擇,對某瓦片A定義TSC (Tile Spreading Capability)作為 選擇依據,TSC值越大,瓦片越被優先下載;分別用MF(A)表示瓦片/^的局部 稀少性,G(^)表示瓦片外的全局區域屬性,將地形服務器看成特殊節點O,屬于 所有分組,則對任意瓦片A,設為《=1,即地形服務器擁有任意瓦片,則有
在式(4)中,其中G表示第i個節點所屬的興趣區域。在式(3)中,分子表 示所有鄰居節點中(包含節點自身)不擁有瓦片A的節點數量,分母表示擁有瓦 片外的節點數量,貝lJ丄W(A)e[O, M-l];對TSC作如下定義式(5)表明,1)組內瓦片數據的TSC值總是大于組外瓦片數據的TSC值 (至少大1)。 2)對于組內任意一塊瓦片數據,擁有瓦片的節點越少,其TSC 值越大,被選擇下載進行主動緩存的機會就越大。
同樣,對某瓦片A和節點附,,定義PPC (Peer Providing Capability)作為節點 選擇依據,PPC最大的節點被選擇提供下載服務,如果存在相同PPC的節點,則 從中隨機選擇。對此,節點m,對瓦片外的PPC值為
Pi>C(^,m,)= I (6) 5" x《,+藝w,
式(6)中,6,是節點m,帶寬,仏是節點m,服務請求隊列,Sx仏代表服務請
求隊列人小(放大s倍,目的是和請求瓦片數量平衡大小),i",代表可以被請
求的瓦片數量,服務排隊隊列越長,節點負載越大;可以被請求的瓦片數量越 多,成為"熱點"的可能性越大;算式表明,在相同條件下,優先選擇負載小、成 為熱點可能性小,且服務帶寬越大的節點提供下載服務(在擁有該瓦片的前提 下)。
(5)節點的本地緩存區滿時,后臺定時依據瓦片壽命和訪問熱度對瓦片進行置換。
對每塊瓦片從緩存時間、訪問次數、最后一次訪問時間進行記錄,分別存入 變量/^^&we7 me0;;、 totoL4ccaw27meO、 /"s"ccaw7Twe(^中,設瓦片平均緩存 壽命為"cr!'mef^,則通過公式"c77me(W卜^x21,(7;-:C)可以計算瓦片平均緩 存壽命,其中為已經被置換的瓦片總數,z;為第w個瓦片的置換時間、 7/ =./^說0/^77艦(")為首次存儲時間;若設當前系統時間為cwre"^ysfem7 me, 則對應的某塊瓦片_/的緩存存活時間可以表示為<formula>formula see original document page 17</formula> 這豐羊寸壬意瓦片y'白勺老4七禾呈度可以定
<formula>formula see original document page 17</formula>根據以上定義和計算,基于緩存空間需求,
將老化程度fcfep^;最高的一個或多個瓦片從緩存中刪除或置換以緩存更有用的 瓦片。
本發明實施時可以由本領域技術人員采用軟件方式實現自動化流程處理, 以下結合附圖提供實施例的流程說明。
參見附圖l,節點加入系統程序流程為通過提供節點加入組函數實現;函數 實現過程為提取節點網絡地址;將節點網絡地址與全球網絡地址表比較得到 該節點所屬運營商"提取節點當前漫游區域瓦片坐標(/,&^);根據金字塔模型 計算對應的(Z。,^);根據計算的(為,1^匹配到興趣區域M^;提取興趣區域風,y 下運營商y的最高級分組節點集A測試節點與節點集^之間的通信質量,當通 信質量符合時節點加入當前級分組,否則進行下一步判斷所有級分組測試是否 完成,完成時節點加入最低級分組,未完成則提取興趣區域M^下運營商y的 下一級分組節點5進行循環測試直至通信質量滿足某級分組要求或者所有分組 測試完成。實施例首先根據運營商分配節點,是因為不同運營商提供的網絡之 間通信影響;然后根據運營商下的通信質量等級劃分為最高級到最低級多個等 級,根據等級進行分組有利于節點之間性能匹配。
參見附圖2,節點分組自我進發流程為守護線程;初始化局部變量,即發 送帶寬統計變量Se^^『值為0和接收帶寬統計變量/ ecv6『值為0;根據統計 周期判斷是否統計時間到達,到達則開始統計,沒有到達則繼續等待;開始統 計時首先申請線程鎖對變量進行多線程鎖定;然后根據統計變量& ^^『和 7 en^ff的值,確定通信質量,識別其對應的分組級別G;釋放之前申請的線程瑣;判斷分組級別G和當前節點所處的分組級別是否相符,若相符,則節點離
開分組,并重新執行節點加入系統程序流程,否則,繼續等待下一次統計。統
計變量&^必『和/^c'v5『的值由2個回調函數修改1)發送回調函數在節點 發送瓦片數據時調用,發送回調函數的流程為發送回調函數;申請線程鎖對 變量進行多線程鎖定;根據發送信息刷新&^^『的值;釋放之前申請的線程鎖。 2)接收回調函數在節點接收到瓦片數據時調用,接收回調函數的流程為接收 回調函數;申請線程瑣對變量進行多線程鎖定;根據接收信息刷新7 "v5『的值; 釋放之前申請的線程瑣。
參見附圖3,廣播緩存映射變化程序流程通過提供Broadcast函數實現;函數 實現過程為修改節點自身的緩存映射信息;將映射變化消息編碼,根據BM 局部交換原則,消息中包含消息/D,節點/D,節點帶寬信息Z),瓦片地址77/"^^, 瓦片標志F&g (為l表示新增加,為0表示新刪除);取組內第一個節點開始進 行遍歷,發送編碼好的消息;判斷遍歷是否完成,若沒有完成,則取組內下一 個節點并發送編碼好的消息,直至組內所有節點遍歷完成。節點在接收到消息 時,調用緩存映射接收消息函數處理接收到的緩存映射消息,緩存映射接收消 息函數的流程為緩存映射接收消息函數;對接收的消息解碼;判斷消息/D是 否表明為緩存映射消息;若是,則根據解碼的節點/D、瓦片地址77/e^^r、瓦 片標志F/"g和節點帶寬信息6更新該節點的緩存映射信息。
參見附圖4,組領導獲取代理節點映射并通知組內其它成員的程序流程通過 提供代理節點映射函數實現;函數實現過程為選擇三個服務質量最差的代理 節點作為刪除的代理節點;從中心服務器請求三個新的代理節點作為新增的代 理節點;按照<節點/D,節點標志F/ag,...>的形式排列組織所有代理節點的消息,其中刪除代理節點的H"g為O,新增代理節點的F/"g為1;設置消息/Z)為代理 節點映射消息/D,然后調用廣播緩存映射變化程序流程的6raacfcaW函數廣播代
理節點映射變化消息。具體實施時,可以根據需要確定更新的代理節點數目, 建議是三個。
參見附圖5,請求通過P2P下載瓦片的程序流程通過提供P2P下載請求函數 實現;函數實現過程為設置消息ID為P2P下載請求,對請求消息進行編碼, 消息中還包含請求的瓦片索引地址77/e/"Ax,請求節點的網絡服務地址^/A和 服務端口根據選擇的目標節點的服務地址和端口,利用函數 (windows下TCP/IP模塊提供的標準發送函數)將請求消息發送到目標節點。 目標節點在接收到該請求消息后,通過P2P下載接收消息函數處理接收到的P2P 請求消息,P2P下載接收消息函數的流程為P2P下載接收消息函數;首先將接 收到的消息解碼,等到消息參數,包括消息ID,請求的瓦片索引地址7]7e/"&x, 請求節點的網絡服務地址^^r和服務端口然后判斷是否為P2P下載請求 消息,若是,則記錄開始時間;根據請求的瓦片索引地址從本地緩存區獲取瓦 片數據后利用&"d7b函數循環發送所需要的瓦片數據到請求節點的網絡服務地 址/WA和服務端口尸0W;發送完畢后記錄完成時間;根據發送的瓦片數據大小 和發送開始時間、發送完成時間計算發送帶寬統計變量&"^^『的值;調用節點 分組自我進發流程的發送回調函數修改統計變量&^^『。請求節點在接收到瓦 片數據時,則自動調用接收數據函數接收瓦片,接收數據函數的流程為記錄 接收數據的開始時間;循環調用wcv/ram函數(windows下TCP/IP模塊提供的 標準接收函數)接收瓦片數據,并保存到本地緩存區;接收完畢后記錄完成時 間;根據接收的瓦片數據大小和接收開始時間、接收完成時間計算接收帶寬統計變量i^cv^『的值;調用節點分組自我進發流程的接收回調函數修改統計變量
參見附圖6,代理節點查詢的程序流程為通過提供P2P下載查詢函數實現; 函數實現過程為首先通過本地緩存映射信息査詢組內節點是否擁有目標瓦片; 若存在,則直接調用P2P下載請求函數進行瓦片下載;若不存在,則判斷査詢 跳數是否大于0,若不火于0,則表示不能通過代理查詢,則將請求直接發送給 地形服務器,由地形服務器提供瓦片下載;若查詢跳數是大于0,則首先將査詢 跳數減l,然后設置消息ID為瓦片查詢消息后將消息編碼,消息中包含査詢的 目標瓦片索引地址Tilelndex,最初發出査詢請求的節點網絡服務地址和服 務端口尸ow,以及剩余的査詢跳數值77Z;最后循環遍歷所有代理節點,從代 理節點映射找到第一個代理節點,根據代理節點的網絡服務地址和服務端口,
利用&^ffi 函數將消息發送到代理節點;若還存在代理節點,則選擇下一個代
理節點繼續發送,直到所有代理節點都發送完畢。代理節點在接收到消息后, 通過瓦片查詢接收消息函數處理接收到的瓦片査詢消息,瓦片査詢接收消息函
數的流程為瓦片查詢接收消息函數;首先將接收到的消息解碼,得到消息參 數,包括消息ID,查詢的瓦片索引地址7i7e/^fec,請求節點的網絡服務地址^^r 和服務端口然后判斷是否為瓦片査詢消息,若是,則直接調用P2P下載 查詢函數進行査詢處理。
參見附圖7,節點空閑時瓦片調度程序流程通過提供瓦片調度函數實現;函 數實現過程為根據節點所處興趣區域,遍歷該區域內的所有瓦片并根據公式
(5)計算其對應的7^c值;將所有瓦片的rsc值,按照從大到小的順序排列,
選擇7^C值最大的瓦片p作為目標備份瓦片;根據選擇的目標瓦片/7,根據公式(6)計算該節點對應的組內所有節點的尸戶C值;將所有節點的/^C值,按 照從大到小的順序排列,選擇戶PC值最大的節點W作為目標服務節點;調用P2P 下載請求函數,從目標服務節點m下載備份目標瓦片p。
權利要求
1.一種基于P2P的網絡地形系統的數據傳輸共享方法,所述網絡地形系統中設有地形服務器和節點,其特征在于在網絡地形系統中設置中心服務器,節點上線時通過網絡與中心服務器建立通信;地形影像數據預先按照不同比例尺分層分塊生成圖片并存儲于地形服務器中,形成地形瓦片金子塔模型;預先在中心服務器設置系統配置參數,包括節點分組規模大小、一級代理節點個數以及分組服務質量級差大小及查詢跳數;節點上線接入網絡時,自動從中心服務器獲取上述系統配置參數;以地形瓦片金字塔模型的0層瓦片劃分興趣區域,根據對應地形數據的0層瓦片個數即為劃分的興趣區域個數,節點按照漫游時的瓦片坐標劃分到不同的興趣區域,然后根據該節點與該興趣區域內其它節點之間的通信質量,加入興趣區域內不同分組,分組時滿足節點分組規模大小和分組服務質量級差大小;節點上線接入網絡后,每個節點在后臺開啟一個守護線程,實時監測和統計與本組內其它節點之間的通信質量,依據通信質量的變化在興趣區域內調整所屬分組;分組內節點之間通過緩存映射交換組內各節點擁有的瓦片信息;每個節點設置兩級代理,第一級的代理節點根據一級代理節點個數選定,第二級的代理節點從本興趣區域的相鄰區域選定,分組內節點通過代理節點的代理映射獲取代理節點信息;節點在進行地形漫游瓦片下載時,具體處理步驟如下,步驟1,首先通過本組的緩存映射查詢本組內節點是否存在目標瓦片,若查詢到則直接請求通過P2P的方式下載;若查詢不到則從第一級的代理節點開始在所屬興趣區域范圍內進行代理查詢,查詢到后通過P2P的方式下載,查詢不到時進入步驟2;步驟2,若請求的目標瓦片屬于相鄰興趣區域時,則從第二級的代理節點開始進行代理查詢,查詢到后通過P2P的方式下載,查詢不到時進入步驟3;若請求的目標瓦片不屬于相鄰興趣區域時,直接進入步驟3;步驟3,調整節點所在興趣區域,并將節點在新的興趣區域加入分組后,返回步驟1循環執行;步驟1和2中所述代理查詢,實現方式為根據從中心服務器獲取的查詢跳數;向代理節點發出查詢請求;代理節點在收到查詢請求后,首先在代理節點的緩存映射中查詢,若存在目標瓦片則通過P2P的方式下載,若不存在則查詢跳數減1后向代理節點的代理節點查詢,依此類推直到查詢跳數為0時判定查詢不到。
2. 如權利要求1所述網絡地形系統的數據傳輸共享方法,其特征在于節點空閑時,通過計算瓦片的分布情況選擇一個節點所屬興趣區域內局部稀少的瓦片作 為目標瓦片,然后依據選擇的目標瓦片計算本組所有節點針對該瓦片的服務提 供能力,最終選擇一個服務提供能力最大的節點提供目標瓦片的下載服務。
3. 如權利要求1所述網絡地形系統的數據傳輸共享方法,其特征在于節點的本地緩存區滿時,后臺定時依據瓦片壽命和訪問熱度對瓦片進行置換。
全文摘要
本發明涉及基于P2P的網絡地形系統的數據傳輸共享方法,通過節點特征的測試,更準確的對節點進行分類,均衡組內各個節點的共享性能;利用興趣區域的劃分,減少緩存映射信息交互所額外消耗的網絡帶寬;通過一級代理和二級代理,減少分組節點規模的大小,和減少興趣區域變化造成的節點分組的頻繁變動,降低共享時的“抖動”效應;通過瓦片分布計算和節點服務能力計算,充分利用了節點的空閑網絡資源,通過快速均勻分布瓦片以提高瓦片請求時的節點命中率和節點匹配率,降低共享失敗的幾率,從而提高共享效率。本發明提供了具有低花費、高性能、高可用性和高可擴展性的空間數據傳輸與共享方案。
文檔編號H04L29/08GK101616177SQ200910063268
公開日2009年12月30日 申請日期2009年7月21日 優先權日2009年7月21日
發明者敏 彭, 莉 朱, 銳 李, 沈未名, 潘少明, 浩 王 申請人:武漢大學