專利名稱:一種基于p2p的網絡應用系統(tǒng)及其應用方法
技術領域:
本發(fā)明大體涉及網絡應用,更具體地,涉及以P2P技術為基礎到網 絡應用系統(tǒng)及接入方法。
背景技術:
P2P對等網絡是近年來在互聯(lián)網上盛行的技術,最先應用于視頻、音 樂及其他數據文件共享下載,目前正成為分布式數據處理、云計算等架 構的基礎技術之一。P2P在帶給用戶高速數據上傳下載體驗的同時卻給 電信運營商帶來了困擾,因為它占用了大量的網絡帶寬卻沒能帶給運營 商足夠的收益。為了滿足用戶對網絡質量的要求, 一方面擴充出口帶寬, 一方面想盡辦法對出口流量進行控制,既耗費了大量的成本,又收效甚 微,長期以來這一直是困擾各類大型網絡運維用戶及電信運營商的一大 難題。目前國內外尚無針對運營商的真正有效的解決方案。并且,如何 為新的網絡云計算提供一個最佳的承載應用平臺,也是目前世界范圍內 面臨的一個挑戰(zhàn)。
因此,需要一種基于P2P的網絡應用解決方案,能夠解決上述相關 技術中的問題。
發(fā)明內容
本發(fā)明的目的是針對上述至少一個問題,通過實現P2P對等網技術 為基礎的應用框架,解決Intranet和Internet網絡環(huán)境下的海量數據 資源共享、即時通信、實時視頻監(jiān)控以及高負載能力流媒體服務及數字 版權管理需求、提供分布式數據計算環(huán)境的應用平臺。
根據本發(fā)明的一個方面,提供了一種基于P2P的網絡應用系統(tǒng),包 括多個節(jié)點,各節(jié)點均包括控制單元,用于將基于P2P的物理網絡映 射為虛擬扁平化的基于P2P的網絡;以及業(yè)務單元,用于利用基于XML
的消息協(xié)議與其他節(jié)點進行無服務器狀態(tài)下的數據交互。
其中,控制單元還用于在節(jié)點接入基于P2P的網絡時,利用TCP或UDP協(xié)議檢測是否存在鄰近節(jié)點,在檢測到鄰近節(jié)點時,控制節(jié)點控制 生成用于節(jié)點的唯一標識并將唯一標識發(fā)送給鄰近節(jié)點,以及獲取鄰近 節(jié)點的唯一標識,以將節(jié)點注冊到基于P2P的網絡中,以及在未檢測到 存在鄰近節(jié)點時,選擇網絡中預設的中轉續(xù)航節(jié)點作為鄰近節(jié)點及橋接
腿 益o
其中,業(yè)務單元還提供各操作平臺上的主流多媒體解碼器驅動、視 頻數據到Java2D圖像緩沖區(qū)數據的高速格式轉換、對顯卡存儲單元進行 直接讀寫、高速視頻回放渲染、線程任務分解數據計算以及數據版權管 理審査。
其中,業(yè)務單元通過數字簽名和水印來檢査數據是否具有下載許可 權限、以及驗證用戶提交的申請信息來進行數據版權管理審查。
其中,控制單元將業(yè)務單元的待計算的數據分解成多個數據段,并 將各數據段分發(fā)到一個或多個其他節(jié)點中的業(yè)務單元,以進行分布式計 算。
根據本發(fā)明的另一個方面,提供了一種基于P2P的網絡應用方法, 包括以下步驟將基于P2P的物理網絡映射為虛擬扁平化的基于P2P的 網絡;以及基于P2P的網絡中的各節(jié)點之間利用基于XML的消息協(xié)議進 行無服務器狀態(tài)下的交互。
其中,各節(jié)點均提供各操作平臺上的主流多媒體解碼器驅動、視頻 數據到Java2D圖像緩沖區(qū)數據的高速格式轉換、對顯卡存儲單元進行直 接讀寫、高速視頻回放渲染、線程任務分解數據計算以及數據版權管理 審査。
其中,該方法還包括以下步驟通過數字簽名和水印來檢査數據是 否具有下載許可權限、以及驗證用戶提交的申請信息來進行數據版權管 理審査。
其中,該方法還包括以下步驟各節(jié)點將待計算的數據分解成多個
數據段,并將各數據段分發(fā)到一個或多個其他節(jié)點中,以進行分布式計 算。
通過實施本發(fā)明,可以實現如下技術效果(1) 完全可伸縮性自定義P2P應用框架,集成即時通信功能,借助 P2P實現內網范預內的網絡資源收集整理及共享,并具備實用的數字版 權管理技術為用戶提供高質量收費正版資源下載服務;
(2) 實現各大主流操作系統(tǒng)平臺上的多媒體格式兼容及高速回放渲 染,提供無服務器模式的實時流媒體傳輸(如網絡視頻監(jiān)控);以及
(3) 基于P2P的網絡分布式協(xié)同計算,實現并行事務處理及云計算 雛形。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地 從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的 和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指 出的結構來實現和獲得。
下面結合附圖和具體實施方式
對本發(fā)明的技術方案作進一步具體說明。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的 一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對 本發(fā)明的不當限定。在附圖中
圖1是示出根據本發(fā)明一個實施例的基于P2P的網絡應用系統(tǒng)中節(jié) 點的框圖2是示出根據本發(fā)明一個實施例的基于P2P網絡接入方法的流程
圖3是示出根據本發(fā)明另一個實施例的各網絡節(jié)點之間的連接關系 示意圖4是是根據本發(fā)明再一個實施例的連網示意圖。以及
圖5示出根據本發(fā)明再一個實施例的基于P2P網絡接入方法的流程圖。
具體實施例方式
下面將結合附圖來詳細說明本發(fā)明的實施例。圖1是示出根據本發(fā)明一個實施例的基于P2P的網絡應用系統(tǒng)中節(jié) 點的框圖。
參照圖1,該實施例中的基于P2P的網絡應用系統(tǒng),包括多個節(jié)點 100,各節(jié)點100均包括控制單元106,用于將基于P2P的物理網絡映 射為虛擬扁平化的基于P2P的網絡;以及業(yè)務單元104,用于利用基于 XML的消息協(xié)議與其他節(jié)點迸行無服務器狀態(tài)下的數據交互。
其中,控制單元106還用于在節(jié)點接入基于P2P的網絡時,利用TCP 或UDP協(xié)議檢測是否存在鄰近節(jié)點,在檢測到鄰近節(jié)點時,控制節(jié)點控 制生成用于節(jié)點的唯一標識并將唯一標識發(fā)送給鄰近節(jié)點,以及獲取鄰 近節(jié)點的唯一標識,以將節(jié)點注冊到基于P2P的網絡中,以及在未檢測 到存在鄰近節(jié)點時,選擇網絡中預設的中轉續(xù)航節(jié)點作為鄰近節(jié)點及橋 接器。
其中,業(yè)務單元104還提供各操作平臺上的主流多媒體解碼器驅動、 視頻數據到Java2D圖像緩沖區(qū)數據的高速格式轉換、對顯卡存儲單元進 行直接讀寫、高速視頻回放渲染、線程任務分解數據計算以及數據版權 管理審査。
其中,業(yè)務單元104通過數字簽名和水印來檢査數據是否具有下載 許可權限、以及驗證用戶提交的申請信息來進行數據版權管理審査。
其中,控制單元106將業(yè)務單元的待計算的數據分解成多個數據段, 并將各數據段分發(fā)到一個或多個其他節(jié)點中的業(yè)務單元,以進行分布式 計算。
圖2是示出根據本發(fā)明一個實施例的基于P2P網絡應用方法的流程圖。
參照圖2,該實施例中的基于P2P的網絡應用方法,包括以下步驟 步驟S202,將基于P2P的物理網絡映射為虛擬扁平化的基于P2P的網絡; 以及步驟S204,基于P2P的網絡中的各節(jié)點之間利用基于XML的消息協(xié) 議進行無服務器狀態(tài)下的交互。
該實施例中的方法還包括步驟S206,將新節(jié)點接入網絡時,檢測是 否存在其鄰近節(jié)點,在檢測到存在鄰近節(jié)點時,進行節(jié)點與鄰近節(jié)點的相互注冊。
其中,步驟S206包括在檢測到存在鄰近節(jié)點時,生成用于新節(jié)點
的唯一標識并將唯一標識發(fā)送給鄰近節(jié)點,以及鄰近節(jié)點將其唯一標識 發(fā)送給節(jié)點,以完成節(jié)點與鄰近節(jié)點之間的相互注冊。
其中,利用TCP或UDP協(xié)議來檢測是否存在鄰近節(jié)點。
其中,步驟S206還包括在未檢測到存在鄰近節(jié)點時,就選擇網絡 中預設的中轉續(xù)航節(jié)點作為鄰近節(jié)點及橋接器,并與其進行相互注冊。
其中,網絡中的各節(jié)點還進行各操作平臺上的主流多媒體解碼器驅 動、視頻數據到Java2D數據的格式轉換、對顯卡存儲單元進行直接讀寫、 高速視頻回放渲染、以及數據版權管理審査。
其中,通過數字簽名和水印來檢査數據是否具有下載許可權限、以 及驗證用戶提交的申請信息來進行數據版權管理審査。
其中,各節(jié)點還用于進行線程任務分解數據計算,其中,待計算的 數據被分解成多個數據段,并將各數據段分發(fā)到一個或多個其他節(jié)點中, 以進行分布式計算,以及利用Hash表以標簽對各數據段進行標識,以及 定義各數據段在待計算數據中的位置,并且在各節(jié)點完成相應的數據段 的計算后,將計算結果發(fā)送至客戶端,客戶端根據標簽和位置進行數據 的重組還原,而所述位置為字節(jié)存儲偏移。
下面參照圖3來更加詳細地描述本發(fā)明的另一個實施例。
在該實施例中,由多個對等網節(jié)點模塊及對等網中轉續(xù)航功能模塊 組成。節(jié)點模塊作為對等網實體的功能實現,完成對等網P2P的構成及 運行。中轉續(xù)航功能模塊是可選部分,為了確保在極端情況下(如對等 網內節(jié)點僅能訪問到中轉續(xù)航模塊時)可以確保對等網互聯(lián)拓撲不出現 全部斷裂,保證對等網的可運轉性。中轉續(xù)航模塊的使用與否由節(jié)點軟 件根據網絡環(huán)境自動決定是否使用。
該實施例采用的是虛擬點對點對等網模型,因此不存在服務器/客戶 端(C/S)這種結構。在該實施例中,對等網上的每個節(jié)點既是服務器也 是客戶端,同時具備二者的功能,成為一個P2P對等網節(jié)點,從而將復 雜的網絡結構簡單化、扁平化。該網絡中的每個節(jié)點都可以向其他節(jié)點推送文件及數據,也可以接收來自其他節(jié)點的文件或數據推送部署。如
圖3所示,每個節(jié)點模塊100都包括網絡單元102、控制單元106、輸入 輸出單元308、以及業(yè)務單元104,這些單元分別負責節(jié)點聯(lián)網、節(jié)點功 能控制、數據輸入輸出以及面向用戶的業(yè)務處理。每個節(jié)點100都會在 其內部維持一個守護線程及一個節(jié)點拓撲表,用于記錄該對等網內節(jié)點 拓撲結構,并開啟TCP業(yè)務監(jiān)聽端口,等待其他節(jié)點發(fā)出的任務請求, 并處于待命狀態(tài)。
當一個新節(jié)點準備接入網絡時,該新節(jié)點的控制單元106將通過其 網絡單元102來啟動網絡偵測,并利用TCP或UDP (根據網絡環(huán)境自動 切換)協(xié)議探測距離自己最近的節(jié)點是否存在,即,探測是否存在與該 新節(jié)點處于同一子網的節(jié)點模塊,若不存在則試圖尋找中轉續(xù)航模塊。 在探測到鄰近節(jié)點后,以基于TCP或UDP的自定義信令協(xié)議在該新接入 的節(jié)點與其鄰近節(jié)點之間進行節(jié)點間的通信,該新接入的節(jié)點生成其唯
一標識數據,并將該唯一標識數據發(fā)送至其鄰近節(jié)點,以及從其鄰近節(jié) 點獲取該鄰近節(jié)點的唯一標識數據以完成這兩個節(jié)點間的相互注冊,從 而完成節(jié)點進入對等網的操作。
當網絡單元102返回連網成功的消息后,控制單元106就將由業(yè)務 單元104下發(fā)的用戶交互需求(如資源搜索、共享、數據推送等)轉換 為數據輸入輸出命令原語,并通過輸入輸出單元進行IO操作。
業(yè)務單元104將負責向用戶展現上層應用邏輯,通過基于XML (擴 展標記語言)的消息協(xié)議實現對等網節(jié)點之間的即時通信。業(yè)務單元104 同時將提供適合于各操作系統(tǒng)平臺上的主流多媒體解碼器驅動、并完成 視頻原始數據到Java2D圖像緩沖區(qū)的格式轉換、再對顯卡存儲單元進行 直接寫入、完成高速視頻回放渲染。對于所有的交互信息,業(yè)務單元104 將通過數字簽名及水印檢査業(yè)務數據是否具備下載許可權限,并驗證用 戶提交的申請信息,從而完成對等網環(huán)境下的數據版權管理審查。
此外,業(yè)務單元104還根據輸入輸出單元提供的網絡反饋數據向用 戶提供當前對等網環(huán)境內的可利用節(jié)點資源情況,并通過應用程序接口 向用戶提供各類數據計算功能,通過控制單元將計算任務步驟分解、以消息協(xié)議散發(fā)到其他具備同等條件的節(jié)點、并與各節(jié)點進行協(xié)商,以完 成分布式計算。
在該實施例中,優(yōu)選地,采用提供開放數據接口格式的Java平臺, 參考Java NIO以及XML技術實現無阻塞網絡連接以及計算元語封裝設 計;
優(yōu)選地,采用Java Swing技術實現靈活的、可插拔感官(Look and Feel)用戶界面,與操作系統(tǒng)平臺無關,可適用于任何Java支持的主流 0S,并始終保持界面一致性,其性能通過Java VM后期即時編譯優(yōu)化為 本地二進制代碼運行,速度優(yōu)異;
優(yōu)選地,該實施例還參考Java平臺P2P基本規(guī)范及XML實現標準, 對其進行協(xié)議擴展,通過GUID算法實現全球128位唯一標識ID,對P2P 云狀態(tài)信息數據通過標準ZIP流進行壓縮傳輸,減少網絡帶寬占用,提 高速度。以XML為基礎定義協(xié)議元語,并在客戶端程序中實現解釋執(zhí)行。 利用Socket API以TCP方式實現節(jié)點連接。對等網的實現是在TCP基礎 上進行的包裝,在底層,是基于TCP進行節(jié)點的連接,節(jié)點可能處于不 同的網絡,建立TCP連接可能要經過路由器路由,但在對等網應用層面, 通過唯一標識ID,隱藏了深層次的網絡連接實質,而是代以ID標識對 應各節(jié)點表征連接,實現應用層面的對等網絡結構,不關心網絡具體形 式;
在該實施例中考慮到,對等網絡要跨越不同類型的網絡,大多數是 隱藏在NAT防火墻背后的,而由于存在地址轉換,因而建立TCP雙向直 連比較困難,因此,優(yōu)選地,采用了UDP進行包傳遞,并將WAN地址及 端口與P2PID綁定,實現節(jié)點間的雙向直連,從而確保P2P跨網穿透防 火墻。
由于客戶端之間的通信需要一種協(xié)議用來傳遞操控指令、數據以及 反饋結果等,因此在該實施例中優(yōu)選地采用了基于XML的自定義元語模 式定義P2P服務,定義P2P服務各項屬性級控制信令,客戶端程序上實 現對XML協(xié)議元語的分析,來實現命令的理解和執(zhí)行;以及
在該實施例中,優(yōu)選地,在進行分布式運算時,利用Hash表實現散列數據碎片的標簽識別,不僅定義每個數據碎片的唯一性,同時定義了 其所在原始文件中的字節(jié)存儲偏移,從而可快速地由客戶端程序實現文 件重組還原。
下面參照圖4和圖5來說明本發(fā)明的另一個實施例。 圖4是根據本發(fā)明再一個實施例的連網示意圖。圖5示出根據本發(fā) 明再一個實施例的基于P2P網絡接入方法的流程圖。
參照圖5,由n個P2P客戶端構成完整的分布式對等網系統(tǒng)。每個 節(jié)點在對等網中呈散列分布,形成云狀結構。任一節(jié)點在進入P2P云前, 首先要進行初始化工作(S502),包括TCP及UDP端口檢測,檢查端口 是否被占用,若未被占用則應嘗試使用其他可用端口。端口檢測完畢后, 讀取磁盤上或其他存儲介質上的配置文件并進行分析,得到策略信息, 然后應用策略,通過網絡適配器(網卡)連接本地網絡,并通過P2P檢 測協(xié)議探測P2P網絡云是否存在(S504),若不存在則持續(xù)進行檢測; 若存在,則按照P2P檢測協(xié)議創(chuàng)建一個128位的全球唯一標識碼并與P2P 云中的最近節(jié)點建立網絡連接,提交本節(jié)點注冊數據,完成向P2P云的 注冊工作(S506)。而與之相連的P2P云節(jié)點將當前P2P云的狀態(tài)信息 數據反饋給新增的這個節(jié)點,新節(jié)點更新自己存儲的云結構數據,從而 可以"了解"自身處在P2P云中的位置情況,同時掌握P2P云中當前有 效節(jié)點的數量及資源含量,從而方便在資源搜尋時建立有效連接。根據 用戶資源獲取需求,新增節(jié)點與其他P2P節(jié)點交換屬性鑒別信息(S508), 若不成功,則表示所請求的資源不存在于該節(jié)點上,那么重復進行其他 節(jié)點的連接及資源信息鑒別,該動作可通過多線程模式并發(fā)執(zhí)行,提高 資源搜索效率。 一旦定位到資源數據后,新增節(jié)點便通過TCP或者UDP 協(xié)議與被鎖定節(jié)點建立直接網絡連接(可通過UDP方式穿透NAT防火墻), 開始進行數據傳輸(S510)。這一操作可通過多線程模式并發(fā)進行,從 而可在宏觀上實現并行。節(jié)點在進行數據傳輸時,并不是一味擴大占用 帶寬資源,而是根據P2P云流量控制策略進行流控,同時支持數據散列 碎片的快速重組,在宏觀上具備保留流媒體傳輸的特性,尤其是針對 Windows Media實時媒體流的包拆解及重組,從而實現P2P網絡視頻監(jiān)控的實時性,從而可實現P2P分布式流媒體功能。對于需要進行版權管 理的數字內容,客戶端通過數字簽名標簽對下載的每一個數據片段在重 組后進行校驗并激活認證功能,從而可對任何格式類型文件及數據資源 實現方便的數字版權管理(DRM),而非針對特定格式或依賴某一操作系 統(tǒng)平臺。在完成數據碎片的全部傳輸后,客戶端程序依據碎片標簽對碎 片進行快速重組,還原原始文件,完成資源傳輸。對于分布式計算任務, 可通過P2P協(xié)議進行上層擴充,以類似Java字節(jié)碼的形式封裝計算任務 元語,經P2P云進行傳輸,在節(jié)點由客戶端程序進行重組還原,并解釋 執(zhí)行,從而實現一個大批量或大運算量任務分解為多個計算單元交由 P2P網絡節(jié)點進行并行分散計算,并最后進行匯總,完成云計算類似過 程。
通過實施本發(fā)明,可以實現如下技術效果
(1) 完全可伸縮性自定義P2P應用框架,集成即時通信功能,借助 P2P實現內網范圍內的網絡資源收集整理及共享,并具備實用的數字版 權管理技術為用戶提供高質量收費正版資源下載服務;
(2) 實現各大主流操作系統(tǒng)平臺上的多媒體格式兼容及高速回放渲 染,提供無服務器模式的實時流媒體傳輸(如網絡視頻監(jiān)控);以及
(3) 基于P2P的網絡分布式協(xié)同計算,實現并行事務處理及云計算雛形。
以上所述僅為本發(fā)明的優(yōu)選實施例而己,并不用于限制本發(fā)明,對 于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明 的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在 本發(fā)明的保護范圍之內。
權利要求
1、一種基于P2P的網絡應用系統(tǒng),包括多個節(jié)點,其特征在于,各所述節(jié)點均包括控制單元,用于將基于P2P的物理網絡映射為虛擬扁平化的基于P2P的網絡;以及業(yè)務單元,用于利用基于XML的消息協(xié)議與其他節(jié)點進行無服務器狀態(tài)下的數據交互。
2. 根據權利要求1所述的系統(tǒng),其特征在于,所述控制單元還用于在所述節(jié)點接入所述基于P2P的網絡時,利用TCP或UDP協(xié)議檢測是否存在所述鄰近節(jié)點,在檢測到所述鄰近節(jié)點時,所述控制節(jié)點控制生成用于所述節(jié)點的唯一標識并將所述唯一標識發(fā)送給所述鄰近節(jié)點,以及獲取所述鄰近節(jié)點的唯一標識,以將所述節(jié)點注冊到所述基于P2P的網絡中,以及在未檢測到存在所述鄰近節(jié)點時,選擇所述網絡中預設的中轉續(xù)航節(jié)點作為鄰近節(jié)點及橋接器。
3. 根據權利要求2所述的系統(tǒng),其特征在于,所述業(yè)務單元還提供各操作平臺上的主流多媒體解碼器驅動、視頻數據到Java2D圖像緩沖區(qū)數據的高速格式轉換、對顯卡存儲單元進行直接讀寫、高速視頻回放渲染、線程任務分解數據計算以及數據版權管理審査。
4. 根據權利要求3所述的系統(tǒng),其特征在于,所述業(yè)務單元通過數字簽名和水印來檢査數據是否具有下載許可權限、以及驗證用戶提交的申請信息來進行所述數據版權管理審查。
5. 根據權利要求3所述的系統(tǒng),其特征在于,所述控制單元將所述業(yè)務單元的待計算的數據分解成多個數據段,并將各所述數據段分發(fā)到一個或多個其他所述節(jié)點中的業(yè)務單元,以進行分布式計算。
6. —種基于P2P的網絡應用方法,其特征在于,包括以下步驟將所述基于P2P的物理網絡映射為虛擬扁平化的基于P2P的網絡;以及所述基于P2P的網絡中的各節(jié)點之間利用基于XML的消息協(xié)議進行無服務器狀態(tài)下的交互。
7. 根據權利要求6所述的方法,其特征在于,各所述節(jié)點均提供各操作平臺上的主流多媒體解碼器驅動、視頻數據到Java2D圖像緩沖區(qū)數據的高速格式轉換、對顯卡存儲單元進行直接讀寫、高速視頻回放渲染、線程任務分解數據計算以及數據版權管理審査。
8. 根據權利要求7所述的方法,其特征在于,還包括以下步驟通過數字簽名和水印來檢査數據是否具有下載許可權限、以及驗證用戶提交的申請信息來進行所述數據版權管理審査。
9. 根據權利要求7所述的方法,其特征在于,還包括以下步驟各所述節(jié)點將待計算的數據分解成多個數據段,并將各所述數據段分發(fā)到一個或多個其他所述節(jié)點中,以進行分布式計算。
全文摘要
本發(fā)明公開了基于P2P的網絡應用系統(tǒng)及其應用方法,其中,基于P2P的網絡應用方法包括以下步驟將所述基于P2P的物理網絡映射為虛擬扁平化的基于P2P的網絡;以及所述基于P2P的網絡中的各節(jié)點之間利用基于XML的消息協(xié)議進行無服務器狀態(tài)下的交互。本發(fā)明實現了分布式協(xié)同計算,實現并行事務處理及云計算雛形。
文檔編號H04L29/08GK101582916SQ20091006274
公開日2009年11月18日 申請日期2009年6月19日 優(yōu)先權日2009年6月19日
發(fā)明者新 張, 楊貝黎, 煒 鄭 申請人:武漢鋼鐵(集團)公司