專利名稱:一種數(shù)據(jù)下載方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸技術(shù)領(lǐng)域,特別是指一種數(shù)據(jù)下載方法和系統(tǒng)。
背景技術(shù):
很多軟件都具有自動(dòng)升級(jí)功能,以使用戶及時(shí)的獲取最新的軟件版本。對(duì)于實(shí)現(xiàn)自動(dòng)升級(jí),多采用客戶端-服務(wù)器(C-S)架構(gòu),為了確??蛻舳丝梢耘c服務(wù)器建立通信,一般在客戶端軟件記錄有服務(wù)器的地址??蛻舳硕〞r(shí)根據(jù)記錄的服務(wù)器地址建立與該服務(wù)器的通信,查詢服務(wù)器上是否有更新的軟件版本。當(dāng)查詢到服務(wù)器上存在更新版本時(shí),客戶端向服務(wù)器請(qǐng)求下載升級(jí)數(shù)據(jù),以更新本地?cái)?shù)據(jù)。
目前,多媒體數(shù)據(jù)的實(shí)時(shí)傳輸也大都基于C-S架構(gòu),在啟動(dòng)媒體播放器軟件后,客戶端連接到指定的流媒體服務(wù)器請(qǐng)求多媒體數(shù)據(jù)并實(shí)時(shí)播放。流媒體服務(wù)器所支持的最大并發(fā)流個(gè)數(shù)已經(jīng)成為衡量流媒體服務(wù)器的重要指標(biāo)。盡管在現(xiàn)有的體系架構(gòu)中,流媒體服務(wù)器可以通過(guò)組播的方式減少自身負(fù)擔(dān),但是由于底層網(wǎng)絡(luò)架構(gòu)不支持的原因,多媒體數(shù)據(jù)的組播一直沒(méi)有得到廣泛應(yīng)用。
除了上面所述,還有很多數(shù)據(jù)下載技術(shù)都是采用的C-S架構(gòu)。C-S架構(gòu)優(yōu)點(diǎn)在于多個(gè)用戶所需的數(shù)據(jù)僅需存儲(chǔ)在一臺(tái)服務(wù)器上即可。對(duì)于這種一對(duì)一的數(shù)據(jù)下載方式,為了改善客戶端數(shù)據(jù)下載速度,目前提供了多線程下載技術(shù),即將數(shù)據(jù)進(jìn)行分段,每段數(shù)據(jù)包含多片數(shù)據(jù),每段數(shù)據(jù)分別使用一個(gè)進(jìn)程進(jìn)行下載。盡管如此,C-S架構(gòu)還是存在著以下的缺陷,影響數(shù)據(jù)傳輸速度1、受網(wǎng)絡(luò)影響嚴(yán)重客戶端和服務(wù)器之間通過(guò)公網(wǎng)相連,公網(wǎng)狀況很不穩(wěn)定,網(wǎng)絡(luò)波動(dòng)很劇烈,直接影響連接率及數(shù)據(jù)下載的速率。
2、依賴于服務(wù)器由于在某臺(tái)客戶端升級(jí)和多媒體數(shù)據(jù)實(shí)時(shí)播放時(shí)是向一臺(tái)服務(wù)器請(qǐng)求數(shù)據(jù),如果該服務(wù)器出現(xiàn)了故障,將導(dǎo)致升級(jí)或播放過(guò)程失敗,客戶端必須等待服務(wù)器解除故障后才能重新啟動(dòng)數(shù)據(jù)下載過(guò)程。
3、服務(wù)器的容量有限,無(wú)法支持大量用戶下載的需求,并要求服務(wù)器必須能夠處理高強(qiáng)度訪問(wèn)請(qǐng)求。例如,當(dāng)很多客戶端都連接到服務(wù)器下載數(shù)據(jù),服務(wù)器的帶寬資源和系統(tǒng)資源消耗嚴(yán)重,而無(wú)法滿足大容量用戶下載的需求。這種情況會(huì)出現(xiàn)在新多媒體文件發(fā)布或新版本軟件發(fā)布后,大部分用戶基本會(huì)在發(fā)布后最近時(shí)間段內(nèi)下載,導(dǎo)致下載過(guò)程會(huì)集中在這個(gè)時(shí)間段頻繁發(fā)生,造成對(duì)服務(wù)器訪問(wèn)量劇增。
目前,采用了某些技術(shù)來(lái)解決上述問(wèn)題,例如采用支持?jǐn)嗑€續(xù)連等方式。另外,還有一些其他方法,例如圖1示出的多服務(wù)器和單客戶端連接示意圖,客戶端可以采用多服務(wù)器下載技術(shù)同時(shí)從多臺(tái)服務(wù)器并發(fā)下載數(shù)據(jù)來(lái)提高下載速度。這種基于多服務(wù)器的并發(fā)下載技術(shù),必須保證多個(gè)服務(wù)器具有完整的數(shù)據(jù)內(nèi)容,并且,由于數(shù)據(jù)都是從服務(wù)器上獲取,對(duì)服務(wù)器的容量、穩(wěn)定度等要求都很高,無(wú)形中增大了系統(tǒng)設(shè)備投資。
又例如網(wǎng)絡(luò)上流行的BitTorrent軟件,即俗稱BT軟件,其原理是各個(gè)BT客戶端之間能夠相互傳送自己已經(jīng)下載的數(shù)據(jù),從而提高了下載速度。但是,由于很多用戶下載完后就會(huì)退出BT軟件,因此從其他BT客戶端節(jié)點(diǎn)去下載數(shù)據(jù)的方法,很不穩(wěn)定,無(wú)法保證連接成功率和連接速率。并且BT下載必須存在一個(gè)客戶端作初始的種子。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種數(shù)據(jù)下載方法和下載系統(tǒng),使可以根據(jù)網(wǎng)絡(luò)及各節(jié)點(diǎn)的情況自動(dòng)調(diào)整數(shù)據(jù)下載策略,保證最優(yōu)化的下載。
實(shí)現(xiàn)本發(fā)明所述數(shù)據(jù)下載方法,中心服務(wù)器記錄提供數(shù)據(jù)下載的服務(wù)器地址,還包括以下步驟A、數(shù)據(jù)請(qǐng)求終端向中心服務(wù)器請(qǐng)求下載數(shù)據(jù);B、中心服務(wù)器接收到請(qǐng)求后,記錄當(dāng)前數(shù)據(jù)請(qǐng)求終端的信息;C、中心服務(wù)器判斷是否記錄有數(shù)據(jù)請(qǐng)求終端以外終端的信息,若有,則將所述數(shù)據(jù)請(qǐng)求終端以外的終端作為提供數(shù)據(jù)下載的數(shù)據(jù)提供終端,并向所述數(shù)據(jù)提供終端發(fā)送數(shù)據(jù)下載請(qǐng)求,執(zhí)行步驟D;否則,中心服務(wù)器向數(shù)據(jù)請(qǐng)求終端發(fā)送下載策略,該下載策略指定了向數(shù)據(jù)請(qǐng)求終端提供數(shù)據(jù)下載的服務(wù)器,然后執(zhí)行步驟F;D、接收到所述數(shù)據(jù)下載請(qǐng)求的數(shù)據(jù)提供終端向中心服務(wù)器上報(bào)其節(jié)點(diǎn)信息;E、中心服務(wù)器接收所述的節(jié)點(diǎn)信息,根據(jù)節(jié)點(diǎn)信息分析出下載策略,并發(fā)送給數(shù)據(jù)請(qǐng)求終端;其中,該下載策略指定了向數(shù)據(jù)請(qǐng)求終端提供數(shù)據(jù)下載的數(shù)據(jù)提供終端;F、數(shù)據(jù)請(qǐng)求終端接收中心服務(wù)器發(fā)送的下載策略,連接到下載策略指定的提供數(shù)據(jù)下載的服務(wù)器或數(shù)據(jù)提供終端進(jìn)行數(shù)據(jù)下載。
其中,步驟F后進(jìn)一步包括在數(shù)據(jù)請(qǐng)求終端進(jìn)行數(shù)據(jù)下載的過(guò)程中,定時(shí)返回步驟C直到數(shù)據(jù)下載結(jié)束;或者定時(shí)返回步驟D直到數(shù)據(jù)下載結(jié)束。
其中,所述中心服務(wù)器記錄提供數(shù)據(jù)下載的服務(wù)器地址的步驟包括中心服務(wù)器記錄要下載數(shù)據(jù)名稱的信息,還可記錄要下載數(shù)據(jù)版本的信息,根據(jù)所記錄的信息,檢索出含有該信息的服務(wù)器地址,并進(jìn)行記錄。
其中,步驟D所述節(jié)點(diǎn)信息包括數(shù)據(jù)提供終端當(dāng)前已經(jīng)存儲(chǔ)的數(shù)據(jù)的分片信息;步驟E所述分析出下載策略的步驟包括從所述接收到數(shù)據(jù)下載請(qǐng)求的各個(gè)數(shù)據(jù)提供終端篩選保留含有數(shù)據(jù)請(qǐng)求終端尚未下載的數(shù)據(jù)分片信息的數(shù)據(jù)提供終端,作為指定的向數(shù)據(jù)請(qǐng)求終端提供數(shù)據(jù)下載的數(shù)據(jù)提供終端。
其中,步驟D所述節(jié)點(diǎn)信息進(jìn)一步包括所述接收到數(shù)據(jù)下載請(qǐng)求的數(shù)據(jù)提供終端是否已經(jīng)與數(shù)據(jù)請(qǐng)求終端建立連接;步驟E所述分析出下載策略的步驟進(jìn)一步包括將已經(jīng)與數(shù)據(jù)請(qǐng)求終端建立連接的數(shù)據(jù)提供終端作為篩選保留的數(shù)據(jù)提供終端。
其中,步驟D所述節(jié)點(diǎn)信息進(jìn)一步包括所述接收到數(shù)據(jù)下載請(qǐng)求的數(shù)據(jù)提供終端到中心服務(wù)器的路由信息;步驟E所述分析出下載策略的步驟進(jìn)一步包括中心服務(wù)器根據(jù)數(shù)據(jù)請(qǐng)求終端和各數(shù)據(jù)提供終端的地址和路由信息分析出網(wǎng)絡(luò)結(jié)構(gòu),與數(shù)據(jù)請(qǐng)求終端在同一個(gè)內(nèi)網(wǎng)的數(shù)據(jù)提供終端作為第一優(yōu)先選取篩選保留的數(shù)據(jù)提供終端;與數(shù)據(jù)請(qǐng)求終端不在同一個(gè)內(nèi)網(wǎng)但可以連通的數(shù)據(jù)提供終端作為第二優(yōu)先選取篩選保留的數(shù)據(jù)提供終端;無(wú)法確定出與數(shù)據(jù)請(qǐng)求終端連接關(guān)系的數(shù)據(jù)提供終端作為第三優(yōu)先選取篩選保留的數(shù)據(jù)提供終端。
其中,步驟D所述節(jié)點(diǎn)信息進(jìn)一步包括數(shù)據(jù)提供終端CPU利用率;步驟E所述分析出下載策略的步驟進(jìn)一步包括選擇CPU負(fù)擔(dān)輕的數(shù)據(jù)提供終端作為篩選保留的數(shù)據(jù)提供終端。
其中,步驟E所述的下載策略進(jìn)一步包括指定了向數(shù)據(jù)請(qǐng)求終端提供數(shù)據(jù)下載的服務(wù)器。
還提供了一種數(shù)據(jù)下載系統(tǒng),包括一個(gè)或一個(gè)以上的請(qǐng)求數(shù)據(jù)下載的數(shù)據(jù)請(qǐng)求終端、一個(gè)或一個(gè)以上的提供數(shù)據(jù)下載的服務(wù)器,其特征在于,還包括一個(gè)中心服務(wù)器,其中,中心服務(wù)器用于接收數(shù)據(jù)請(qǐng)求終端的數(shù)據(jù)下載請(qǐng)求,以及記錄提供數(shù)據(jù)下載的服務(wù)器地址和可提供數(shù)據(jù)下載的數(shù)據(jù)提供終端地址,定時(shí)對(duì)數(shù)據(jù)提供終端上報(bào)的節(jié)點(diǎn)信息進(jìn)行分析,并指示數(shù)據(jù)請(qǐng)求終端從分析出的指定的提供數(shù)據(jù)下載的服務(wù)器或數(shù)據(jù)提供終端下載數(shù)據(jù)。
由上述方法可以看出,本發(fā)明提供的數(shù)據(jù)下載方法及系統(tǒng),通過(guò)中心服務(wù)器對(duì)終端定時(shí)上報(bào)的節(jié)點(diǎn)情況進(jìn)行分析,得到較佳下載策略,指示終端的連接、下載。通過(guò)定時(shí)更新下載策略,以達(dá)到最優(yōu)的下載策略,提高下載性能。通過(guò)可以選擇到網(wǎng)內(nèi)終端下載,以及根據(jù)終端狀態(tài)下載,可以盡量避免去連接公網(wǎng),減小公網(wǎng)服務(wù)器的負(fù)荷,并避免公網(wǎng)不穩(wěn)定的影響,而對(duì)于網(wǎng)內(nèi)下載,就更加穩(wěn)定、下載速度更快,化了下載。
圖1為多服務(wù)器和單客戶端連接示意圖。
圖2為本發(fā)明數(shù)據(jù)下載系統(tǒng)示意圖。
圖3為本發(fā)明的數(shù)據(jù)下載流程圖。
圖4為本發(fā)明應(yīng)用于升級(jí)過(guò)程中的流程圖。
圖5為本發(fā)明應(yīng)用于多媒體流實(shí)施傳輸?shù)牧鞒虉D。
具體實(shí)施例方式
如圖2示出的本發(fā)明數(shù)據(jù)下載系統(tǒng)示意圖,包括一個(gè)或一個(gè)以上的請(qǐng)求數(shù)據(jù)下載的數(shù)據(jù)請(qǐng)求終端、一個(gè)或一個(gè)以上的提供數(shù)據(jù)下載的服務(wù)器,本發(fā)明中,在網(wǎng)絡(luò)中增加中心服務(wù)器,中心服務(wù)器用于接收數(shù)據(jù)請(qǐng)求終端的數(shù)據(jù)下載請(qǐng)求,并記錄提供數(shù)據(jù)下載的服務(wù)器地址,以及可提供數(shù)據(jù)下載的數(shù)據(jù)提供終端地址,中心服務(wù)器定時(shí)對(duì)終端上報(bào)的節(jié)點(diǎn)信息進(jìn)行分析,判斷出要從哪些服務(wù)器或數(shù)據(jù)提供終端下載所需要的數(shù)據(jù),對(duì)數(shù)據(jù)下載過(guò)程進(jìn)行控制,實(shí)現(xiàn)下載過(guò)程的優(yōu)化。
如圖3示出的數(shù)據(jù)下載流程圖,本發(fā)明所述終端數(shù)據(jù)的下載方法,主要包括以下步驟步驟301請(qǐng)求數(shù)據(jù)下載的終端A向中心服務(wù)器請(qǐng)求某數(shù)據(jù)的下載,中心服務(wù)器記錄終端A地址。
步驟302--304中心服務(wù)器判斷是否記錄有其他終端的地址,若有,則中心服務(wù)器將所述其他終端作為提供數(shù)據(jù)下載的終端,并向所述其他終端發(fā)送數(shù)據(jù)下載請(qǐng)求,并執(zhí)行步驟305;否則,中心服務(wù)器將指定所記錄的提供數(shù)據(jù)下載的服務(wù)器地址作為下載策略發(fā)送給終端A,并執(zhí)行步驟307。
步驟305接收到數(shù)據(jù)下載請(qǐng)求的終端向中心服務(wù)器上報(bào)其節(jié)點(diǎn)信息,節(jié)點(diǎn)信息包括節(jié)點(diǎn)狀態(tài)信息和下載狀態(tài)信息。
步驟306中心服務(wù)器接收終端上報(bào)的節(jié)點(diǎn)信息,分析從記錄的哪些服務(wù)器或終端下載所需要的數(shù)據(jù)較佳,并將分析出的結(jié)果信息發(fā)送給終端A。這里,將分析出的結(jié)果信息稱為下載策略。
步驟307終端A根據(jù)所接收的信息,對(duì)當(dāng)前的連接、下載進(jìn)行更新。在數(shù)據(jù)下載的過(guò)程中,可以定時(shí)返回步驟302直到數(shù)據(jù)下載結(jié)束;或者定時(shí)返回步驟305直到數(shù)據(jù)下載結(jié)束。對(duì)于定時(shí)返回步驟302,則中心服務(wù)器可以檢測(cè)到在下載過(guò)程中出現(xiàn)的新的提供數(shù)據(jù)下載的其他終端。對(duì)于定時(shí)返回305,則僅對(duì)步驟302已經(jīng)記錄的終端定時(shí)上報(bào)的節(jié)點(diǎn)信息進(jìn)行分析,也就是后面例子提到的所述終端定時(shí)上報(bào)節(jié)點(diǎn)信息的情況。
其中,步驟305所述的節(jié)點(diǎn)狀態(tài)信息包括終端的IP地址,如果存在防火墻,則包含內(nèi)部地址和外部地址,外部地址即內(nèi)部地址轉(zhuǎn)換后連接到公網(wǎng)上的地址;終端到中心服務(wù)器的路由信息,即該終端到中心服務(wù)器所經(jīng)過(guò)的路由節(jié)點(diǎn)信息,可通過(guò)類似traceroute路由跟蹤命令得到。中心服務(wù)器通過(guò)各個(gè)終端上報(bào)的IP地址和路由信息分析出網(wǎng)絡(luò)結(jié)構(gòu),包括終端之間的連接關(guān)系,以及哪些終端是屬于一個(gè)局域網(wǎng)。節(jié)點(diǎn)狀態(tài)信息還包括終端與終端之間連接所使用的TCP/UDP端口、路由信息、連接時(shí)間、終端的CPU利用率和網(wǎng)絡(luò)連接狀況,如當(dāng)前流量。
所述的下載狀態(tài)信息包括下載速率,上傳速率、下載進(jìn)度。其中下載進(jìn)度包括已經(jīng)下載的文件的信息,例如文件的分片總數(shù)量、各分片ID、已經(jīng)下載的分片ID等。若下載的數(shù)據(jù)是實(shí)時(shí)播放的多媒體流,則所述已經(jīng)下載的文件的信息為多媒體流所包含的關(guān)鍵幀總數(shù)量、各關(guān)鍵幀ID,已經(jīng)讀取的關(guān)鍵幀ID等。其中,通過(guò)關(guān)鍵幀分割媒體流可以避免在媒體流播放時(shí)出現(xiàn)畫面馬賽克或嘯音現(xiàn)象。
其中,上面步驟306所述中心服務(wù)器分析出從哪些服務(wù)器或終端下載所需要數(shù)據(jù),包括以下步驟第一步驟中心服務(wù)器根據(jù)各個(gè)終端上報(bào)的下載狀態(tài)信息判斷各終端是否有終端A所需要下載數(shù)據(jù)的分片信息,篩選保留含有所需要下載數(shù)據(jù)分片信息的終端,然后執(zhí)行下一步。若不存在這樣的終端,則將中心服務(wù)器記錄的服務(wù)器的地址作為分析后的結(jié)果信息,并執(zhí)行第四步驟。
第二步驟判斷篩選保留的各個(gè)終端是否已經(jīng)存在與終端A的連接信息,若有,則進(jìn)一步在存在連接信息的各個(gè)終端中選擇出傳輸速率高的終端,將該終端作為中心服務(wù)器的分析結(jié)果信息,執(zhí)行步驟四。本步驟目的是要選擇與終端A已經(jīng)存在連接的一個(gè)終端作為數(shù)據(jù)提供方,以保證終端A向該終端發(fā)起下載請(qǐng)求時(shí),必定可以建立連接。若沒(méi)有存在所述連接信息,則執(zhí)行下一步。
第三步驟中心服務(wù)器根據(jù)節(jié)點(diǎn)狀態(tài)信息分析篩選保留的各個(gè)終端與終端A的網(wǎng)絡(luò)結(jié)構(gòu)特征,將篩選保留的終端分為三類,第一類是分析后認(rèn)為與終端A在一個(gè)局域網(wǎng),為最優(yōu)先選擇的終端;第二類是分析后認(rèn)為與終端A不在同一個(gè)局域網(wǎng),但可以連通的;第三類是分析后無(wú)法確定出與終端A的連接關(guān)系。由于第三類難以確認(rèn)是否可以與終端A連通,因此為最低優(yōu)先級(jí)選擇的終端。另外,在選擇了一類終端后,還可以根據(jù)該類中各個(gè)終端上報(bào)的其CPU利用率選擇負(fù)擔(dān)最輕的終端作為數(shù)據(jù)提供方,即作為分析后的結(jié)果信息,返回給請(qǐng)求數(shù)據(jù)下載終端。
第四步驟中心服務(wù)器將分析后的結(jié)果,即下載策略發(fā)送給終端A。
以上只是給出了一種選擇服務(wù)器或哪些終端下載數(shù)據(jù)的實(shí)施例,具體的選擇方法和各個(gè)終端上報(bào)的節(jié)點(diǎn)信息有關(guān),并不局限于上述步驟。另外,在選擇終端時(shí)也可以選擇多個(gè)終端作為返回的結(jié)果,這樣終端A就可以從多個(gè)終端下載數(shù)據(jù)。不難理解,也可以同時(shí)選擇多個(gè)終端和服務(wù)器,這種情況下,則終端A可以同時(shí)從這些終端和服務(wù)器上下載數(shù)據(jù)。
下面以該數(shù)據(jù)下載方法應(yīng)用于網(wǎng)絡(luò)中多個(gè)客戶端軟件自動(dòng)升級(jí)的過(guò)程進(jìn)行說(shuō)明。參見圖4示出的流程圖,進(jìn)行詳細(xì)敘述。
當(dāng)軟件有新版本發(fā)布時(shí),版本信息記錄在中心服務(wù)器上,中心服務(wù)器根據(jù)版本信息搜索含有該版本軟件的服務(wù)器,并記錄這些服務(wù)器IP。一般的,這些服務(wù)器均為公網(wǎng)上的、運(yùn)營(yíng)商所提供的。而客戶端軟件預(yù)先記錄的不再是某服務(wù)器的地址,而是中心服務(wù)器的地址。客戶端軟件自動(dòng)升級(jí)過(guò)程包括以下步驟步驟401客戶端A根據(jù)記錄的中心服務(wù)器地址,定時(shí)建立與該中心服務(wù)器的通信,查詢中心服務(wù)器上是否有更新的版本信息。當(dāng)查詢到中心服務(wù)器上存在更新的版本信息時(shí),客戶端A向中心服務(wù)器發(fā)起升級(jí)請(qǐng)求。
步驟402--404中心服務(wù)器收到升級(jí)請(qǐng)求后,將客戶端A地址加入所記錄的節(jié)點(diǎn)列表中。然后判斷所述節(jié)點(diǎn)列表是否記錄有其他客戶端地址,若有,則向該表內(nèi)記錄的其他各個(gè)終端發(fā)送升級(jí)請(qǐng)求,并執(zhí)行步驟405。若節(jié)點(diǎn)列表中沒(méi)有記錄其他客戶端地址,則將記錄的服務(wù)器地址作為軟件下載提供方,作為下載策略,發(fā)送給客戶端A,并執(zhí)行步驟407。
其中,所述節(jié)點(diǎn)列表為預(yù)先在中心服務(wù)器上設(shè)置的,其結(jié)構(gòu)可為<FileName.Version,Client IP>。節(jié)點(diǎn)列表用于記錄可以提供所述版本軟件下載的客戶端地址,節(jié)點(diǎn)列表中客戶端為正在下載或者已經(jīng)結(jié)束下載的客戶端,這些客戶端可以將已經(jīng)下載的數(shù)據(jù)分片提供給其他尚未下載所述數(shù)據(jù)分片的客戶端下載。
步驟405接收到升級(jí)下載請(qǐng)求的客戶端定時(shí)(如每30秒)向中心服務(wù)器上報(bào)其節(jié)點(diǎn)狀態(tài)信息和下載狀態(tài)信息,這些信息可以參見前面所述的內(nèi)容。
步驟406中心服務(wù)器接收所述節(jié)點(diǎn)狀態(tài)信息和下載狀態(tài)信息,進(jìn)行分析并生成下載策略,發(fā)送給客戶端A。分析生成下載策略的過(guò)程可以參見前面所述的內(nèi)容。
步驟407客戶端A接收中心服務(wù)器發(fā)送的下載策略,根據(jù)下載策略更新當(dāng)前的連接和下載,連接到下載策略指定的地址繼續(xù)進(jìn)行軟件下載。
本例中定時(shí)返回步驟405,也就是說(shuō),在下載過(guò)程中,步驟402所記錄的各個(gè)終端會(huì)定時(shí)上報(bào)節(jié)點(diǎn)狀態(tài)信息和下載狀態(tài)信息提供給中心服務(wù)器,由中心服務(wù)器定時(shí)更新下載策略指示客戶端A下載數(shù)據(jù),直到升級(jí)完畢。
下面再將該數(shù)據(jù)傳輸方法應(yīng)用于多媒體數(shù)據(jù)的實(shí)時(shí)傳輸過(guò)程進(jìn)行說(shuō)明,這種情況下,中心服務(wù)器記錄的是多媒體文件名,并根據(jù)該文件名搜索記錄含有該文件的流媒體服務(wù)器IP。參見圖5示出的流程圖,包括以下步驟步驟501客戶端A向中心服務(wù)器請(qǐng)求播放視頻或者音頻多媒體數(shù)據(jù),向中心服務(wù)器發(fā)送媒體播放請(qǐng)求信息。
步驟502--504中心服務(wù)器收到播放請(qǐng)求信息后,在節(jié)點(diǎn)列表中記錄客戶端A地址。然后判斷該節(jié)點(diǎn)列表中是否記錄有其他客戶端地址,若有則向該表內(nèi)記錄的其他各個(gè)客戶端發(fā)送媒體播放請(qǐng)求信息,并執(zhí)行步驟505。若節(jié)點(diǎn)列表中沒(méi)有記錄有其他客戶端地址,則將記錄的服務(wù)器地址作為媒體流提供方,作為下載策略,發(fā)送給客戶端A,并執(zhí)行步驟507。
其中,該節(jié)點(diǎn)列表為預(yù)先在中心服務(wù)器上設(shè)置的,其結(jié)構(gòu)可為<FileName,Client_IP>。其原理與上例相同,不再詳述。
步驟505接收到媒體播放請(qǐng)求的客戶端定時(shí)向中心服務(wù)器上報(bào)其節(jié)點(diǎn)狀態(tài)信息和下載狀態(tài)信息。該步驟基本與上例的步驟405相同,只是這里下載狀態(tài)信息中采用的是關(guān)鍵幀對(duì)媒體流分割,而不是采用分片方式。
步驟506中心服務(wù)器接收所述節(jié)點(diǎn)狀態(tài)信息和下載狀態(tài)信息,進(jìn)行分析并生成下載策略,發(fā)送給客戶端A。分析生成下載策略的過(guò)程可以參見前面所述的內(nèi)容,并且由于實(shí)時(shí)播放的時(shí)間性要求,要明確的指出下一關(guān)鍵幀媒體流從哪里讀取。
步驟507客戶端A接收中心服務(wù)器發(fā)送的下載策略,根據(jù)下載策略更新當(dāng)前的媒體流連接,連接到下載策略指定的一個(gè)地址去下載播放該地址上的當(dāng)前指定的多媒體數(shù)據(jù)的幀ID。并且將播放的幀保存在本地,以供其他客戶端發(fā)起對(duì)該媒體數(shù)據(jù)的播放請(qǐng)求時(shí),中心服務(wù)器可以將其請(qǐng)求連接到客戶端A,將A作為媒體流數(shù)據(jù)提供方。
從以上可以看出,本發(fā)明提供的數(shù)據(jù)下載方法,中心服務(wù)器可以定時(shí)根據(jù)客戶端上報(bào)的網(wǎng)絡(luò)情況等節(jié)點(diǎn)信息更新下載策略,指示客戶端進(jìn)行下載過(guò)程的更新,例如連接到新的數(shù)據(jù)提供端進(jìn)行后續(xù)時(shí)間段的數(shù)據(jù)下載,以實(shí)現(xiàn)下載過(guò)程的優(yōu)化。例如在指示客戶端A向服務(wù)器下載數(shù)據(jù)的過(guò)程中,同一局域網(wǎng)內(nèi)某終端B此時(shí)上報(bào)中心服務(wù)器表示其下載了含有終端A所要下載的數(shù)據(jù)分片時(shí),則中心服務(wù)器下載策略可以改為指示終端A向所述終端B下載這些所需數(shù)據(jù)分片。從同一局域網(wǎng)內(nèi)下載必然比從服務(wù)器下載要快,并且網(wǎng)絡(luò)穩(wěn)定。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)下載方法,其特征在于,中心服務(wù)器記錄提供數(shù)據(jù)下載的服務(wù)器地址,包括以下步驟A、數(shù)據(jù)請(qǐng)求終端向中心服務(wù)器請(qǐng)求下載數(shù)據(jù);B、中心服務(wù)器接收到請(qǐng)求后,記錄當(dāng)前數(shù)據(jù)請(qǐng)求終端的信息;C、中心服務(wù)器判斷是否記錄有數(shù)據(jù)請(qǐng)求終端以外終端的信息,若有,則將所述數(shù)據(jù)請(qǐng)求終端以外的終端作為提供數(shù)據(jù)下載的數(shù)據(jù)提供終端,并向所述數(shù)據(jù)提供終端發(fā)送數(shù)據(jù)下載請(qǐng)求,執(zhí)行步驟D;否則,中心服務(wù)器向數(shù)據(jù)請(qǐng)求終端發(fā)送下載策略,執(zhí)行步驟F;其中,該下載策略指定了向數(shù)據(jù)請(qǐng)求終端提供數(shù)據(jù)下載的服務(wù)器;D、接收到所述數(shù)據(jù)下載請(qǐng)求的數(shù)據(jù)提供終端向中心服務(wù)器上報(bào)其節(jié)點(diǎn)信息;E、中心服務(wù)器接收所述的節(jié)點(diǎn)信息,根據(jù)節(jié)點(diǎn)信息分析出下載策略,并發(fā)送給數(shù)據(jù)請(qǐng)求終端;其中,該下載策略指定了向數(shù)據(jù)請(qǐng)求終端提供數(shù)據(jù)下載的數(shù)據(jù)提供終端;F、數(shù)據(jù)請(qǐng)求終端接收中心服務(wù)器發(fā)送的下載策略,連接到下載策略指定的提供數(shù)據(jù)下載的服務(wù)器或數(shù)據(jù)提供終端進(jìn)行數(shù)據(jù)下載。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟F后進(jìn)一步包括在數(shù)據(jù)請(qǐng)求終端進(jìn)行數(shù)據(jù)下載的過(guò)程中,定時(shí)返回步驟C直到數(shù)據(jù)下載結(jié)束;或者定時(shí)返回步驟D直到數(shù)據(jù)下載結(jié)束。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述中心服務(wù)器記錄提供數(shù)據(jù)下載的服務(wù)器地址的步驟包括中心服務(wù)器記錄要下載數(shù)據(jù)名稱的信息,根據(jù)所記錄的信息,檢索出含有該信息的服務(wù)器地址,并進(jìn)行記錄。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,中心服務(wù)器還記錄要下載數(shù)據(jù)版本的信息。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟D所述節(jié)點(diǎn)信息包括數(shù)據(jù)提供終端當(dāng)前已經(jīng)存儲(chǔ)的數(shù)據(jù)的分片信息;步驟E所述分析出下載策略的步驟包括從所述接收到數(shù)據(jù)下載請(qǐng)求的各個(gè)數(shù)據(jù)提供終端篩選保留含有數(shù)據(jù)請(qǐng)求終端尚未下載的數(shù)據(jù)分片信息的數(shù)據(jù)提供終端,作為指定的向數(shù)據(jù)請(qǐng)求終端提供數(shù)據(jù)下載的數(shù)據(jù)提供終端。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟D所述節(jié)點(diǎn)信息進(jìn)一步包括所述接收到數(shù)據(jù)下載請(qǐng)求的數(shù)據(jù)提供終端是否已經(jīng)與數(shù)據(jù)請(qǐng)求終端建立連接;步驟E所述分析出下載策略的步驟進(jìn)一步包括將已經(jīng)與數(shù)據(jù)請(qǐng)求終端建立連接的數(shù)據(jù)提供終端作為篩選保留的數(shù)據(jù)提供終端。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟D所述節(jié)點(diǎn)信息進(jìn)一步包括所述接收到數(shù)據(jù)下載請(qǐng)求的數(shù)據(jù)提供終端到中心服務(wù)器的路由信息;步驟E所述分析出下載策略的步驟進(jìn)一步包括中心服務(wù)器根據(jù)數(shù)據(jù)請(qǐng)求終端和各數(shù)據(jù)提供終端的地址和路由信息分析出網(wǎng)絡(luò)結(jié)構(gòu),與數(shù)據(jù)請(qǐng)求終端在同一個(gè)內(nèi)網(wǎng)的數(shù)據(jù)提供終端作為第一優(yōu)先選取篩選保留的數(shù)據(jù)提供終端;與數(shù)據(jù)請(qǐng)求終端不在同一個(gè)內(nèi)網(wǎng)但可以連通的數(shù)據(jù)提供終端作為第二優(yōu)先選取篩選保留的數(shù)據(jù)提供終端;無(wú)法確定出與數(shù)據(jù)請(qǐng)求終端連接關(guān)系的數(shù)據(jù)提供終端作為第三優(yōu)先選取篩選保留的數(shù)據(jù)提供終端。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟D所述節(jié)點(diǎn)信息進(jìn)一步包括數(shù)據(jù)提供終端CPU利用率;步驟E所述分析出下載策略的步驟進(jìn)一步包括選擇CPU負(fù)擔(dān)輕的數(shù)據(jù)提供終端作為篩選保留的數(shù)據(jù)提供終端。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟E所述的下載策略進(jìn)一步包括指定了向數(shù)據(jù)請(qǐng)求終端提供數(shù)據(jù)下載的服務(wù)器。
10.一種數(shù)據(jù)下載系統(tǒng),包括一個(gè)或一個(gè)以上的請(qǐng)求數(shù)據(jù)下載的數(shù)據(jù)請(qǐng)求終端、一個(gè)或一個(gè)以上的提供數(shù)據(jù)下載的服務(wù)器,其特征在于,還包括一個(gè)中心服務(wù)器,中心服務(wù)器用于接收數(shù)據(jù)請(qǐng)求終端的數(shù)據(jù)下載請(qǐng)求,以及記錄提供數(shù)據(jù)下載的服務(wù)器地址和可提供數(shù)據(jù)下載的數(shù)據(jù)提供終端地址,定時(shí)對(duì)數(shù)據(jù)提供終端上報(bào)的節(jié)點(diǎn)信息進(jìn)行分析,并指示數(shù)據(jù)請(qǐng)求終端從分析出的指定的提供數(shù)據(jù)下載的服務(wù)器或數(shù)據(jù)提供終端下載數(shù)據(jù)。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)下載方法,中心服務(wù)器記錄提供數(shù)據(jù)下載的服務(wù)器,包括首先,數(shù)據(jù)請(qǐng)求終端向中心服務(wù)器請(qǐng)求下載數(shù)據(jù);然后,中心服務(wù)器接收請(qǐng)求后記錄數(shù)據(jù)請(qǐng)求終端的終端信息,判斷是否記錄有其他終端,若有,則向所述其他終端索取其節(jié)點(diǎn)信息;并根據(jù)獲得的節(jié)點(diǎn)信息分析出下載策略,發(fā)送給數(shù)據(jù)請(qǐng)求終端;若中心服務(wù)器沒(méi)有記錄其他終端信息,則直接生成相應(yīng)下載策略;然后,數(shù)據(jù)請(qǐng)求終端根據(jù)接收的下載策略,連接到下載策略指定的服務(wù)器或數(shù)據(jù)提供終端進(jìn)行數(shù)據(jù)下載。還提供了實(shí)現(xiàn)該下載方法的系統(tǒng),包括中心服務(wù)器、提供數(shù)據(jù)下載的服務(wù)器和各終端。應(yīng)用本發(fā)明,可根據(jù)網(wǎng)絡(luò)及各終端的情況自動(dòng)調(diào)整數(shù)據(jù)下載策略,優(yōu)化了下載。
文檔編號(hào)G06F9/445GK1725691SQ200410070888
公開日2006年1月25日 申請(qǐng)日期2004年7月23日 優(yōu)先權(quán)日2004年7月23日
發(fā)明者梁柱, 盛馥鐘, 張寶和, 劉念 申請(qǐng)人:騰訊科技(深圳)有限公司