專(zhuān)利名稱(chēng):一種基于點(diǎn)對(duì)點(diǎn)的文件發(fā)布方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息傳輸技術(shù),特別涉及一種基于點(diǎn)對(duì)點(diǎn)(P2P,Peer to Peer)的文件發(fā)布方法及系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)游戲領(lǐng)域是最近幾年互聯(lián)網(wǎng)發(fā)展最快的領(lǐng)域,與傳統(tǒng)采用客戶端的單機(jī)游戲不同的是,網(wǎng)絡(luò)游戲主要采用客戶端 /服務(wù)器(C/S,Client/server)網(wǎng)絡(luò)模式結(jié)構(gòu),不僅包括一個(gè)強(qiáng)大的網(wǎng)絡(luò)游戲服務(wù)器,還包括有一個(gè)強(qiáng)大的網(wǎng)絡(luò)游戲客戶端。客戶端的游戲包(文件包)的大小一般從幾百M(fèi)到幾個(gè)G,而隨著網(wǎng)絡(luò)游戲新功能的增加以及原有功能的擴(kuò)展,游戲包攜帶的多媒體數(shù)據(jù)信息也越來(lái)越多,總的游戲包大小也越來(lái)越大。網(wǎng)絡(luò)游戲運(yùn)營(yíng)商在開(kāi)發(fā)出新游戲或?qū)υ杏螒蜻M(jìn)行升級(jí)后,需要將新游戲包或升級(jí)游戲包進(jìn)行發(fā)布,即通過(guò)服務(wù)器下發(fā)至客戶端,以便于客戶端安裝新游戲或升級(jí)游戲,而由于游戲包的容量越來(lái)越大,各客戶端通過(guò)C/S網(wǎng)絡(luò)模式下載游戲包,將使得服務(wù)器負(fù)荷十分繁重,并容易導(dǎo)致單點(diǎn)故障。為此,現(xiàn)有技術(shù)中,對(duì)于較大容量的游戲包,一般采用具有自組織、多跳路由以及動(dòng)態(tài)拓?fù)涞忍攸c(diǎn)的P2P網(wǎng)絡(luò)進(jìn)行發(fā)布,也就是通過(guò)游戲運(yùn)營(yíng)商開(kāi)發(fā)專(zhuān)用的P2P高速下載器進(jìn)行下載或通過(guò)通用的P2P下載軟件,例如,QQ旋風(fēng)進(jìn)行下載。在P2P網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)(Peer),即客戶端既可以從其他節(jié)點(diǎn)得到服務(wù),也可以向其他節(jié)點(diǎn)提供服務(wù),因而,可以有效利用客戶端資源,易于實(shí)現(xiàn)資源的充分利用和最大化的共享,能夠解決單點(diǎn)故障,網(wǎng)絡(luò)具有良好的容錯(cuò)性。圖I為現(xiàn)有基于P2P的文件發(fā)布方法流程示意圖。參見(jiàn)圖1,以發(fā)布游戲包為例,該流程包括步驟101,獲取游戲包下載鏈接信息;本步驟中,網(wǎng)絡(luò)游戲運(yùn)營(yíng)商在開(kāi)發(fā)出新游戲或?qū)υ杏螒蜻M(jìn)行升級(jí)后,通過(guò)在包括Internet游戲官方網(wǎng)站、和/或,鏡像資源服務(wù)器網(wǎng)站的游戲服務(wù)器(例如,InternetHttp下載源)上提供游戲包下載鏈接信息,并通知游戲客戶端,游戲客戶端獲取游戲包下載鏈接信息,確定是否下載新游戲或?qū)υ杏螒蜻M(jìn)行升級(jí),如果是,執(zhí)行步驟102,否則,結(jié)束該流程。下載鏈接信息一般為游戲服務(wù)器的統(tǒng)一資源定位器(URL, Uniform ResourceLocator)信息。步驟102,根據(jù)游戲包下載鏈接信息,獲取源數(shù)據(jù),下載游戲包;本步驟中,游戲用戶在確定下載新游戲或?qū)υ杏螒蜻M(jìn)行升級(jí)后,向追蹤(Tracker)服務(wù)器查詢是否存在P2P種子信息,如果不存在,可以通過(guò)游戲客戶端,根據(jù)獲取的游戲包下載鏈接信息,從對(duì)應(yīng)的游戲服務(wù)器下載包含游戲數(shù)據(jù)的數(shù)據(jù)包。在游戲包初次發(fā)布時(shí),Tracker服務(wù)器存儲(chǔ)的P2P種子信息為空。游戲包采用游戲服務(wù)器結(jié)合P2P網(wǎng)絡(luò)的方式實(shí)現(xiàn)游戲數(shù)據(jù)傳輸功能,在游戲包正式對(duì)外發(fā)布時(shí),游戲服務(wù)器提供游戲數(shù)據(jù)的最先分發(fā)源,游戲客戶端最初通過(guò)游戲服務(wù)器進(jìn)行游戲包下載,然后,在各游戲客戶端之間,通過(guò)P2P的方式進(jìn)行游戲數(shù)據(jù)分片的繼續(xù)交換。
步驟103,下載游戲包完畢,游戲客戶端向Tracker服務(wù)器注冊(cè)為P2P種子,其他游戲客戶端查詢P2P種子,獲取Tracker服務(wù)器中的P2P種子信息;本步驟中,由于游戲客戶端在游戲包初次發(fā)布時(shí)進(jìn)行下載,Tracker服務(wù)器存儲(chǔ)的P2P種子信息為空,因此,需要從游戲服務(wù)器下載游戲包,在下載游戲包完畢后,該游戲客戶端向Tracker服務(wù)器發(fā)送注冊(cè)文件信息,注冊(cè)為P2P種子,以表明可以向其他游戲客戶端提供游戲包下載服務(wù)。該步驟中,其他游戲客戶端是指在該游戲客戶端下載游戲包完畢后開(kāi)始請(qǐng)求下載的客戶端,此時(shí),Tracker服務(wù)器存儲(chǔ)有相應(yīng)的P2P種子信息。步驟104,根據(jù)獲取的P2P種子信息下載游戲包;本步驟中,其他游戲客戶端根據(jù)從Tracker服務(wù)器獲取的P2P種子信息,從相應(yīng)的種子信息對(duì)應(yīng)的游戲客戶端下載游戲包。即其它游戲客戶端開(kāi)始多源P2P下載,在Peer之間相互交換游戲數(shù)據(jù)。步驟105,向統(tǒng)計(jì)服務(wù)器上報(bào)統(tǒng)計(jì)相關(guān)信息。本步驟中,游戲客戶端在游戲包下載完畢后,向統(tǒng)計(jì)服務(wù)器匯報(bào)統(tǒng)計(jì)相關(guān)信息,包括本次下載任務(wù)的下載時(shí)間、下載速度、下載結(jié)果、游戲包文件大小等信息。其中,下載速度可以包括游戲服務(wù)器速度以及P2P速度。由上述可見(jiàn),由于網(wǎng)絡(luò)游戲的飛速發(fā)展,游戲包文件越來(lái)越大,現(xiàn)有的基于P2P的文件發(fā)布方法,對(duì)于新發(fā)布的網(wǎng)絡(luò)游戲包或者網(wǎng)絡(luò)游戲升級(jí)補(bǔ)丁包,需要游戲客戶端從游戲服務(wù)器進(jìn)行初始下載,絕大部分壓力在開(kāi)始時(shí)會(huì)轉(zhuǎn)移到游戲服務(wù)器上,游戲服務(wù)器需要的峰值帶寬巨大,其輸出帶寬達(dá)到幾十G乃至上百G,使得游戲服務(wù)器在初始下載時(shí)負(fù)荷量大,用戶下載體驗(yàn)難以保障;而且,現(xiàn)有的計(jì)費(fèi)方式采用峰值計(jì)費(fèi),使得用戶成本急劇增加。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提出一種基于P2P的文件發(fā)布方法,在文件初始發(fā)布時(shí),降低服務(wù)器的峰值帶寬以及用戶成本。本發(fā)明的另一目的在于提出一種基于P2P的文件發(fā)布系統(tǒng),在文件初始發(fā)布時(shí),降低服務(wù)器的峰值帶寬以及用戶成本。為達(dá)到上述目的,本發(fā)明提供了一種基于P2P的文件發(fā)布方法,該方法包括獲取預(yù)先生成的分片文件包鏈接信息;根據(jù)獲取的分片文件包鏈接信息,獲取預(yù)先存儲(chǔ)的分片文件包源數(shù)據(jù),進(jìn)行下載;在分片文件包下載完畢后,將下載該分片文件包的客戶端注冊(cè)為分片文件P2P種子;根據(jù)注冊(cè)的分片文件P2P種子信息更新分片文件包鏈接信息。進(jìn)一步包括獲取分片文件包統(tǒng)計(jì)相關(guān)信息;根據(jù)分片文件包統(tǒng)計(jì)相關(guān)信息以及預(yù)先設(shè)定的速度閾值,生成該分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表;
根據(jù)生成的分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表信息,更新分片文件包鏈接信息。所述獲取預(yù)先生成的分片文件包鏈接信息具體包括預(yù)發(fā)布調(diào)度服務(wù)器根據(jù)網(wǎng)絡(luò)游戲運(yùn)營(yíng)商開(kāi)發(fā)上傳的分片文件包鏈接信息,向客戶端發(fā)送分片文件包更新通知,攜帶分片文件包鏈接信息,客戶端從接收的分片文件包更新通知中獲取分片文件包鏈接信息;或,客戶端從預(yù)先設(shè)置的文件官方網(wǎng)站獲取網(wǎng)絡(luò)游戲運(yùn)營(yíng)商開(kāi)發(fā)上傳的分片文件包鏈接信息。所述分片文件包鏈接信息包括預(yù)發(fā)布源服務(wù)器的統(tǒng)一資源定位器信息或網(wǎng)際協(xié)議地址信息。在所述在分片文件包下載完畢后,將下載該分片文件包的客戶端注冊(cè)為分片文件 P2P種子之前,進(jìn)一步包括追蹤服務(wù)器將預(yù)先設(shè)置的配置策略下發(fā)給客戶端,客戶端根據(jù)配置策略判斷是否處于空閑,在確定處于空閑時(shí),執(zhí)行向追蹤服務(wù)器注冊(cè)為分片文件P2P種子的步驟。所述配置策略包括空閑客戶端的識(shí)別策略以及上傳速度限制策略。所述空閑客戶端的識(shí)別策略為該客戶端沒(méi)有下載任務(wù)、在線且具有足夠的磁盤(pán)空間;所述上傳速度限制策略為在不影響該客戶端業(yè)務(wù)體驗(yàn)的前提下,能夠向其他客戶端提供的最大上傳速度。所述分片文件包統(tǒng)計(jì)相關(guān)信息包括分片文件包的下載時(shí)間信息、下載速度信息、下載結(jié)果信息、分片文件包大小信息、可提供P2P速度信息以及已提供P2P速度信息。所述生成該分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表具體包括如果統(tǒng)計(jì)的該分片文件包的下載客戶端數(shù)的P2P速度大于預(yù)先設(shè)定的速度閾值,將該客戶端置于分片文件包可丟棄客戶端列表中;如果統(tǒng)計(jì)的該分片文件包的下載客戶端數(shù)的P2P速度小于預(yù)先設(shè)定的速度閾值,將該客戶端置于分片文件包推送客戶端列表中。一種基于點(diǎn)對(duì)點(diǎn)P2P的文件發(fā)布系統(tǒng),該系統(tǒng)包括第一客戶端、追蹤服務(wù)器、預(yù)發(fā)布調(diào)度服務(wù)器以及預(yù)發(fā)布源服務(wù)器,其中,第一客戶端,用于根據(jù)接收的來(lái)自預(yù)發(fā)布調(diào)度服務(wù)器的分片文件包鏈接信息,從分片文件包鏈接信息對(duì)應(yīng)的預(yù)發(fā)布源服務(wù)器獲取分片文件包源數(shù)據(jù),進(jìn)行下載;在下載分片文件包完畢后,向追蹤服務(wù)器注冊(cè)為分片文件P2P種子;追蹤服務(wù)器,用于將注冊(cè)的分片文件P2P種子信息輸出至預(yù)發(fā)布調(diào)度服務(wù)器;預(yù)發(fā)布調(diào)度服務(wù)器,用于存儲(chǔ)預(yù)先設(shè)置的分片文件包鏈接信息并向第一客戶端發(fā)送;根據(jù)接收的分片文件P2P種子信息,更新存儲(chǔ)的分片文件包鏈接信息;預(yù)發(fā)布源服務(wù)器,用于存儲(chǔ)分片文件包源數(shù)據(jù)。進(jìn)一步包括統(tǒng)計(jì)服務(wù)器,其中,第一客戶端,進(jìn)一步用于在分片文件包下載完畢后,獲取分片文件包統(tǒng)計(jì)相關(guān)信息,并向統(tǒng)計(jì)服務(wù)器匯報(bào);統(tǒng)計(jì)服務(wù)器,根據(jù)接收的分片文件包統(tǒng)計(jì)相關(guān)信息以及預(yù)先設(shè)定的速度閾值,生成該分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表,向預(yù)發(fā)布調(diào)度服務(wù)器輸出;預(yù)發(fā)布調(diào)度服務(wù)器,進(jìn)一步用于根據(jù)接收的分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表信息,更新存儲(chǔ)的分片文件包鏈接信息。進(jìn)一步包括第二客戶端,第二客戶端,用于向追蹤服務(wù)器發(fā)送配置策略獲取請(qǐng)求以及文件包下載請(qǐng)求,接收追蹤服務(wù)器返回的配置策略,進(jìn)行存儲(chǔ),根據(jù)追蹤服務(wù)器返回的文件包包含的分片文件 包鏈接信息,進(jìn)行相應(yīng)分片文件包的下載;并在下載完畢后,根據(jù)獲取的配置策略判斷是否處于空閑,在確定處于空閑時(shí),向追蹤服務(wù)器進(jìn)行注冊(cè)以提供相應(yīng)分片文件包服務(wù);追蹤服務(wù)器,進(jìn)一步用于存儲(chǔ)配置策略,接收第二客戶端配置策略獲取請(qǐng)求,向第二客戶端返回配置策略;接收文件包下載請(qǐng)求,從預(yù)發(fā)布調(diào)度服務(wù)器獲取該文件包包含的分片文件包鏈接信息,向第二客戶端發(fā)送。由上述的技術(shù)方案可見(jiàn),本發(fā)明提供的一種基于P2P的文件發(fā)布方法及系統(tǒng),獲取預(yù)先生成的分片文件包鏈接信息;根據(jù)獲取的分片文件包鏈接信息,獲取預(yù)先存儲(chǔ)的分片文件包源數(shù)據(jù),進(jìn)行預(yù)先下載;在分片文件包下載完畢后,將下載該分片文件包的客戶端注冊(cè)為分片文件P2P種子;根據(jù)注冊(cè)的分片文件P2P種子信息更新分片文件包鏈接信息。這樣,通過(guò)將一個(gè)文件包中包含的多個(gè)依時(shí)間順序開(kāi)發(fā)形成的分片文件包分別提前進(jìn)行發(fā)布,正式發(fā)布時(shí)候可以有效降低文件包作為一個(gè)整體發(fā)布時(shí)文件服務(wù)器的峰值帶寬,以及由于根據(jù)峰值帶寬計(jì)算費(fèi)用的用戶成本;同時(shí),由于將具有更多分片文件包的客戶端作為P2P種子,能夠有效加速服務(wù)器資源分發(fā)的速度,提高下載高峰時(shí)系統(tǒng)P2P效率。
圖I為現(xiàn)有基于P2P的文件發(fā)布方法流程示意圖。圖2為本發(fā)明實(shí)施例基于P2P的文件發(fā)布方法流程示意圖。圖3為本發(fā)明實(shí)施例基于P2P的文件發(fā)布系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。由于新發(fā)布的包括網(wǎng)絡(luò)游戲包或網(wǎng)絡(luò)游戲升級(jí)補(bǔ)丁包的文件包容量較大,現(xiàn)有的基于P2P的文件發(fā)布方法,在客戶端進(jìn)行初始下載時(shí),無(wú)法為其他客戶端提供P2P服務(wù),使得服務(wù)器上需要的峰值帶寬巨大。實(shí)際應(yīng)用中,考慮到網(wǎng)絡(luò)游戲包或網(wǎng)絡(luò)游戲升級(jí)補(bǔ)丁包并非一次開(kāi)發(fā)形成,在開(kāi)發(fā)過(guò)程中,包含有多個(gè)依時(shí)間順序開(kāi)發(fā)形成的分片文件包,各分片文件包之間可能具有一定的相對(duì)獨(dú)立性,因而,本發(fā)明實(shí)施例中,通過(guò)在現(xiàn)有的文件發(fā)布系統(tǒng)后臺(tái)引入預(yù)發(fā)布調(diào)度服務(wù)器,結(jié)合客戶端,在包括新網(wǎng)絡(luò)游戲包或網(wǎng)絡(luò)游戲升級(jí)補(bǔ)丁包的文件包整體發(fā)布之前,通過(guò)后臺(tái)預(yù)發(fā)布調(diào)度服務(wù)器,預(yù)先在P2P網(wǎng)絡(luò)分發(fā)一部分已開(kāi)發(fā)形成的資源(分片文件包)。這樣,當(dāng)包括新網(wǎng)絡(luò)游戲包或網(wǎng)絡(luò)游戲升級(jí)補(bǔ)丁包的文件包作為整體正式發(fā)布時(shí),能夠有效削減文件服務(wù)器的峰值帶寬。圖2為本發(fā)明實(shí)施例基于P2P的文件發(fā)布方法流程示意圖。參見(jiàn)圖2,該流程包括步驟201,獲取預(yù)先生成的分片文件包鏈接信息;本步驟中,網(wǎng)絡(luò)游戲運(yùn)營(yíng)商在開(kāi)發(fā)出一部分新游戲或?qū)υ杏螒蜻M(jìn)行部分升級(jí)后,分別形成分片文件包,將形成的一個(gè)或多個(gè)分片文件包上傳至預(yù)發(fā)布源服務(wù)器或文件服務(wù)器,并將對(duì)應(yīng)的分片文件包鏈接信息,即預(yù)發(fā)布源服務(wù)器的URL信息或IP地址信息上傳至預(yù)發(fā)布調(diào)度服務(wù)器,預(yù)發(fā)布調(diào)度服務(wù)器向客戶端發(fā)送分片文件包更新通知,攜帶分片文件包鏈接信息,客戶端從接收的分片文件包更新通知中獲取分片文件包鏈接信息;或,客戶端從預(yù)先存儲(chǔ)的文件官方網(wǎng)站獲取分片文件包鏈接信息。實(shí)際應(yīng)用中,還可以設(shè)置分片文件包標(biāo)識(shí),用以標(biāo)識(shí)文件包中包含的各分片文件包,以便于后續(xù)中當(dāng)客戶端下載該文件包中包含的所有分片文件包后,進(jìn)行整合,以形成完整的文件包進(jìn)行安裝或升級(jí)。步驟202,根據(jù)獲取的分片文件包鏈接信息,獲取預(yù)先存儲(chǔ)的分片文件包源數(shù)據(jù),進(jìn)行下載;本步驟中,根據(jù)分片文件包鏈接信息,例如,預(yù)發(fā)布源服務(wù)器的URL信息或IP地址信息,從存儲(chǔ)分片文件包的預(yù)發(fā)布源服務(wù)器獲取分片文件包源數(shù)據(jù),進(jìn)行下載。步驟203,在分片文件包下載完畢后,將下載該分片文件包的客戶端注冊(cè)為分片文件P2P種子;本步驟中,在下載分片文件包完畢后,下載該分片文件包的客戶端向Tracker服務(wù)器發(fā)送注冊(cè)文件信息,反饋下載該分片文件包的客戶端的IP地址信息或URL信息,并注冊(cè)為分片文件P2P種子,以表明可以向其他客戶端提供該分片文件包下載服務(wù)。以便于其他客戶端在后續(xù)下載中,可以從該客戶端獲取相應(yīng)分片文件包,執(zhí)行P2P下載,以降低服務(wù)器的峰值速率。實(shí)際應(yīng)用中,Tracker服務(wù)器可以將能提供該分片文件包的客戶端形成分片文件包推送客戶端列表并上報(bào)至預(yù)發(fā)布調(diào)度服務(wù)器,同時(shí),也可以將客戶端的負(fù)載相關(guān)信息進(jìn)行上報(bào)以便預(yù)發(fā)布調(diào)度服務(wù)器進(jìn)行相應(yīng)調(diào)度。進(jìn)一步地,在客戶端向Tracker服務(wù)器注冊(cè)時(shí),Tracker服務(wù)器還可以將預(yù)先設(shè)置的配置策略下發(fā)給客戶端,以便于客戶端根據(jù)配置策略判斷是否處于空閑,在確定處于空閑時(shí),向Tracker服務(wù)器進(jìn)行注冊(cè)以提供相應(yīng)分片文件包服務(wù)。步驟204,根據(jù)注冊(cè)的分片文件P2P種子信息更新分片文件包鏈接信息。本步驟中,將注冊(cè)的分片文件P2P種子信息,即將能夠提供該分片文件包服務(wù)的客戶端的URL信息或IP地址信息加入到原有的分片文件包鏈接信息中。進(jìn)一步地,還包括步驟205,獲取分片文件包統(tǒng)計(jì)相關(guān)信息;本步驟中,客戶端在分片文件包下載完畢后,獲取分片文件包統(tǒng)計(jì)相關(guān)信息,并向統(tǒng)計(jì)服務(wù)器匯報(bào),分片文件包統(tǒng)計(jì)相關(guān)信息包括該分片文件包的下載時(shí)間、下載速度、下載結(jié)果、分片文件包大小、可提供P2P速度以及已提供P2P速度等信息。其中,下載速度可以包括從預(yù)發(fā)布源服務(wù)器拉取分片文件包的速度,當(dāng)然,實(shí)際應(yīng)用中,如果客戶端還可以同時(shí)向其他客戶端拉取分片文件包,則進(jìn)一步包括向其他客戶端拉取分片文件包的P2P速度。下載結(jié)果信息可以包括下載是否成功信息。、
步驟206,根據(jù)分片文件包統(tǒng)計(jì)相關(guān)信息以及預(yù)先設(shè)定的速度閾值,生成該分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表;本步驟中,統(tǒng)計(jì)服務(wù)器接收一天內(nèi)各客戶端上報(bào)的分片文件包統(tǒng)計(jì)相關(guān)信息,獲取該分片文件包的下載客戶端數(shù)、提供分片文件包服務(wù)的客戶端數(shù)以及不推送情況下的P2P速度。當(dāng)然,實(shí)際應(yīng)用中,統(tǒng)計(jì)服務(wù)器還可以接收一天內(nèi)各客戶端上報(bào)的分片文件包統(tǒng)計(jì)相關(guān)信息,利用預(yù)先設(shè)定的預(yù)測(cè)算法預(yù)測(cè)未來(lái)一天內(nèi)該分片文件包需求信息,例如,該分片文件包的下載客戶端數(shù)、提供分片文件包服務(wù)的客戶端數(shù)以及不推送情況下的P2P速度。舉例來(lái)說(shuō),根據(jù)一天內(nèi)下載該分片文件包的客戶端數(shù),近似認(rèn)為等于未來(lái)一天內(nèi)該分片文件包的下載客戶端數(shù)。也可以根據(jù)幾天內(nèi)的各客戶端上報(bào)的分片文件包統(tǒng)計(jì)相關(guān)信息進(jìn)行預(yù)測(cè),將預(yù)測(cè)的分片文件包需求信息替代分片文件包統(tǒng)計(jì)相關(guān)信息。如果統(tǒng)計(jì)的該分片文件包的下載客戶端數(shù)的P2P速度大于預(yù)先設(shè)定的速度閾值,表明提供該分片文件包服務(wù)的客戶端數(shù)已經(jīng)能夠滿足用戶下載需求,不再需要將已完成該分片文件包下載的客戶端作為P2P種子,將該客戶端置于分片文件包可丟棄客戶端列表中;如果統(tǒng)計(jì)的該分片文件包的下載客戶端數(shù)的P2P速度小于預(yù)先設(shè)定的速度閾值,表明提供該分片文件包服務(wù)的客戶端數(shù)還不能滿足用戶下載需求,需要將已完成該分片文件包下載的客戶端作為P2P種子,將該客戶端置于分片文件包推送客戶端列表中。當(dāng)然,實(shí)際應(yīng)用中,還可以進(jìn)一步考慮該客戶端的負(fù)載相關(guān)信息,即根據(jù)該客戶端的存儲(chǔ)空間、可提供P2P速度以及已提供P2P速度確定是否需要將該客戶端作為P2P種子,其中,可提供P2P速度可根據(jù)客戶端的下載速度以及客戶端帶寬確定,如果客戶端需要下載的分片文件包越多,下載速度越大,則可提供P2P速度越小。預(yù)先設(shè)定的速度閾值可以依據(jù)經(jīng)驗(yàn)丟棄的目標(biāo)P2P速度設(shè)定為比資源平均P2P速度高5KB。實(shí)際應(yīng)用中,由于存在客戶端返回和流失情況,存在很多推送過(guò)分片文件包的客戶端可能永遠(yuǎn)也不會(huì)出現(xiàn),因此,在確定分片文件包可丟棄客戶端列表時(shí),可以不考慮該分片文件包推送過(guò)多少,這樣,只要設(shè)定一個(gè)速度閾值的上限,即可保證丟棄不過(guò)量而不必考慮該分片文件包是否推送過(guò)或者推送節(jié)點(diǎn)是否已經(jīng)全丟棄完。步驟207,根據(jù)生成的分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表信息,更新分片文件包鏈接信息。本步驟中,預(yù)發(fā)布調(diào)度服務(wù)器接收統(tǒng)計(jì)服務(wù)器輸出的信息,對(duì)前述根據(jù)注冊(cè)的分片文件P2P種子信息更新的分片文件包鏈接信息再次進(jìn)行更新。這樣,客戶端在獲取分片文件包鏈接信息后,如果客戶端信息在分片文件包可丟棄客戶端列表中,則可以將自身已下載、存儲(chǔ)并不再需要的分片文件包進(jìn)行刪除,以有效節(jié)約存儲(chǔ)空間。同時(shí),根據(jù)分片文件包推送客戶端列表中對(duì)應(yīng)的需下載的分片文件包的大小信息,確定是否具有足夠存儲(chǔ)空間進(jìn)行下載,如果確定,向分片文件包推送客戶端列表中的客戶端發(fā)起P2P下載。由上述可見(jiàn),本發(fā)明實(shí)施例的基于P2P的文件發(fā)布方法,通過(guò)獲取預(yù)先生成的分 片文件包鏈接信息;根據(jù)獲取的分片文件包鏈接信息,獲取預(yù)先存儲(chǔ)的分片文件包源數(shù)據(jù),進(jìn)行下載;下載分片文件包完畢,將下載該分片文件包的客戶端注冊(cè)為分片文件P2P種子;根據(jù)注冊(cè)的分片文件P2P種子信息更新分片文件包鏈接信息。這樣,通過(guò)將一個(gè)文件包中包含的多個(gè)依時(shí)間順序開(kāi)發(fā)形成的分片文件包分別進(jìn)行發(fā)布,可以有效降低文件包作為一個(gè)整體發(fā)布時(shí)文件服務(wù)器的峰值帶寬,以及由于根據(jù)峰值帶寬計(jì)算費(fèi)用的用戶成本;同時(shí),由于將具有更多分片文件包的客戶端作為P2P種子,能夠有效加速服務(wù)器資源分發(fā)的速度,提高下載高峰時(shí)系統(tǒng)P2P效率。而且,通過(guò)將分片文件包統(tǒng)計(jì)相關(guān)信息上報(bào),可以實(shí)時(shí)更新分片文件包鏈接信息,從而對(duì)資源下載以及上傳進(jìn)行有效調(diào)度,改善系統(tǒng)性能。圖3為本發(fā)明實(shí)施例基于P2P的文件發(fā)布系統(tǒng)結(jié)構(gòu)示意圖。參見(jiàn)圖3,該系統(tǒng)包括第一客戶端(普通客戶端)、追蹤服務(wù)器、預(yù)發(fā)布調(diào)度服務(wù)器以及預(yù)發(fā)布源服務(wù)器,其中,第一客戶端,用于根據(jù)接收的來(lái)自預(yù)發(fā)布調(diào)度服務(wù)器的分片文件包鏈接信息,從分片文件包鏈接信息對(duì)應(yīng)的預(yù)發(fā)布源服務(wù)器獲取分片文件包源數(shù)據(jù),進(jìn)行下載;在下載分片文件包完畢后,向追蹤服務(wù)器注冊(cè)為分片文件P2P種子;
追蹤服務(wù)器,用于將注冊(cè)的分片文件P2P種子信息輸出至預(yù)發(fā)布調(diào)度服務(wù)器;預(yù)發(fā)布調(diào)度服務(wù)器,用于存儲(chǔ)預(yù)先設(shè)置的分片文件包鏈接信息并向第一客戶端發(fā)送;根據(jù)接收的分片文件P2P種子信息,更新存儲(chǔ)的分片文件包鏈接信息;本發(fā)明實(shí)施例中,預(yù)發(fā)布調(diào)度服務(wù)器可以主動(dòng)向客戶端推送分片文件包鏈接信息,也可以根據(jù)客戶端的請(qǐng)求向客戶端推送分片文件包鏈接信息。實(shí)際應(yīng)用中,預(yù)發(fā)布調(diào)度服務(wù)器在新文件或補(bǔ)丁文件在正式官方網(wǎng)站發(fā)布前,可以進(jìn)一步通過(guò)預(yù)估下載的客戶端數(shù)量以及預(yù)發(fā)布源服務(wù)器提供的帶寬,并根據(jù)接收的分片文件P2P種子信息,確定需要提供P2P服務(wù)的客戶端數(shù),然后實(shí)時(shí)調(diào)整、更新存儲(chǔ)的分片文件包鏈接信息。預(yù)發(fā)布源服務(wù)器,用于存儲(chǔ)分片文件包源數(shù)據(jù)。本發(fā)明實(shí)施例中,預(yù)發(fā)布源服務(wù)器在獲取分片文件包源數(shù)據(jù)后,也可以主動(dòng)向客戶端推送分片文件包,即通過(guò)監(jiān)測(cè)客戶端是否滿足預(yù)先設(shè)定的推送條件,如客戶端不滿足推送條件,則暫停對(duì)該分片文件包任務(wù)的下載,直至客戶端滿足推送條件,繼續(xù)進(jìn)行分片文件包任務(wù)的推送。推送條件可以為客戶端處于空閑且有足夠存儲(chǔ)空間,例如,通過(guò)監(jiān)測(cè)客戶端的連續(xù)空閑時(shí)長(zhǎng)、連續(xù)在線時(shí)間、擁有下載資源個(gè)數(shù)、擁有推送資源個(gè)數(shù)等信息判斷是否滿足推送條件。實(shí)際應(yīng)用中,預(yù)發(fā)布源服務(wù)器可以利用現(xiàn)有的文件服務(wù)器來(lái)實(shí)現(xiàn)。較佳地,第一客戶端進(jìn)一步用于從追蹤服務(wù)器獲取配置策略,在下載分片文件包完畢后,根據(jù)獲取的配置策略判斷是否處于空閑,在確定處于空閑時(shí),向追蹤服務(wù)器進(jìn)行注冊(cè)以提供相應(yīng)分片文件包服務(wù)。配置策略包括空閑節(jié)點(diǎn)(客戶端)的識(shí)別策略以及上傳速度限制策略等。其中,空閑節(jié)點(diǎn)的識(shí)別策略可以是該客戶端沒(méi)有下載任務(wù)、在線且具有足夠的磁盤(pán)空間,上傳速度限制策略為在不影響該客戶端業(yè)務(wù)體驗(yàn)的前提下,能夠向其他客戶端提供的最大上傳速度。實(shí)際應(yīng)用中,配置策略可以預(yù)先設(shè)定,對(duì)于所有的客戶端,都采用統(tǒng)一的配置策略,也可以根據(jù)各客戶端上報(bào)的自身資源信息,分別確定其配置策略。所應(yīng)說(shuō)明的是,本發(fā)明實(shí)施例中,第一客戶端為泛指,可以包括一個(gè)或多介客戶端。進(jìn)一步地,該系統(tǒng)還包括統(tǒng)計(jì)服務(wù)器,其中,第一客戶端,進(jìn)一步用于在分片文件包下載完畢后,獲取分片文件包統(tǒng)計(jì)相關(guān)信息,并向統(tǒng)計(jì)服務(wù)器匯報(bào);統(tǒng)計(jì)服務(wù)器,根據(jù)接收的分片文件包統(tǒng)計(jì)相關(guān)信息以及預(yù)先設(shè)定的速度閾值,生成該分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表,向預(yù)發(fā)布調(diào)度服務(wù)器輸出;本發(fā)明實(shí)施例中,分片文件包統(tǒng)計(jì)相關(guān)信息包括該分片文件包的下載時(shí)間、下載速度、下載結(jié)果、分片文件包大小、可提供P2P速度以及已提供P2P速度等信息。如果統(tǒng)計(jì)的該分片文件包的下載客戶端數(shù)的P2P速度大于預(yù)先設(shè)定的速度閾值,將該客戶端置于分片文件包可丟棄客戶端列表中;如果統(tǒng)計(jì)的該分片文件包的下載客戶端數(shù)的P2P速度小于預(yù)先設(shè)定的速度閾值,將該客戶端置于分片文件包推送客戶端列表中。當(dāng)然,實(shí)際應(yīng)用中,還可以進(jìn)一步考慮該客戶端的負(fù)載相關(guān)信息,即根據(jù)該客戶端的存儲(chǔ)空間、可提供P2P速度以及已提供P2P速度確 定是否需要將該客戶端作為P2P種子,其中,可提供P2P速度可根據(jù)客戶端的下載速度以及客戶端帶寬確定,如果客戶端需要下載的分片文件包越多,下載速度越大,則可提供P2P速度越小。預(yù)發(fā)布調(diào)度服務(wù)器,進(jìn)一步用于根據(jù)接收的分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表信息,更新存儲(chǔ)的分片文件包鏈接信息。較佳地,該系統(tǒng)還進(jìn)一步包括第二客戶端,第二客戶端(空閑客戶端),用于向追蹤服務(wù)器發(fā)送配置策略獲取請(qǐng)求以及文件包下載請(qǐng)求,接收追蹤服務(wù)器返回的配置策略,進(jìn)行存儲(chǔ),根據(jù)追蹤服務(wù)器返回的文件包包含的分片文件包鏈接信息,進(jìn)行相應(yīng)分片文件包的下載;并在下載完畢后,根據(jù)獲取的配置策略判斷是否處于空閑,在確定處于空閑時(shí),向追蹤服務(wù)器進(jìn)行注冊(cè)以提供相應(yīng)分片文件包服務(wù);本發(fā)明實(shí)施例中,如果客戶端獲取的分片文件包鏈接信息的時(shí)候發(fā)現(xiàn)在可丟棄客戶端列表中包含自身客戶端信息,則可以將自身已下載、存儲(chǔ)并不再需要的分片文件包進(jìn)行刪除,以有效節(jié)約存儲(chǔ)空間。追蹤服務(wù)器,進(jìn)一步用于存儲(chǔ)配置策略,接收第二客戶端配置策略獲取請(qǐng)求,向第二客戶端返回配置策略;接收文件包下載請(qǐng)求,從預(yù)發(fā)布調(diào)度服務(wù)器獲取該文件包包含的分片文件包鏈接信息,向第二客戶端發(fā)送。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于點(diǎn)對(duì)點(diǎn)P2P的文件發(fā)布方法,其特征在于,該方法包括 獲取預(yù)先生成的分片文件包鏈接信息; 根據(jù)獲取的分片文件包鏈接信息,獲取預(yù)先存儲(chǔ)的分片文件包源數(shù)據(jù),進(jìn)行下載; 在分片文件包下載完畢后,將下載該分片文件包的客戶端注冊(cè)為分片文件P2P種子; 根據(jù)注冊(cè)的分片文件P2P種子信息更新分片文件包鏈接信息。
2.如權(quán)利要求I所述的方法,其特征在于,進(jìn)一步包括 獲取分片文件包統(tǒng)計(jì)相關(guān)信息; 根據(jù)分片文件包統(tǒng)計(jì)相關(guān)信息以及預(yù)先設(shè)定的速度閾值,生成該分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表; 根據(jù)生成的分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表信息,更新分片文件包鏈接信息。
3.如權(quán)利要求I所述的方法,其特征在于,所述獲取預(yù)先生成的分片文件包鏈接信息具體包括 預(yù)發(fā)布調(diào)度服務(wù)器根據(jù)網(wǎng)絡(luò)游戲運(yùn)營(yíng)商開(kāi)發(fā)上傳的分片文件包鏈接信息,向客戶端發(fā)送分片文件包更新通知,攜帶分片文件包鏈接信息,客戶端從接收的分片文件包更新通知中獲取分片文件包鏈接信息;或, 客戶端從預(yù)先設(shè)置的文件官方網(wǎng)站獲取網(wǎng)絡(luò)游戲運(yùn)營(yíng)商開(kāi)發(fā)上傳的分片文件包鏈接信息。
4.如權(quán)利要求3所述的方法,其特征在于,所述分片文件包鏈接信息包括預(yù)發(fā)布源服務(wù)器的統(tǒng)一資源定位器信息或網(wǎng)際協(xié)議地址信息。
5.如權(quán)利要求4所述的方法,其特征在于,在所述在分片文件包下載完畢后,將下載該分片文件包的客戶端注冊(cè)為分片文件P2P種子之前,進(jìn)一步包括 追蹤服務(wù)器將預(yù)先設(shè)置的配置策略下發(fā)給客戶端,客戶端根據(jù)配置策略判斷是否處于空閑,在確定處于空閑時(shí),執(zhí)行向追蹤服務(wù)器注冊(cè)為分片文件P2P種子的步驟。
6.如權(quán)利要求5所述的方法,其特征在于,所述配置策略包括空閑客戶端的識(shí)別策略以及上傳速度限制策略。
7.如權(quán)利要求6所述的方法,其特征在于,所述空閑客戶端的識(shí)別策略為該客戶端沒(méi)有下載任務(wù)、在線且具有足夠的磁盤(pán)空間;所述上傳速度限制策略為在不影響該客戶端業(yè)務(wù)體驗(yàn)的前提下,能夠向其他客戶端提供的最大上傳速度。
8.如權(quán)利要求2至7任一項(xiàng)所述的方法,其特征在于,所述分片文件包統(tǒng)計(jì)相關(guān)信息包括分片文件包的下載時(shí)間信息、下載速度信息、下載結(jié)果信息、分片文件包大小信息、可提供P2P速度信息以及已提供P2P速度信息。
9.如權(quán)利要求8所述的方法,其特征在于,所述生成該分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表具體包括 如果統(tǒng)計(jì)的該分片文件包的下載客戶端數(shù)的P2P速度大于預(yù)先設(shè)定的速度閾值,將該客戶端置于分片文件包可丟棄客戶端列表中; 如果統(tǒng)計(jì)的該分片文件包的下載客戶端數(shù)的P2P速度小于預(yù)先設(shè)定的速度閾值,將該客戶端置于分片文件包推送客戶端列表中。
10.一種基于點(diǎn)對(duì)點(diǎn)P2P的文件發(fā)布系統(tǒng),其特征在于,該系統(tǒng)包括第一客戶端、追蹤服務(wù)器、預(yù)發(fā)布調(diào)度服務(wù)器以及預(yù)發(fā)布源服務(wù)器,其中, 第一客戶端,用于根據(jù)接收的來(lái)自預(yù)發(fā)布調(diào)度服務(wù)器的分片文件包鏈接信息,從分片文件包鏈接信息對(duì)應(yīng)的預(yù)發(fā)布源服務(wù)器獲取分片文件包源數(shù)據(jù),進(jìn)行下載;在下載分片文件包完畢后,向追蹤服務(wù)器注冊(cè)為分片文件P2P種子; 追蹤服務(wù)器,用于將注冊(cè)的分片文件P2P種子信息輸出至預(yù)發(fā)布調(diào)度服務(wù)器; 預(yù)發(fā)布調(diào)度服務(wù)器,用于存儲(chǔ)預(yù)先設(shè)置的分片文件包鏈接信息并向第一客戶端發(fā)送;根據(jù)接收的分片文件P2P種子信息,更新存儲(chǔ)的分片文件包鏈接信息; 預(yù)發(fā)布源服務(wù)器,用于存儲(chǔ)分片文件包源數(shù)據(jù)。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,進(jìn)一步包括統(tǒng)計(jì)服務(wù)器,其中, 第一客戶端,進(jìn)一步用于在分片文件包下載完畢后,獲取分片文件包統(tǒng)計(jì)相關(guān)信息,并向統(tǒng)計(jì)服務(wù)器匯報(bào); 統(tǒng)計(jì)服務(wù)器,根據(jù)接收的分片文件包統(tǒng)計(jì)相關(guān)信息以及預(yù)先設(shè)定的速度閾值,生成該分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表,向預(yù)發(fā)布調(diào)度服務(wù)器輸出; 預(yù)發(fā)布調(diào)度服務(wù)器,進(jìn)一步用于根據(jù)接收的分片文件包推送客戶端列表以及分片文件包可丟棄客戶端列表信息,更新存儲(chǔ)的分片文件包鏈接信息。
12.如權(quán)利要求10或11所述的系統(tǒng),其特征在于,進(jìn)一步包括第二客戶端, 第二客戶端,用于向追蹤服務(wù)器發(fā)送配置策略獲取請(qǐng)求以及文件包下載請(qǐng)求,接收追蹤服務(wù)器返回的配置策略,進(jìn)行存儲(chǔ),根據(jù)追蹤服務(wù)器返回的文件包包含的分片文件包鏈接信息,進(jìn)行相應(yīng)分片文件包的下載;并在下載完畢后,根據(jù)獲取的配置策略判斷是否處于空閑,在確定處于空閑時(shí),向追蹤服務(wù)器進(jìn)行注冊(cè)以提供相應(yīng)分片文件包服務(wù); 追蹤服務(wù)器,進(jìn)一步用于存儲(chǔ)配置策略,接收第二客戶端配置策略獲取請(qǐng)求,向第二客戶端返回配置策略;接收文件包下載請(qǐng)求,從預(yù)發(fā)布調(diào)度服務(wù)器獲取該文件包包含的分片文件包鏈接信息,向第二客戶端發(fā)送。
全文摘要
本發(fā)明公開(kāi)了一種基于P2P的文件發(fā)布方法及系統(tǒng)。該方法包括獲取預(yù)先生成的分片文件包鏈接信息;根據(jù)獲取的分片文件包鏈接信息,獲取預(yù)先存儲(chǔ)的分片文件包源數(shù)據(jù),進(jìn)行下載;在分片文件包下載完畢后,將下載該分片文件包的客戶端注冊(cè)為分片文件P2P種子;根據(jù)注冊(cè)的分片文件P2P種子信息更新分片文件包鏈接信息。應(yīng)用本發(fā)明,可以在文件初始發(fā)布時(shí),降低服務(wù)器的峰值帶寬以及用戶成本。
文檔編號(hào)H04L29/08GK102647436SQ20111004277
公開(kāi)日2012年8月22日 申請(qǐng)日期2011年2月21日 優(yōu)先權(quán)日2011年2月21日
發(fā)明者劉剛, 曹楊, 黃琰 申請(qǐng)人:騰訊科技(深圳)有限公司