一種文件的增量升級(jí)發(fā)布方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種增量升級(jí)發(fā)布的方法和裝置。
【背景技術(shù)】
[0002]當(dāng)前,各種各樣的應(yīng)用軟件在人們的工作和生活中起到越來越重要的角色。每種軟件也會(huì)因?yàn)楣δ艿母倪M(jìn)和漏洞的修補(bǔ),需要不斷的進(jìn)行升級(jí)。
[0003]而對(duì)于軟件發(fā)布者來說,為了升級(jí)軟件功能以不斷適應(yīng)用戶的需求或者為了修補(bǔ)漏洞,需要對(duì)發(fā)發(fā)布的軟件不斷進(jìn)行升級(jí),發(fā)布新版本。
[0004]但是現(xiàn)有的軟件升級(jí)方法就是將更新后版本的軟件安裝包重新發(fā)布一次,然后用戶卸載之前的就版本,再安裝新版本。這種全量升級(jí)方式由于每次都要重新發(fā)布新版本的完整安裝包,每個(gè)客戶端都需要下載該完整的安裝包,因此耗費(fèi)非常大的流量。
[0005]此外現(xiàn)有的軟件升級(jí)也采用增量升級(jí),但是如果沒發(fā)布一個(gè)新版本都需要與之前發(fā)布的所有版本生成增量文件的話,需要很大的存儲(chǔ)資源來存儲(chǔ)增量文件,且隨著版本號(hào)的增加每次升級(jí)所需要生成的增量文件的數(shù)量也成倍增長(zhǎng),消耗大量的資源。
【發(fā)明內(nèi)容】
[0006]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種增量升級(jí)發(fā)布的方法和裝置。
[0007]依據(jù)本發(fā)明的一個(gè)方面,提供了一種文件的增量升級(jí)發(fā)布方法,其中,該方法包括:
[0008]將指定文件的各級(jí)版本按照先后順序從O開始進(jìn)行整數(shù)編號(hào);
[0009]預(yù)設(shè)一個(gè)或多個(gè)增量跳數(shù);
[0010]每當(dāng)發(fā)布該指定文件的一個(gè)新版本時(shí),用每個(gè)增量跳數(shù)除以該新版本的編號(hào),如果能夠整除,則找到版本編號(hào)比該新版本的編號(hào)低該增量跳數(shù)的已發(fā)布版本;
[0011]生成該新版本的發(fā)布包與所找到的各已發(fā)布版本的發(fā)布包之間的增量文件,并根據(jù)當(dāng)前以及之前生成的增量文件生成包含增量升級(jí)路徑的增量升級(jí)列表;
[0012]發(fā)布所生成的增量文件,將所生成的增量升級(jí)列表下發(fā)到供客戶端進(jìn)行增量升級(jí)的配置文件中。
[0013]可選地,生成該新版本的發(fā)布包與所找到的各已發(fā)布版本的發(fā)布包之間的增量文件包括:
[0014]通過調(diào)用增量文件生成工具,生成該新版本的發(fā)布包與所找到的各已發(fā)布版本的發(fā)布包之間的增量文件。
[0015]可選地該方法進(jìn)一步包括:將指定文件的編號(hào)為O的版本設(shè)置為起始版本;
[0016]所述增量升級(jí)列表中的增量升級(jí)路徑包括:從起始版本開始的所有版本升級(jí)到該新版本的增量升級(jí)路徑;。
[0017]可選地,增量升級(jí)列表中的每條增量升級(jí)路徑包括:從對(duì)應(yīng)的版本升級(jí)到該新版本所需經(jīng)過的版本,以及對(duì)應(yīng)所需的增量文件信息;
[0018]所述增量文件信息包括:增量文件的下載地址,或者從指定地址下載增量文件的MD5 值。
[0019]可選地,每條升級(jí)路徑均為從升級(jí)開始版本升級(jí)到該新版本時(shí),所需增量文件個(gè)數(shù)最少的路徑。
[0020]可選地,該方法進(jìn)一步包括:
[0021]將指定文件的編號(hào)為X的版本設(shè)置為起始版本;
[0022]其中,X = M*最大增量跳數(shù);M為自然數(shù)且M= 1,…,N-1;
[0023]N為將從編號(hào)為O的版本到該新版本的路徑,按照最大增量跳數(shù)切割后得到的塊的數(shù)量。
[0024]可選地,所述一個(gè)或多個(gè)增量跳數(shù)中至少包括I。
[0025]可選地,在生成包含增量升級(jí)路徑的增量升級(jí)列表之后,并在將所生成的增量升級(jí)列表下發(fā)到供客戶端進(jìn)行增量升級(jí)的配置文件中之前,該方法進(jìn)一步包括如下中的一項(xiàng)或多項(xiàng):
[0026]如果生成的一個(gè)增量文件的大小,大于第一預(yù)設(shè)閾值,則從增量升級(jí)列表中刪除包含該增量文件的增量升級(jí)路徑;
[0027]如果生成的一個(gè)增量文件的大小與當(dāng)前發(fā)布版本的發(fā)布包的大小的比值,大于第二預(yù)設(shè)閾值,則從增量升級(jí)列表中刪除包含該增量文件的增量升級(jí)路徑;
[0028]如果一條增量升級(jí)路徑上增量文件的大小總和,大于當(dāng)前發(fā)布版本的發(fā)布包的大小,則從增量升級(jí)列表中刪除該增量升級(jí)路徑。
[0029]依據(jù)本發(fā)明的另一個(gè)方面,提供了一種文件的增量升級(jí)發(fā)布裝置,其中,該裝置包括:
[0030]設(shè)置單元,適于將指定文件的各級(jí)版本按照先后順序從O開始進(jìn)行整數(shù)編號(hào);以及適于預(yù)設(shè)一個(gè)或多個(gè)增量跳數(shù);
[0031]增量預(yù)處理單元,適于每當(dāng)發(fā)布該指定文件的一個(gè)新版本時(shí),用每個(gè)增量跳數(shù)除以該新版本的編號(hào),如果能夠整除,則找到版本編號(hào)比該新版本的編號(hào)低該增量跳數(shù)的已發(fā)布版本;
[0032]增量生成單元,適于生成該新版本的發(fā)布包與增量預(yù)處理單元所找到的各已發(fā)布版本的發(fā)布包之間的增量文件,并根據(jù)當(dāng)前以及之前生成的增量文件生成包含增量升級(jí)路徑的增量升級(jí)列表;
[0033]增量發(fā)布單元,適于發(fā)布所生成的增量文件,將所生成的增量升級(jí)列表下發(fā)到供客戶端進(jìn)行增量升級(jí)的配置文件中。
[0034]可選地,所述增量生成單元,適于通過調(diào)用增量文件生成工具,生成該新版本的發(fā)布包與增量預(yù)處理單元所找到的各已發(fā)布版本的發(fā)布包之間的增量文件。
[0035]可選地,所述設(shè)置單元,進(jìn)一步適于將指定文件的編號(hào)為O的版本設(shè)置為起始版本;
[0036]所述增量生成單元生成的所述增量升級(jí)列表中的增量升級(jí)路徑包括:從起始版本開始的所有版本升級(jí)到該新版本的增量升級(jí)路徑;。
[0037]可選地,所述增量生成單元生成的增量升級(jí)列表中的每條增量升級(jí)路徑包括:從對(duì)應(yīng)的版本升級(jí)到該新版本所需經(jīng)過的版本,以及對(duì)應(yīng)所需的增量文件信息;
[0038]所述增量文件信息包括:增量文件的下載地址,或者從指定地址下載增量文件的MD5 值。
[0039]可選地,所述增量生成單元生成的增量升級(jí)列表中的每條升級(jí)路徑均為,從升級(jí)開始版本升級(jí)到該新版本時(shí),所需增量文件個(gè)數(shù)最少的路徑。
[0040]可選地,所述設(shè)置單元,進(jìn)一步適于將指定文件的編號(hào)為X的版本設(shè)置為起始版本;
[0041]其中,X = M*最大增量跳數(shù);M為自然數(shù)且M= 1,…,N-1 ;
[0042]N為將從編號(hào)為O的版本到該新版本的路徑,按照最大增量跳數(shù)切割后得到的塊的數(shù)量。
[0043]可選地,所述設(shè)置單元預(yù)設(shè)的所述一個(gè)或多個(gè)增量跳數(shù)中至少包括I。
[0044]可選地,所述增量生成單元,在生成包含增量升級(jí)路徑的增量升級(jí)列表之后,進(jìn)一步適于執(zhí)行如下中的一項(xiàng)或多項(xiàng):
[0045]如果生成的一個(gè)增量文件的大小,大于第一預(yù)設(shè)閾值,則從增量升級(jí)列表中刪除包含該增量文件的增量升級(jí)路徑;
[0046]如果生成的一個(gè)增量文件的大小與當(dāng)前發(fā)布版本的發(fā)布包的大小的比值,大于第二預(yù)設(shè)閾值,則從增量升級(jí)列表中刪除包含該增量文件的增量升級(jí)路徑;
[0047]如果一條增量升級(jí)路徑上增量文件的大小總和,大于當(dāng)前發(fā)布版本的發(fā)布包的大小,則從增量升級(jí)列表中刪除該增量升級(jí)路徑。
[0048]根據(jù)本發(fā)明的這種在增量發(fā)布時(shí)只生成當(dāng)前發(fā)布版本的發(fā)布包與預(yù)設(shè)策略所確定的一個(gè)或多個(gè)已發(fā)布版本的發(fā)布包之間的增量文件,發(fā)布所生成的增量文件,以及將增量升級(jí)列表下發(fā)到供客戶端進(jìn)行增量升級(jí)的配置文件中的技術(shù)方案,解決了全部版本以全量發(fā)布時(shí)的流量耗費(fèi)問題,并且每次增量發(fā)布時(shí)選擇性地生成當(dāng)前發(fā)布版本的發(fā)布包與一個(gè)或多個(gè)已發(fā)布版本的發(fā)布包之間的增量文件,而不是生成當(dāng)前發(fā)布版本的發(fā)布包與所有已發(fā)布版本的發(fā)布包之間的增量文件,進(jìn)一步減少了文件升級(jí)所需的資源。
[0049]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說明】
[0050]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0051]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件的增量升級(jí)發(fā)布方法的流程圖;
[0052]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的能升級(jí)到1.0.0.1030的版本路徑;
[0053]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的能升級(jí)到1.0.0.1020的版本路徑;
[0054]圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的1.0.0.1020的明細(xì)升級(jí)路徑;
[0055]圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的1.0.0.1030的明細(xì)升級(jí)路徑;
[0056]圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的非連續(xù)版本重新編號(hào)的示意圖;
[0057]圖7示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的連續(xù)版本重新編號(hào)的示意圖;
[0058]圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的大數(shù)據(jù)量版本升級(jí)示意圖;
[0059]圖9示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件的升級(jí)發(fā)布方法的流程圖;
[0060]圖10示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件的增量升級(jí)發(fā)布裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0061]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0062]在闡述本發(fā)明的方案之前,先給出本方案中的一些概念的解釋。
[0063