專利名稱:基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于P2P流媒體傳輸技術(shù)領(lǐng)域。
技術(shù)背景利用互聯(lián)網(wǎng)進行大規(guī)模多媒體服務和文件數(shù)據(jù)下載時,常遇到兩方面問題1、 對于提供大數(shù)據(jù)流量服務的網(wǎng)站,例如視頻博客網(wǎng)站、在線電影網(wǎng)站、文件下載網(wǎng)站 等等,由于這些數(shù)據(jù)具有文件尺寸大、碼率大的特點,當數(shù)量巨大的用戶同時訪問時,服務 器將承受巨大的性能壓力和帶寬瓶頸壓力,由此直接造成網(wǎng)站的運營成本大幅提高。2、 由于中國幅員遼闊,地域跨度很大,同一個網(wǎng)站的用戶分布在全國各地,同時網(wǎng)絡硬 件設施隨著地域的不同呈現(xiàn)極大的地域差異性,城域網(wǎng)之間存在帶寬瓶頸。由于這兩方面原 因,造成地域上遠離網(wǎng)站的用戶訪問網(wǎng)站時,速度較慢,訪問效果不佳,用戶滿意度較低。盡管P2P (Point to Point,也就是點對點傳輸)流媒體技術(shù)的出現(xiàn),例如PPStream等 軟件,使得實況流媒體類型的應用,例如網(wǎng)絡電視直播服務,能夠以低廉的成本在互聯(lián)網(wǎng)運 營,但是,視頻點播(V0D)、視頻播客、視頻廣告業(yè)務卻依然受技術(shù)和成本的限制,難以在 互聯(lián)網(wǎng)大規(guī)模展開運用。以著名的P2P流媒體軟件一CoolStreaming/DONet實況流媒體分發(fā)系統(tǒng)構(gòu)架為例,現(xiàn)有的 PPStream、 PPUve等流媒體軟件均基于該系統(tǒng)構(gòu)架。其系統(tǒng)構(gòu)架拓撲結(jié)構(gòu)如圖1所示,圖中 A表示流媒體服務器,其他B H表示試圖從流媒體服務器A獲得數(shù)據(jù)的用戶終端(如電腦、 機頂盒等)。在該構(gòu)架中,每一個試圖從流媒體服務器A獲得流媒體數(shù)據(jù)的用戶終端之間會相 互交換數(shù)據(jù),因此流媒體播放的數(shù)據(jù)并不一定都是從流媒體服務器A中直接獲得。例如用戶 終端E,它直接從用戶終端F、 B、 H獲得數(shù)據(jù),而不是直接從流媒體服務器A獲得數(shù)據(jù)。流媒 體服務器F、 B、 H三個用戶終端被稱為E的伙伴節(jié)點。該系統(tǒng)構(gòu)架下的各個用戶終端相互之 間的連接拓樸結(jié)構(gòu)及數(shù)據(jù)互通的方法簡要描述如下1. 每一用戶終端的內(nèi)存中存儲中一定時間長度的流媒體數(shù)據(jù),隨著播放的進行,這些數(shù) 據(jù)存儲一段時間后,被新到來的數(shù)據(jù)所代替;2. 對媒體數(shù)據(jù)進行分段打包,并給予每一個數(shù)據(jù)塊一個遞增的索引值;3. 每一用戶終端用一定的數(shù)據(jù)結(jié)構(gòu)(Buffer Map)來標示內(nèi)存中存儲了哪些索引值所對 應的數(shù)據(jù)塊; 4. 相連用戶終端之間定時相互交換Buffer M即,因此相互知道對方擁有哪些索引對應的據(jù);5. 相連用戶終端之間定時進行帶寬測量,獲得端到端帶寬值;6. 用戶終端根據(jù)本機播放所需的數(shù)據(jù)索引號,以及與它相連的用戶終端擁有的數(shù)據(jù)情 況,從中找出端到端帶寬最大的用戶終端,發(fā)起數(shù)據(jù)索取請求,要求對方機器將該索引號對 應的數(shù)據(jù)發(fā)送給本機。該系統(tǒng)構(gòu)架及其方法存在如下問題和缺陷1、 該構(gòu)架方法主要是針對諸如IPTV這種播放時間趨向于無限長的視頻節(jié)目而設計。該 方法構(gòu)架在降低服務器壓力,提高用戶觀看質(zhì)量方面的優(yōu)勢,在視頻點播(V0D)應用上很難 發(fā)揮。造成該構(gòu)架不能高效地用于視頻點播(V0D)的原因在于1)該構(gòu)架和方法的正常工作建立在這樣一個事實基礎(chǔ)上,即每一用戶終端的流媒體節(jié)目播放進度是接近的,例如,當一用戶終端播放進度為19:50時,他的伙伴用戶終端的播放進 度是19:51。而一般來說, 一用戶終端內(nèi)存中可以緩存3 5分鐘時間長度的數(shù)據(jù),因此兩個 用戶終端可以相互交換數(shù)據(jù),滿足播放的需要。但是,對于視頻點播(V0D)而言,每一用戶 終端的播放進度很可能完全不一樣,對于一部片長為兩小時的電影,不同用戶的播放進度按 概率均勻的分布在不同的時間進度,然而,存儲在內(nèi)存中可以用于相互交換的數(shù)據(jù)窗口只有 3 5鐘左右,因此,觀看同一節(jié)目的用戶中,只有很小一部分能夠相互交換數(shù)據(jù)。如果這些 用戶之間距離較大,或處于不同網(wǎng)絡運營商,它們之間數(shù)據(jù)交換的效果會變得非常差,從而 不得不直接從網(wǎng)站服務器直接獲得數(shù)據(jù)。在這樣的情況下,將造成用戶滿意度低下和網(wǎng)站服 務器壓力過大的現(xiàn)象。2、 該構(gòu)架方法中,沒有給出讓新加入播放網(wǎng)絡的一用戶終端高效快速尋找最合適伙伴節(jié) 點的具體方案。而對于一個全國性的網(wǎng)絡,由于地理位置相去甚遠,并且屬于多個不同的網(wǎng) 絡運營商,當一用戶終端選取進行數(shù)據(jù)交換的用戶終端相距甚遠或者處于不同運營商的網(wǎng)絡, 那么它們之間進行數(shù)據(jù)交換的效率和效果就會急劇下降。發(fā)明內(nèi)容本發(fā)明的目的在于提出新的P2P流媒體傳輸方法,其基于區(qū)域數(shù)據(jù)環(huán)存的方案,以解決 現(xiàn)有P2P流媒體傳輸方法中,用戶訪問網(wǎng)站進行視頻點播時,速度較慢、訪問效果不佳的技 術(shù)問題。 為達上述目的,本發(fā)明采用如下技術(shù)方案一種基于區(qū)域數(shù)據(jù)環(huán)存的流媒體數(shù)據(jù)分發(fā)方法,包括通過網(wǎng)絡互聯(lián)的系統(tǒng)管理服務器、 多個用戶終端、流媒體服務器,所述用戶終端分為首領(lǐng)用戶終端(以下簡稱"環(huán)首領(lǐng)")和成 員用戶終端(以下簡稱"環(huán)成員"),建立由至少一個環(huán)首領(lǐng)和多個環(huán)成員組成的數(shù)據(jù)環(huán),所 述系統(tǒng)管理服務器中存儲有環(huán)首領(lǐng)信息,新加入的用戶終端從該數(shù)據(jù)環(huán)中獲取流媒體數(shù)據(jù), 完整的所述數(shù)據(jù)環(huán)為至少滿足以下條件的用戶終端的集合a) 維護同一個流媒體數(shù)據(jù);b) 存儲于環(huán)成員中的配額數(shù)據(jù)的并集構(gòu)成該同一個流媒體數(shù)據(jù)的全部數(shù)據(jù);c) 所有環(huán)成員至少有一相同的用于管理所述環(huán)成員的環(huán)首領(lǐng);d )每一環(huán)成員至少存儲有包括自己在內(nèi)的所有環(huán)成員的地址信息。 其中,所述數(shù)據(jù)環(huán)的建立具體包括以下步驟-1) 當某一流媒體數(shù)據(jù)首次被用戶終端點播時,由系統(tǒng)管理服務器指定該用戶終端為環(huán)首 領(lǐng),該用戶終端直接從流媒體服務器中獲取點播的視頻節(jié)目數(shù)據(jù);2) 當某一流媒體數(shù)據(jù)被新加入的用戶終端再次點播時,該用戶終端加入維護該視頻節(jié)目 的某一數(shù)據(jù)環(huán)中;由該數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)為其分配流媒體節(jié)目配額數(shù)據(jù),當該數(shù)據(jù)環(huán) 中沒有點播的視頻節(jié)目數(shù)據(jù)時,從流媒體服務器中獲取點播的視頻節(jié)目數(shù)據(jù)。其中,所述流媒體數(shù)據(jù)在所述環(huán)成員存儲的方法包括以下步驟(1) 判斷新加入的用戶終端是否已經(jīng)維護有其點播的視頻節(jié)目配額數(shù)據(jù),如果是,則進 入步驟(2),否則轉(zhuǎn)步驟(3);(2) 判斷其加入的數(shù)據(jù)環(huán)的環(huán)成員中是否己經(jīng)維護有相同的配額數(shù)據(jù),如果沒有則轉(zhuǎn)步 驟(4),否則轉(zhuǎn)步驟(5);(3) 由所述環(huán)首領(lǐng)分配數(shù)據(jù)環(huán)中存儲重復次數(shù)最少的配額數(shù)據(jù)給該新加入用戶終端;(4) 繼續(xù)維護該配額數(shù)據(jù);(5) 判斷該數(shù)據(jù)環(huán)中是否有未分配的配額數(shù)據(jù),如果沒有,則進入步驟(6),否則轉(zhuǎn)步 驟(7);(6) 該數(shù)據(jù)環(huán)中的該配額數(shù)據(jù)的存儲次數(shù)加1,判斷其結(jié)果是否超過分配次數(shù)閾值,如 果是,則進入步驟(7),如果否,則轉(zhuǎn)步驟(4);(7) 刪除該用戶終端中己存儲的配額數(shù)據(jù),轉(zhuǎn)步驟(3)。其中,當某一數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)退出時,還包括一環(huán)首領(lǐng)推舉步驟由該數(shù)據(jù)環(huán)中的環(huán) 成員向某一正在加入該數(shù)據(jù)環(huán)的用戶終端或該數(shù)據(jù)環(huán)中的某一環(huán)成員發(fā)出環(huán)首領(lǐng)推舉信令, 被推薦的用戶終端收到超過某一比例閾值的推舉信令時,則確認其為該數(shù)據(jù)環(huán)的環(huán)首領(lǐng),更 新系統(tǒng)管理服務器中環(huán)首領(lǐng)信息,否則,向該數(shù)據(jù)環(huán)中的其它環(huán)成員或其它正在加入的用戶 終端重新發(fā)出環(huán)首領(lǐng)推舉信令;或者直接解散該數(shù)據(jù)環(huán),該數(shù)據(jù)環(huán)中的環(huán)成員或正在加入的 用戶終端重新登錄。其中,當某一數(shù)據(jù)環(huán)中的環(huán)成員退出時,環(huán)中其余成員更新該數(shù)據(jù)環(huán)中環(huán)成員和環(huán)首領(lǐng) 的信息。其中,當某一數(shù)據(jù)環(huán)中存儲的流媒體數(shù)據(jù)的冗余度大于某一閾值時,還包括一數(shù)據(jù)環(huán)分 裂步驟由該數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)選擇需分裂出的環(huán)成員,該分裂出的環(huán)成員存儲的配額數(shù)據(jù) 構(gòu)成該流媒體數(shù)據(jù)的全部數(shù)據(jù),并由該環(huán)首領(lǐng)指定或者由分裂出的環(huán)成員推舉一新的環(huán)首領(lǐng)。作為本發(fā)明的一種改進,所述系統(tǒng)管理服務器中存儲有地域和/或運營商信息,所述數(shù)據(jù) 環(huán)根據(jù)地域和/或運營商建立,當新加入用戶終端加入某一數(shù)據(jù)環(huán)之前還包括一地域和/或運 營商信息判定步驟,系統(tǒng)管理服務器判定新加入用戶終端所屬的地域和/或運營商,并將其加 入對應的數(shù)據(jù)環(huán)中。作為本發(fā)明的又一改進,還包括一數(shù)據(jù)環(huán)加入選擇步驟,用戶終端測試其與由系統(tǒng)管理 服務器提供的對應數(shù)據(jù)環(huán)環(huán)首領(lǐng)的連接速度,選擇加入與其連接速度較快或最快的環(huán)首領(lǐng)對 應的數(shù)據(jù)環(huán)。作為本發(fā)明的再一改進,還包括一定時器設定步驟,當環(huán)首領(lǐng)推舉步驟超時時,該數(shù)據(jù) 環(huán)中的環(huán)成員向該數(shù)據(jù)環(huán)中的其它環(huán)成員或其它正在加入的用戶終端重新發(fā)出環(huán)首領(lǐng)推舉信 令;或者直接解散該數(shù)據(jù)環(huán),該數(shù)據(jù)環(huán)中的環(huán)成員或正在加入的用戶終端將重新登錄。其中,所述環(huán)成員中的配額數(shù)據(jù)大小可以相等也可以不相等,本發(fā)明優(yōu)選相等的方式。 本發(fā)明具有以下優(yōu)點1、 以節(jié)目數(shù)據(jù)完整性、地理位置及連接速度等作為組織用戶終端和維護拓撲結(jié)構(gòu)的標準。 當一個用戶終端要觀看某個節(jié)目時,通過系統(tǒng)管理服務器,可以方便的找到距離它最近的數(shù) 據(jù)環(huán),同時由于數(shù)據(jù)環(huán)中維護了節(jié)目的所有數(shù)據(jù),這個用戶終端不再需要繼續(xù)在網(wǎng)絡中尋找 它播放需要的節(jié)目數(shù)據(jù)。2、 由數(shù)據(jù)環(huán)中的環(huán)成員及環(huán)首領(lǐng)維護節(jié)目數(shù)據(jù),當用戶不再觀看該節(jié)目時,它依然可以 為其他用戶提供數(shù)據(jù),從而保障了一個數(shù)據(jù)環(huán)生存周期的持久性。保證了其他用戶終端播放 的流暢性;3、 能夠十分方便地實現(xiàn)視頻點播應用中對播放位置任意指定的功能。由于一個用戶終端 從一個保存了所有數(shù)據(jù)的數(shù)據(jù)環(huán)獲取數(shù)據(jù),當用戶對播放位置進行改變時,它只需要在這個
數(shù)據(jù)環(huán)中的某個環(huán)成員中獲取新數(shù)據(jù),而不需要向全網(wǎng)絡去重新搜索,從而保證播放位置切 換能夠迅速完成。4、 降低了流媒體服務器和系統(tǒng)管理服務器在出口帶寬及其性能上的要求。由于系統(tǒng)中大 量的數(shù)據(jù)環(huán)實際上充當了處于網(wǎng)絡邊緣的鏡像流媒體服務器的職能,用戶只需要找到距離它 最近的數(shù)據(jù)環(huán),就能以最快速度獲得數(shù)據(jù)。如果用戶任意改變了播放進度和位置,用戶終端 也不需要直接和系統(tǒng)管理服務器和流媒體服務器交互數(shù)據(jù)。只有一個節(jié)目最開始創(chuàng)建的幾個 數(shù)據(jù)環(huán)的環(huán)成員需要直接從流媒體服務器獲得配額數(shù)據(jù),而此后的數(shù)據(jù)傳輸主要發(fā)生在環(huán)成 員之間,因此流媒體服務器的壓力極小,所需要的帶寬也非常小。系統(tǒng)管理服務器只和環(huán)環(huán) 首領(lǐng)進行一些數(shù)據(jù)量極小的消息傳遞,因此,其帶寬和性能要求也是極低的。5、 有效防止了不同網(wǎng)絡運營商之間帶寬瓶頸給流媒體服務造成的不良影響。由于中國互 聯(lián)網(wǎng)不同運營商,例如電信和網(wǎng)通,網(wǎng)絡互通性很差,互通帶寬很窄,以此,處于不同運營 商網(wǎng)絡的用戶之間的數(shù)據(jù)互通存在極大的速度瓶頸。本發(fā)明中的數(shù)據(jù)環(huán)可以是根據(jù)地域和網(wǎng) 絡運營商信息進行劃分和組織,而且數(shù)據(jù)環(huán)的多次分裂使得距離相近的用戶終端組建聚集在 一起,因此避免了處于不同運營商的用戶終端之間交互數(shù)據(jù),從而避開了瓶頸。消除城域網(wǎng) 之間大流量數(shù)據(jù)傳輸瓶頸,使得遠離流媒體服務器的用戶終端也能夠得到良好的播放效果。 此外,由于中國地域遼闊,而流媒體服務器往往只放在一個或幾個城市,因此距離遙遠的城 市將由于城域網(wǎng)之間帶寬的瓶頸,造成播放不流暢的情況。本發(fā)明中,用戶不需要從距離遙 遠的流媒體服務器獲得數(shù)據(jù),而是可以從距離相對較近的城市中的數(shù)據(jù)環(huán)獲得數(shù)據(jù),并逐漸 在自己所在地區(qū)建立起數(shù)據(jù)環(huán)供本地用戶獲取數(shù)據(jù)。因此,緩解了城域網(wǎng)之間的瓶頸問題。
圖1為現(xiàn)有P2P流媒體軟件CoolStreaming/DONet流媒體分發(fā)系統(tǒng)構(gòu)架結(jié)構(gòu)示意圖; 圖2為基于區(qū)域數(shù)據(jù)環(huán)存的流媒體數(shù)據(jù)分發(fā)系統(tǒng)的數(shù)據(jù)傳輸結(jié)構(gòu)示意圖; 圖3為時窗數(shù)據(jù)結(jié)構(gòu)示意圖。
具體實施方式
一種基于區(qū)域數(shù)據(jù)環(huán)存的流媒體數(shù)據(jù)分發(fā)方法,包括通過網(wǎng)絡互聯(lián)的系統(tǒng)管理服務器、 多個用戶終端、流媒體服務器,所述用戶終端分為首領(lǐng)用戶終端(簡稱"環(huán)首領(lǐng)")和成員用 戶終端(簡稱"環(huán)成員"),建立由至少一個環(huán)首領(lǐng)和多個環(huán)成員組成的數(shù)據(jù)環(huán),所述系統(tǒng)管 理服務器中存儲有環(huán)首領(lǐng)信息,新加入的用戶終端從該數(shù)據(jù)環(huán)中獲取流媒體數(shù)據(jù),其結(jié)構(gòu)如 圖2所示。完整的所述數(shù)據(jù)環(huán)為至少滿足以下條件的用戶終端的集合a) 維護同一個流媒體數(shù)據(jù);b) 存儲于環(huán)成員中的配額數(shù)據(jù)的并集構(gòu)成該同一個流媒體數(shù)據(jù)的全部數(shù)據(jù);c) 所有環(huán)成員至少有一相同的用于管理所述環(huán)成員的環(huán)首領(lǐng);d) 每一環(huán)成員至少存儲有包括自己在內(nèi)的所有環(huán)成員的地址信息。 本實施例中,系統(tǒng)各個組成部分詳細說明如下一、 系統(tǒng)管理服務器(,自ai/附她婦w ,簡稱sfl)。a) 保存各個節(jié)目中的數(shù)據(jù)環(huán)環(huán)首領(lǐng)的信息,包括^地址和W。b) 用戶終端向幼登錄時,M根據(jù)用戶終端的^地址確定其地域,然后發(fā)回同一區(qū)域內(nèi)關(guān)注相同節(jié)目的數(shù)個環(huán)環(huán)首領(lǐng)的信息。例如,如果用戶終端的/p地址為 210.22.105.174,其代表上海網(wǎng)通,系統(tǒng)管理服務器發(fā)回該區(qū)域內(nèi)維護相同節(jié)目的數(shù) 個環(huán)的環(huán)首領(lǐng)信息。二、 流媒體服務器(膨c/z'aserwr ,簡稱wm):為用戶終端提供媒體數(shù)據(jù)。當用戶終端向流媒體服務器發(fā)出索取節(jié)目號為pW節(jié)目中編號為i'mfec的配額數(shù)據(jù)的要求時,返回對應的數(shù)據(jù)。 三、用戶終端(em/騰r ,簡稱ew ):a) 當用戶終端播放節(jié)目時,從流媒體服務器和數(shù)據(jù)環(huán)中環(huán)成員獲得數(shù)據(jù)進行播放。b) 每個用戶終端存儲并維護一個或幾個節(jié)目的配額數(shù)據(jù),加入對應節(jié)目的數(shù)據(jù)環(huán),充當 其環(huán)成員或環(huán)首領(lǐng),為其他用戶提供數(shù)據(jù)下載或數(shù)據(jù)下載調(diào)度。1、環(huán)成員U^p她訕")構(gòu)成某一環(huán)的用戶終端。環(huán)成員具備以下功能1) 保存環(huán)中其他環(huán)成員的*地址、zW、配額數(shù)據(jù)信息和繼承權(quán)排名;2) 下載由環(huán)首領(lǐng)指定的配額數(shù)據(jù),并為環(huán)中其他環(huán)成員提供數(shù)據(jù)下載服務。 其主要屬性包括-a) W, ew標識符,全系統(tǒng)唯一;b) ew的網(wǎng)絡地址,包括ip地址和監(jiān)聽端口號; c) pa^, w本地存儲配額數(shù)據(jù)的磁盤路徑;d) W尸,W能夠同時維護的節(jié)目數(shù)上限;e) 尸/AS:^0^,; W3,,…,pi《",w維護節(jié)目的集合;f) L//S:{Z//1,ZJ/2,...,i:// p}, ew本地存儲的各節(jié)目對應的環(huán)環(huán)首領(lǐng)集合;g) Zif, = ,/~《2"."/、《一 } , e"本地維護的節(jié)目的環(huán)環(huán)首領(lǐng)集合;h) iZ/麵W, ew所處的地域號;i) ^W, e"維護的配額數(shù)據(jù)的描述信息;j) g/)Z),環(huán)中其它環(huán)成員維護的配額數(shù)據(jù)的描述信息集合; k)M4S,環(huán)中環(huán)成員地址信息集合。2、環(huán)首領(lǐng)(丄oc^Zec^w):環(huán)中負責環(huán)的管理功能的用戶終端。環(huán)首領(lǐng)具備以下功能1) 管理環(huán)的建立、分裂等行為,不向其他環(huán)成員提供數(shù)據(jù)下載;2) 盡力保持環(huán)中的數(shù)據(jù)完整性;3) 為新加入環(huán)的環(huán)成員指定配額數(shù)據(jù),并記錄環(huán)中每個環(huán)成員的配額數(shù)據(jù)情況;4) 在新用戶終端加入時,將環(huán)中已有環(huán)成員的^地址、/J、配額數(shù)據(jù)信息等發(fā)送給新環(huán)成員。并且將新環(huán)成員的ip地址、!W、配額數(shù)據(jù)信息等發(fā)送給環(huán)中所有己有環(huán)成員;5) 當環(huán)中的環(huán)成員退出時,向環(huán)中其他用戶通知該環(huán)成員的退出事件;6) 在一定時間間隔內(nèi)向^發(fā)送保持活躍信號,向^說明本環(huán)依然存在。配額數(shù)據(jù)(Q"otoltoa):將一個多媒體節(jié)目對應的大文件,分為W份配額數(shù)據(jù),每--份大小相等,用戶終端加入環(huán)時,環(huán)首領(lǐng)會為用戶終端指定配額數(shù)據(jù)。環(huán)成員根據(jù)環(huán)首領(lǐng)的指 令在本地硬盤中存儲配額數(shù)據(jù)。時窗數(shù)據(jù)(7V/w附"必wZ)ato):當用戶終端正在播放節(jié)目時,處于播放進度點附近的一 段數(shù)據(jù),如圖3所示。該數(shù)據(jù)主要從數(shù)據(jù)環(huán)中的環(huán)成員中獲得,并隨著播放進度不斷更新。 時窗數(shù)據(jù)存儲在該用戶終端的內(nèi)存之中,數(shù)據(jù)的多少由時窗的寬度決定。其中,所述數(shù)據(jù)環(huán)的建立具體包括以下步驟1)當某一流媒體數(shù)據(jù)首次被用戶終端點播時,由系統(tǒng)管理服務器指定該用戶終端為環(huán)首 領(lǐng),該用戶終端直接從流媒體服務器中獲取點播的視頻節(jié)目數(shù)據(jù);
2)當某一流媒體數(shù)據(jù)被新加入的用戶終端再次點播時,該用戶終端加入維護該視頻節(jié)目 的某一數(shù)據(jù)環(huán)中;由該數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)為其分配流媒體節(jié)目配額數(shù)據(jù),當該數(shù)據(jù)環(huán)中沒有 點播的視頻節(jié)目數(shù)據(jù)時,從流媒體服務器中獲取點播的視頻節(jié)目數(shù)據(jù)。其中,所述流媒體數(shù)據(jù)在所述環(huán)成員存儲的方法包括以下步驟(1) 判斷新加入的用戶終端是否已經(jīng)維護有其點播的視頻節(jié)目配額數(shù)據(jù),如果是,則進 入步驟(2),否則轉(zhuǎn)步驟(3);(2) 判斷其加入的數(shù)據(jù)環(huán)的環(huán)成員中是否已經(jīng)維護有相同的配額數(shù)據(jù),如果沒有則轉(zhuǎn)步 驟(4),否則轉(zhuǎn)步驟(5);(3) 由所述環(huán)首領(lǐng)分配數(shù)據(jù)環(huán)中存儲重復次數(shù)最少的配額數(shù)據(jù)給該新加入用戶終端;(4) 繼續(xù)維護該配額數(shù)據(jù);(5) 判斷該數(shù)據(jù)環(huán)中是否有未分配的配額數(shù)據(jù),如果沒有,則進入步驟(6),否則轉(zhuǎn)步 驟(7);(6) 該數(shù)據(jù)環(huán)中的該配額數(shù)據(jù)的存儲次數(shù)加1,判斷其結(jié)果是否超過分配次數(shù)閾值,如 果是,則進入步驟(7),如果否,則轉(zhuǎn)步驟(4);(7) 刪除該用戶終端中己存儲的配額數(shù)據(jù),轉(zhuǎn)步驟(3)。其中,當某一數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)退出時,還包括一環(huán)首領(lǐng)推舉步驟由該數(shù)據(jù)環(huán)中的環(huán) 成員向某一正在加入該數(shù)據(jù)環(huán)的用戶終端或該數(shù)據(jù)環(huán)中的某一環(huán)成員發(fā)出環(huán)首領(lǐng)推舉信令, 被推薦的用戶終端收到超過某一比例閾值的推舉信令時,則確認其為該數(shù)據(jù)環(huán)的環(huán)首領(lǐng),更 新系統(tǒng)管理服務器中環(huán)首領(lǐng)信息,否則,向該數(shù)據(jù)環(huán)中的其它環(huán)成員或其它正在加入的用戶 終端重新發(fā)出環(huán)首領(lǐng)推舉信令;或者直接解散該數(shù)據(jù)環(huán),該數(shù)據(jù)環(huán)中的環(huán)成員或正在加入的 用戶終端重新登錄。推舉過程中可以用戶終端的/"大小為依據(jù)進行推舉,例如,推舉用戶終 端中的W最大或最小的為首領(lǐng)。其中,當某一數(shù)據(jù)環(huán)中的環(huán)成員退出時,更新該數(shù)據(jù)環(huán)中環(huán)成員和環(huán)首領(lǐng)的信息。 其中,當某一數(shù)據(jù)環(huán)中存儲的流媒體數(shù)據(jù)的冗余度大于某一閾值時,還包括一數(shù)據(jù)環(huán)分 裂步驟由該數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)選擇需分裂出的環(huán)成員,該分裂出的環(huán)成員存儲的配額數(shù)據(jù) 構(gòu)成該流媒體數(shù)據(jù)的全部數(shù)據(jù),并由該環(huán)首領(lǐng)指定或者由分裂出的環(huán)成員推舉一新的環(huán)首領(lǐng)。 其中,所述系統(tǒng)管理服務器中存儲有地域和/或運營商信息,所述數(shù)據(jù)環(huán)根據(jù)地域和/或 運營商建立,當新加入用戶終端加入某一數(shù)據(jù)環(huán)之前還包括一地域和/或運營商信息判定步 驟,系統(tǒng)管理服務器判定新加入用戶終端所屬的地域和/或運營商,并將其加入對應的數(shù)據(jù)環(huán) 中。 其中,還包括一數(shù)據(jù)環(huán)加入選擇步驟,用戶終端測試其與由系統(tǒng)管理服務器提供的對應 數(shù)據(jù)環(huán)環(huán)首領(lǐng)的連接速度,選擇加入與其連接速度較快或最快的環(huán)首領(lǐng)對應的數(shù)據(jù)環(huán)。這樣 可以保證數(shù)據(jù)環(huán)中的用戶終端相互之間網(wǎng)絡連接速度較快,端到端帶寬較大。其中,還包括一定時器設定步驟,當環(huán)首領(lǐng)推舉步驟超時時,該數(shù)據(jù)環(huán)中的環(huán)成員向該 數(shù)據(jù)環(huán)中的其它環(huán)成員或其它正在加入的用戶終端重新發(fā)出環(huán)首領(lǐng)推舉信令;或者直接解散 該數(shù)據(jù)環(huán),該數(shù)據(jù)環(huán)中的環(huán)成員或正在加入的用戶終端將重新登錄。本實施例可采用以下兩種方式編程方式實現(xiàn)一、 網(wǎng)頁控件型 用戶終端分為兩部分組成-1) 可以嵌入網(wǎng)頁ActiveX控件用戶通過訪問網(wǎng)頁,由網(wǎng)頁激活ActiveX控件。 一方面ActiveX控件提供用戶觀看節(jié)目 的窗口和控制節(jié)目播放的按鈕,另一方面ActiveX與后臺應用程序進行交互,傳送數(shù)據(jù)和控 制信息。2) 后臺程序后臺程序當用戶啟動電腦時隨即啟動,并工作在后臺。后臺程序負責直接與系統(tǒng)管理服 務器、流媒體服務器和其他用戶終端進行數(shù)據(jù)通信,維護配額數(shù)據(jù)。后臺程序并不會因為 ActiveX控件的銷毀而停止工作,而是始終工作在后臺。但ActiveX可以將觀看節(jié)目的信令發(fā) 送給后臺程序,使得后臺程序維護的節(jié)目能夠為其它用戶終端服務。二、 應用程序型 用戶終端分為兩部分組成-1)可以獨立運行的流媒體播放機用戶訪問網(wǎng)頁,選擇要播放的節(jié)目,然后啟動流媒體播放機。 一方面流媒體播放機提供 用戶觀看節(jié)目的窗口和控制節(jié)目播放的按鈕,另一方面播放機與后臺應用程序進行交互,傳 送數(shù)據(jù)和控制信息。1)后臺程序其功能與網(wǎng)頁控件型中的后臺程序相同,在此省略對其的詳細說明。 以上所述的實施例僅為了說明本發(fā)明的技術(shù)思想及特點,其目的在使本領(lǐng)域的普通技術(shù) 人員能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,本專利的范圍并不僅局限于上述實施例,即凡依本 發(fā)明所揭示的精神所作的同等變化或修飾,例如將首領(lǐng)用戶終端或系統(tǒng)管理服務器及流媒體 服務器實現(xiàn)的部分或全部功能集中于一服務器中等等,這些仍涵蓋在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1、一種基于區(qū)域數(shù)據(jù)環(huán)存的流媒體數(shù)據(jù)分發(fā)方法,包括通過網(wǎng)絡互聯(lián)的系統(tǒng)管理服務器、多個用戶終端、流媒體服務器,所述用戶終端分為環(huán)首領(lǐng)和環(huán)成員,其特征在于建立由至少一個環(huán)首領(lǐng)和多個環(huán)成員組成的數(shù)據(jù)環(huán),所述系統(tǒng)管理服務器中存儲有環(huán)首領(lǐng)信息,新加入的用戶終端從該數(shù)據(jù)環(huán)中獲取流媒體數(shù)據(jù),完整的所述數(shù)據(jù)環(huán)為至少滿足以下條件的用戶終端的集合a)維護同一個流媒體數(shù)據(jù);b)存儲于環(huán)成員中的配額數(shù)據(jù)的并集構(gòu)成該同一個流媒體數(shù)據(jù)的全部數(shù)據(jù);c)所有環(huán)成員至少有一相同的用于管理所述環(huán)成員的的環(huán)首領(lǐng);d)每一環(huán)成員至少存儲有包括自己在內(nèi)的所有環(huán)成員的地址信息。
2、 根據(jù)權(quán)利要求l所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于所述 數(shù)據(jù)環(huán)的建立具體包括以下步驟-1) 當某一流媒體數(shù)據(jù)首次被用戶終端點播時,由系統(tǒng)管理服務器指定該用戶終端為環(huán)首 領(lǐng),該用戶終端直接從流媒體服務器中獲取點播的視頻節(jié)目數(shù)據(jù);2) 當某一流媒體數(shù)據(jù)被新加入的用戶終端再次點播時,該用戶終端加入維護該視頻節(jié)目 的某一數(shù)據(jù)環(huán)中;由該數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)為其分配流媒體節(jié)目配額數(shù)據(jù),當該數(shù)據(jù)環(huán) 中沒有點播的視頻節(jié)目數(shù)據(jù)時,從流媒體服務器中獲取點播的視頻節(jié)目數(shù)據(jù)。
3、 根據(jù)權(quán)利要求1或2所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于-所述流媒體數(shù)據(jù)在所述環(huán)成員存儲的方法包括以下步驟(1) 判斷新加入的用戶終端是否已經(jīng)維護有其點播的視頻節(jié)目配額數(shù)據(jù),如果是,則進 入步驟(2),否則轉(zhuǎn)步驟(3);(2) 判斷其加入的數(shù)據(jù)環(huán)的環(huán)成員中是否已經(jīng)維護有相同的配額數(shù)據(jù),如果沒有則轉(zhuǎn)步 驟(4),否則轉(zhuǎn)步驟(5);(3) 由所述環(huán)首領(lǐng)分配數(shù)據(jù)環(huán)中存儲重復次數(shù)最少的配額數(shù)據(jù)給該新加入用戶終端;(4) 繼續(xù)維護該配額數(shù)據(jù);(5) 判斷該數(shù)據(jù)環(huán)中是否有未分配的配額數(shù)據(jù),如果沒有,則進入步驟(6),否則轉(zhuǎn)步驟(7);(6) 該數(shù)據(jù)環(huán)中的該配額數(shù)據(jù)的存儲次數(shù)加1,判斷其結(jié)果是否超過分配次數(shù)閾值,如 果是,則進入步驟(7),如果否,則轉(zhuǎn)步驟(4);(7) 刪除該用戶終端中已存儲的配額數(shù)據(jù),轉(zhuǎn)步驟(3)。
4、根據(jù)權(quán)利要求1或2所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于當某一數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)退出時,還包括一環(huán)首領(lǐng)推舉步驟由該數(shù)據(jù)環(huán)中的環(huán)成員向某 一正在加入該數(shù)據(jù)環(huán)的用戶終端或該數(shù)據(jù)環(huán)中的某一環(huán)成員發(fā)出環(huán)首領(lǐng)推舉信令,被推薦 的用戶終端收到超過某一比例閾值的推舉信令時,則確認其為該數(shù)據(jù)環(huán)的環(huán)首領(lǐng),更新系 統(tǒng)管理服務器中環(huán)首領(lǐng)信息,否則,向該數(shù)據(jù)環(huán)中的其它環(huán)成員或其它正在加入的用戶終 端重新發(fā)出環(huán)首領(lǐng)推舉信令;或者直接解散該數(shù)據(jù)環(huán),該數(shù)據(jù)環(huán)中的環(huán)成員或正在加入的 用戶終端重新登錄。
5、 根據(jù)權(quán)利要求1或2所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于 當某一數(shù)據(jù)環(huán)中的環(huán)成員退出時,更新該數(shù)據(jù)環(huán)中環(huán)成員和環(huán)首領(lǐng)的信息。
6、 根據(jù)權(quán)利要求1或2所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于 當某一數(shù)據(jù)環(huán)中存儲的流媒體數(shù)據(jù)的冗余度大于某一閾值時,還包括一數(shù)據(jù)環(huán)分裂步驟-由該數(shù)據(jù)環(huán)中的環(huán)首領(lǐng)選擇需分裂出的環(huán)成員,該分裂出的環(huán)成員存儲的配額數(shù)據(jù)構(gòu)成該 流媒體數(shù)據(jù)的全部數(shù)據(jù),并由該環(huán)首領(lǐng)指定或者由分裂出的環(huán)成員推舉一新的環(huán)首領(lǐng)。
7、 根據(jù)權(quán)利要求1或2所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于-所述系統(tǒng)管理服務器中存儲有地域和/或運營商信息,所述數(shù)據(jù)環(huán)根據(jù)地域和/或運營商建 立,當新加入用戶終端加入某一數(shù)據(jù)環(huán)之前還包括一地域和/或運營商信息判定步驟,系 統(tǒng)管理服務器判定新加入用戶終端所屬的地域和/或運營商,并將其加入對應的數(shù)據(jù)環(huán)中。
8、 根據(jù)權(quán)利要求7所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于還包 括一數(shù)據(jù)環(huán)加入選擇步驟,用戶終端測試其與由系統(tǒng)管理服務器提供的對應數(shù)據(jù)環(huán)環(huán)首領(lǐng) 的連接速度,選擇加入與其連接速度較快或最快的環(huán)首領(lǐng)對應的數(shù)據(jù)環(huán)。
9、 根據(jù)權(quán)利要求4所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于還包 括一定時器設定步驟,當環(huán)首領(lǐng)推舉步驟超時時,該數(shù)據(jù)環(huán)中的環(huán)成員向該數(shù)據(jù)環(huán)中的其 它環(huán)成員或其它正在加入的用戶終端重新發(fā)出環(huán)首領(lǐng)推舉信令;或者直接解散該數(shù)據(jù)環(huán), 該數(shù)據(jù)環(huán)中的環(huán)成員或正在加入的用戶終端將重新登錄。
10、根據(jù)權(quán)利要求1或2所述的基于區(qū)域數(shù)據(jù)環(huán)存的網(wǎng)絡流媒體數(shù)據(jù)分發(fā)方法,其特征在于 所述環(huán)成員中的配額數(shù)據(jù)大小相等。
全文摘要
一種基于區(qū)域數(shù)據(jù)環(huán)存的流媒體數(shù)據(jù)分發(fā)方法,建立由至少一個環(huán)首領(lǐng)和多個環(huán)成員組成的數(shù)據(jù)環(huán),所述系統(tǒng)管理服務器中存儲有環(huán)首領(lǐng)信息,新加入的用戶終端從該數(shù)據(jù)環(huán)中獲取流媒體數(shù)據(jù),完整的所述數(shù)據(jù)環(huán)為至少滿足以下條件的用戶終端的集合1)維護同一個流媒體數(shù)據(jù);2)存儲于環(huán)成員中的配額數(shù)據(jù)的并集構(gòu)成該同一個流媒體數(shù)據(jù)的全部數(shù)據(jù);3)所有環(huán)成員至少有一相同的用于管理所述環(huán)成員的環(huán)首領(lǐng);4)每一環(huán)成員至少存儲有包括自己在內(nèi)的所有環(huán)成員的地址信息。本發(fā)明能夠十分方便地實現(xiàn)視頻點播應用中對播放位置任意指定的功能,降低了流媒體服務器和系統(tǒng)管理服務器在出口帶寬及其性能上的要求。
文檔編號H04N7/173GK101155295SQ20061011669
公開日2008年4月2日 申請日期2006年9月28日 優(yōu)先權(quán)日2006年9月28日
發(fā)明者典 李 申請人:李 典;沈 科