欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)分發(fā)方法及裝置的制作方法

文檔序號(hào):7764157閱讀:294來源:國知局
專利名稱:一種數(shù)據(jù)分發(fā)方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及信息處理技術(shù),尤其涉及一種數(shù)據(jù)分發(fā)的方法及裝置。
背景技術(shù)
目前,經(jīng)常需要將在一臺(tái)服務(wù)器存在特定數(shù)據(jù),傳輸?shù)饺舾蓚€(gè)客戶端上,這就是數(shù)據(jù)分發(fā)。數(shù)據(jù)分發(fā)后,經(jīng)常會(huì)再次被更改,這樣需要再次分發(fā)數(shù)據(jù)至所有客戶端上??蛻舳瞬灰欢ㄈ吭诰€,也可能會(huì)增加新的客戶端,因此導(dǎo)致每次分發(fā)數(shù)據(jù)時(shí)各客戶端并不盡相同。數(shù)據(jù)分發(fā)的一個(gè)典型的應(yīng)用場(chǎng)景是在報(bào)社應(yīng)用中,需要將報(bào)刊數(shù)據(jù)分發(fā)到多臺(tái)客戶端上,而報(bào)刊數(shù)據(jù)通常不是一次定稿,而是要經(jīng)常多次的修改,這樣就需要進(jìn)行數(shù)據(jù)多次分發(fā)。當(dāng)報(bào)社端報(bào)刊數(shù)據(jù)發(fā)生變化時(shí),要通知在線客戶端要進(jìn)行數(shù)據(jù)同步更新。另外當(dāng)離線客戶端上線時(shí),服務(wù)器需要提供相應(yīng)的更新包。目前進(jìn)行數(shù)據(jù)分發(fā)的方法有如下幾種1、每次分發(fā)數(shù)據(jù)都傳輸完整的數(shù)據(jù)包。該方法雖然實(shí)現(xiàn)簡(jiǎn)單,但是每次傳輸數(shù)據(jù)量大,對(duì)于只更新了一點(diǎn)數(shù)據(jù)的情況,也需要把所有數(shù)據(jù)向所有客戶端傳輸一遍,浪費(fèi)帶寬同時(shí)更新慢。例如,在專利200610060168. 7中介紹了 “一種實(shí)現(xiàn)網(wǎng)絡(luò)通訊錄數(shù)據(jù)同步的方法”。
該方法通過比較服務(wù)器和客戶端的數(shù)據(jù)版本號(hào),若不同則傳送全部數(shù)據(jù)。此方法實(shí)現(xiàn)簡(jiǎn)單, 但只使用于類似通訊簿等類似數(shù)據(jù)量小的場(chǎng)景,若數(shù)據(jù)量較大,則會(huì)增加網(wǎng)絡(luò)壓力。2、每次分發(fā)數(shù)據(jù)時(shí),都首先獲取客戶端的數(shù)據(jù)信息,再根據(jù)獲取的數(shù)據(jù)信息計(jì)算每個(gè)客戶端需要傳輸?shù)臄?shù)據(jù)。該方法雖然傳輸?shù)臄?shù)據(jù)量小,但是每個(gè)客戶端都需要記錄數(shù)據(jù)信息,當(dāng)數(shù)據(jù)量較大時(shí)此信息將十分龐大,并且每次服務(wù)器都需要實(shí)時(shí)計(jì)算出每個(gè)客戶端需要更新的數(shù)據(jù), 加重了服務(wù)器端的負(fù)擔(dān)。例如,在專利031131M. 7中介紹了“一種數(shù)據(jù)同步方法”。在該方法中,發(fā)送方根據(jù)接收方的反饋和自己的數(shù)據(jù)更改情況決定要同步的數(shù)據(jù)和數(shù)據(jù)量,然后進(jìn)行數(shù)據(jù)的相互傳輸,傳輸結(jié)束后,接收方進(jìn)行數(shù)據(jù)的加載。該方法提高了數(shù)據(jù)同步的性能,又保證了數(shù)據(jù)的一致性和完整性,但是每次數(shù)據(jù)傳輸前,都要先獲得接收方的數(shù)據(jù)參數(shù),每個(gè)接收方都需要維護(hù)數(shù)據(jù)的狀態(tài),同時(shí)當(dāng)客戶端數(shù)據(jù)較多時(shí),每次發(fā)送方計(jì)算需要發(fā)送的數(shù)據(jù)量也會(huì)稱為一個(gè)瓶頸,因此該方法不適用于客戶端數(shù)據(jù)較多的場(chǎng)景。3、每次分發(fā)數(shù)據(jù),根據(jù)服務(wù)器端記錄的客戶端版本信息,發(fā)送相應(yīng)的更新包。該方法傳輸數(shù)據(jù)量小,并且服務(wù)器端不需要復(fù)雜的計(jì)算。但是服務(wù)器端需要維護(hù)數(shù)據(jù)的各個(gè)版本以及版本之間的更新包,占用磁盤空間大,其次實(shí)現(xiàn)復(fù)雜。例如,在專利2005100850M. 3中介紹了 “一種實(shí)現(xiàn)客戶端數(shù)據(jù)和服務(wù)器端數(shù)據(jù)同步的方法”。該方法在服務(wù)器和客戶端都存在數(shù)據(jù)標(biāo)識(shí)來記錄數(shù)據(jù)信息,每次同步數(shù)據(jù)都通過比較兩個(gè)數(shù)據(jù)標(biāo)識(shí)文件來計(jì)算出更新數(shù)據(jù)。好處是每次更新數(shù)據(jù)量小,缺點(diǎn)同樣是不適合客戶端較多并且數(shù)據(jù)較多的場(chǎng)景,容易使服務(wù)器端超負(fù)荷。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)分發(fā)方法及裝置,以實(shí)現(xiàn)整體上減小傳輸?shù)臄?shù)據(jù)量, 并減輕服務(wù)器維護(hù)的負(fù)擔(dān)。一種數(shù)據(jù)分發(fā)方法,包括數(shù)據(jù)版本更新后,開始計(jì)時(shí),在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包并重新開始計(jì)時(shí);在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到客戶端的更新請(qǐng)求時(shí),將所述第一數(shù)據(jù)包和包括更新前版本數(shù)據(jù)的原第二數(shù)據(jù)包合并為新的第二數(shù)據(jù)包,并刪除所述第一數(shù)據(jù)包和所述原第二數(shù)據(jù)包;以及在數(shù)據(jù)包合并后接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送所述新的第二數(shù)據(jù)包。一種數(shù)據(jù)分發(fā)裝置,包括第一更新單元,用于在數(shù)據(jù)版本更新后,開始計(jì)時(shí),在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包并重新開始計(jì)時(shí);合并單元,用于在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到客戶端的更新請(qǐng)求時(shí),將所述第一數(shù)據(jù)包和包括更新前版本數(shù)據(jù)的原第二數(shù)據(jù)包合并為新的第二數(shù)據(jù)包,并刪除所述第一數(shù)據(jù)包和所述原第二數(shù)據(jù)包;第二更新單元,用于在數(shù)據(jù)包合并后接收到客戶端的更新請(qǐng)求時(shí),向所述客戶端發(fā)送所述新的第二數(shù)據(jù)包。本發(fā)明實(shí)施例提供一種數(shù)據(jù)分發(fā)方法及裝置,在進(jìn)行數(shù)據(jù)版本更新時(shí),首先生成更新包,發(fā)送給客戶端進(jìn)行數(shù)據(jù)版本的更新,在客戶端下載量減少,服務(wù)器空閑時(shí),將更新包和原始數(shù)據(jù)包合并為新的數(shù)據(jù)版本壓縮包,刪除原始數(shù)據(jù)包和更新包,由于在大量客戶端進(jìn)行更新時(shí),給客戶端發(fā)送更新包,整體上減小了傳輸?shù)臄?shù)據(jù)量,而在更新高峰渡過以后,合并為新的數(shù)據(jù)版本壓縮包,可以便于服務(wù)器的管理,減輕了服務(wù)器維護(hù)的負(fù)擔(dān)。


圖1為本發(fā)明實(shí)施例中數(shù)據(jù)分發(fā)方法的流程示意圖;圖2-圖4為本發(fā)明實(shí)施例中的數(shù)據(jù)包合并示意圖;圖5為本發(fā)明實(shí)施例中數(shù)據(jù)分發(fā)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供一種數(shù)據(jù)分發(fā)方法和裝置,利用了客戶端下載的規(guī)律進(jìn)行數(shù)據(jù)分發(fā)的調(diào)整,在剛剛進(jìn)行更新時(shí),大量客戶端都需要更新,此時(shí)向客戶端發(fā)送包括更新數(shù)據(jù)的更新包無疑會(huì)減少客戶端下載量,減輕網(wǎng)絡(luò)負(fù)擔(dān),而在更新一段時(shí)間后,需要進(jìn)行更新的客戶端逐漸減少,此時(shí)將更新包和原始的數(shù)據(jù)包合并為新的數(shù)據(jù)包,則可以便于服務(wù)器對(duì)數(shù)據(jù)包進(jìn)行管理,進(jìn)而減輕服務(wù)器維護(hù)的負(fù)擔(dān)。如圖1所示,本發(fā)明實(shí)施例提供的數(shù)據(jù)分發(fā)方法包括
步驟S101、在數(shù)據(jù)版本更新后,開始計(jì)時(shí),在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包,即更新包,并重新開始計(jì)時(shí);步驟S102、在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到客戶端的更新請(qǐng)求時(shí),將第一數(shù)據(jù)包和包括更新前版本數(shù)據(jù)的原第二數(shù)據(jù)包合并為新的第二數(shù)據(jù)包,并刪除第一數(shù)據(jù)包和原第二數(shù)據(jù)包;步驟S103、在數(shù)據(jù)包合并后接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送新的第二數(shù)據(jù)包。在進(jìn)行數(shù)據(jù)包合并時(shí),通常將第一數(shù)據(jù)包中的數(shù)據(jù)覆蓋或增加到原第二數(shù)據(jù)包中,使得生成的新的第二數(shù)據(jù)包中的數(shù)據(jù)包括原第二數(shù)據(jù)包中的數(shù)據(jù),并在原第二數(shù)據(jù)包的基礎(chǔ)上根據(jù)第一數(shù)據(jù)包中的數(shù)據(jù)內(nèi)容進(jìn)行了更新。為便于管理數(shù)據(jù)包,可以采用在數(shù)據(jù)包中設(shè)置前置數(shù)據(jù)包的方式來記載應(yīng)用該數(shù)據(jù)包的客戶端的版本號(hào),此時(shí),數(shù)據(jù)包共包括該數(shù)據(jù)包的版本號(hào)、前置數(shù)據(jù)包和數(shù)據(jù)包本體,前置數(shù)據(jù)包中記載了應(yīng)用該數(shù)據(jù)包的客戶端的版本號(hào),數(shù)據(jù)包本體記載了數(shù)據(jù)包數(shù)據(jù), 這樣,客戶端在接收到數(shù)據(jù)包后,只要先獲得前置數(shù)據(jù)包中的版本號(hào),再與自身應(yīng)用的版本號(hào)進(jìn)行比較,即可確定該數(shù)據(jù)包是否可以使用。在步驟S102中,在進(jìn)行數(shù)據(jù)包合并后形成新的第二數(shù)據(jù)包,由于新的第二數(shù)據(jù)包仍是可以在原第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)基礎(chǔ)上使用的,所以新的第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)仍是原第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào),若數(shù)據(jù)包可以使用在從未接收過該系列數(shù)據(jù)的客戶端時(shí),數(shù)據(jù)包的前置數(shù)據(jù)包可以為空,或者為預(yù)先設(shè)定的值, 當(dāng)原第二數(shù)據(jù)包的前置數(shù)據(jù)包為空時(shí),新的第二數(shù)據(jù)包的前置數(shù)據(jù)包也為空。下面通過一個(gè)具體的實(shí)施例來說明本發(fā)明實(shí)施例提供的數(shù)據(jù)分發(fā)方法,如圖2所
示,初始時(shí),數(shù)據(jù)A中包括1. xml、2. jpg、3. jpg........9. jpg幾個(gè)文件,相應(yīng)的數(shù)據(jù)包版
本號(hào)為001,即圖2中的A001. zip,其前置數(shù)據(jù)包為空,數(shù)據(jù)包本體中包括了 1. xml、2. jpg、
3. jpg........9. jpg全部數(shù)據(jù)A的文件,當(dāng)客戶端下載數(shù)據(jù)A時(shí),就根據(jù)客戶端的下載請(qǐng)
求向客戶端發(fā)送A001. zip數(shù)據(jù)包。而后,數(shù)據(jù)A中的1. xml和3. jpg發(fā)生了變化,服務(wù)器相應(yīng)的生成更新包A002. zip,更新包A002. zip的前置數(shù)據(jù)包為001,數(shù)據(jù)包本體包括了變化后的1. xml和3. jpg,在客戶端請(qǐng)求更新時(shí),根據(jù)客戶端的更新請(qǐng)求,若客戶端當(dāng)前版本為001,則向客戶端發(fā)送更新包A002.zip,若客戶端當(dāng)前版本為空,則向客戶端發(fā)送A001. zip數(shù)據(jù)包和更新包A002. zip。若數(shù)據(jù)A再發(fā)生變化,例如其中的1. xml和9. jpg發(fā)生了變化,服務(wù)器還可以相應(yīng)的生成更新包A003. zip,更新包A003. zip的前置數(shù)據(jù)包為002,數(shù)據(jù)包本體包括了變化后的1. xml和9. jpg,在客戶端請(qǐng)求更新時(shí),根據(jù)客戶端的更新請(qǐng)求,若客戶端當(dāng)前版本為002,向客戶端發(fā)送更新包A003. zip,若客戶端當(dāng)前版本為001,則向客戶端發(fā)送更新包 A002. zip和更新包A003. zip,若客戶端當(dāng)前版本為空,則向客戶端發(fā)送A001. zip數(shù)據(jù)包、 更新包A002. zip和更新包A003. zip。在服務(wù)器空閑時(shí),服務(wù)器空閑可以通過服務(wù)器已經(jīng)在設(shè)定的時(shí)間長度內(nèi)沒有接收到客戶端的更新請(qǐng)求來判定,此時(shí)可以將數(shù)據(jù)包A001. zip、更新包A002.zip和更新包 A003. zip合并為一個(gè)新的數(shù)據(jù)包,并刪除原來的A001. zip、A002. zip和A003. zip,新的數(shù)據(jù)包的版本號(hào)采用最高版本號(hào),所以新的數(shù)據(jù)包為A003.zip,新的數(shù)據(jù)包的前置數(shù)據(jù)包
為空,其數(shù)據(jù)包本體包括了 l.xml、2. jpg、3. jpg........9. jpg全部數(shù)據(jù)A的文件,其中
1. xml、3. jpg和9. jpg為經(jīng)過更新后的文件,這樣在后續(xù)接收到客戶端的更新請(qǐng)求時(shí),都向客戶端發(fā)送合并后生成的數(shù)據(jù)包A003. zip。在該實(shí)施例中,更新包A002. zip和更新包A003. zip都是前文中所說的第一數(shù)據(jù)包,而A001. zip是原第二數(shù)據(jù)包,合并生成的數(shù)據(jù)包A003. zip則是新的第二數(shù)據(jù)包。當(dāng)然,如果服務(wù)器在發(fā)布更新包A002. zip之后也出現(xiàn)了服務(wù)器空閑,也可以將數(shù)據(jù)包A001. zip和更新包A002. zip合并為新的數(shù)據(jù)包A002. zip,再次更新后,再由新的數(shù)據(jù)包A002. zip和更新包A003. zip合并為新的數(shù)據(jù)包A003. zip,如圖3所示。更進(jìn)一步的,為便于服務(wù)器的管理,在服務(wù)器中存在多個(gè)第一數(shù)據(jù)包時(shí),可以針對(duì)每個(gè)第一數(shù)據(jù)包進(jìn)行判斷,并在一定時(shí)間內(nèi)未接收到與該第一數(shù)據(jù)包相關(guān)的更新請(qǐng)求時(shí), 對(duì)該第一數(shù)據(jù)包進(jìn)行合并。此時(shí),可在判斷服務(wù)器是否空閑時(shí)進(jìn)行相對(duì)的判斷,統(tǒng)計(jì)客戶端發(fā)送的更新請(qǐng)求,對(duì)于每個(gè)第一數(shù)據(jù)包,如果在設(shè)定的時(shí)間長度內(nèi)接收到版本號(hào)與該第一數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)相同的客戶端的更新請(qǐng)求,則重新計(jì)時(shí),如果在設(shè)定的時(shí)間長度內(nèi),都沒有版本號(hào)與該第一數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)相同的客戶端要求更新,則可以將該第一數(shù)據(jù)包與版本號(hào)低于該第一數(shù)據(jù)包的數(shù)據(jù)包進(jìn)行合并。仍以如圖2所示的例子進(jìn)行說明,如果在設(shè)定的時(shí)間長度內(nèi),沒有版本號(hào)為001的客戶端要求更新,那么即使接收到版本號(hào)為002的客戶端發(fā)送的更新請(qǐng)求,也可以按照?qǐng)D3中所示的合并方式,先將數(shù)據(jù)包A001. zip和更新包A002. zip合并為新的數(shù)據(jù)包A002. zip,以進(jìn)一步便于服務(wù)器進(jìn)行數(shù)據(jù)包的管理。為了避免當(dāng)數(shù)據(jù)量較大的時(shí)候,所生成的第二數(shù)據(jù)包過大給用戶下載造成困擾, 還可以在第二數(shù)據(jù)包的大小達(dá)到設(shè)定閾值時(shí),不再繼續(xù)合并,將第二數(shù)據(jù)包存儲(chǔ)為第三數(shù)據(jù)包,并刪除第二數(shù)據(jù)包,當(dāng)接收到客戶端的更新請(qǐng)求時(shí),根據(jù)客戶端的版本號(hào),向客戶端發(fā)送版本號(hào)高于客戶端版本號(hào)的所有數(shù)據(jù)包。這些數(shù)據(jù)包的前置數(shù)據(jù)包的版本號(hào)可能高于客戶端版本號(hào),也可能與客戶端的版本號(hào)相同,也有可能低于客戶端的版本號(hào)但與客戶端的版本號(hào)最接近。若設(shè)置數(shù)據(jù)包大小的閾值為10M,那么當(dāng)?shù)诙?shù)據(jù)包達(dá)到IOM時(shí),則將該第二數(shù)據(jù)包存儲(chǔ)為第三數(shù)據(jù)包,再需要合并更新包時(shí),由于不存在第二數(shù)據(jù)包,則直接由一個(gè)或多個(gè)第一數(shù)據(jù)包合并存儲(chǔ)為第二數(shù)據(jù)包。例如,如圖4所示,若服務(wù)器需要分發(fā)數(shù)據(jù)A,初始時(shí)第二數(shù)據(jù)包A001. zip大小為7M,用于更新的第一數(shù)據(jù)包A002. zip大小為4M,合并后的第二數(shù)據(jù)包A002. zip大小為 11M,達(dá)到了預(yù)先設(shè)定的閾值,則可以將第二數(shù)據(jù)包A002. zip另存為第三數(shù)據(jù)包A002. zip, 再需要更新時(shí),若用于更新的第一數(shù)據(jù)包A003. zip大小為3M,則在進(jìn)行數(shù)據(jù)包合并時(shí),第三數(shù)據(jù)包A002. zip不參與合并,合并后生成新的第二數(shù)據(jù)包A003. zip,大小為3M,若用于更新的第一數(shù)據(jù)包A004. zip大小為4M,用于更新的第一數(shù)據(jù)包A005. zip大小為3M,則第二數(shù)據(jù)包A003. zip、第一數(shù)據(jù)包A004. zip和第一數(shù)據(jù)包A005. zip合并后生成的新的第二數(shù)據(jù)包A005. zip大小為10M,達(dá)到了預(yù)先設(shè)定的閾值,則將該第二數(shù)據(jù)包A005. zip也另存為第三數(shù)據(jù)包A005. zip,若后續(xù)再有更新,則按照同樣的規(guī)則進(jìn)行處理。這樣,在更新多次后,可能同時(shí)存在第三數(shù)據(jù)包A002. zip、第三數(shù)據(jù)包A005. zip、第二數(shù)據(jù)包A006. zip和第一數(shù)據(jù)包A007. zip,其中,第三數(shù)據(jù)包A002. zip的前置數(shù)據(jù)包為空,第三數(shù)據(jù)包A005. zip 的前置數(shù)據(jù)包中的版本號(hào)為002,第二數(shù)據(jù)包A006. zip的前置數(shù)據(jù)包中的版本號(hào)為005, 第一數(shù)據(jù)包A007. zip的前置數(shù)據(jù)包中的版本號(hào)為006,若客戶端的版本號(hào)為006并請(qǐng)求更新,那么就只需要向該客戶端發(fā)送第一數(shù)據(jù)包A007. zip,若客戶端的版本號(hào)為005并請(qǐng)求更新,那么就向該客戶端發(fā)送第二數(shù)據(jù)包A006. zip和第一數(shù)據(jù)包A007. zip,若客戶端的版本號(hào)為002、003或004并請(qǐng)求更新,那么就向該客戶端發(fā)送第三數(shù)據(jù)包A005.zip、第二數(shù)據(jù)包A006. zip和第一數(shù)據(jù)包A007. zip,若客戶端的版本號(hào)為空或001并請(qǐng)求更新,那么就向該客戶端發(fā)送第三數(shù)據(jù)包A002. zip、第三數(shù)據(jù)包A005. zip、第二數(shù)據(jù)包A006. zip和第一數(shù)據(jù)包 A007. zip。由于客戶端在版本較低時(shí),可能需要接收多個(gè)數(shù)據(jù)包才能夠升級(jí)完畢,所以客戶端在接收到第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包后,客戶端可以先獲取第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào),當(dāng)前置數(shù)據(jù)包為空,或者前置數(shù)據(jù)包中的版本號(hào)低于客戶端的版本號(hào)或與客戶端的版本號(hào)相同時(shí),說明該數(shù)據(jù)包可以應(yīng)用在客戶端目前所使用的版本上,客戶端繼續(xù)解壓該第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包的數(shù)據(jù)包本體進(jìn)行數(shù)據(jù)更新,而當(dāng)前置數(shù)據(jù)包中的版本號(hào)高于客戶端的版本號(hào)時(shí),說明該數(shù)據(jù)包暫時(shí)不能應(yīng)用在客戶端目前所使用的版本上,客戶端停止解壓并保存該第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包,繼續(xù)接收數(shù)據(jù)包,在客戶端版本更新到可以應(yīng)用該數(shù)據(jù)包時(shí),再解壓該第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包的數(shù)據(jù)包本體進(jìn)行數(shù)據(jù)更新。本發(fā)明實(shí)施例還提供一種數(shù)據(jù)分發(fā)裝置,如圖5所示,包括第一更新單元501、合并單元502和第二更新單元503,其中第一更新單元501,用于在數(shù)據(jù)版本更新后,在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包并重新開始計(jì)時(shí),其中第一次計(jì)時(shí)從數(shù)據(jù)版本更新后開始;合并單元502,用于在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到客戶端的更新請(qǐng)求時(shí), 將第一數(shù)據(jù)包和包括更新前版本數(shù)據(jù)的原第二數(shù)據(jù)包合并為新的第二數(shù)據(jù)包,并刪除第一數(shù)據(jù)包和原第二數(shù)據(jù)包;第二更新單元503,用于在數(shù)據(jù)包合并后接收到該客戶端的更新請(qǐng)求時(shí),向該客戶端發(fā)送新的第二數(shù)據(jù)包。其中,各個(gè)數(shù)據(jù)包中都包括版本號(hào)、前置數(shù)據(jù)包和數(shù)據(jù)包本體,前置數(shù)據(jù)包用于記載應(yīng)用該數(shù)據(jù)包的客戶端的版本號(hào),數(shù)據(jù)包本體用于記載數(shù)據(jù)包數(shù)據(jù);合并單元502在進(jìn)行合并后,所生成的新的第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)為,原第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào),當(dāng)原第二數(shù)據(jù)包的前置數(shù)據(jù)包為空時(shí),新的第二數(shù)據(jù)包的前置數(shù)據(jù)包為空。進(jìn)一步,為了避免當(dāng)數(shù)據(jù)量較大的時(shí)候,所生成的第二數(shù)據(jù)包過大給用戶下載造成困擾,還可以在第二數(shù)據(jù)包的大小達(dá)到設(shè)定閾值時(shí),不再繼續(xù)合并,將第二數(shù)據(jù)包存儲(chǔ)為第三數(shù)據(jù)包,并刪除第二數(shù)據(jù)包。此時(shí),數(shù)據(jù)分發(fā)裝置中還包括轉(zhuǎn)存單元,用于當(dāng)?shù)诙?shù)據(jù)包所占存儲(chǔ)空間達(dá)到設(shè)定閾值時(shí),將第二數(shù)據(jù)包存儲(chǔ)為第三數(shù)據(jù)包,并刪除第二數(shù)據(jù)包;同時(shí),第二更新單元503還用于,當(dāng)接收到客戶端的更新請(qǐng)求時(shí),根據(jù)客戶端的版本號(hào),向客戶端發(fā)送版本號(hào)高于客戶端版本號(hào)的所有數(shù)據(jù)包。這些數(shù)據(jù)包的前置數(shù)據(jù)包的版本號(hào)可能高于客戶端版本號(hào),也可能與客戶端的版本號(hào)相同,也有可能低于客戶端的版本號(hào)但與客戶端的版本號(hào)最接近。在轉(zhuǎn)存單元將第二數(shù)據(jù)包存儲(chǔ)為第三數(shù)據(jù)包,并刪除第二數(shù)據(jù)包后,合并單元502 還用于在計(jì)時(shí)達(dá)到設(shè)定時(shí)間長度而未接收到客戶端的更新請(qǐng)求,且不存在第二數(shù)據(jù)包時(shí), 將第一數(shù)據(jù)包存儲(chǔ)為新的第二數(shù)據(jù)包,并刪除第一數(shù)據(jù)包。為進(jìn)一步便于服務(wù)器的管理,在服務(wù)器中存在多個(gè)第一數(shù)據(jù)包時(shí),可以針對(duì)每個(gè)第一數(shù)據(jù)包進(jìn)行判斷,并在一定時(shí)間內(nèi)未接收到與該第一數(shù)據(jù)包相關(guān)的更新請(qǐng)求時(shí),對(duì)該第一數(shù)據(jù)包進(jìn)行合并,此時(shí),第一更新單元501還用于對(duì)于服務(wù)器中的每一個(gè)第一數(shù)據(jù)包,在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到版本號(hào)與該第一數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)相同的客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包并重新開始計(jì)時(shí);合并單元502還用于對(duì)于服務(wù)器中的每一個(gè)第一數(shù)據(jù)包,在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到版本號(hào)與該第一數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)相同的客戶端要求更新時(shí),則將該第一數(shù)據(jù)包與版本號(hào)低于該第一數(shù)據(jù)包的數(shù)據(jù)包進(jìn)行合并,生成新的第二數(shù)據(jù)包,并刪除參與合并的數(shù)據(jù)包。本發(fā)明實(shí)施例提供一種數(shù)據(jù)分發(fā)方法及裝置,在進(jìn)行數(shù)據(jù)版本更新時(shí),首先生成更新包,發(fā)送給客戶端進(jìn)行數(shù)據(jù)版本的更新,在客戶端下載量減少,服務(wù)器空閑時(shí),將更新包和原始數(shù)據(jù)包合并為新的數(shù)據(jù)版本壓縮包,刪除原始數(shù)據(jù)包和更新包,由于在大量客戶端進(jìn)行更新時(shí),給客戶端發(fā)送更新包,整體上減小了傳輸?shù)臄?shù)據(jù)量,而在更新高峰渡過以后,合并為新的數(shù)據(jù)版本壓縮包,可以便于服務(wù)器的管理,減輕了服務(wù)器維護(hù)的負(fù)擔(dān)。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)分發(fā)方法,其特征在于,包括數(shù)據(jù)版本更新后,開始計(jì)時(shí),在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包并重新開始計(jì)時(shí);在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到客戶端的更新請(qǐng)求時(shí),將所述第一數(shù)據(jù)包和包括更新前版本數(shù)據(jù)的原第二數(shù)據(jù)包合并為新的第二數(shù)據(jù)包,并刪除所述第一數(shù)據(jù)包和所述原第二數(shù)據(jù)包;以及在數(shù)據(jù)包合并后接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送所述新的第二數(shù)據(jù)包。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一數(shù)據(jù)包、原第二數(shù)據(jù)包和新的第二數(shù)據(jù)包都包括版本號(hào)、前置數(shù)據(jù)包和數(shù)據(jù)包本體,所述前置數(shù)據(jù)包用于記載應(yīng)用該數(shù)據(jù)包的客戶端的版本號(hào),所述數(shù)據(jù)包本體用于記載數(shù)據(jù)包數(shù)據(jù);所述新的第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)為,所述原第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào),當(dāng)所述原第二數(shù)據(jù)包的前置數(shù)據(jù)包為空時(shí),所述新的第二數(shù)據(jù)包的前置數(shù)據(jù)包為空。
3.如權(quán)利要求2所述的方法,其特征在于,在所述服務(wù)器中存在多個(gè)第一數(shù)據(jù)包時(shí),還包括對(duì)于服務(wù)器中的每一個(gè)第一數(shù)據(jù)包,在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到版本號(hào)與該第一數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)相同的客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包并重新開始計(jì)時(shí);對(duì)于服務(wù)器中的每一個(gè)第一數(shù)據(jù)包,在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到版本號(hào)與該第一數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)相同的客戶端的更新請(qǐng)求時(shí),將該第一數(shù)據(jù)包與版本號(hào)低于該第一數(shù)據(jù)包的數(shù)據(jù)包進(jìn)行合并,生成新的第二數(shù)據(jù)包,并刪除參與合并的數(shù)據(jù)包。
4.如權(quán)利要求2所述的方法,其特征在于,還包括當(dāng)所述第二數(shù)據(jù)包所占存儲(chǔ)空間達(dá)到設(shè)定閾值時(shí),將所述第二數(shù)據(jù)包存儲(chǔ)為第三數(shù)據(jù)包,并刪除所述第二數(shù)據(jù)包;當(dāng)接收到所述客戶端的更新請(qǐng)求時(shí),根據(jù)所述客戶端的版本號(hào),向所述客戶端發(fā)送版本號(hào)高于客戶端版本號(hào)的所有數(shù)據(jù)包。
5.如權(quán)利要求4所述的方法,其特征在于,還包括在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到客戶端的更新請(qǐng)求,且不存在第二數(shù)據(jù)包時(shí), 將所述第一數(shù)據(jù)包存儲(chǔ)為新的第二數(shù)據(jù)包,并刪除所述第一數(shù)據(jù)包。
6.如權(quán)利要求2所述的方法,其特征在于,所述客戶端在接收到所述第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包后,還包括所述客戶端獲取所述第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào);當(dāng)所述前置數(shù)據(jù)包為空,或者所述前置數(shù)據(jù)包中的版本號(hào)低于所述客戶端的版本號(hào)或與所述客戶端的版本號(hào)相同時(shí),所述客戶端繼續(xù)解壓所述第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包的數(shù)據(jù)包本體;當(dāng)所述前置數(shù)據(jù)包中的版本號(hào)高于所述客戶端的版本號(hào)時(shí),所述客戶端停止解壓并保存該第一數(shù)據(jù)包、第二數(shù)據(jù)包或第三數(shù)據(jù)包。
7.一種數(shù)據(jù)分發(fā)裝置,其特征在于,包括第一更新單元,用于在數(shù)據(jù)版本更新后,開始計(jì)時(shí),在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包并重新開始計(jì)時(shí);合并單元,用于在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到客戶端的更新請(qǐng)求時(shí),將所述第一數(shù)據(jù)包和包括更新前版本數(shù)據(jù)的原第二數(shù)據(jù)包合并為新的第二數(shù)據(jù)包,并刪除所述第一數(shù)據(jù)包和所述原第二數(shù)據(jù)包;第二更新單元,用于在數(shù)據(jù)包合并后接收到客戶端的更新請(qǐng)求時(shí),向所述客戶端發(fā)送所述新的第二數(shù)據(jù)包。
8.如權(quán)利要求7所述的裝置,其特征在于,所述第一數(shù)據(jù)包、原第二數(shù)據(jù)包和新的第二數(shù)據(jù)包都包括版本號(hào)、前置數(shù)據(jù)包和數(shù)據(jù)包本體,所述前置數(shù)據(jù)包用于記載應(yīng)用該數(shù)據(jù)包的客戶端的版本號(hào),所述數(shù)據(jù)包本體用于記載數(shù)據(jù)包數(shù)據(jù);所述新的第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)為,所述原第二數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào),當(dāng)所述原第二數(shù)據(jù)包的前置數(shù)據(jù)包為空時(shí),所述新的第二數(shù)據(jù)包的前置數(shù)據(jù)包為空。
9.如權(quán)利要求8所述的裝置,其特征在于,還包括轉(zhuǎn)存單元,用于當(dāng)所述第二數(shù)據(jù)包所占存儲(chǔ)空間達(dá)到設(shè)定閾值時(shí),將所述第二數(shù)據(jù)包存儲(chǔ)為第三數(shù)據(jù)包,并刪除所述第二數(shù)據(jù)包;所述第二更新單元還用于,當(dāng)接收到所述客戶端的更新請(qǐng)求時(shí),根據(jù)所述客戶端的版本號(hào),向所述客戶端發(fā)送前置數(shù)據(jù)包中的版本號(hào)高于客戶端版本號(hào)的所有數(shù)據(jù)包,以及向所述客戶端發(fā)送前置數(shù)據(jù)包中的版本號(hào)與所述客戶端的版本號(hào)相同,或前置數(shù)據(jù)包中的版本號(hào)低于所述客戶端的版本號(hào)并與所述客戶端的版本號(hào)最接近的數(shù)據(jù)包。
10.如權(quán)利要求9所述的裝置,其特征在于,所述合并單元還用于在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到客戶端的更新請(qǐng)求,且不存在第二數(shù)據(jù)包時(shí), 將所述第一數(shù)據(jù)包存儲(chǔ)為新的第二數(shù)據(jù)包,并刪除所述第一數(shù)據(jù)包。
11.如權(quán)利要求8所述的裝置,其特征在于,所述第一更新單元還用于對(duì)于服務(wù)器中的每一個(gè)第一數(shù)據(jù)包,在計(jì)時(shí)未達(dá)到設(shè)定的時(shí)間長度而接收到版本號(hào)與該第一數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)相同的客戶端的更新請(qǐng)求時(shí),向客戶端發(fā)送用于更新的第一數(shù)據(jù)包并重新開始計(jì)時(shí);所述合并單元還用于對(duì)于服務(wù)器中的每一個(gè)第一數(shù)據(jù)包,在計(jì)時(shí)達(dá)到設(shè)定的時(shí)間長度而未接收到版本號(hào)與該第一數(shù)據(jù)包的前置數(shù)據(jù)包中的版本號(hào)相同的客戶端更新請(qǐng)求時(shí), 則將該第一數(shù)據(jù)包與版本號(hào)低于該第一數(shù)據(jù)包的數(shù)據(jù)包進(jìn)行合并,生成新的第二數(shù)據(jù)包, 并刪除參與合并的數(shù)據(jù)包。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)分發(fā)方法及裝置,涉及信息處理技術(shù),在本發(fā)明實(shí)施例中,在進(jìn)行數(shù)據(jù)版本更新時(shí),首先生成更新包,發(fā)送給客戶端進(jìn)行數(shù)據(jù)版本的更新,在客戶端下載量減少,服務(wù)器空閑時(shí),將更新包和原始數(shù)據(jù)包合并為新的數(shù)據(jù)版本壓縮包,刪除原始數(shù)據(jù)包和更新包,由于在大量客戶端進(jìn)行更新時(shí),給客戶端發(fā)送更新包,整體上減小了傳輸?shù)臄?shù)據(jù)量,而在更新高峰渡過以后,合并為新的數(shù)據(jù)版本壓縮包,可以便于服務(wù)器的管理,減輕了服務(wù)器維護(hù)的負(fù)擔(dān)。
文檔編號(hào)H04L29/06GK102469062SQ20101053113
公開日2012年5月23日 申請(qǐng)日期2010年10月29日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者張 杰, 徐劍波, 閆進(jìn)兵 申請(qǐng)人:北京方正阿帕比技術(shù)有限公司, 北大方正集團(tuán)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
SHOW| 河曲县| 渭南市| 都兰县| 前郭尔| 鄄城县| 巴彦县| 乌拉特前旗| 资兴市| 开平市| 井冈山市| 海丰县| 五河县| 防城港市| 灌云县| 左权县| 若尔盖县| 肇州县| 巴南区| 玛多县| 呼玛县| 江山市| 临澧县| 长沙县| 马尔康县| 土默特右旗| 塔城市| 渭源县| 兴文县| 界首市| 开江县| 靖江市| 嘉义县| 招远市| 桐城市| 江永县| 张家港市| 南和县| 苍溪县| 宁波市| 府谷县|