專利名稱:一種基于p2p技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)及相應(yīng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及內(nèi)容分發(fā)網(wǎng)絡(luò),特別涉及一種基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)。
背景技術(shù):
內(nèi)容分發(fā)系統(tǒng),又稱內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network或者Content Distribution Network,簡(jiǎn)稱CDN),是架構(gòu)在現(xiàn)有互聯(lián)網(wǎng)上的一種分布式內(nèi)容遞送平 臺(tái),它的一般系統(tǒng)結(jié)構(gòu)如附圖12所示,主要由分布在網(wǎng)絡(luò)邊緣的服務(wù)器集群(Edge Service Provider,簡(jiǎn)稱ESP) 1201和管理者1203組成。內(nèi)容提供商(Content Provider, 簡(jiǎn)稱CP) 1202只需要將內(nèi)容源中的內(nèi)容發(fā)布到ESP1201上,用戶1204就可以從最 近的ESP上獲得內(nèi)容。這樣可以將內(nèi)容源的負(fù)載分散到各個(gè)ESP上,不僅減輕了內(nèi) 容源的壓力,而且提高了用戶的體驗(yàn)。由于內(nèi)容分發(fā)系統(tǒng)所發(fā)布的內(nèi)容分布在多個(gè) ESP上,還可以避免單點(diǎn)失效的問題,增強(qiáng)了內(nèi)容的可用性。CDN為內(nèi)容提供商和 用戶間建立了一個(gè)高效的內(nèi)容傳送通道,改善了互聯(lián)網(wǎng)上的服務(wù)質(zhì)量。
CDN的關(guān)鍵技術(shù)有以下四個(gè)
內(nèi)容路由技術(shù),內(nèi)容路由是指CDN系統(tǒng)將用戶請(qǐng)求導(dǎo)向最合適的ESP的過程, 選擇ESP的原則一般有和用戶間延遲最小、可用帶寬最大以及ESP負(fù)載最輕等。大 多數(shù)CDN釆用DNS重定向、應(yīng)用層協(xié)議重定向和傳輸層重定向的手段實(shí)現(xiàn)。
內(nèi)容分發(fā)技術(shù),內(nèi)容分發(fā)是內(nèi)容從CP或者內(nèi)容源發(fā)送到ESP的過程。從實(shí)現(xiàn) 上看,主要有兩種方式Push和Pull。 Push是主動(dòng)內(nèi)容分發(fā),由CP或內(nèi)容源發(fā)起, 主動(dòng)將內(nèi)容從源推送到各個(gè)ESP上。用來提供內(nèi)容遞送服務(wù)的CDN —般使用這種 分發(fā)方式。Pull是被動(dòng)內(nèi)容分發(fā),由用戶的請(qǐng)求驅(qū)動(dòng),當(dāng)用戶請(qǐng)求的內(nèi)容在ESP上 不存在時(shí),ESP會(huì)從內(nèi)容源拉出內(nèi)容,緩存本地并返回用戶。作為透明內(nèi)容承載網(wǎng) 絡(luò)的CDN —般使用Pull方式。分發(fā)技術(shù)中最關(guān)鍵的是內(nèi)容分發(fā)算法,它是內(nèi)容從 源到ESP的分發(fā)流程,分發(fā)算法的性能是CDN最重要的性能指標(biāo)之一, 一般期望 對(duì)大尺寸的塊式內(nèi)容(如光盤鏡像)能達(dá)到高吞吐率,對(duì)流式內(nèi)容(如流媒體)可 以到達(dá)低延遲。內(nèi)容存儲(chǔ)技術(shù),對(duì)于Push方式分發(fā)的內(nèi)容,要求內(nèi)容盡可能可靠地存儲(chǔ)在ESP 上。ESP除了可以釆用磁盤RAID進(jìn)行存儲(chǔ)外,也可以采用應(yīng)用層的分布式容錯(cuò)機(jī) 制實(shí)現(xiàn)可靠存儲(chǔ)。在PuU方式的CDN中,內(nèi)容實(shí)際是緩存在ESP上的,對(duì)內(nèi)容可 靠性要求不如Push方式的高,但對(duì)于緩存的管理則比較復(fù)雜,緩存策略(內(nèi)容是部 分緩存還是全部緩存)和淘汰替換算法都需要根據(jù)實(shí)際應(yīng)用進(jìn)行設(shè)計(jì),以達(dá)到高性 能。
內(nèi)容管理技術(shù)包括本地內(nèi)容管理和本地內(nèi)容狀態(tài)信息收集等。
域是指互聯(lián)網(wǎng)中一個(gè)ISP的自治系統(tǒng)(Autonomous System)。 一般來說, 一個(gè) 域中的互聯(lián)網(wǎng)節(jié)點(diǎn)相互之間的連接延遲較低,帶寬較高,而跨域連接的質(zhì)量較低。 域間流量也可能會(huì)給ISP帶來高額的網(wǎng)間結(jié)算費(fèi)用。
目前的CDN—般將整個(gè)互聯(lián)網(wǎng)看成一個(gè)單域,所有的ESP,無論其所部署的 ISP,都統(tǒng)一受管理,沒有根據(jù)不同的域來區(qū)分ESP。
單域CDN的對(duì)ESP的管理相對(duì)簡(jiǎn)單,實(shí)現(xiàn)較為容易,但有具有如下的缺點(diǎn)
1、 當(dāng)ESP的數(shù)量很大時(shí),統(tǒng)一管理會(huì)帶來較大的開銷;
2、 ESP由于分散在各個(gè)ISP中,與管理者連接的網(wǎng)絡(luò)情況可能會(huì)很惡劣,管理 者無法及時(shí)得到ESP的信息,將影響統(tǒng)一管理的效率;
3、 不同ISP中的ESP可能會(huì)頻繁互傳大量數(shù)據(jù),這可能會(huì)引起很高的網(wǎng)間結(jié) 算費(fèi)用,另外由于域間連接質(zhì)量問題,傳送數(shù)據(jù)會(huì)很慢;
4、 如果集中管理點(diǎn)失效將會(huì)影響整個(gè)CDN的工作。
為了克服上述缺點(diǎn),本申請(qǐng)引入多域概念,即是將ESP按照所處的域(自治系 統(tǒng))進(jìn)行管理。每個(gè)域的管理者只負(fù)責(zé)本域的ESP,減少了管理開銷,提高了管理 效率,同時(shí)盡量讓數(shù)據(jù)傳送在同一個(gè)域的ESP上發(fā)生,以降低網(wǎng)間流量和結(jié)算費(fèi)用。 但在引入多域概念后,也會(huì)產(chǎn)生相應(yīng)的問題,例如,在對(duì)多域進(jìn)行管理的過程中, 需要為每個(gè)域引入一個(gè)管理者,分布式的管理使得全局所有域狀態(tài)的維護(hù)變得困難; 此外,傳統(tǒng)單域的CDN由于沒有區(qū)分域,使得現(xiàn)有的相關(guān)技術(shù)無法應(yīng)用于多域內(nèi) 容的發(fā)布。
發(fā)明內(nèi)容
本發(fā)明的目的是克服多域中的分布式管理使得對(duì)全局所有域狀態(tài)的維護(hù)變得困 難的缺陷,從而提供一種多域內(nèi)容分發(fā)系統(tǒng)以及相應(yīng)的內(nèi)容發(fā)布、下載和搜索方法。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng),包 括邊緣服務(wù)器、內(nèi)容發(fā)布端、用戶端、認(rèn)證中心、追蹤服務(wù)器、智能發(fā)布端;還包 括分布式Hash表和內(nèi)容路由器;其中, 一個(gè)域按照ISP的自治系統(tǒng)進(jìn)行劃分,在一 個(gè)域中包括有一個(gè)內(nèi)容路由器、 一個(gè)追蹤服務(wù)器和至少一個(gè)邊緣服務(wù)器,所述的邊 緣服務(wù)器、認(rèn)證中心、追蹤服務(wù)器都分別與所述的內(nèi)容路由器相連,所述的用戶端 用戶端、內(nèi)容發(fā)布端和智能發(fā)布端與所述的邊緣服務(wù)器直接或間接相連,不同域間 的內(nèi)容路由器通過所述的分布式Hash表連接,同時(shí)也要連接認(rèn)證中心,不同域間 的邊緣服務(wù)器之間相連。
上述技術(shù)方案中,所述的分布式Hash表將各個(gè)域的內(nèi)容路由器聯(lián)系起來形成 一個(gè)覆蓋網(wǎng)絡(luò),提供全局內(nèi)容的索引,并為所述的內(nèi)容路由器提供基于多關(guān)鍵字索 引的査詢。
上述技術(shù)方案中,所述的內(nèi)容路由器負(fù)責(zé)管理本域中的邊緣服務(wù)器,協(xié)調(diào)所述 多域內(nèi)容分發(fā)系統(tǒng)中的其他模塊為智能發(fā)布端提供內(nèi)容發(fā)布功能,并為用戶提供內(nèi) 容搜索和下載功能。
本發(fā)明還提供了一種在所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)上實(shí)現(xiàn)的多域 內(nèi)容發(fā)布方法,按以下步驟順序執(zhí)行
步驟11)、發(fā)布端向本域的內(nèi)容路由器査詢其他域的內(nèi)容路由器的地址; 步驟12)、本域的內(nèi)容路由器向分布式Hash表發(fā)出査詢請(qǐng)求,并得到查詢結(jié)果; 步驟13)、內(nèi)容路由器將査詢得到的各個(gè)域的內(nèi)容路由器地址信息返回給發(fā)布
端;
步驟14)、發(fā)布端根據(jù)得到的各個(gè)域的內(nèi)容路由器地址向所有的內(nèi)容路由器查 詢其所在域的邊緣服務(wù)器的地址;
步驟15)、將所得到的邊緣服務(wù)器的地址通告每一個(gè)邊緣服務(wù)器; 步驟16)、邊緣服務(wù)器與發(fā)布端互傳內(nèi)容分片; 步驟17)、所有的邊緣服務(wù)器都擁有完整的副本;
步驟18)、所述的內(nèi)容路由器通告發(fā)布端本域的內(nèi)容發(fā)布完成,將內(nèi)容描述信 息存入到本地的內(nèi)容數(shù)據(jù)庫(kù)中,并將該內(nèi)容描述信息向所述的分布式Hash表發(fā)布。
本發(fā)明又提供了一種在所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)上實(shí)現(xiàn)的多域 內(nèi)容下載方法,按以下步驟順序執(zhí)行
步驟21)、所述的用戶端通過內(nèi)容路由器獲取所述追蹤服務(wù)器的地址;步驟22)、所述用戶端從追蹤服務(wù)器上獲得正在下載同一內(nèi)容的其他用戶下載 端和邊緣服務(wù)器的地址;步驟23)、用戶端優(yōu)先從其他的下載端獲取數(shù)據(jù),在其他下載端無法獲取數(shù)據(jù) 的情況下,從邊緣服務(wù)器上獲取數(shù)據(jù);步驟24)、下載數(shù)據(jù),并提供上傳,同時(shí)定時(shí)向追蹤服務(wù)器報(bào)告下載狀態(tài);步驟25)、數(shù)據(jù)下載完成,結(jié)束操作。本發(fā)明再提供了一種在所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)上實(shí)現(xiàn)的多域 內(nèi)容搜索方法,按以下步驟順序執(zhí)行步驟31)、用戶端向所在域的內(nèi)容路由器提供搜索關(guān)鍵字;步驟32)、判斷內(nèi)容搜索的范圍,若搜索范圍為用戶端所在域,則執(zhí)行下一步, 若搜索范圍為全域,則執(zhí)行步驟34);步驟33)、搜索本地內(nèi)容數(shù)據(jù)庫(kù),執(zhí)行步驟35);步驟34)、通過內(nèi)容路由器向分布式Hash表做全域內(nèi)容搜索;步驟35)、將搜索后的結(jié)果返回給用戶端。本發(fā)明還提供了一種在所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)上實(shí)現(xiàn)的對(duì)邊 緣服務(wù)器上的內(nèi)容作容錯(cuò)存儲(chǔ)的方法,按以下步驟順序執(zhí)行-步驟41)、發(fā)布端定時(shí)向內(nèi)容路由器詢問已經(jīng)發(fā)布過的內(nèi)容是否在邊緣服務(wù)器 上存在;步驟42)、內(nèi)容路由器接收查詢請(qǐng)求后詢問邊緣服務(wù)器,若所要査詢的內(nèi)容保 存在邊緣服務(wù)器上,中斷操作,否則,執(zhí)行下一步;步驟43)、所查詢的內(nèi)容未被保存在邊緣服務(wù)器上,內(nèi)容路由器通知發(fā)布端內(nèi) 容失效;步驟44)、發(fā)布端重新開始多域內(nèi)容發(fā)布,若其他域的邊緣服務(wù)器上存在完整 的內(nèi)容副本,則失效域的邊緣服務(wù)器同時(shí)從所有其他域的邊緣服務(wù)器上獲取內(nèi)容。本發(fā)明將P2P技術(shù)中的分布式Hash表、內(nèi)容分片和點(diǎn)對(duì)點(diǎn)分片互傳應(yīng)用到多 域內(nèi)容分發(fā)系統(tǒng)中。其中的DHT可以用于全局所有域的狀態(tài)維護(hù)。各個(gè)域的管理 者通過DHT連接在一起,將自己域的信息向DHT發(fā)布,這樣DHT上就存儲(chǔ)有整 個(gè)系統(tǒng)的全局狀態(tài),DHT具有快速査詢和容錯(cuò)的優(yōu)點(diǎn),它可以高效并可靠地維護(hù)全 局信息,解決了多域全局狀態(tài)維護(hù)的問題。內(nèi)容分片和點(diǎn)對(duì)點(diǎn)分片互傳可以充分利 用ESP的上行帶寬,使ESP間內(nèi)容分發(fā)效率更高。另外,用戶間也采用點(diǎn)對(duì)點(diǎn)分片 互傳來獲取內(nèi)容,進(jìn)一步提高最終用戶的體驗(yàn),并使得系統(tǒng)可以支持更大規(guī)模的用戶量。
圖l是系統(tǒng)拓?fù)浼軜?gòu)圖;圖2是多域發(fā)布流程圖;圖3是下載流程圖;圖4是搜索流程圖;圖5是多域發(fā)布拓?fù)鋱D;圖6是系統(tǒng)結(jié)構(gòu)圖;圖7是CR處理內(nèi)容發(fā)布的流程圖;圖8是CR處理內(nèi)容刪除的流程圖;圖9是CR處理檢查內(nèi)容的流程圖;圖IO是CR處理搜索內(nèi)容的流程圖;圖11是CR處理下載內(nèi)容的流程圖;圖12是傳統(tǒng)單域CDN的結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述 P2P技術(shù)是在互聯(lián)網(wǎng)上使用最為廣泛的內(nèi)容分發(fā)技術(shù)。分布式Hash表 (Distributed Hash Table,簡(jiǎn)稱DHT)是P2P技術(shù)的一個(gè)新興方向。DHT是由分布 在互聯(lián)網(wǎng)上的節(jié)點(diǎn)共同維護(hù)的一個(gè)Hash表,這個(gè)表的鍵是一個(gè)存儲(chǔ)對(duì)象的標(biāo)識(shí), 有160位長(zhǎng), 一般由SHA-1函數(shù)產(chǎn)生。每個(gè)節(jié)點(diǎn)會(huì)被分配一個(gè)子表,成為這個(gè)子表 的管理者,節(jié)點(diǎn)上不僅存儲(chǔ)有這個(gè)子表,還有如何訪問其它子表的信息,也就是路 由表。DHT的優(yōu)點(diǎn)是一,無中心服務(wù)器,依靠分布式自適應(yīng)算法來處理節(jié)點(diǎn)的加 入和退出;二,路由算法的平均跳數(shù)為G(^gW),路由表的大小也為W^W), W 是DHT中的節(jié)點(diǎn)數(shù)目;三,通過冗余備份的機(jī)制,避免了單點(diǎn)失效,保證了存儲(chǔ) 在DHT上數(shù)據(jù)的可靠性。DHT相當(dāng)于一個(gè)分布式存儲(chǔ)和査詢?cè)O(shè)施。用戶可以通過 DHT發(fā)布和査詢內(nèi)容。P2P技術(shù)的一個(gè)重要方面是內(nèi)容分片和點(diǎn)對(duì)點(diǎn)分片互傳。內(nèi)容分片是指,將一 個(gè)完整的內(nèi)容,分成多個(gè)相同大小的內(nèi)容片,傳送時(shí)以這些分片作為傳送單位。分 片傳送的兩個(gè)好處是,第一,可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)互傳,當(dāng)節(jié)點(diǎn)收到一個(gè)分片以后,就 能立即提供上傳這個(gè)分片的服務(wù),開始與其他節(jié)點(diǎn)的內(nèi)容分片互傳,充分利用節(jié)點(diǎn)的上行帶寬,減少源服務(wù)器的壓力,擴(kuò)展性較好;第二,如果發(fā)現(xiàn)一個(gè)內(nèi)容分片損壞只需要重傳這個(gè)內(nèi)容分片,而不必重新傳整個(gè)內(nèi)容,提高了傳送效率。利用P2P技術(shù)的上述兩個(gè)特點(diǎn),可完成對(duì)本發(fā)明的多域內(nèi)容分發(fā)系統(tǒng)的實(shí)現(xiàn)。 本發(fā)明的多域內(nèi)容分發(fā)系統(tǒng)包括分布式Hash表(DHT)、內(nèi)容路由器(ContentRouter,簡(jiǎn)稱CR)、邊緣服務(wù)器(Edge Service Provider,簡(jiǎn)稱ESP)、認(rèn)證中心 (CertificateAuthority,簡(jiǎn)稱CA)、追蹤服務(wù)器(Tracker)、智能發(fā)布端(IntelligentPublisher,簡(jiǎn)稱IP)、內(nèi)容發(fā)布端(ContentPublisher,簡(jiǎn)寫CP)以及用戶端(Client)組成。圖1是一個(gè)多域內(nèi)容分發(fā)系統(tǒng)的實(shí)施例,在該多域內(nèi)容分發(fā)系統(tǒng)中,每個(gè)域106 按照ISP的自治系統(tǒng)來劃分,在一個(gè)域中包括有一個(gè)內(nèi)容路由器104,若干個(gè)邊緣 服務(wù)器101和一個(gè)追蹤服務(wù)器103,很多用戶端102,內(nèi)容發(fā)布端107以及智能發(fā)布 端108其中,內(nèi)容路由器104是所屬域中的管理者,本域中的其他服務(wù)器都與內(nèi)容 路由器104直接或間接相連。也要不同域之間的內(nèi)容路由器104通過分布式Hash 表(DHT)相連接,內(nèi)容路由器104向分布式Hash表發(fā)布本域中的信息,通過DHT 獲得整個(gè)系統(tǒng)的狀態(tài)。由圖1可知,所述多域內(nèi)容分發(fā)系統(tǒng)的結(jié)構(gòu)是一個(gè)兩層的覆 蓋網(wǎng)絡(luò),第一層網(wǎng)絡(luò)是由每個(gè)域的內(nèi)容路由器在分布式Hash表的組織下構(gòu)成的, 如圖1中的105所示,第二層是邊緣服務(wù)器間組成的覆蓋網(wǎng)絡(luò)。第一層網(wǎng)絡(luò)主要用 于系統(tǒng)中控制信息的傳輸,第二層網(wǎng)絡(luò)是發(fā)布時(shí)的數(shù)據(jù)傳輸網(wǎng)。109是認(rèn)證中心, 各個(gè)域的內(nèi)容路由器CR與之相連。附圖6為內(nèi)容分發(fā)系統(tǒng)的構(gòu)架圖,該系統(tǒng)分為4個(gè)層次最底層為數(shù)據(jù)存儲(chǔ)和 資源定位,提供全系統(tǒng)的數(shù)據(jù)存儲(chǔ)和資源索引搜索功能;第2層為系統(tǒng)的核心支撐 層,提供包括內(nèi)容存儲(chǔ)、全局負(fù)載均衡、內(nèi)容檢索、內(nèi)容管理接口、身份認(rèn)證以及 多域分發(fā)的支撐功能;第3層為面向用戶和運(yùn)營(yíng)商的服務(wù)層,提供海量?jī)?nèi)容批量發(fā) 布、內(nèi)容搜索、下載、視頻直播、點(diǎn)播功能;最上層為系統(tǒng)的API及網(wǎng)絡(luò)服務(wù)層, 為第三方提供一個(gè)開發(fā)的接口。多域內(nèi)容分發(fā)系統(tǒng)中各個(gè)部分的具體功能如下分布式Hash表將各個(gè)域的內(nèi)容路由器聯(lián)系起來形成一個(gè)覆蓋網(wǎng)絡(luò),提供全局 內(nèi)容的索引功能。由于DHT具有良好的負(fù)載均衡以及故障恢復(fù)功能,所以利用DHT 可以較好地維護(hù)多域內(nèi)容分發(fā)系統(tǒng)的全局狀態(tài)。分布式Hash表直接為內(nèi)容路由器 提供基于多關(guān)鍵字索引查詢服務(wù),返回給內(nèi)容路由器的查詢結(jié)果為包含發(fā)布對(duì)象的 發(fā)布信息,例如發(fā)布域名、域數(shù)量、對(duì)象詳細(xì)描述、分類等信息。內(nèi)容路由器存在于每個(gè)域中,負(fù)責(zé)管理域中的邊緣服務(wù)器,協(xié)調(diào)其他模塊為智 能發(fā)布端提供內(nèi)容發(fā)布功能,并為用戶提供內(nèi)容搜索和下載功能。對(duì)本域上的內(nèi)容 要根據(jù)指定的保存時(shí)間進(jìn)行自動(dòng)管理。邊緣服務(wù)器負(fù)責(zé)存儲(chǔ)內(nèi)容,并為用戶提供下載服務(wù),邊緣服務(wù)器可以按照預(yù)先 制定的分發(fā)協(xié)議實(shí)現(xiàn)內(nèi)容向最終用戶的分發(fā)。追蹤服務(wù)器為下載用戶返回其余下載同一個(gè)內(nèi)容的用戶以及邊緣服務(wù)器的地址,幫助用戶構(gòu)建P2P覆蓋網(wǎng)絡(luò)。認(rèn)證中心負(fù)責(zé)對(duì)用戶信息進(jìn)行管理,提供包括新用戶注冊(cè)、修改用戶信息、用 戶登陸、用戶合法性驗(yàn)證的功能,此外,認(rèn)證中心也提供對(duì)智能發(fā)布端的身份認(rèn)證 服務(wù)。智能發(fā)布端是一個(gè)專用的智能發(fā)布端,內(nèi)容提供商使用客戶端軟件向智能發(fā)布 端傳送內(nèi)容,智能發(fā)布端會(huì)自動(dòng)將該內(nèi)容按照預(yù)定的存儲(chǔ)格式進(jìn)行發(fā)布。內(nèi)容發(fā)布端與智能發(fā)布端的功能相類似,但內(nèi)容發(fā)布端在發(fā)布內(nèi)容時(shí)采用手動(dòng) 發(fā)布的方式。用戶端具有內(nèi)容搜索和內(nèi)容下載的功能。用戶端在做內(nèi)容搜索的過程中,提供 了兩種搜索方式, 一種是搜索本地?cái)?shù)據(jù)庫(kù),另一種是搜索分布式Hash表,以實(shí)現(xiàn) 對(duì)全域內(nèi)容的搜索。如圖IO所示,用戶端在進(jìn)行搜索時(shí),首先向內(nèi)容路由器提供從 認(rèn)證中心獲得的SessionID和Client的用戶名,內(nèi)容路由器根據(jù)這兩個(gè)信息向認(rèn)證 中心驗(yàn)證用戶端是否合法,若合法,則接受搜索請(qǐng)求,并根據(jù)搜索的方式分別做全 域或本域的搜索,否則,拒絕搜索請(qǐng)求。根據(jù)本發(fā)明的多域內(nèi)容分發(fā)系統(tǒng),本發(fā)明還提供了一種多域內(nèi)容發(fā)布方法,如 圖2所示,多域內(nèi)容發(fā)布方法包括以下步驟步驟ll、發(fā)布端向本域的內(nèi)容路由器查詢其他域的內(nèi)容路由器的地址;步驟12、本域的內(nèi)容路由器向分布式Hash表發(fā)出查詢請(qǐng)求,并得到査詢結(jié)果;步驟13、內(nèi)容路由器將查詢得到的各個(gè)域的內(nèi)容路由器地址信息返回給發(fā)布端;步驟14、發(fā)布端根據(jù)得到的各個(gè)域的內(nèi)容路由器地址向所有的內(nèi)容路由器査詢 其所在域的邊緣服務(wù)器的地址;步驟15、將所得到的邊緣服務(wù)器的地址通告每一個(gè)邊緣服務(wù)器; 步驟16、邊緣服務(wù)器與發(fā)布端互傳內(nèi)容分片; 步驟17、所有的邊緣服務(wù)器都擁有完整的副本;步驟18、內(nèi)容路由器通告發(fā)布端本域的內(nèi)容發(fā)布完成,將內(nèi)容描述信息存入到本地的內(nèi)容數(shù)據(jù)庫(kù)中,并將該內(nèi)容描述信息向分布式Hash表發(fā)布。圖5說明了多域發(fā)布時(shí)的覆蓋網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),其中,501是域,502是邊緣服務(wù)器ESP, 503是發(fā)布端。虛線是和發(fā)布端503的連接,實(shí)線是ESP之間的連接。這種網(wǎng)狀拓?fù)?Mesh)可以保證內(nèi)容的可用性,另外,ESP優(yōu)先與同域的其他ESP互傳內(nèi)容分片,這樣可以盡可能的減少網(wǎng)間流量。根據(jù)本發(fā)明的多域內(nèi)容分發(fā)系統(tǒng),本發(fā)明還提供了一種多域內(nèi)容下載的方法, 如圖3所示,該方法包括以下步驟步驟21、用戶端通過內(nèi)容路由器獲取追蹤服務(wù)器的地址;步驟22、用戶端從追蹤服務(wù)器上獲得正在下載同一內(nèi)容的其他用戶下載端和邊 緣服務(wù)器的地址;步驟23、用戶端優(yōu)先從其他的下載端獲取數(shù)據(jù),在其他下載端無法獲取數(shù)據(jù)的 情況下,從邊緣服務(wù)器上獲取數(shù)據(jù);步驟24、下載數(shù)據(jù),并提供上傳,同時(shí)定時(shí)向追蹤服務(wù)器報(bào)告下載狀態(tài); 步驟25、數(shù)據(jù)下載完成,結(jié)束操作。本發(fā)明還提供了一種多域內(nèi)容搜索方法,如圖4所示,該方法包括以下步驟 步驟31、用戶端向所在域的內(nèi)容路由器提供搜索關(guān)鍵字; 步驟32、判斷內(nèi)容搜索的范圍,若搜索范圍為用戶端所在域,則執(zhí)行下一步, 若搜索范圍為全域,則執(zhí)行步驟34;步驟33、搜索本地內(nèi)容數(shù)據(jù)庫(kù),執(zhí)行步驟35;步驟34、通過內(nèi)容路由器向分布式Hash表做全域內(nèi)容搜索;步驟35、將搜索后的結(jié)果返回給用戶端。本發(fā)明的多域內(nèi)容分發(fā)系統(tǒng)除了上述功能外,還可實(shí)現(xiàn)對(duì)邊緣服務(wù)器上內(nèi)容的 容錯(cuò)存儲(chǔ),其具體實(shí)現(xiàn)步驟如下步驟41、發(fā)布端(通常是智能發(fā)布端)定時(shí)向內(nèi)容路由器詢問已經(jīng)發(fā)布過的內(nèi) 容是否在邊緣服務(wù)器上存在;步驟42、內(nèi)容路由器接收查詢請(qǐng)求后詢問邊緣服務(wù)器,若所要査詢的內(nèi)容保存 在邊緣服務(wù)器上,中斷操作,否則,執(zhí)行下一步;步驟43、所査詢的內(nèi)容未被保存在邊緣服務(wù)器上,內(nèi)容路由器通知發(fā)布端內(nèi)容 失效;步驟44、發(fā)布端重新開始多域內(nèi)容發(fā)布,若其他域的邊緣服務(wù)器上存在完整的 內(nèi)容副本,則失效域的邊緣服務(wù)器同時(shí)從所有其他域的ESP上獲取內(nèi)容。通過上述操作,可以充分利用邊緣服務(wù)器的帶寬,快速恢復(fù)邊緣服務(wù)器上丟失 的內(nèi)容,降低MTTR,提高系統(tǒng)可用率。在本發(fā)明的多域內(nèi)容分發(fā)系統(tǒng)中,內(nèi)容路由器是系統(tǒng)中各個(gè)域的核心,下面結(jié) 合上述說明中所提到的方法對(duì)內(nèi)容路由器的工作流程做進(jìn)一步的說明。在實(shí)現(xiàn)多域內(nèi)容發(fā)布時(shí),如圖7所示,內(nèi)容路由器首先驗(yàn)證發(fā)布端是否合法, 若合法,則接受發(fā)布端所提出的內(nèi)容發(fā)布請(qǐng)求,并為其分配邊緣服務(wù)器,邊緣服務(wù) 器從發(fā)布端接收所要發(fā)布的內(nèi)容,然后通知追蹤服務(wù)器有新內(nèi)容到達(dá),對(duì)新接收內(nèi) 容的描述信息插入本地內(nèi)容數(shù)據(jù)庫(kù)中,并將新內(nèi)容的描述信息發(fā)送到分布式Hash 表,然后通知發(fā)布端內(nèi)容發(fā)布成功;如果內(nèi)容路由器驗(yàn)證到發(fā)布端不合法,則拒絕 發(fā)布端所提出的內(nèi)容發(fā)布請(qǐng)求,結(jié)束操作。除了發(fā)布內(nèi)容外,發(fā)布端還可以通過內(nèi)容路由器刪除自身發(fā)布的內(nèi)容,如圖8 所示,對(duì)內(nèi)容刪除的具體實(shí)現(xiàn)步驟包括步驟61、內(nèi)容路由器驗(yàn)證發(fā)布端是否合法,若非法,執(zhí)行下一步,否則,執(zhí)行 步驟63;步驟62、拒絕發(fā)布端提出的請(qǐng)求,結(jié)束操作; 步驟63、接受發(fā)布端發(fā)出的內(nèi)容刪除請(qǐng)求;步驟64、從本地內(nèi)容數(shù)據(jù)庫(kù)中獲取與所要?jiǎng)h除內(nèi)容相關(guān)的內(nèi)容描述信息; 步驟65、在分布式Hash表刪除內(nèi)容描述信息;步驟66、在追蹤服務(wù)器上刪除相關(guān)的內(nèi)容;步驟67、在本地內(nèi)容數(shù)據(jù)庫(kù)中刪除內(nèi)容描述信息;步驟68、在邊緣服務(wù)器上刪除相關(guān)的內(nèi)容;步驟69、通知發(fā)布端內(nèi)容刪除成功。內(nèi)容發(fā)布端還可以向內(nèi)容路由器檢査某個(gè)內(nèi)容是否存在于多域內(nèi)容分發(fā)系統(tǒng) 中,如圖9所示,內(nèi)容路由器檢査多域內(nèi)容分發(fā)系統(tǒng)上的內(nèi)容的具體實(shí)現(xiàn)步驟包括:步驟71、內(nèi)容路由器驗(yàn)證發(fā)布端是否合法,若非法,執(zhí)行下一步,否則,執(zhí)行 步驟73、步驟72、拒絕請(qǐng)求,結(jié)束操作;步驟73、接受發(fā)布端發(fā)出的檢査內(nèi)容請(qǐng)求;步驟74、檢査本地內(nèi)容數(shù)據(jù)庫(kù)中的內(nèi)容是否存在;步驟75、檢査邊緣服務(wù)器上是否存在,若存在,結(jié)束操作,若不存在,可重新 發(fā)起發(fā)布流程,邊緣服務(wù)器可從其他域的邊緣服務(wù)器上獲得相應(yīng)的內(nèi)容。內(nèi)容路由器在實(shí)現(xiàn)內(nèi)容下載時(shí),如圖11所示,首先驗(yàn)證客戶端是否合法,若 合法,則接受下載請(qǐng)求,并通知追蹤服務(wù)器有新的客戶端到達(dá),客戶端通過追蹤服務(wù)器加入到下載的覆蓋網(wǎng)中,進(jìn)行內(nèi)容下載。最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管 參照實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對(duì)本發(fā)明 的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均 應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1. 一種基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng),包括邊緣服務(wù)器、內(nèi)容發(fā)布端、用戶端、認(rèn)證中心、追蹤服務(wù)器、智能發(fā)布端;其特征在于,還包括分布式Hash表和內(nèi)容路由器;其中,一個(gè)域按照ISP的自治系統(tǒng)進(jìn)行劃分,在一個(gè)域中包括有一個(gè)內(nèi)容路由器、一個(gè)追蹤服務(wù)器和至少一個(gè)邊緣服務(wù)器,所述的邊緣服務(wù)器、認(rèn)證中心、追蹤服務(wù)器都分別與所述的內(nèi)容路由器相連,所述的用戶端、內(nèi)容發(fā)布端和智能發(fā)布端與所述的邊緣服務(wù)器直接或間接相連,不同域間的內(nèi)容路由器通過所述的分布式Hash表連接,不同域間的邊緣服務(wù)器之間相連。
2、 根據(jù)權(quán)利要求1所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng),其特征在于,所 述的分布式Hash表將各個(gè)域的內(nèi)容路由器聯(lián)系起來形成一個(gè)覆蓋網(wǎng)絡(luò),提供全局 內(nèi)容的索引,并為所述的內(nèi)容路由器提供基于多關(guān)鍵字索引的査詢。
3、 根據(jù)權(quán)利要求1所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng),其特征在于,所 述的內(nèi)容路由器負(fù)責(zé)管理本域中的邊緣服務(wù)器,協(xié)調(diào)所述多域內(nèi)容分發(fā)系統(tǒng)中的其 他模塊為智能發(fā)布端提供內(nèi)容發(fā)布功能,并為用戶提供內(nèi)容搜索和下載功能。
4、 一種在權(quán)利要求1所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)上實(shí)現(xiàn)的多域內(nèi) 容發(fā)布方法,按以下步驟順序執(zhí)行步驟11)、發(fā)布端向本域的內(nèi)容路由器査詢其他域的內(nèi)容路由器的地址; 步驟12)、本域的內(nèi)容路由器向分布式Hash表發(fā)出査詢請(qǐng)求,并得到查詢結(jié)果; 步驟13)、內(nèi)容路由器將査詢得到的各個(gè)域的內(nèi)容路由器地址信息返回給發(fā)布端;步驟14)、發(fā)布端根據(jù)得到的各個(gè)域的內(nèi)容路由器地址向所有的內(nèi)容路由器査 詢其所在域的邊緣服務(wù)器的地址;步驟15)、將所得到的邊緣服務(wù)器的地址通告每一個(gè)邊緣服務(wù)器;步驟16)、邊緣服務(wù)器與發(fā)布端互傳內(nèi)容分片;在互傳內(nèi)容分片時(shí)采用點(diǎn)對(duì)點(diǎn) 內(nèi)容分片互傳法;步驟17)、所有的邊緣服務(wù)器都擁有完整的副本;步驟18)、所述的內(nèi)容路由器通告發(fā)布端本域的內(nèi)容發(fā)布完成,將內(nèi)容描述信 息存入到本地的內(nèi)容數(shù)據(jù)庫(kù)中,并將該內(nèi)容描述信息向所述的分布式Hash表發(fā)布。
5、 一種在權(quán)利要求1所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)上實(shí)現(xiàn)的多域內(nèi)容下載方法,按以下步驟順序執(zhí)行步驟21)、所述的用戶端通過內(nèi)容路由器獲取所述追蹤服務(wù)器的地址;步驟22)、所述用戶端從追蹤服務(wù)器上獲得正在下載同一內(nèi)容的其他用戶下載端和邊緣服務(wù)器的地址;步驟23)、用戶端優(yōu)先從其他的下載端獲取數(shù)據(jù),在其他下載端無法獲取數(shù)據(jù) 的情況下,從邊緣服務(wù)器上獲取數(shù)據(jù);步驟24)、下載數(shù)據(jù),并提供上傳,同時(shí)定時(shí)向追蹤服務(wù)器報(bào)告下載狀態(tài);步驟25)、數(shù)據(jù)下載完成,結(jié)束操作。
6、 一種在權(quán)利要求1所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)上實(shí)現(xiàn)的多域內(nèi) 容搜索方法,按以下步驟順序執(zhí)行步驟31)、用戶端向所在域的內(nèi)容路由器提供搜索關(guān)鍵字;步驟32)、判斷內(nèi)容搜索的范圍,若搜索范圍為用戶端所在域,則執(zhí)行下一步, 若搜索范圍為全域,則執(zhí)行步驟34);步驟33)、搜索本地內(nèi)容數(shù)據(jù)庫(kù),執(zhí)行步驟35);步驟34)、通過內(nèi)容路由器向分布式Hash表做全域內(nèi)容搜索;步驟35)、將搜索后的結(jié)果返回給用戶端。
7、 一種在權(quán)利要求1所述的基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng)上實(shí)現(xiàn)的對(duì)邊緣 服務(wù)器上的內(nèi)容作容錯(cuò)存儲(chǔ)的方法,按以下步驟順序執(zhí)行步驟41)、發(fā)布端定時(shí)向內(nèi)容路由器詢問已經(jīng)發(fā)布過的內(nèi)容是否在邊緣服務(wù)器 上存在;步驟42)、內(nèi)容路由器接收査詢請(qǐng)求后詢問邊緣服務(wù)器,若所要查詢的內(nèi)容保 存在邊緣服務(wù)器上,中斷操作,否則,執(zhí)行下一步;步驟43)、所査詢的內(nèi)容未被保存在邊緣服務(wù)器上,內(nèi)容路由器通知發(fā)布端內(nèi) 容失效;步驟44)、發(fā)布端重新開始多域內(nèi)容發(fā)布,若其他域的邊緣服務(wù)器上存在完整 的內(nèi)容副本,則失效域的邊緣服務(wù)器同時(shí)從所有其他域的邊緣服務(wù)器上獲取內(nèi)容。
全文摘要
本發(fā)明公開了一種基于P2P技術(shù)的多域內(nèi)容分發(fā)系統(tǒng),包括邊緣服務(wù)器、內(nèi)容發(fā)布端、用戶端、認(rèn)證中心、追蹤服務(wù)器、智能發(fā)布端;還包括分布式Hash表和內(nèi)容路由器;其中,一個(gè)域按照ISP的自治系統(tǒng)進(jìn)行劃分,在一個(gè)域中包括有一個(gè)內(nèi)容路由器、一個(gè)追蹤服務(wù)器和至少一個(gè)邊緣服務(wù)器,所述的邊緣服務(wù)器、認(rèn)證中心、追蹤服務(wù)器都分別與所述的內(nèi)容路由器相連,所述的用戶端、內(nèi)容發(fā)布端和智能發(fā)布端與所述的邊緣服務(wù)器直接或間接相連,不同域間的內(nèi)容路由器通過所述的分布式Hash表連接,同時(shí)也要連接認(rèn)證中心,不同域間的邊緣服務(wù)器之間相連。
文檔編號(hào)H04L12/54GK101257396SQ20071006415
公開日2008年9月3日 申請(qǐng)日期2007年3月2日 優(yōu)先權(quán)日2007年3月2日
發(fā)明者旭 周, 暉 唐, 鼎 唐, 濤 林, 譚紅艷, 趙志軍 申請(qǐng)人:中國(guó)科學(xué)院聲學(xué)研究所