差異補(bǔ)丁包生成方法及下載方法、服務(wù)器、客戶端的制作方法【專利摘要】本發(fā)明實(shí)施例公開(kāi)了一種差異補(bǔ)丁包生成方法及下載方法、文件差異比對(duì)服務(wù)器、客戶端。本發(fā)明實(shí)施例方法包括:若文件差異比對(duì)服務(wù)器接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,則獲取軟件的歷史版本的二進(jìn)制文件;利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;將歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給入口服務(wù)器,使得入口服務(wù)器將差異補(bǔ)丁包上傳至內(nèi)容分發(fā)網(wǎng)絡(luò)CDN下載源服務(wù)器,能夠有效的減少用戶端下載該差異補(bǔ)丁包所消耗的流量和時(shí)間,同時(shí),能夠有效的緩解服務(wù)器的帶寬壓力。【專利說(shuō)明】差異補(bǔ)丁包生成方法及下載方法、服務(wù)器、客戶端【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及軟件升級(jí)領(lǐng)域,尤其涉及一種差異補(bǔ)丁包生成方法及下載方法、服務(wù)器、客戶端?!?br>背景技術(shù):
】[0002]軟件發(fā)布以后,隨著功能的持續(xù)迭代或者軟件出現(xiàn)安全漏洞等各種原因,需要發(fā)布新的軟件安裝包重新替換原來(lái)的安裝包來(lái)發(fā)布更新的軟件,比如通用的客戶端軟件,大型網(wǎng)絡(luò)游戲或者移動(dòng)應(yīng)用軟件都存在更新的要求。[0003]目前通常的更新方式是客戶端提供自己的版本號(hào),服務(wù)器提供整個(gè)完整的軟件安裝包下載,這是一種全量的軟件下載更新模式,可稱為全量升級(jí),比如50M的軟件升級(jí),就需要下載新版本的50M文件,然后將新版本的文件完全覆蓋舊版本實(shí)現(xiàn)升級(jí)。[0004]然而,對(duì)于全量升級(jí)的軟件更新方式,如果很多人同時(shí)更新下載,服務(wù)器將存在巨大的帶寬壓力,下載速度和性能也無(wú)法保證。比如網(wǎng)絡(luò)游戲是最近幾年互聯(lián)網(wǎng)發(fā)展最快的領(lǐng)域,和傳統(tǒng)的單機(jī)游戲不一樣,現(xiàn)在主要的網(wǎng)絡(luò)游戲采用CS模式結(jié)構(gòu),除了一個(gè)強(qiáng)大的網(wǎng)絡(luò)游戲服務(wù)器端外,還有一個(gè)強(qiáng)大的網(wǎng)絡(luò)游戲客戶端??蛻舳说奈募笮膸装僬缀?MHz)到幾個(gè)吉赫(GHz),文件都非常大,隨著游戲新功能的增加游戲包含的多媒體數(shù)據(jù)信息變多,游戲包越來(lái)越大。升級(jí)需要的帶寬越來(lái)越大。對(duì)于新發(fā)布的網(wǎng)絡(luò)游戲或者升級(jí)補(bǔ)丁包,所有游戲的服務(wù)器商都通常期望在盡快的時(shí)間內(nèi)完成游戲的升級(jí)和發(fā)布,減少用戶下載和等待的時(shí)間,將使得服務(wù)器輸出帶寬達(dá)到幾十GHz乃至上百GHz,將對(duì)服務(wù)器造成具體的帶寬壓力,且用戶使用全量升級(jí)的方式下載新版本時(shí),由于新版本的文件大,也將花費(fèi)大量的流量及時(shí)間進(jìn)行下載。[0005]目前,為了降低軟件升級(jí)時(shí)服務(wù)器的帶寬壓力,還可以使用增量升級(jí)的方式進(jìn)行軟件更新,增量升級(jí)不用下載完整的新版本的軟件安裝包,而是下載新版本的軟件安裝包中新增或者更新的內(nèi)容。然而,現(xiàn)有的增量升級(jí)的軟件更新方式都是基于文件粒度的文件對(duì)比得到差異補(bǔ)丁包的,得到的差異補(bǔ)丁包的仍然較大,在有大量用戶同時(shí)下載時(shí),依舊會(huì)造成服務(wù)器的帶寬壓力,且會(huì)消耗客戶端較多的流量及下載時(shí)間?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明實(shí)施例提供了一種差異補(bǔ)丁包生成方法及下載方法、服務(wù)器、客戶端,用于實(shí)現(xiàn)軟件的升級(jí),且由于客戶端下載的差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的,該差異補(bǔ)丁包的文件大小很小,遠(yuǎn)遠(yuǎn)小于基于文件粒度對(duì)比得到的差異補(bǔ)丁包,因此,能夠有效的節(jié)約客戶端的下載流量及下載時(shí)間,且即使有大量用戶同時(shí)從服務(wù)器下載該差異補(bǔ)丁包,也不會(huì)給服務(wù)器帶來(lái)帶寬壓力。[0007]本發(fā)明第一方面提供了一種差異補(bǔ)丁包生成方法,可包括:[0008]若文件差異比對(duì)服務(wù)器接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,則獲取所述軟件的歷史版本的二進(jìn)制文件;[0009]利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;[0010]將所述歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給所述入口服務(wù)器,使得所述入口服務(wù)器將所述差異補(bǔ)丁包上傳至內(nèi)容分發(fā)網(wǎng)絡(luò)CDN下載源服務(wù)器。[0011]在第一種可能的實(shí)現(xiàn)方式中,所述利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包包括:[0012]對(duì)每一個(gè)歷史版本的二進(jìn)制文件執(zhí)行以下步驟:[0013]利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與所述歷史版本的二進(jìn)制文件,得到比較結(jié)果;[0014]利用所述比較結(jié)果生成所述歷史版本二進(jìn)制文件的差異補(bǔ)丁包。[0015]結(jié)合第一方面或者第一方面第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述獲取所述軟件的歷史版本的二進(jìn)制文件包括:[0016]查詢歷史版本數(shù)據(jù)庫(kù),從所述歷史版本數(shù)據(jù)庫(kù)中讀取所述軟件的歷史版本的二進(jìn)制文件。[0017]結(jié)合第一方面或者第一方面第一種可能的實(shí)現(xiàn)方式或者第二方面第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,該方法還包括:[0018]將所述軟件的最新版本的版本號(hào)、所述軟件的歷史版本的版本號(hào)及每一個(gè)歷史版本的二進(jìn)制文件對(duì)應(yīng)的差異補(bǔ)丁包的校驗(yàn)信息保存至所述升級(jí)配置數(shù)據(jù)庫(kù)中。[0019]結(jié)合第一方面或者第一方面第一種可能的實(shí)現(xiàn)方式或者第二方面第二種可能的實(shí)現(xiàn)方式或者第一方面第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,該方法還包括:[0020]所述文件差異比對(duì)服務(wù)器接收所述入口服務(wù)器上傳的所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系,將所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系保存在所述升級(jí)配置數(shù)據(jù)庫(kù)中。[0021]本發(fā)明第二方面提供了一種差異補(bǔ)丁包下載方法,包括:[0022]客戶端向升級(jí)邏輯服務(wù)器發(fā)送差異補(bǔ)丁包查詢消息,使得所述升級(jí)邏輯服務(wù)器從升級(jí)配置數(shù)據(jù)庫(kù)中查詢所述客戶端待升級(jí)的軟件的版本號(hào)對(duì)應(yīng)的差異補(bǔ)丁包,并將所述差異補(bǔ)丁包的下載地址發(fā)送給所述客戶端;[0023]所述客戶端接收所述差異補(bǔ)丁包的下載地址;[0024]利用所述差異補(bǔ)丁包的下載地址從內(nèi)容分發(fā)網(wǎng)絡(luò)CDN下載源服務(wù)器下載所述差異補(bǔ)丁包,所述差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的。[0025]在第一種可能的實(shí)現(xiàn)方式中,該方法還可包括:[0026]所述客戶端向tracker服務(wù)器發(fā)送查詢消息,使得所述tracker服務(wù)器向所述客戶端反饋已下載或者正在下載所述差異補(bǔ)丁包的對(duì)等客戶端的IP地址;[0027]所述客戶端接收所述tracker服務(wù)器反饋的對(duì)等客戶端的IP地址;[0028]所述客戶端利用所述對(duì)等客戶端的IP地址與所述對(duì)等客戶端建立連接,從所述對(duì)等客戶端下載所述差異補(bǔ)丁包。[0029]結(jié)合第一方面或者第一方面第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,該方法還可包括:[0030]所述客戶端利用所述差異補(bǔ)丁包及所述客戶端待升級(jí)的軟件的二進(jìn)制文件生成所述軟件的最新版本的二進(jìn)制文件;[0031]利用所述最新版本的二進(jìn)制文件實(shí)現(xiàn)所述軟件的升級(jí)。[0032]本發(fā)明第三方面提供了一種服務(wù)器,可包括:[0033]獲取單元,用于若接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,則獲取所述軟件的歷史版本的二進(jìn)制文件;[0034]生成單元,用于在所述獲取單元獲取所述歷史版本的二進(jìn)制文件之后,利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;[0035]處理單元,用于在所述生成單元生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包之后,將所述歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給所述入口服務(wù)器,使得所述入口服務(wù)器將所述差異補(bǔ)丁包上傳至⑶N下載源服務(wù)器。[0036]在第一種可能的實(shí)現(xiàn)方式中,所述生成單元包括比較單元及補(bǔ)丁包生成單元,用于生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;[0037]所述比較單元用于利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與所述歷史版本的二進(jìn)制文件,得到比較結(jié)果;[0038]所述補(bǔ)丁包生成單元用于在所述比較單元得到比較結(jié)果之后,利用所述比較結(jié)果生成所述歷史版本二進(jìn)制文件的差異補(bǔ)丁包。[0039]在第二種可能的實(shí)現(xiàn)方式中,所述獲取單元具體用于若接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,查詢歷史版本數(shù)據(jù)庫(kù),從所述歷史版本數(shù)據(jù)庫(kù)中讀取所述軟件的歷史版本的二進(jìn)制文件。[0040]結(jié)合第三方面或者第三方面第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述處理單元還用于將所述軟件的最新版本的版本號(hào)、所述軟件的歷史版本的版本號(hào)及每一個(gè)歷史版本的二進(jìn)制文件對(duì)應(yīng)的差異補(bǔ)丁包的校驗(yàn)信息保存至所述升級(jí)配置數(shù)據(jù)庫(kù)中。[0041]結(jié)合第三方面或者第三方面第一種可能的實(shí)現(xiàn)方式或者第三方面第二種可能的實(shí)現(xiàn)方式或者第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,該服務(wù)器還包括:[0042]接收保存單元,用于在所述處理單元將所述差異補(bǔ)丁包發(fā)送給所述入口服務(wù)器之后,接收所述入口服務(wù)器上傳的所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系,將所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系保存在所述升級(jí)配置數(shù)據(jù)庫(kù)中。[0043]本發(fā)明第四方面提供了一種客戶端,可包括:[0044]發(fā)送單元,用于向升級(jí)邏輯服務(wù)器發(fā)送差異補(bǔ)丁包查詢消息,使得所述升級(jí)邏輯服務(wù)器從升級(jí)配置數(shù)據(jù)庫(kù)中查詢所述客戶端待升級(jí)的軟件的版本號(hào)對(duì)應(yīng)的差異補(bǔ)丁包,并將所述差異補(bǔ)丁包的下載地址發(fā)送給所述客戶端;[0045]接收單元,用于在所述發(fā)送單元發(fā)送所述差異補(bǔ)丁包查詢消息之后,接收所述差異補(bǔ)丁包的下載地址;[0046]下載單元,用于在所述接收單元接收所述差異補(bǔ)丁包的下載地址之后,利用所述差異補(bǔ)丁包的下載地址從CDN下載源服務(wù)器下載所述差異補(bǔ)丁包,所述差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的。[0047]在第一種可能的實(shí)現(xiàn)方式中:[0048]所述發(fā)送單元還用于向tracker服務(wù)器發(fā)送查詢消息,使得所述tracker服務(wù)器向所述客戶端反饋已下載或者正在下載所述差異補(bǔ)丁包的對(duì)等客戶端的IP地址;[0049]所述接收單元還用于接收所述tracker服務(wù)器反饋的對(duì)等客戶端的IP地址;[0050]所述下載單元還用于利用所述對(duì)等客戶端的IP地址與所述對(duì)等客戶端建立連接,從所述對(duì)等客戶端下載所述差異補(bǔ)丁包。[0051]結(jié)合第四方面或者第四方面第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述客戶端還包括:[0052]還原單元,用于利用所述差異補(bǔ)丁包及所述客戶端待升級(jí)的軟件的二進(jìn)制文件生成所述軟件的最新版本的二進(jìn)制文件;[0053]升級(jí)單元,用于在所述還原單元得到所述最新版本的二進(jìn)制文件之后,利用所述最新版本的二進(jìn)制文件實(shí)現(xiàn)所述軟件的升級(jí)。[0054]從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):[0055]若文件差異比對(duì)服務(wù)器接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,則獲取該軟件的歷史版本的二進(jìn)制文件;利用預(yù)置的二進(jìn)制差異算法,分別生成該最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件之間的差異補(bǔ)丁包,且將每一個(gè)歷史版本的版本號(hào)與該歷史版本的二進(jìn)制文件的差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給入口服務(wù)器,使得入口服務(wù)器將該差異補(bǔ)丁包上傳至內(nèi)容分發(fā)網(wǎng)絡(luò)(英文全稱為:ContentDeliveryNetwork,縮寫為:CDN)下載源服務(wù)器,由于差異補(bǔ)丁包是利用二進(jìn)制差異算法生成的,其大小遠(yuǎn)遠(yuǎn)小于基于文件粒度對(duì)比得到的差異補(bǔ)丁包,能夠有效的減少用戶端下載該差異補(bǔ)丁包所消耗的流量和時(shí)間,同時(shí),能夠有效的緩解服務(wù)器的帶寬壓力?!緦@綀D】【附圖說(shuō)明】[0056]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0057]圖1為本發(fā)明實(shí)施例中的軟件升級(jí)系統(tǒng)的結(jié)構(gòu)的一個(gè)示意圖;[0058]圖2為本發(fā)明實(shí)施例中一種差異補(bǔ)丁包生成方法的一個(gè)示意圖;[0059]圖3為本發(fā)明實(shí)施例中一種差異補(bǔ)丁包生成方法的另一示意圖;[0060]圖4為本發(fā)明實(shí)施例中一種差異補(bǔ)丁包下載方法的一個(gè)示意圖;[0061]圖5為本發(fā)明實(shí)施例中服務(wù)器的結(jié)構(gòu)的一個(gè)不意圖;[0062]圖6為本發(fā)明實(shí)施例中服務(wù)器的結(jié)構(gòu)的另一示意圖;[0063]圖7為本發(fā)明實(shí)施例中客戶端的結(jié)構(gòu)的一個(gè)示意圖?!揪唧w實(shí)施方式】[0064]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。[0065]本發(fā)明實(shí)施例提供了一種差異補(bǔ)丁包生成方法及下載方法、服務(wù)器、客戶端,用于實(shí)現(xiàn)軟件的升級(jí),且由于客戶端下載的差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的,該差異補(bǔ)丁包的文件大小很小,遠(yuǎn)遠(yuǎn)小于基于文件粒度對(duì)比得到的差異補(bǔ)丁包,因此,能夠有效的節(jié)約客戶端的下載流量及下載時(shí)間,且即使有大量用戶同時(shí)從服務(wù)器下載該差異補(bǔ)丁包,也不會(huì)給服務(wù)器帶來(lái)帶寬壓力。[0066]為了更好的理解本發(fā)明實(shí)施例中的技術(shù)方案,下面將介紹本發(fā)明實(shí)施例中的軟件升級(jí)系統(tǒng),請(qǐng)參閱圖1,為本發(fā)明實(shí)施例中的軟件升級(jí)系統(tǒng)的結(jié)構(gòu),包括:文件差異比對(duì)服務(wù)器,⑶N下載源服務(wù)器、升級(jí)邏輯服務(wù)器、索引查詢接入(Trackerconn)服務(wù)器、客戶端、入口服務(wù)器,歷史版本數(shù)據(jù)庫(kù)、升級(jí)配置數(shù)據(jù)庫(kù)等。[0067]下面將具體的介紹圖1所示的軟件升級(jí)系統(tǒng)中,文件差異比對(duì)服務(wù)器生成差異補(bǔ)丁包的方法,具體請(qǐng)參閱圖2,為本發(fā)明實(shí)施例中一種差異補(bǔ)丁包生成方法的實(shí)施例,包括:[0068]201、若文件差異比對(duì)服務(wù)器接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,則獲取軟件的歷史版本的二進(jìn)制文件;[0069]在本發(fā)明實(shí)施例中,入口服務(wù)器為文件發(fā)布的入口,管理員可將需要發(fā)布的待更新軟件的最新版本的二進(jìn)制文件上傳至入口服務(wù)器,且入口服務(wù)器在得到該最新版本的二進(jìn)制文件之后,將該最新版本的二進(jìn)制文件上傳至文件差異比對(duì)服務(wù)器。[0070]在本發(fā)明實(shí)施例中,文件差異比對(duì)服務(wù)器接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件之后,將獲取該軟件的歷史版本的二進(jìn)制文件。[0071]在本發(fā)明實(shí)施例中,歷史版本數(shù)據(jù)庫(kù)中保存了已發(fā)布過(guò)的所有的軟件的歷史版本的二進(jìn)制文件,因此,文件差異比對(duì)服務(wù)器可查詢歷史版本數(shù)據(jù)庫(kù),從歷史版本數(shù)據(jù)庫(kù)中獲取具有最新版本的二進(jìn)制文件的軟件的歷史版本的二進(jìn)制文件,例如:若入口服務(wù)器接收到管理員上傳的軟件A的最新版本的二進(jìn)制文件,且該最新版本的版本號(hào)為5,則入口服務(wù)器將軟件A的最新版本的二進(jìn)制文件及版本號(hào)5上傳至文件差異比對(duì)服務(wù)器,且文件差異比對(duì)服務(wù)器在接收到軟件A的最新版本的二進(jìn)制文件之后,將從歷史版本數(shù)據(jù)庫(kù)中獲取該軟件A的版本號(hào)I至4的歷史版本的二進(jìn)制文件。[0072]202、利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;[0073]在本發(fā)明實(shí)施例中,文件差異比對(duì)服務(wù)器將利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包,例如:軟件A的最新版本為版本5,歷史版本為I至4,則文件差異比對(duì)服務(wù)器將分別用歷史版本I至4的二進(jìn)制文件與版本5的二進(jìn)制文件進(jìn)行比較,分別得到歷史版本I至4的差異補(bǔ)丁包。[0074]需要說(shuō)明的是,在本發(fā)明實(shí)施例中,不同軟件進(jìn)行升級(jí)的原因不同,因此,造成最新版本的二進(jìn)制文件與歷史版本的二進(jìn)制文件的差異的也不相同,例如,在windows系統(tǒng)的平臺(tái)軟件可執(zhí)行文件通常是可移植的執(zhí)行體(英文全稱為=PortableExecute,縮寫為:PE)文件格式,且每一個(gè)PE文件的頭部都會(huì)攜帶一些本次編譯特有的信息,比如時(shí)間戳等,而對(duì)于軟件升級(jí)而言,只有數(shù)據(jù)段和代碼段的變化才是需要關(guān)注的,所以需要利用合適的二進(jìn)制算法進(jìn)行版本間的二進(jìn)制文件的比較,以避免比較兩個(gè)PE文件頭部信息,減小生成的差異補(bǔ)丁包的大??;此外,對(duì)于軟件的二進(jìn)制文件而言,極少的代碼變化可能導(dǎo)致代碼塊中指令的相對(duì)位置的改變,從而導(dǎo)致其后的所有指令素具的地址被重新定位,而對(duì)于PE文件,地址變動(dòng)引發(fā)的二進(jìn)制文件包的差異往往會(huì)稀疏的分部在整個(gè)文件的各個(gè)部分,從而導(dǎo)致生成的差異補(bǔ)丁包的大小偏大。因此,為了盡量降低生成的差異補(bǔ)丁包的大小,可以預(yù)先設(shè)置不同原因造成的軟件升級(jí)對(duì)應(yīng)的二進(jìn)制差異算法,例如,對(duì)于代碼變化產(chǎn)生的差異可以使用bsdiff/bspatch函數(shù)比較二進(jìn)制文件包之間差異生成差異補(bǔ)丁包,對(duì)于指針偏移產(chǎn)生的差異,可以使用courgette算法比較二進(jìn)制文件包之間的差異生成差異補(bǔ)丁包。[0075]需要說(shuō)明的是,在本發(fā)明實(shí)施例中,可由管理員預(yù)先設(shè)置每種差異變化的產(chǎn)生原因與二進(jìn)制差異算法之間的對(duì)應(yīng)關(guān)系,文件差異比對(duì)服務(wù)器可利用軟件最新版本發(fā)生差異的原因選擇對(duì)應(yīng)的二進(jìn)制差異算法,以生成盡量小的差異補(bǔ)丁包,且該對(duì)應(yīng)關(guān)系在實(shí)際應(yīng)用中可根據(jù)具體情況設(shè)置,此處不做限定。[0076]203、將歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給入口服務(wù)器,使得入口服務(wù)器將差異補(bǔ)丁包上傳至⑶N下載源服務(wù)器。[0077]在本發(fā)明實(shí)施例中,文件差異比對(duì)服務(wù)器通過(guò)使用二進(jìn)制差異算法確定待更新的軟件的每一個(gè)歷史版本的二進(jìn)制文件與最新版本的二進(jìn)制文件之間的差異并得到對(duì)應(yīng)的差異補(bǔ)丁包之后,文件差異比對(duì)服務(wù)器還將對(duì)每一個(gè)生成的差異補(bǔ)丁包分配具有唯一性的編號(hào),將待更新軟件的每一個(gè)歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,同時(shí),文件差異比對(duì)服務(wù)器還將生成的差異補(bǔ)丁包上傳至入口服務(wù)器,并由入口服務(wù)器將該差異補(bǔ)丁包上傳至⑶N下載源服務(wù)器。[0078]需要說(shuō)明的是,在本發(fā)明實(shí)施例中,文件差異比對(duì)服務(wù)器在將差異補(bǔ)丁包發(fā)送給入口服務(wù)器之后,還可接收到入口服務(wù)器上傳的該差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系,且文件差異比對(duì)服務(wù)器將該差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中。具體的:文件差異比對(duì)服務(wù)器在將差異補(bǔ)丁包發(fā)送給入口服務(wù)器之后,入口服務(wù)器將該差異補(bǔ)丁包上傳至⑶N下載源服務(wù)器,⑶N下載源服務(wù)器接收到入口服務(wù)器上傳的差異補(bǔ)丁包之后,將為每一個(gè)差異補(bǔ)丁包分配對(duì)應(yīng)的下載地址,并將差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系反饋給入口服務(wù)器,并由入口服務(wù)器上傳至文件差異比對(duì)服務(wù)器,最后文件差異比對(duì)服務(wù)器將差異補(bǔ)丁包與下載地址的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,使得升級(jí)邏輯服務(wù)器在接收到客戶端發(fā)送的差異補(bǔ)丁包查詢消息之后,升級(jí)邏輯服務(wù)器可利用客戶端發(fā)送的軟件的版本號(hào)從升級(jí)配置數(shù)據(jù)庫(kù)中查詢版本號(hào)與差異補(bǔ)丁包之間的對(duì)應(yīng)關(guān)系,確定該軟件的版本號(hào)所對(duì)應(yīng)的差異補(bǔ)丁包,并查詢差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系,確定該軟件的差異補(bǔ)丁包的下載地址,并將查詢得到的差異補(bǔ)丁包的下載地址發(fā)送給該客戶端,使得客戶端在得到所需要下載的差異補(bǔ)丁包的下載地址之后,可以利用該下載地址從CDN下載源服務(wù)器下載對(duì)應(yīng)的差異補(bǔ)丁包,實(shí)現(xiàn)差異補(bǔ)丁包的下載。[0079]在本發(fā)明實(shí)施例中,文件差異比對(duì)服務(wù)器在接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件后獲取該軟件的歷史版本的二進(jìn)制文件,并利用預(yù)置的二進(jìn)制差異算法,分別生成該最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件之間的差異補(bǔ)丁包,并將每一個(gè)歷史版本的版本號(hào)與其差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將差異補(bǔ)丁包發(fā)送給入口服務(wù)器,通過(guò)入口服務(wù)器上傳至下載服務(wù)器,由于該差異補(bǔ)丁包是利用二進(jìn)制差異算法生成的,其大小遠(yuǎn)遠(yuǎn)小于基于文件粒度對(duì)比得到的差異補(bǔ)丁包,因此能夠有效的減少用戶端下載該差異補(bǔ)丁包所消耗的流量和時(shí)間,同時(shí),能夠有效的緩解服務(wù)器的帶寬壓力。[0080]為了更好的理解本發(fā)明實(shí)施例中的技術(shù)方案,請(qǐng)參閱圖3,為本發(fā)明實(shí)施例中一種差異補(bǔ)丁包生成方法的實(shí)施例,包括:[0081]301、若文件差異比對(duì)服務(wù)器接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,查詢歷史版本數(shù)據(jù)庫(kù),從歷史版本數(shù)據(jù)庫(kù)中讀取軟件的歷史版本的二進(jìn)制文件;[0082]在本發(fā)明實(shí)施例中,管理員可將軟件的最新版本的二進(jìn)制文件上傳至入口服務(wù)器,且該入口服務(wù)器將得到的軟件的最新版本的二進(jìn)制文件上傳至文件差異比對(duì)服務(wù)器,且文件差異比對(duì)服務(wù)器接收到該最新版本的二進(jìn)制文件之后,將查詢歷史版本數(shù)據(jù)庫(kù),從歷史版本數(shù)據(jù)庫(kù)中讀取該軟件所有的歷史版本的二進(jìn)制文件。[0083]在本發(fā)明實(shí)施例中,歷史版本數(shù)據(jù)庫(kù)中保存了所有已發(fā)布的軟件的歷史版本的二進(jìn)制文件,使得文件差異比對(duì)服務(wù)器可從歷史版本數(shù)據(jù)庫(kù)中獲取有最新版本的軟件的歷史版本的二進(jìn)制文件。[0084]302、利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;[0085]步驟302描述的內(nèi)容與圖2所示實(shí)施例中的步驟202描述的內(nèi)容相似,此處不再贅述。[0086]此外,在本發(fā)明實(shí)施例中,文件差異比對(duì)服務(wù)器利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包具體是指每一個(gè)歷史版本的二進(jìn)制文件都生成一個(gè)對(duì)應(yīng)的差異補(bǔ)丁包,即對(duì)每一個(gè)歷史版本的二進(jìn)制文件都將執(zhí)行以下步驟:利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與歷史版本的二進(jìn)制文件,得到比較結(jié)果;利用比較結(jié)果生成歷史版本二進(jìn)制文件的差異補(bǔ)丁包,其中,比較結(jié)果中包含了最新版本的二進(jìn)制文件中與歷史版本的二進(jìn)制文件差異部分,及該差異部分在最新版本二進(jìn)制文件中的位置。[0087]303、將歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給入口服務(wù)器,使得入口服務(wù)器將差異補(bǔ)丁包上傳至⑶N下載源服務(wù)器。[0088]步驟303中描述的內(nèi)容與圖2所示實(shí)施例中步驟203描述的內(nèi)容相似,此處不再贅述。[0089]304、將軟件的最新版本的版本號(hào)、軟件的歷史版本的版本號(hào)及每一個(gè)歷史版本的二進(jìn)制文件對(duì)應(yīng)的差異補(bǔ)丁包的校驗(yàn)信息保存至升級(jí)配置數(shù)據(jù)庫(kù)中。[0090]在本發(fā)明實(shí)施例中,文件差異比對(duì)服務(wù)器還將該軟件的最新版本的版本號(hào),軟件的歷史版本的版本號(hào)及每一個(gè)歷史版本的二進(jìn)制文件對(duì)應(yīng)的差異補(bǔ)丁包的校驗(yàn)信息保存至升級(jí)配置數(shù)據(jù)庫(kù)中。此外,還可將最新版本的二進(jìn)制文件及歷史版本的二進(jìn)制文件的大小,文件名稱,升級(jí)描述信息等保存到升級(jí)配置數(shù)據(jù)庫(kù)中。[0091]需要說(shuō)明的是,在本發(fā)明實(shí)施例中步驟303和步驟304之間并不限定執(zhí)行的先后順序,且還可以同時(shí)進(jìn)行。[0092]在本發(fā)明實(shí)施例中,通過(guò)使用二進(jìn)制差異算法生成歷史版本的二進(jìn)制文件的差異補(bǔ)丁包,可使得生成的差異補(bǔ)丁包的大小遠(yuǎn)遠(yuǎn)小于基于文件粒度對(duì)比得到的差異補(bǔ)丁包,因此能夠有效的減少用戶端下載該差異補(bǔ)丁包所消耗的流量和時(shí)間,同時(shí),能夠有效的緩解服務(wù)器的帶寬壓力。[0093]為了更好的理解本發(fā)明實(shí)施例中的技術(shù)方案,下面將具體介紹本發(fā)明實(shí)施例中的一種差異補(bǔ)丁包下載方法的實(shí)施例,請(qǐng)參閱圖4,包括:[0094]401、客戶端向升級(jí)邏輯服務(wù)器發(fā)送差異補(bǔ)丁包查詢消息,使得升級(jí)邏輯服務(wù)器從升級(jí)配置數(shù)據(jù)庫(kù)中查詢客戶端待升級(jí)的軟件的版本號(hào)對(duì)應(yīng)的差異補(bǔ)丁包,并將差異補(bǔ)丁包的下載地址發(fā)送給客戶端;[0095]在本發(fā)明實(shí)施例中,客戶端啟動(dòng)升級(jí)之后,將向升級(jí)邏輯服務(wù)器查詢新版本信息,即向升級(jí)邏輯服務(wù)器發(fā)送差異補(bǔ)丁包查詢消息,該差異補(bǔ)丁包查詢消息中包含該客戶端已安裝軟件的版本號(hào),升級(jí)邏輯服務(wù)器接收到該差異補(bǔ)丁包查詢消息之后,可利用該消息中包含的待升級(jí)軟件的版本號(hào)查找升級(jí)配置數(shù)據(jù)庫(kù),確定該軟件是否存在更高版本號(hào),若有,則查詢升級(jí)配置數(shù)據(jù)庫(kù)中保存的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系,確定客戶端需要下載的差異補(bǔ)丁包,并通過(guò)查詢差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系確定客戶端需要下載的差異補(bǔ)丁包的下載地址,將查找到的該軟件的版本號(hào)對(duì)應(yīng)的差異補(bǔ)丁包的下載地址發(fā)送給客戶端。[0096]402、客戶端接收差異補(bǔ)丁包的下載地址;[0097]在本發(fā)明實(shí)施例中,客戶端可接收到升級(jí)邏輯服務(wù)器發(fā)送的差異補(bǔ)丁包的下載地址。[0098]403、利用差異補(bǔ)丁包的下載地址從⑶N下載源服務(wù)器下載差異補(bǔ)丁包,差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的。[0099]在本發(fā)明實(shí)施例中,升級(jí)配置數(shù)據(jù)庫(kù)還可利用得到的差異補(bǔ)丁包的下載地址從CDN下載源服務(wù)器下載差異補(bǔ)丁包,且該差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的。[0100]在本發(fā)明實(shí)施例中,客戶端除了從⑶N下載源服務(wù)器下載差異補(bǔ)丁包之外,還可從對(duì)等網(wǎng)絡(luò)(英文全稱為:PeerToPeer,縮寫為:P2P)下載該差異補(bǔ)丁包,具體為:客戶端向trackerconn服務(wù)器發(fā)送查詢消息,該查詢消息中包含客戶端需要下載的差異補(bǔ)丁包的編號(hào),tracker服務(wù)器接收到該查詢消息之后,可利用該差異補(bǔ)丁包的編號(hào)查詢已保存的客戶端的IP地址與客戶端正在下載或者已下載的差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系,確定正在下載或者已經(jīng)下載該差異補(bǔ)丁包的對(duì)等客戶端的IP地址,并將該對(duì)等客戶端的IP地址發(fā)送給客戶端,客戶端接收到trackerconn服務(wù)器反饋的對(duì)等客戶端的IP地址之后,將利用對(duì)等客戶端的IP地址與對(duì)等客戶端建立連接,從對(duì)等客戶端下載差異補(bǔ)丁包。通過(guò)利用P2P下載差異補(bǔ)丁包,能夠有效的緩解服務(wù)器下載的數(shù)據(jù)量,降低服務(wù)器的帶寬壓力,且能夠在無(wú)法從CDN下載源服務(wù)器下載差異補(bǔ)丁包的情況下,利用P2P方式從對(duì)等客戶端進(jìn)行下載,能夠有效的保證差異補(bǔ)丁包的下載。[0101]在本發(fā)明實(shí)施例中,客戶端在從⑶N下載源服務(wù)器下載差異補(bǔ)丁包時(shí),還可向trackerconn服務(wù)器注冊(cè),使得⑶N下載源服務(wù)器可保存該客戶端的IP地址與該差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系,以表明該客戶端已經(jīng)下載或者正在下載該差異補(bǔ)丁包。[0102]需要說(shuō)明的是,為了避免差異補(bǔ)丁包的下載占用過(guò)多網(wǎng)絡(luò)資源,升級(jí)配置數(shù)據(jù)庫(kù)在向客戶端發(fā)送差異補(bǔ)丁包的下載地址時(shí),還可向客戶端發(fā)送其下載差異補(bǔ)丁包時(shí)的最大速度,使得客戶端從CDN下載源服務(wù)器下載差異補(bǔ)丁包的下載速度小于或者等于該最大速度,以避免客戶端下載速度過(guò)大,影響用戶的使用。[0103]在本發(fā)明實(shí)施例中,還可以包括步驟404和步驟405,分別為:[0104]404、客戶端利用差異補(bǔ)丁包及客戶端待升級(jí)的軟件的二進(jìn)制文件生成軟件的最新版本的二進(jìn)制文件;[0105]405、利用最新版本的二進(jìn)制文件實(shí)現(xiàn)軟件的升級(jí)。[0106]在本發(fā)明實(shí)施例中,客戶端在下載得到差異補(bǔ)丁包之后,可利用差異補(bǔ)丁包及客戶端待升級(jí)的軟件的二進(jìn)制文件生成該軟件的最新版本的二進(jìn)制文件,例如:若下載得到的是客戶端上的軟件A的差異補(bǔ)丁包B,則可利用該差異補(bǔ)丁包B及客戶端上軟件A的二進(jìn)制文件C生成軟件A的最新版本的二進(jìn)制文件。[0107]在本發(fā)明實(shí)施例中,客戶端得到軟件的最新版本的二進(jìn)制文件之后,可利用該最新版本的二進(jìn)制文件實(shí)現(xiàn)軟件的升級(jí)。[0108]在本發(fā)明實(shí)施例中,客戶端通??墒褂门c文件差異比對(duì)服務(wù)器相同的二進(jìn)制差異算法得到新版本的二進(jìn)制文件,其原理是通過(guò)拷貝和插入構(gòu)成該新版本的二進(jìn)制文件,具體的:通過(guò)子串分割匹配與哈希技術(shù),從客戶端已有版本的二進(jìn)制文件中拷貝與新版本的二進(jìn)制文件相同的數(shù)據(jù),并按照指針位置進(jìn)行放置,而對(duì)于差異補(bǔ)丁包中包含的新版本的二進(jìn)制文件與客戶端已有版本的二進(jìn)制文件不同的數(shù)據(jù)則通過(guò)插入的方式進(jìn)行放置,可構(gòu)建成新版本的二進(jìn)制文件。[0109]需要說(shuō)明的是,在本發(fā)明實(shí)施例中,客戶端在執(zhí)行步驟404之前,為了避免軟件升級(jí)錯(cuò)誤,還需要對(duì)下載得到的差異補(bǔ)丁包進(jìn)行校驗(yàn),若差異補(bǔ)丁包的校驗(yàn)正確,則繼續(xù)執(zhí)行步驟404,若差異補(bǔ)丁包的校驗(yàn)錯(cuò)誤,則丟棄該差異補(bǔ)丁包,且還可繼續(xù)進(jìn)行差異補(bǔ)丁包的下載。[0110]在本發(fā)明實(shí)施例中,客戶端在執(zhí)行步驟405之前,為了避免軟件升級(jí)錯(cuò)誤,可對(duì)得到的最新版本的二進(jìn)制文件進(jìn)行校驗(yàn),若該最新版本的二進(jìn)制文件校驗(yàn)正確,則繼續(xù)執(zhí)行步驟405,實(shí)現(xiàn)軟件的升級(jí),若該最新版本的二進(jìn)制文件校驗(yàn)錯(cuò)誤,則丟棄該最新版本的二進(jìn)制文件,重新下載軟件的差異補(bǔ)丁包。[0111]在本發(fā)明實(shí)施例中,由于客戶端下載得到的差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的,使得生成的差異補(bǔ)丁包的大小遠(yuǎn)遠(yuǎn)小于基于文件粒度生成的差異補(bǔ)丁包,因此,能夠有效的減少客戶端下載差異補(bǔ)丁包所消耗的時(shí)間和流量,且還可通過(guò)配置客戶端從CDN下載源服務(wù)器下載差異補(bǔ)丁包的下載速度,使得可通過(guò)下載速度避免過(guò)快的下載速度影響用戶的使用,例如:游戲、在線電影等。此外,客戶端還可使用P2P的下載方式,通過(guò)從對(duì)等客戶端下載差異補(bǔ)丁包,能夠有效的提升下載的成功率及降低服務(wù)器的帶寬壓力。[0112]請(qǐng)參閱圖5,為本發(fā)明實(shí)施例中服務(wù)器的結(jié)構(gòu)的實(shí)施例,包括:[0113]獲取單元501,用于若接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,則獲取軟件的歷史版本的二進(jìn)制文件;[0114]生成單元502,用于在獲取單元501獲取到歷史版本的二進(jìn)制文件之后,利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;[0115]處理單元503,用于在生成單元502生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包之后,將歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給入口服務(wù)器,使得入口服務(wù)器將差異補(bǔ)丁包上傳至⑶N下載源服務(wù)器。[0116]在本發(fā)明實(shí)施例中,服務(wù)器若接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,獲取單元501獲取該軟件的歷史版本的二進(jìn)制文件;接著生成單元502利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;最后由處理單元503將歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給入口服務(wù)器,使得入口服務(wù)器將差異補(bǔ)丁包上傳至CDN下載源服務(wù)器。[0117]在本發(fā)明實(shí)施例中的服務(wù)器可以是文件差異比對(duì)服務(wù)器。[0118]在本發(fā)明實(shí)施例中,服務(wù)器在接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件后獲取該軟件的歷史版本的二進(jìn)制文件,并利用預(yù)置的二進(jìn)制差異算法,分別生成該最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件之間的差異補(bǔ)丁包,并將每一個(gè)歷史版本的版本號(hào)與其差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將差異補(bǔ)丁包發(fā)送給入口服務(wù)器,通過(guò)入口服務(wù)器上傳至下載服務(wù)器,由于該差異補(bǔ)丁包是利用二進(jìn)制差異算法生成的,其大小遠(yuǎn)遠(yuǎn)小于基于文件粒度對(duì)比得到的差異補(bǔ)丁包,因此能夠有效的減少用戶端下載該差異補(bǔ)丁包所消耗的流量和時(shí)間,同時(shí),能夠有效的緩解服務(wù)器的帶寬壓力。[0119]為了更好的理解本發(fā)明實(shí)施例中的服務(wù)器,請(qǐng)參閱圖6,為本發(fā)明實(shí)施例中文件差異比對(duì)服務(wù)器的結(jié)構(gòu),包括:[0120]如圖5所示實(shí)施例中的獲取單元501、生成單元502及處理單元503,且與圖5所示實(shí)施例中描述的內(nèi)容相似,此處不再贅述。[0121]在本發(fā)明實(shí)施例中,生成單元502包括比較單元601及補(bǔ)丁包生成單元602,用于生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;[0122]其中,比較單元601用于利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與歷史版本的二進(jìn)制文件,得到比較結(jié)果;[0123]補(bǔ)丁包生成單元602用于在比較單元601得到比較結(jié)果之后,利用比較結(jié)果生成歷史版本二進(jìn)制文件的差異補(bǔ)丁包。[0124]在本發(fā)明實(shí)施例中,獲取單元501具體用于若接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,查詢歷史版本數(shù)據(jù)庫(kù),從歷史版本數(shù)據(jù)庫(kù)中讀取軟件的歷史版本的二進(jìn)制文件。[0125]在本發(fā)明實(shí)施例中,處理單元503還用于將軟件的最新版本的版本號(hào)、軟件的歷史版本的版本號(hào)及每一個(gè)歷史版本的二進(jìn)制文件對(duì)應(yīng)的差異補(bǔ)丁包的校驗(yàn)信息保存至升級(jí)配置數(shù)據(jù)庫(kù)中。[0126]在本發(fā)明實(shí)施例中,服務(wù)器還包括:[0127]接收保存單元603,用于在所述處理單元503將所述差異補(bǔ)丁包發(fā)送給所述入口服務(wù)器之后,接收所述入口服務(wù)器上傳的所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系,將所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系保存在所述升級(jí)配置數(shù)據(jù)庫(kù)中。[0128]在本發(fā)明實(shí)施例中,文件差異比對(duì)服務(wù)器若接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,獲取單元501獲取該軟件的歷史版本的二進(jìn)制文件;接著生成單元502中的比較單元601利用預(yù)置的二進(jìn)制差異算法比較最新版本的二進(jìn)制文件與歷史版本的二進(jìn)制文件,得到比較結(jié)果,并由補(bǔ)丁包生成單元602利用比較結(jié)果生成歷史版本二進(jìn)制文件的差異補(bǔ)丁包;且還可由處理單元503將歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給入口服務(wù)器,使得入口服務(wù)器將差異補(bǔ)丁包上傳至⑶N下載源服務(wù)器,且處理單元503還將軟件的最新版本的版本號(hào)、軟件的歷史版本的版本號(hào)及每一個(gè)歷史版本的二進(jìn)制文件對(duì)應(yīng)的差異補(bǔ)丁包的校驗(yàn)信息保存至升級(jí)配置數(shù)據(jù)庫(kù)中,在處理單元503將差異補(bǔ)丁包發(fā)送給所述入口服務(wù)器之后,接收保存單元603接收入口服務(wù)器上傳的所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系,將所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系保存在所述升級(jí)配置數(shù)據(jù)庫(kù)中。[0129]在本發(fā)明實(shí)施例中,通過(guò)使用二進(jìn)制差異算法生成歷史版本的二進(jìn)制文件的差異補(bǔ)丁包,可使得生成的差異補(bǔ)丁包的大小遠(yuǎn)遠(yuǎn)小于基于文件粒度對(duì)比得到的差異補(bǔ)丁包,因此能夠有效的減少用戶端下載該差異補(bǔ)丁包所消耗的流量和時(shí)間,同時(shí),能夠有效的緩解服務(wù)器的帶寬壓力。[0130]請(qǐng)參閱圖7,為本發(fā)明實(shí)施例中的客戶端的結(jié)構(gòu)的實(shí)施例,包括:[0131]發(fā)送單元701,用于向升級(jí)邏輯服務(wù)器發(fā)送差異補(bǔ)丁包查詢消息,使得升級(jí)邏輯服務(wù)器從升級(jí)配置數(shù)據(jù)庫(kù)中查詢客戶端待升級(jí)的軟件的版本號(hào)對(duì)應(yīng)的差異補(bǔ)丁包,并將差異補(bǔ)丁包的下載地址發(fā)送給客戶端;[0132]接收單元702,用于在發(fā)送單元701發(fā)送差異補(bǔ)丁包查詢消息之后,接收差異補(bǔ)丁包的下載地址;[0133]下載單元703,用于在接收單元702接收差異補(bǔ)丁包的下載地址之后,利用差異補(bǔ)丁包的下載地址從CDN下載源服務(wù)器下載差異補(bǔ)丁包,差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的。[0134]優(yōu)選的,在本發(fā)明實(shí)施例中,發(fā)送單元701還用于向tracker服務(wù)器發(fā)送查詢消息,使得tracker服務(wù)器向客戶端反饋已下載或者正在下載差異補(bǔ)丁包的對(duì)等客戶端的IP地址;接收單元702還用于接收tracker服務(wù)器反饋的對(duì)等客戶端的IP地址;下載單元703還用于利用對(duì)等客戶端的IP地址與對(duì)等客戶端建立連接,從對(duì)等客戶端下載差異補(bǔ)丁包。[0135]優(yōu)選的,在本發(fā)明實(shí)施例中,客戶端還包括:[0136]還原單元704,用于利用差異補(bǔ)丁包及客戶端待升級(jí)的軟件的二進(jìn)制文件生成軟件的最新版本的二進(jìn)制文件;[0137]升級(jí)單元705,用于在還原單元704得到最新版本的二進(jìn)制文件之后,利用最新版本的二進(jìn)制文件實(shí)現(xiàn)軟件的升級(jí)。[0138]在本發(fā)明實(shí)施例中,客戶端中的發(fā)送單元701向升級(jí)邏輯服務(wù)器發(fā)送差異補(bǔ)丁包查詢消息,使得升級(jí)邏輯服務(wù)器從升級(jí)配置數(shù)據(jù)庫(kù)中查詢客戶端待升級(jí)的軟件的版本號(hào)對(duì)應(yīng)的差異補(bǔ)丁包,并將差異補(bǔ)丁包的下載地址發(fā)送給客戶端;并由接收單元702接收差異補(bǔ)丁包的下載地址;且下載單元703可利用差異補(bǔ)丁包的下載地址從CDN下載源服務(wù)器下載差異補(bǔ)丁包,差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的。此外,發(fā)送單元701還可向tracker服務(wù)器發(fā)送查詢消息,使得tracker服務(wù)器向客戶端反饋已下載或者正在下載差異補(bǔ)丁包的對(duì)等客戶端的IP地址;接著由接收單元702接收tracker服務(wù)器反饋的對(duì)等客戶端的IP地址;最后下載單元703利用對(duì)等客戶端的IP地址與對(duì)等客戶端建立連接,從對(duì)等客戶端下載差異補(bǔ)丁包,在客戶端下載得到差異補(bǔ)丁包之后,還原單元704將利用差異補(bǔ)丁包及客戶端待升級(jí)的軟件的二進(jìn)制文件生成軟件的最新版本的二進(jìn)制文件;并由升級(jí)單元705利用最新版本的二進(jìn)制文件實(shí)現(xiàn)軟件的升級(jí)。[0139]在本發(fā)明實(shí)施例中,由于客戶端下載得到的差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的,使得生成的差異補(bǔ)丁包的大小遠(yuǎn)遠(yuǎn)小于基于文件粒度生成的差異補(bǔ)丁包,因此,能夠有效的減少客戶端下載差異補(bǔ)丁包所消耗的時(shí)間和流量,且還可通過(guò)配置客戶端從CDN下載源服務(wù)器下載差異補(bǔ)丁包的下載速度,使得可通過(guò)下載速度避免過(guò)快的下載速度影響用戶的使用,例如:游戲、在線電影等。此外,客戶端還可使用P2P的下載方式,通過(guò)從對(duì)等客戶端下載差異補(bǔ)丁包,能夠有效的提升下載的成功率及降低服務(wù)器的帶寬壓力。[0140]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。[0141]以上對(duì)本發(fā)明所提供的一種差異補(bǔ)丁包的生成及下載方法、文件差異比對(duì)服務(wù)器及客戶端進(jìn)行了詳細(xì)介紹,對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制?!緳?quán)利要求】1.一種差異補(bǔ)丁包生成方法,其特征在于,包括:若文件差異比對(duì)服務(wù)器接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,則獲取所述軟件的歷史版本的二進(jìn)制文件;利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;將所述歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給所述入口服務(wù)器,使得所述入口服務(wù)器將所述差異補(bǔ)丁包上傳至內(nèi)容分發(fā)網(wǎng)絡(luò)⑶N下載源服務(wù)器。2.根據(jù)權(quán)利要求1所述的生成方法,其特征在于,所述利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包包括:對(duì)每一個(gè)歷史版本的二進(jìn)制文件執(zhí)行以下步驟:利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與所述歷史版本的二進(jìn)制文件,得到比較結(jié)果;利用所述比較結(jié)果生成所述歷史版本二進(jìn)制文件的差異補(bǔ)丁包。3.根據(jù)權(quán)利要求1所述的生成方法,其特征在于,所述獲取所述軟件的歷史版本的二進(jìn)制文件包括:查詢歷史版本數(shù)據(jù)庫(kù),從所述歷史版本數(shù)據(jù)庫(kù)中讀取所述軟件的歷史版本的二進(jìn)制文件。4.根據(jù)權(quán)利要求3所述的生成方法,其特征在于,所述方法還包括:將所述軟件的最新版本的版本號(hào)、所述軟件的歷史版本的版本號(hào)及每一個(gè)歷史版本的二進(jìn)制文件對(duì)應(yīng)的差異補(bǔ)丁包的校驗(yàn)信息保存至所述升級(jí)配置數(shù)據(jù)庫(kù)中。5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的生成方法,其特征在于,所述方法還包括:所述文件差異比對(duì)服務(wù)器接收所述入口服務(wù)器上傳的所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系,將所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系保存在所述升級(jí)配置數(shù)據(jù)庫(kù)中。6.一種差異補(bǔ)丁包下載方法,其特征在于,包括:客戶端向升級(jí)邏輯服務(wù)器發(fā)送差異補(bǔ)丁包查詢消息,使得所述升級(jí)邏輯服務(wù)器從升級(jí)配置數(shù)據(jù)庫(kù)中查詢所述客戶端待升級(jí)的軟件的版本號(hào)對(duì)應(yīng)的差異補(bǔ)丁包,并將所述差異補(bǔ)丁包的下載地址發(fā)送給所述客戶端;所述客戶端接收所述差異補(bǔ)丁包的下載地址;利用所述差異補(bǔ)丁包的下載地址從內(nèi)容分發(fā)網(wǎng)絡(luò)CDN下載源服務(wù)器下載所述差異補(bǔ)丁包,所述差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的。7.根據(jù)權(quán)利要求6所述的下載方法,其特征在于,所述方法還包括:所述客戶端向tracker服務(wù)器發(fā)送查詢消息,使得所述tracker服務(wù)器向所述客戶端反饋已下載或者正在下載所述差異補(bǔ)丁包的對(duì)等客戶端的IP地址;所述客戶端接收所述tracker服務(wù)器反饋的對(duì)等客戶端的IP地址;所述客戶端利用所述對(duì)等客戶端的IP地址與所述對(duì)等客戶端建立連接,從所述對(duì)等客戶端下載所述差異補(bǔ)丁包。8.根據(jù)權(quán)利要求6或7所述的下載方法,其特征在于,所述方法還包括:所述客戶端利用所述差異補(bǔ)丁包及所述客戶端待升級(jí)的軟件的二進(jìn)制文件生成所述軟件的最新版本的二進(jìn)制文件;利用所述最新版本的二進(jìn)制文件實(shí)現(xiàn)所述軟件的升級(jí)。9.一種服務(wù)器,其特征在于,包括:獲取單元,用于若接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,則獲取所述軟件的歷史版本的二進(jìn)制文件;生成單元,用于在所述獲取單元獲取所述歷史版本的二進(jìn)制文件之后,利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與每一個(gè)歷史版本的二進(jìn)制文件,生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;處理單元,用于在所述生成單元生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包之后,將所述歷史版本的版本號(hào)與差異補(bǔ)丁包的編號(hào)之間的對(duì)應(yīng)關(guān)系保存至升級(jí)配置數(shù)據(jù)庫(kù)中,將生成的差異補(bǔ)丁包發(fā)送給所述入口服務(wù)器,使得所述入口服務(wù)器將所述差異補(bǔ)丁包上傳至⑶N下載源服務(wù)器。10.根據(jù)權(quán)利要求9所述的服務(wù)器,其特征在于,所述生成單元包括比較單元及補(bǔ)丁包生成單元,用于生成每一個(gè)歷史版本的二進(jìn)制文件的差異補(bǔ)丁包;所述比較單元用于利用預(yù)置的二進(jìn)制差異算法比較所述最新版本的二進(jìn)制文件與所述歷史版本的二進(jìn)制文件,得到比較結(jié)果;所述補(bǔ)丁包生成單元用于在所述比較單元得到比較結(jié)果之后,利用所述比較結(jié)果生成所述歷史版本二進(jìn)制文件的差異補(bǔ)丁包。11.根據(jù)權(quán)利要求9所述的服務(wù)器,其特征在于,所述獲取單元具體用于若接收到入口服務(wù)器上傳的軟件的最新版本的二進(jìn)制文件,查詢歷史版本數(shù)據(jù)庫(kù),從所述歷史版本數(shù)據(jù)庫(kù)中讀取所述軟件的歷史版本的二進(jìn)制文件。12.根據(jù)權(quán)利要求11所述的服務(wù)器,其特征在于,所述處理單元還用于將所述軟件的最新版本的版本號(hào)、所述軟件的歷史版本的版本號(hào)及每一個(gè)歷史版本的二進(jìn)制文件對(duì)應(yīng)的差異補(bǔ)丁包的校驗(yàn)信息保存至所述升級(jí)配置數(shù)據(jù)庫(kù)中。13.根據(jù)權(quán)利要求9至12任一項(xiàng)所述的服務(wù)器,其特征在于,所述服務(wù)器還包括:接收保存單元,用于在所述處理單元將所述差異補(bǔ)丁包發(fā)送給所述入口服務(wù)器之后,接收所述入口服務(wù)器上傳的所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系,將所述差異補(bǔ)丁包與下載地址之間的對(duì)應(yīng)關(guān)系保存在所述升級(jí)配置數(shù)據(jù)庫(kù)中。14.一種客戶端,其特征在于,包括:發(fā)送單元,用于向升級(jí)邏輯服務(wù)器發(fā)送差異補(bǔ)丁包查詢消息,使得所述升級(jí)邏輯服務(wù)器從升級(jí)配置數(shù)據(jù)庫(kù)中查詢所述客戶端待升級(jí)的軟件的版本號(hào)對(duì)應(yīng)的差異補(bǔ)丁包,并將所述差異補(bǔ)丁包的下載地址發(fā)送給所述客戶端;接收單元,用于在所述發(fā)送單元發(fā)送所述差異補(bǔ)丁包查詢消息之后,接收所述差異補(bǔ)丁包的下載地址;下載單元,用于在所述接收單元接收所述差異補(bǔ)丁包的下載地址之后,利用所述差異補(bǔ)丁包的下載地址從CDN下載源服務(wù)器下載所述差異補(bǔ)丁包,所述差異補(bǔ)丁包是基于二進(jìn)制差異算法生成的。15.根據(jù)權(quán)利要求13所述的下載方法,其特征在于,所述發(fā)送單元還用于向tracker服務(wù)器發(fā)送查詢消息,使得所述tracker服務(wù)器向所述客戶端反饋已下載或者正在下載所述差異補(bǔ)丁包的對(duì)等客戶端的IP地址;所述接收單元還用于接收所述tracker服務(wù)器反饋的對(duì)等客戶端的IP地址;所述下載單元還用于利用所述對(duì)等客戶端的IP地址與所述對(duì)等客戶端建立連接,從所述對(duì)等客戶端下載所述差異補(bǔ)丁包。16.根據(jù)權(quán)利要求14或15所述的客戶端,其特征在于,所述客戶端還包括:還原單元,用于利用所述差異補(bǔ)丁包及所述客戶端待升級(jí)的軟件的二進(jìn)制文件生成所述軟件的最新版本的二進(jìn)制文件;升級(jí)單元,用于在所述還原單元得到所述最新版本的二進(jìn)制文件之后,利用所述最新版本的二進(jìn)制文件實(shí)現(xiàn)所述軟件的升級(jí)?!疚臋n編號(hào)】G06F9/445GK103973475SQ201310046195【公開(kāi)日】2014年8月6日申請(qǐng)日期:2013年2月5日優(yōu)先權(quán)日:2013年2月5日【發(fā)明者】劉剛申請(qǐng)人:騰訊科技(深圳)有限公司