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