軟件升級(jí)方法、裝置、客戶端及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例提供一種軟件升級(jí)方法、裝置、客戶端及系統(tǒng),其中的方法可包括:當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第一版本軟件的增量升級(jí)文件;將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件;在所述客戶端中安裝所述第二版本軟件。本發(fā)明在軟件升級(jí)過程中,無需下載新版本軟件的完整安裝包,僅需要下載軟件的增量升級(jí)文件,減少帶寬資源的消耗,降低軟件維護(hù)成本。
【專利說明】軟件升級(jí)方法、裝置、客戶端及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,具體涉及軟件【技術(shù)領(lǐng)域】,尤其涉及一種軟件升 級(jí)方法、裝置、客戶端及系統(tǒng)。
【背景技術(shù)】
[0002] 軟件(software),又可稱為應(yīng)用或應(yīng)用軟件,指采用程序設(shè)計(jì)語言編制得到的程 序的集合,可以為用戶提供在不同領(lǐng)域、解決不同問題的應(yīng)用功能。
[0003] 為了滿足用戶不斷增長的應(yīng)用需求,軟件發(fā)布者需要定期或者不定期地提供軟件 的新版本軟件的安裝包,以實(shí)現(xiàn)客戶端(例如:手機(jī)、筆記本電腦等)中舊版本軟件的功能升 級(jí)?,F(xiàn)有的客戶端軟件的升級(jí)過程一般包括:軟件發(fā)布者通過各個(gè)推廣渠道發(fā)布新版本軟 件的安裝包,用戶可從各個(gè)推廣渠道下載新版本軟件的安裝包,在客戶端安裝該新版本軟 件的安裝包以替換客戶端中的舊版本軟件,完成軟件升級(jí),實(shí)現(xiàn)客戶端中的軟件的功能升 級(jí)。然而,上述現(xiàn)有方案中,每次進(jìn)行軟件升級(jí)過程,均需要下載新版本軟件的完整安裝包, 由于安裝包的數(shù)據(jù)量一般較大(例如:一個(gè)APK (Android Package,安卓系統(tǒng)的安裝包)通 常有16M),這需要消耗客戶端中較大的帶寬資源,提高了軟件升級(jí)和維護(hù)成本。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供一種軟件升級(jí)方法、裝置、客戶端及系統(tǒng),在軟件升級(jí)過程中, 無需下載新版本軟件的完整安裝包,僅需要下載軟件的增量升級(jí)文件,減少帶寬資源的消 耗,降低軟件升級(jí)和維護(hù)成本。
[0005] 本發(fā)明第一方面提供一種軟件升級(jí)方法,可包括:
[0006] 當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第一版本軟件的增量升級(jí) 文件;
[0007] 將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件;
[0008] 在所述客戶端中安裝所述第二版本軟件。
[0009] 本發(fā)明第二方面提供一種軟件升級(jí)裝置,可包括:
[0010] 升級(jí)獲取模塊,用于當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第一 版本軟件的增量升級(jí)文件;
[0011] 整合模塊,用于將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版 本軟件;
[0012] 安裝模塊,用于在所述客戶端中安裝所述第二版本軟件。
[0013] 本發(fā)明第三方面提供一種客戶端,可包括上述第二方面提供的軟件升級(jí)裝置。
[0014] 本發(fā)明第四方面提供一種軟件升級(jí)系統(tǒng),包括服務(wù)器,還包括至少一個(gè)上述第三 方面提供的客戶端。
[0015] 實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
[0016] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較?。├纾阂粋€(gè)APK安裝包的增量 升級(jí)文件通常僅有4M),從而有效的降低了帶寬資源的消耗,降低軟件升級(jí)和維護(hù)成本。
【專利附圖】
【附圖說明】
[0017] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0018] 圖1為本發(fā)明實(shí)施例提供的軟件的結(jié)構(gòu)示意圖;
[0019] 圖2為本發(fā)明實(shí)施例提供的軟件的擴(kuò)展字段的結(jié)構(gòu)示意圖;
[0020] 圖3為本發(fā)明實(shí)施例提供的增量升級(jí)文件的結(jié)構(gòu)示意圖;
[0021] 圖4為本發(fā)明實(shí)施例提供的一種軟件升級(jí)方法的流程圖;
[0022] 圖5為本發(fā)明實(shí)施例提供的另一種軟件升級(jí)方法的流程圖;
[0023] 圖6為本發(fā)明實(shí)施例提供的又一種軟件升級(jí)方法的流程圖;
[0024] 圖7為本發(fā)明實(shí)施例提供的一種軟件升級(jí)裝置的結(jié)構(gòu)示意圖;
[0025] 圖8為本發(fā)明實(shí)施例提供的另一種軟件升級(jí)裝置的結(jié)構(gòu)示意圖;
[0026] 圖9為本發(fā)明實(shí)施例提供的升級(jí)判斷模塊的結(jié)構(gòu)示意圖;
[0027] 圖10a為本發(fā)明實(shí)施例提供的升級(jí)獲取模塊的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0028] 圖10b為本發(fā)明實(shí)施例提供的升級(jí)獲取模塊的另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0029] 圖11a為本發(fā)明實(shí)施例提供的整合模塊的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0030] 圖lib為本發(fā)明實(shí)施例提供的整合模塊的另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0031] 圖12為本發(fā)明實(shí)施例提供的一種軟件升級(jí)系統(tǒng)的結(jié)構(gòu)示意圖;
[0032] 圖13為本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0033] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034] 本發(fā)明實(shí)施例中,客戶端可以為:PC (Personal Computer,個(gè)人計(jì)算機(jī))、平板電 腦、手機(jī)、智能手機(jī)、電子閱讀器、筆記本電腦等終端設(shè)備中的任一種。軟件可以包括但不限 于:IM (Instant Messenger,即時(shí)通信)軟件、SNS (SocialNetworking Services,社會(huì)性 網(wǎng)絡(luò)服務(wù))軟件、瀏覽器軟件等等。
[0035] 本發(fā)明實(shí)施例中,第一版本軟件又可稱為"舊版本軟件"或"Old File",可以指已 安裝于客戶端中的軟件;第二版本軟件又可稱為"新版本軟件"或"NewFile",指第一版本 軟件進(jìn)行升級(jí)后的軟件;第一版本軟件與第二版本軟件可以屬于版本不同、但類型相同的 軟件,例如:若第一版本軟件為第一版本的頂軟件A,則第二版本軟件為第二版本的IM軟 件A。
[0036] 第一版本軟件與第二版本軟件也可以屬于版本不同,類型也不同的軟件,例如:若 第一版本軟件為第一版本的頂軟件B,則第二版本軟件可以為第二版本的SNS軟件B。
[0037] 關(guān)于所述第一版本軟件的增量升級(jí)文件,指第一版本軟件與第二版本軟件的補(bǔ)丁 差異文件;第一版本軟件與所述增量升級(jí)文件可進(jìn)行相應(yīng)的補(bǔ)丁合成,整合為第二版本軟 件。
[0038] 下面將結(jié)合附圖1-附圖3,對(duì)本發(fā)明實(shí)施例提供的軟件的結(jié)構(gòu)和增量升級(jí)文件的 結(jié)構(gòu)進(jìn)行詳細(xì)說明。需要說明的是,圖1-圖3所示的軟件結(jié)構(gòu)和增量升級(jí)文件的結(jié)構(gòu)可以 應(yīng)用于本發(fā)明后續(xù)各實(shí)施例中。
[0039] 請(qǐng)參見圖1,為本發(fā)明實(shí)施例提供的軟件的結(jié)構(gòu)示意圖;該軟件可包括數(shù)據(jù)字段 和擴(kuò)展字段,即本發(fā)明實(shí)施例中,第一版本軟件可包括第一數(shù)據(jù)字段和擴(kuò)展字段;第二版本 軟件可包括第二數(shù)據(jù)字段和擴(kuò)展字段;第一版本軟件的擴(kuò)展字段與第二版本軟件的擴(kuò)展字 段相同。優(yōu)選地,本發(fā)明實(shí)施例的增量升級(jí)文件指第一版本軟件的第一數(shù)據(jù)字段與第二版 本軟件的第二數(shù)據(jù)字段的補(bǔ)丁差異文件。由于增量升級(jí)文件不考慮軟件的擴(kuò)展字段,無需 針對(duì)不同擴(kuò)展字段的同一版本軟件分別生成相應(yīng)的增量升級(jí)文件,針對(duì)同一版本軟件,無 論該軟件的擴(kuò)展字段的內(nèi)容是否相同,均可以僅維護(hù)一個(gè)增量升級(jí)文件,從而可降低軟件 升級(jí)系統(tǒng)的維護(hù)成本。
[0040] 其中,數(shù)據(jù)字段用于存儲(chǔ)軟件的數(shù)據(jù)信息,該數(shù)據(jù)信息可以為能夠獨(dú)立運(yùn)行的程 序,可用于實(shí)現(xiàn)軟件的相應(yīng)功能。其中,擴(kuò)展字段用于存儲(chǔ)軟件的配置信息,例如:渠道編 號(hào)、版本號(hào)、網(wǎng)絡(luò)流量提醒等等。需要說明的是,本發(fā)明實(shí)施例的軟件的數(shù)據(jù)字段,可以參與 簽名校驗(yàn)計(jì)算,獲得軟件的校驗(yàn)信息;而軟件的擴(kuò)展字段,可以無需參與簽名校驗(yàn)計(jì)算。
[0041] 請(qǐng)參見圖2,為本發(fā)明實(shí)施例提供的軟件的擴(kuò)展字段的結(jié)構(gòu)示意圖;如圖2所示, 軟件的擴(kuò)展字段的結(jié)構(gòu)說明如下:
[0042] 擴(kuò)展字段頭部(Header ):共8個(gè)字節(jié),前4個(gè)字節(jié)用于存儲(chǔ)軟件標(biāo)識(shí)的哈希碼,后4 個(gè)字節(jié)用于存儲(chǔ)擴(kuò)展字段的總長度信息;例如:以Android系統(tǒng)的客戶端為例,在該客戶端 中的標(biāo)識(shí)為"Micromsg"的IM軟件的擴(kuò)展字段中,Header的前4個(gè)字節(jié)包含了"Micromsg" 這個(gè)字符串的哈希碼,后4個(gè)字節(jié)存儲(chǔ)了該IM軟件的擴(kuò)展字段的總長度;
[0043] 校驗(yàn)信息:由軟件的數(shù)據(jù)字段進(jìn)行簽名校驗(yàn)計(jì)算獲得,可唯一標(biāo)識(shí)軟件;該校驗(yàn) 信息可以采用校驗(yàn)算法進(jìn)行計(jì)算獲得,該校驗(yàn)算法包括但不限于:哈希算法、MD5 (Message Digest Algorithm5,摘要算法第五版)算法等等。除特別說明外,本發(fā)明后續(xù)實(shí)施例中,軟 件的校驗(yàn)信息為該軟件的MD5值;
[0044] 渠道編號(hào)(Channel ID):指軟件發(fā)布的目標(biāo)推廣渠道的編號(hào),該編號(hào)可以由軟件 的發(fā)布商確定,例如:軟件的官網(wǎng)的渠道編號(hào)可以為〇〇〇〇,或者第三方電子市場(chǎng)的渠道編 號(hào)可以為0001,等等;
[0045] 設(shè)備類型(Profile Device Type):用于存儲(chǔ)默認(rèn)值,例如:可存儲(chǔ)一個(gè)空字符串;
[0046] 升級(jí)模式(Update Mode):指軟件所采用的升級(jí)方式,該升級(jí)方式可包括但不限 于:跳轉(zhuǎn)至第三方電子市場(chǎng)進(jìn)行升級(jí),或者在軟件的官網(wǎng)進(jìn)行升級(jí);
[0047] 版本號(hào)(Build Version):指軟件當(dāng)前版本編號(hào),例如:客戶端中的第一版本軟件 的版本號(hào)為VI. 〇,等等;
[0048] 第三方電子市場(chǎng)URL (Uniform Resource Locator,統(tǒng)一資源定位符),當(dāng)Update Mode為跳轉(zhuǎn)至第三方電子市場(chǎng)進(jìn)行升級(jí)時(shí),所跳轉(zhuǎn)到的第三方電子市場(chǎng)的URL地址。
[0049] 需要說明的是,圖2所示的軟件的擴(kuò)展字段的結(jié)構(gòu)僅為舉例,當(dāng)軟件的配置信息 發(fā)生變化時(shí),擴(kuò)展字段的結(jié)構(gòu)也可能發(fā)生變化,例如:某軟件定制了網(wǎng)絡(luò)流量提醒的配置信 息,則該軟件的擴(kuò)展字段除了包含如圖2所示的結(jié)構(gòu)之外,還可包含網(wǎng)絡(luò)流量提醒的結(jié)構(gòu) 段,用于存儲(chǔ)網(wǎng)絡(luò)流量提醒的配置信息。
[0050] 請(qǐng)參見圖3,為本發(fā)明實(shí)施例提供的增量升級(jí)文件的結(jié)構(gòu)示意圖;其中,增量升級(jí) 文件指第一版本軟件與第二版本軟件的補(bǔ)丁差異文件,具體為第一版本軟件的第一數(shù)據(jù)字 段與第二版本軟件的第二數(shù)據(jù)字段的補(bǔ)丁差異文件。增量升級(jí)文件可以由第一版本軟件 的第一數(shù)據(jù)字段與第二版本軟件的第二數(shù)據(jù)字段進(jìn)行二進(jìn)制差異計(jì)算獲得,例如:可基于 BSdiff (Binary Diff,二進(jìn)制差異)算法,對(duì)第一版本軟件的第一數(shù)據(jù)字段和第二版本軟 件的第二數(shù)據(jù)字段進(jìn)行計(jì)算,獲得增量升級(jí)文件。相應(yīng)地,第一版本軟件的第一數(shù)據(jù)字段 與增量升級(jí)文件可進(jìn)行相應(yīng)的合成,整合為第二版本軟件的第二數(shù)據(jù)字段;例如:可基于 BSPatch (Binary Patch,二進(jìn)制補(bǔ)丁合成,常與BSdiff配套使用)算法,對(duì)第一版本軟件的 第一數(shù)據(jù)字段和增量升級(jí)文件進(jìn)行計(jì)算,生成第二版本軟件的第二數(shù)據(jù)字段。如圖3所示, 增量升級(jí)文件的結(jié)構(gòu)說明如下:
[0051] 頭部(Header):共8個(gè)字節(jié),用于存儲(chǔ)軟件標(biāo)識(shí)的哈希碼,例如:以Android系統(tǒng)的 客戶端為例,在該客戶端中的關(guān)于標(biāo)識(shí)為"Micromsg"的IM軟件的增量升級(jí)文件中,Header 存儲(chǔ)了 "Micromsg"這個(gè)字符串的哈希碼;
[0052] 控制信息塊長度(Ctrl Block Length):共8個(gè)字節(jié),用于存儲(chǔ)增量升級(jí)文件的控 制信息塊的總長度;
[0053] 差異數(shù)據(jù)塊長度(Diff Block Length):共8個(gè)字節(jié),用于存儲(chǔ)增量升級(jí)文件的差 異數(shù)據(jù)塊的總長度;
[0054] 新版本軟件長度(New File Length):共8個(gè)字節(jié),用于存儲(chǔ)第二版本軟件(或稱新 版本軟件)的總長度;
[0055] 控制信息塊(Ctrl Block):用于存儲(chǔ)第一版本軟件的第一數(shù)據(jù)字段與增量升級(jí)文 件的整合過程的控制信息;
[0056] 差異數(shù)據(jù)塊(Diff Block):用于存儲(chǔ)第二版本軟件與第一版本軟件的差異化數(shù)據(jù) 信息,該差異化數(shù)據(jù)塊的形成過程可以為:采用BSdiff算法,從第二版本軟件的第二數(shù)據(jù) 字段和第一版本軟件的第一數(shù)據(jù)字段中尋找相似數(shù)據(jù),然后將從第二版本軟件的第二數(shù)據(jù) 字段中查找到的相似數(shù)據(jù)和從第一版本軟件的第一數(shù)據(jù)字段中查找到的相似數(shù)據(jù)進(jìn)行二 進(jìn)制差異計(jì)算,得到差異化數(shù)據(jù)信息并存儲(chǔ)至差異數(shù)據(jù)塊(Diff Block);
[0057] 新增數(shù)據(jù)塊(Extra Block):用于存儲(chǔ)第二版本軟件相對(duì)于第一版本軟件的新增 數(shù)據(jù)信息,該新增數(shù)據(jù)塊的形成過程可以為:采用BSdiff算法,查找第二版本軟件的第二 數(shù)據(jù)字段相對(duì)于第一版本軟件的第一數(shù)據(jù)字段的新增數(shù)據(jù)信息,將查找到的新增數(shù)據(jù)信息 存入新增數(shù)據(jù)塊(Extra Block)。
[0058] 由上述可知,增量升級(jí)文件包括控制信息和數(shù)據(jù)信息,所述控制信息即為所述控 制信息塊(Ctrl Block)中所存儲(chǔ)的信息,包括所述差異數(shù)據(jù)塊(Diff Block)中所存儲(chǔ)的差 異化數(shù)據(jù)信息和所述新增數(shù)據(jù)塊(Extra Block)中所存儲(chǔ)的新增數(shù)據(jù)信息。
[0059] 再請(qǐng)參見圖3,增量升級(jí)文件的結(jié)構(gòu)中,控制信息塊(Ctrl Block)中包含了至少一 個(gè)子控制信息塊,所述第一版本軟件的第一數(shù)據(jù)字段與增量升級(jí)文件的整合過程的控制信 息分布于所述至少一個(gè)子控制信息塊中;所述至少一個(gè)子控制信息塊按順序存儲(chǔ)于控制信 息塊(Ctrl Block)中。在軟件升級(jí)過程中,按照所述至少一個(gè)子控制信息塊在控制信息塊 (Ctrl Block)中的存儲(chǔ)順序,依次獲取所述至少一個(gè)子控制信息塊中的控制信息,以對(duì)第 一版本軟件的第一數(shù)據(jù)字段和增量升級(jí)文件包括的數(shù)據(jù)信息進(jìn)行有序、準(zhǔn)確地整合,形成 第二版本軟件的第二數(shù)據(jù)字段;例如:按照第一個(gè)子控制信息塊中的控制信息,對(duì)第一版 本軟件的第一數(shù)據(jù)字段和增量升級(jí)文件中的數(shù)據(jù)信息進(jìn)行整合,形成第二版本軟件的第二 數(shù)據(jù)字段的第一部分?jǐn)?shù)據(jù)內(nèi)容;再按照第二個(gè)子控制信息塊中的控制信息,對(duì)第一版本軟 件的第一數(shù)據(jù)字段和增量升級(jí)文件中的數(shù)據(jù)信息進(jìn)行整合,形成第二版本軟件的第二數(shù)據(jù) 字段的第二部分?jǐn)?shù)據(jù)內(nèi)容,將第二數(shù)據(jù)字段的第二部分?jǐn)?shù)據(jù)內(nèi)容順序填充至第二數(shù)據(jù)字段 的第一部分?jǐn)?shù)據(jù)內(nèi)容之后;以此類推,直至生成完整的第二數(shù)據(jù)字段。其中,子控制信息塊 的結(jié)構(gòu)說明如下:
[0060] 從舊版本文件和差異數(shù)據(jù)塊讀取的長度(Read length from old file and Diff Block):共4個(gè)字節(jié),用于在第一版本軟件的第一數(shù)據(jù)字段與增量升級(jí)文件進(jìn)行整合過程 中,指示從第一版本文件(舊版本文件)的第一數(shù)據(jù)字段中讀取的數(shù)據(jù)長度,以及從增量升 級(jí)文件的差異數(shù)據(jù)塊中讀取的數(shù)據(jù)長度;
[0061] 從新增數(shù)據(jù)塊讀取的長度(Read length from Extra Block):共4個(gè)字節(jié),用于在 第一版本軟件的第一數(shù)據(jù)字段與增量升級(jí)文件進(jìn)行整合過程中,指示從增量升級(jí)文件的新 增數(shù)據(jù)塊中讀取的數(shù)據(jù)長度;
[0062] 舊版本文件跳讀的長度(Old file skip length):共4個(gè)字節(jié),用于指示下一次數(shù) 據(jù)讀取時(shí),需要從第一版本文件的第一數(shù)據(jù)字段中跳過第一版本軟件的長度;例如:當(dāng)根 據(jù)子控制信息塊對(duì)第一版本軟件的第一數(shù)據(jù)字段和增量升級(jí)文件進(jìn)行數(shù)據(jù)整合時(shí),從第一 版本軟件的第一數(shù)據(jù)字段中跳過上一個(gè)子控制信息塊中的舊版本文件跳讀的長度之后,再 進(jìn)行數(shù)據(jù)的讀取。
[0063] 下面將結(jié)合附圖4-附圖6,對(duì)本發(fā)明實(shí)施例提供的軟件升級(jí)方法進(jìn)行詳細(xì)介紹。 需要說明的是,下述的方法流程可以由本發(fā)明實(shí)施例提供的軟件升級(jí)裝置所執(zhí)行。
[0064] 請(qǐng)參見圖4,為本發(fā)明實(shí)施例提供的一種軟件升級(jí)方法的流程圖;該方法可包括 以下步驟S101-步驟S103。
[0065] S101,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第一版本軟件的增 量升級(jí)文件。
[0066] 其中,所述第一版本軟件包括第一數(shù)據(jù)字段和擴(kuò)展字段;所述增量升級(jí)文件包括 控制信息和數(shù)據(jù)信息。本步驟中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),可以從服務(wù)器獲 取所述增量升級(jí)文件的地址信息,并根據(jù)該地址信息,下載所述增量升級(jí)文件。
[0067] S102,將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件。
[0068] 其中,所述增量升級(jí)文件指第一版本軟件與第二版本軟件的補(bǔ)丁差異文件,因此 相應(yīng)地,在獲得所述第一版本軟件的增量升級(jí)文件之后,本步驟可以將所述第一版本軟件 和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件??梢岳斫獾氖?,本步驟的將所述第一版 本軟件和增量升級(jí)文件進(jìn)行整合的過程,與第一版本軟件與第二版本軟件進(jìn)行差異計(jì)算獲 得增量升級(jí)文件的過程屬于相逆的過程。
[0069] S103,在所述客戶端中安裝所述第二版本軟件。
[0070] 在所述客戶端中安裝所述第二版本軟件之后,該第二版本軟件則可替換客戶端中 的所述第一版本軟件,從而完成軟件升級(jí)過程。
[0071] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較小,從而有效的降低了帶寬資源的 消耗,降低軟件升級(jí)和維護(hù)成本。
[0072] 請(qǐng)參見圖5,為本發(fā)明實(shí)施例提供的另一種軟件升級(jí)方法的流程圖;該方法可包 括以下步驟S201-步驟S204。
[0073] S201,判斷客戶端中的第一版本軟件是否需要升級(jí)。
[0074] 本步驟中,可以在用戶登錄至第一版本軟件時(shí),發(fā)起對(duì)該第一版本軟件的升級(jí)判 斷過程;或者,在用戶已登錄至第一版本軟件之后,使用該第一版本軟件的過程中,發(fā)起對(duì) 該第一版本軟件的升級(jí)判斷過程;例如:針對(duì)客戶端中的VI. 0版本的IM軟件A,當(dāng)用戶登 錄該VI. 0版本的IM軟件A時(shí),可向服務(wù)器發(fā)送升級(jí)檢測(cè)消息,以判斷該VI. 0版本的IM軟 件A是否需要升級(jí):或者,用戶登錄該VI. 0版本的IM軟件A之后,可以定時(shí)(例如:每隔一 天、或每隔兩天等等)向服務(wù)器發(fā)送升級(jí)檢測(cè)消息,以判斷該VI. 0版本的IM軟件A是否需 要升級(jí)。
[0075] S202,當(dāng)所述客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第一版本軟件 的增量升級(jí)文件。
[0076] S203,將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件。
[0077] S204,在所述客戶端中安裝所述第二版本軟件。
[0078] 本實(shí)施例的步驟S202-步驟S204可參見圖4所示實(shí)施例的步驟S101-步驟S103, 在此不贅述。
[0079] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較小,從而有效的降低了帶寬資源的 消耗,降低軟件升級(jí)和維護(hù)成本。
[0080] 請(qǐng)參見圖6,為本發(fā)明實(shí)施例提供的又一種軟件升級(jí)方法的流程圖;該方法可包 括以下步驟S301-步驟S314。
[0081] S301,向服務(wù)器發(fā)送升級(jí)檢測(cè)消息。
[0082] 其中,所述升級(jí)檢測(cè)消息中攜帶所述客戶端中的第一版本軟件的版本相關(guān)信息; 該第一版本軟件的版本相關(guān)信息可以包括但不限于:第一版本軟件的校驗(yàn)信息(例如:第 一版本軟件的MD5值)、該第一版本軟件的版本號(hào)(例如:V1. 0)、客戶端的系統(tǒng)參數(shù)(如:操 作系統(tǒng)類型、操作系統(tǒng)的版本等),等等。本步驟中,可以在用戶登錄至第一版本軟件時(shí),向 服務(wù)器發(fā)送升級(jí)檢測(cè)消息;或者,在用戶已登錄至第一版本軟件之后,使用該第一版本軟件 的過程中,向服務(wù)器發(fā)送升級(jí)檢測(cè)消息;例如:針對(duì)客戶端中的VI. 0版本的IM軟件A,當(dāng)用 戶登錄該VI. 0版本的IM軟件A時(shí),可向服務(wù)器發(fā)送升級(jí)檢測(cè)消息;或者,用戶登錄該VI. 0 版本的IM軟件A之后,可以定時(shí)(例如:每隔一天、或每隔兩天等等)向服務(wù)器發(fā)送升級(jí)檢 測(cè)消息。
[0083] S302,接收所述服務(wù)器返回的升級(jí)配置信息。
[0084] 服務(wù)器在接收到升級(jí)檢測(cè)消息之后,可以根據(jù)升級(jí)檢測(cè)消息中攜帶的第一版本軟 件的版本相關(guān)信息,生成關(guān)于所述第一版本軟件的升級(jí)配置信息;本步驟接收所述服務(wù)器 返回的所述升級(jí)配置信息。舉例來說,所述升級(jí)配置信息可采用下述的XML (Extensible Markup Language,可擴(kuò)展標(biāo)記語言)格式:
[0085] <patchupdate base="htlp://dldirl.xx.corn/" count-'" > <item oldl = '' MD5xl'" newl = " MD5,," patch 1 = "A//;)5, uil = 'patch Γ'
[0086] size = "19965"> </item> 〈item old2 = " M)5:丨" new2 = " MJ)52 2 " patcii2 = " Mj)52 ;" url = "patch2,! size = '!19965'!> </item> <item......</item> </patchupdate>
[0087] 上述例子中,一個(gè)item表示所述升級(jí)配置信息中一個(gè)升級(jí)配置項(xiàng);每個(gè)item中的 old的值表示第一配置校驗(yàn)信息;new的值表示第二配置校驗(yàn)信息;patch的值表示增量配 置校驗(yàn)信息;base+url的值表示地址信息。
[0088] 根據(jù)上述升級(jí)配置信息的格式可知,所述升級(jí)配置信息可包括至少一個(gè)升級(jí)配置 項(xiàng)(item),每個(gè)升級(jí)配置項(xiàng)(item)可包括:第一配置校驗(yàn)信息、所述第一配置校驗(yàn)信息對(duì) 應(yīng)的第二配置校驗(yàn)信息、所述第一配置校驗(yàn)信息對(duì)應(yīng)的增量配置校驗(yàn)信息,以及所述第一 配置校驗(yàn)信息對(duì)應(yīng)的地址信息;例如:上述第一個(gè)item中,第一配置校驗(yàn)信息為〃MD5K", 所述第一配置校驗(yàn)信息對(duì)應(yīng)的第二配置校驗(yàn)信息為〃MD5i_ 2〃,所述第一配置校驗(yàn)信息對(duì)應(yīng) 的增量配置校驗(yàn)信息為〃MD5i_3〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息可以為〃http:// dldirl. XX. com/patchl〃。再如:上述第二個(gè)item中,第一配置校驗(yàn)信息為〃MD52_i〃,所述第 一配置校驗(yàn)信息對(duì)應(yīng)的第二配置校驗(yàn)信息為〃MD5 2_2〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的增量 配置校驗(yàn)信息為〃 MD52_3 〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息可以為〃 http: //dldirl. XX.com/patch2〃。
[0089] S303,判斷所述升級(jí)配置信息中是否存在與所述客戶端中的第一版本軟件的校驗(yàn) 信息相匹配的第一配置校驗(yàn)信息;如果判斷結(jié)果為是,轉(zhuǎn)入步驟S304 ;否則,結(jié)束。
[0090] 本步驟的判斷過程可以為:首先,獲取所述客戶端中的第一版本軟件的校驗(yàn)信息, 例如:可以從所述客戶端中的第一版本軟件的擴(kuò)展字段中讀取所述第一版本軟件的校驗(yàn)信 息;或者,可以根據(jù)所述客戶端中的第一版本軟件的第一數(shù)據(jù)字段,計(jì)算所述客戶端中的第 一版本軟件的校驗(yàn)信息。其次,將所述客戶端中的第一版本軟件的校驗(yàn)信息分別與所述升 級(jí)配置信息中的每個(gè)升級(jí)配置項(xiàng)(item)中的第一配置校驗(yàn)信息進(jìn)行比較,如果所述客戶端 中的第一版本軟件的校驗(yàn)信息與所述升級(jí)配置信息中的任一個(gè)升級(jí)配置項(xiàng)(item)中的第 一配置校驗(yàn)信息相同,則將與所述客戶端中的第一版本軟件的校驗(yàn)信息相同的第一配置校 驗(yàn)信息確定為相匹配的第一配置校驗(yàn)信息,例如:如果判斷所述客戶端中的第一版本軟件 的校驗(yàn)信息與所述升級(jí)配置信息中的第一個(gè)item中的MD5h相同,則確定MD5h為相匹配 的第一配置校驗(yàn)信息。如果所述升級(jí)配置信息中存在所述相匹配的第一配置校驗(yàn)信息,表 明所述客戶端中的第一版本軟件存在升級(jí)配置,需要進(jìn)行升級(jí),則轉(zhuǎn)入步驟S304 ;如果所 述升級(jí)配置信息中存在所述相匹配的第一配置校驗(yàn)信息,表明所述客戶端中的第一版本軟 件不存在升級(jí)配置,無需進(jìn)行升級(jí),可結(jié)束軟件升級(jí)流程。
[0091] S304,確認(rèn)所述客戶端中的第一版本軟件需要升級(jí)。
[0092] 本實(shí)施例的步驟S301-步驟S304可以為圖5所示實(shí)施例的步驟S201的具體細(xì)化 步驟。
[0093] S305,從所述升級(jí)配置信息中查找所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的地址信 息。
[0094] 如前述,所述升級(jí)配置信息中包括至少一個(gè)第一配置校驗(yàn)信息,以及所述至少一 個(gè)第一配置校驗(yàn)信息各對(duì)應(yīng)的地址信息。本步驟中則可從所述升級(jí)配置信息中查找所述 相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息;按照上述例子,所述相匹配的第一配置校驗(yàn) 信息為MD5h,則可從所述升級(jí)配置信息中查找到MD5h對(duì)應(yīng)的地址信息,如圖6所示步驟 S302中所給出的例子,MD5K對(duì)應(yīng)的地址信息為〃http://dldirl. XX. com/patchl〃。
[0095] S306,根據(jù)查找到的地址信息,下載所述增量升級(jí)文件。
[0096] 本步驟中,可利用查找到的地址信息,從該地址信息所指示的服務(wù)器或網(wǎng)絡(luò)中下 載所述增量升級(jí)文件;按照?qǐng)D6所示步驟S302中所給出的例子,可從"http://dldirl. XX. com/patchl"所指示的服務(wù)器或網(wǎng)絡(luò)中下載所述增量升級(jí)文件。
[0097] S307,計(jì)算已下載的所述增量升級(jí)文件的校驗(yàn)信息。
[0098] 其中,所述增量升級(jí)文件的校驗(yàn)信息,指對(duì)所述增量升級(jí)文件進(jìn)行校驗(yàn)計(jì)算獲得, 可唯一標(biāo)識(shí)一個(gè)增量升級(jí)文件;該校驗(yàn)信息可以采用校驗(yàn)算法進(jìn)行計(jì)算獲得,該校驗(yàn)算法 包括但不限于:哈希算法、MD5算法等等。優(yōu)選地,本步驟中所述增量升級(jí)文件的校驗(yàn)信息 為所述增量升級(jí)文件的MD5值。
[0099] S308,比較已下載的所述增量升級(jí)文件的校驗(yàn)信息與所述升級(jí)配置信息中的所述 相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的增量配置檢驗(yàn)信息是否相同;若相同,轉(zhuǎn)入步驟S309 ; 否則,轉(zhuǎn)入步驟S306。
[0100] 如前述,所述升級(jí)配置信息中包括至少一個(gè)第一配置校驗(yàn)信息,以及所述至少一 個(gè)第一配置校驗(yàn)信息各對(duì)應(yīng)的增量配置校驗(yàn)信息。本步驟中,可比較步驟S307計(jì)算獲得 的已下載的所述增量升級(jí)文件的校驗(yàn)信息與所述升級(jí)配置信息中的所述相匹配的第一配 置校驗(yàn)信息對(duì)應(yīng)的增量配置檢驗(yàn)信息是否相同;按照上述例子,所述相匹配的第一配置校 驗(yàn)信息為MD5h,按照?qǐng)D6所示步驟S302中所給出的例子,MD5h對(duì)應(yīng)的增量配置校驗(yàn)信息 為MD5i_ 3,本步驟則判斷步驟S307計(jì)算獲得的已下載的所述增量升級(jí)文件的MD5值是否與 MD5i_3的值相同;如果二者相同,表明已下載的增量升級(jí)文件正確,在下載過程中未出現(xiàn)數(shù) 據(jù)丟失,可繼續(xù)執(zhí)行步驟S309 ;如果二者不同,表明已下載的增量升級(jí)文件可能在下載過 程中出現(xiàn)數(shù)據(jù)丟失,則需要返回步驟S306重新下載正確的增量升級(jí)文件;進(jìn)一步,本發(fā)明 實(shí)施例中還可以設(shè)置重新下載的次數(shù)限制,例如:可設(shè)置重新下載的次數(shù)為5次,當(dāng)經(jīng)過步 驟S306重新下載5次增量升級(jí)文件后,如果本步驟S308仍然判斷該增量升級(jí)文件在下載 過程中出現(xiàn)了數(shù)據(jù)丟失,則可輸出升級(jí)失敗提示信息。
[0101] 本實(shí)施例的步驟S305-步驟S308可以為圖4所示實(shí)施例的步驟S101的具體細(xì)化 步驟,或者可以為圖5所示實(shí)施例的步驟S202的具體細(xì)化步驟。需要說明的是,其中的步 驟S307-步驟S308為可選步驟,如果可以確定步驟S306下載的增量升級(jí)文件正確,也可以 不用執(zhí)行步驟S307-步驟S308,直接轉(zhuǎn)而執(zhí)行步驟S309。
[0102] S309,解析所述第一版本軟件,獲得第一數(shù)據(jù)字段和擴(kuò)展字段。
[0103] 如圖1所示,所述第一版本軟件包含第一數(shù)據(jù)字段和擴(kuò)展字段。本步驟則解析所 述第一版本軟件,獲得第一數(shù)據(jù)字段和擴(kuò)展字段。
[0104] S310,按照所述增量升級(jí)文件中的控制信息,將所述第一數(shù)據(jù)字段和所述增量升 級(jí)文件中的數(shù)據(jù)信息進(jìn)行合成計(jì)算,生成第二數(shù)據(jù)字段。
[0105] 如圖3所示,所述增量升級(jí)文件包括控制信息和數(shù)據(jù)信息。本步驟的合成計(jì)算過 程可以存在以下兩種可行的實(shí)施方式:
[0106] 在第一種可行的實(shí)施方式中,本步驟具體可包括以下過程:a、將所述增量升級(jí)文 件的控制信息塊(Ctrl Block)中的控制信息全部讀取至所述客戶端的內(nèi)存空間中;b、將所 述第一數(shù)據(jù)字段和所述增量升級(jí)文件中的數(shù)據(jù)信息也全部讀取至所述客戶端的內(nèi)存空間 中;c、在所述客戶端的內(nèi)存空間中,按照所述增量升級(jí)文件的控制信息,將所述第一數(shù)據(jù)字 段和所述增量升級(jí)文件中的數(shù)據(jù)信息進(jìn)行合成計(jì)算,生成第二數(shù)據(jù)字段;d、將所述第二數(shù) 據(jù)字段從所述客戶端的內(nèi)存空間中讀出,并寫入所述客戶端的磁盤空間中,刪除所述客戶 端的內(nèi)存空間中的內(nèi)容以釋放所述客戶端的內(nèi)存空間。本實(shí)施方式可快速合成第二數(shù)據(jù)字 段,提升合成計(jì)算的效率。
[0107] 在第二種可行的實(shí)施方式中,本步驟具體可包括以下過程:e、將所述增量升級(jí)文 件的控制信息塊(Ctrl Block)中的第一個(gè)子控制信息塊中的控制信息讀取至所述客戶端 的內(nèi)存空間中;f、按照所述第一個(gè)子控制信息塊中的控制信息,從所述第一數(shù)據(jù)字段和所 述增量升級(jí)文件中的數(shù)據(jù)信息中讀取相應(yīng)的數(shù)據(jù)至所述客戶端的內(nèi)存空間中;g、在所述客 戶端的內(nèi)存空間中,按照所述第一子控制信息塊中的控制信息,對(duì)所述內(nèi)存空間中的從所 述第一數(shù)據(jù)字段和所述增量升級(jí)文件中的數(shù)據(jù)信息讀取的相應(yīng)數(shù)據(jù)進(jìn)行合成計(jì)算,生成第 二數(shù)據(jù)字段的第一部分?jǐn)?shù)據(jù)內(nèi)容;h、將所述第二數(shù)據(jù)字段的第一部分?jǐn)?shù)據(jù)內(nèi)容從所述客戶 端的內(nèi)存空間中讀出,并寫入所述客戶端的磁盤空間中,刪除所述客戶端的內(nèi)存空間中的 內(nèi)容以釋放所述客戶端的內(nèi)存空間;i、再按照上述步驟e-h,生成第二數(shù)據(jù)字段的其他部 分?jǐn)?shù)據(jù)內(nèi)容并寫入所述客戶端的磁盤空間中,刪除所述客戶端的內(nèi)存空間中的內(nèi)容以釋放 所述客戶端的內(nèi)存空間;j、在所述客戶端的內(nèi)存空間中,將所述第二數(shù)據(jù)字段的各部分?jǐn)?shù) 據(jù)內(nèi)容順序組合,形成第二數(shù)據(jù)字段。本實(shí)施方式可有效節(jié)省合成計(jì)算所需的內(nèi)存空間占 用率,有效降低內(nèi)存資源的消耗。
[0108] 需要說明的是,上述兩種實(shí)施方式可以根據(jù)實(shí)際情況進(jìn)行選擇,例如:當(dāng)客戶端的 硬件配置較高,內(nèi)存資源較豐富的情況下,可選用第一種實(shí)施方式,提升合成計(jì)算的效率; 再如:當(dāng)客戶端的硬件配置較低,內(nèi)存資源較少的情況下,可選用第二種實(shí)施方式,有效降 低內(nèi)存資源的消耗。
[0109] S311,將所述第二數(shù)據(jù)字段和所述擴(kuò)展字段整合為第二版本軟件。
[0110] 本步驟中,可以將所述擴(kuò)展字段添加至所述第二數(shù)據(jù)字段的末端,整合形成第二 版本軟件。
[0111] S312,計(jì)算所述第二版本軟件的校驗(yàn)信息。
[0112] 其中,所述第二版本軟件的校驗(yàn)信息,指對(duì)所述第二版本軟件的第二數(shù)據(jù)字段進(jìn) 行校驗(yàn)計(jì)算獲得,可唯一標(biāo)識(shí)一個(gè)第二版本軟件;該校驗(yàn)信息可以采用校驗(yàn)算法進(jìn)行計(jì)算 獲得,該校驗(yàn)算法包括但不限于:哈希算法、MD5算法等等。優(yōu)選地,本步驟中所述第二版本 軟件的校驗(yàn)信息為所述第二版本軟件的第二數(shù)據(jù)字段的MD5值。
[0113] S313,比較所述第二版本軟件的校驗(yàn)信息與所述升級(jí)配置信息中的所述相匹配的 第一配置校驗(yàn)信息對(duì)應(yīng)的第二配置檢驗(yàn)信息是否相同;若相同,轉(zhuǎn)入步驟S314;否則,結(jié) 束。
[0114] 如前述,所述升級(jí)配置信息中包括至少一個(gè)第一配置校驗(yàn)信息,以及所述至少一 個(gè)第一配置校驗(yàn)信息各對(duì)應(yīng)的第二配置校驗(yàn)信息。本步驟中,可比較步驟S312計(jì)算獲得 的所述第二版本軟件的校驗(yàn)信息與所述升級(jí)配置信息中的所述相匹配的第一配置校驗(yàn)信 息對(duì)應(yīng)的第二配置檢驗(yàn)信息是否相同;按照上述例子,所述相匹配的第一配置校驗(yàn)信息為 MD5h,按照?qǐng)D6所示步驟S302中所給出的例子,MD5h對(duì)應(yīng)的第二配置校驗(yàn)信息為MD5i_2, 本步驟則判斷步驟S312計(jì)算獲得的所述第二版本軟件的MD5值是否與MD5i_ 2的值相同; 如果二者相同,表明所述第二版本軟件正確,在整合過程中未出現(xiàn)錯(cuò)誤,可繼續(xù)執(zhí)行步驟 S314;如果二者不同,表明所述第二版本軟件存在數(shù)據(jù)錯(cuò)誤,可能在整合過程中出現(xiàn)了錯(cuò) 誤,結(jié)束軟件升級(jí)過程,同時(shí)還可輸出升級(jí)失敗提示信息。
[0115] 本實(shí)施例的步驟S309-步驟S313可以為圖4所示實(shí)施例的步驟S102的具體細(xì)化 步驟,或者可以為圖5所示實(shí)施例的步驟S203的具體細(xì)化步驟。需要說明的是,其中的步 驟S312-步驟S313為可選步驟,如果可以確定步驟S311整合獲得的第二版本軟件正確,也 可以不用執(zhí)行步驟S312-步驟S313,直接轉(zhuǎn)而執(zhí)行步驟S314。
[0116] S314,在所述客戶端中安裝所述第二版本軟件。
[0117] 在所述客戶端中安裝所述第二版本軟件之后,該第二版本軟件則可替換客戶端中 的所述第一版本軟件,從而完成軟件升級(jí)過程。
[0118] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較小,從而有效的降低了帶寬資源的 消耗,降低軟件升級(jí)和維護(hù)成本。
[0119] 下面將結(jié)合附圖7-附圖11,對(duì)本發(fā)明實(shí)施例提供的一種軟件升級(jí)裝置的結(jié)構(gòu)進(jìn) 行詳細(xì)介紹。需要說明的是,附圖7-附圖11所示的軟件升級(jí)裝置,用于執(zhí)行本發(fā)明圖4-圖 6所示實(shí)施例的方法,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié) 未揭示的,請(qǐng)參照本發(fā)明圖4-圖6所示的實(shí)施例。
[0120] 請(qǐng)參見圖7,為本發(fā)明實(shí)施例提供的一種軟件升級(jí)裝置的結(jié)構(gòu)示意圖;該裝置可 包括:升級(jí)獲取模塊101、整合模塊102和安裝模塊103。
[0121] 升級(jí)獲取模塊101,用于當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第 一版本軟件的增量升級(jí)文件。
[0122] 其中,所述第一版本軟件包括第一數(shù)據(jù)字段和擴(kuò)展字段;所述增量升級(jí)文件包括 控制信息和數(shù)據(jù)信息。當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),所述升級(jí)獲取模塊101可 以從服務(wù)器獲取所述增量升級(jí)文件的地址信息,并根據(jù)該地址信息,下載所述增量升級(jí)文 件。
[0123] 整合模塊102,用于將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二 版本軟件。
[0124] 其中,所述增量升級(jí)文件指第一版本軟件與第二版本軟件的補(bǔ)丁差異文件,因此 相應(yīng)地,在獲得所述第一版本軟件的增量升級(jí)文件之后,所述整合模塊102可以將所述第 一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件??梢岳斫獾氖牵稣夏?塊102將所述第一版本軟件和增量升級(jí)文件進(jìn)行整合的過程,與第一版本軟件與第二版本 軟件進(jìn)行差異計(jì)算獲得增量升級(jí)文件的過程屬于相逆的過程。
[0125] 安裝模塊103,用于在所述客戶端中安裝所述第二版本軟件。
[0126] 在所述客戶端中安裝所述第二版本軟件之后,該第二版本軟件則可替換客戶端中 的所述第一版本軟件,從而完成軟件升級(jí)過程。
[0127] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較小,從而有效的降低了帶寬資源的 消耗,降低軟件升級(jí)和維護(hù)成本。
[0128] 請(qǐng)參見圖8,為本發(fā)明實(shí)施例提供的另一種軟件升級(jí)裝置的結(jié)構(gòu)示意圖;該裝置 可包括:升級(jí)獲取模塊101、整合模塊102、安裝模塊103和升級(jí)判斷模塊104。其中,升級(jí) 獲取模塊101、整合模塊102和安裝模塊103的結(jié)構(gòu)可參見圖7所示實(shí)施例的相關(guān)描述,在 此不贅述。
[0129] 升級(jí)判斷模塊104,用于判斷所述客戶端中的第一版本軟件是否需要升級(jí)。
[0130] 所述升級(jí)判斷模塊104可以在用戶登錄至第一版本軟件時(shí),發(fā)起對(duì)該第一版本軟 件的升級(jí)判斷過程;或者,在用戶已登錄至第一版本軟件之后,使用該第一版本軟件的過程 中,發(fā)起對(duì)該第一版本軟件的升級(jí)判斷過程;例如:針對(duì)客戶端中的VI. 0版本的IM軟件A, 當(dāng)用戶登錄該VI. 0版本的IM軟件A時(shí),所述升級(jí)判斷模塊104可向服務(wù)器發(fā)送升級(jí)檢測(cè) 消息,以判斷該VI. 0版本的IM軟件A是否需要升級(jí);或者,用戶登錄該VI. 0版本的IM軟 件A之后,所述升級(jí)判斷模塊104可以定時(shí)(例如:每隔一天、或每隔兩天等等)向服務(wù)器發(fā) 送升級(jí)檢測(cè)消息,以判斷該VI. 0版本的IM軟件A是否需要升級(jí)。
[0131] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較小,從而有效的降低了帶寬資源的 消耗,降低軟件升級(jí)和維護(hù)成本。
[0132] 下面將結(jié)合附圖9-附圖11,對(duì)圖7和圖8所示實(shí)施例的軟件升級(jí)裝置的各模塊進(jìn) 行詳細(xì)介紹。
[0133] 請(qǐng)參見圖9,為本發(fā)明實(shí)施例提供的升級(jí)判斷模塊的結(jié)構(gòu)示意圖;該升級(jí)判斷模 塊104可包括:檢測(cè)單元1401、配置接收單元1402、升級(jí)判斷單元1403和升級(jí)確認(rèn)單元 1404。
[0134] 檢測(cè)單元1401,用于向服務(wù)器發(fā)送升級(jí)檢測(cè)消息。
[0135] 其中,所述升級(jí)檢測(cè)消息中攜帶所述客戶端中的第一版本軟件的版本相關(guān)信息; 該第一版本軟件的版本相關(guān)信息可以包括但不限于:第一版本軟件的校驗(yàn)信息(例如:第 一版本軟件的MD5值)、該第一版本軟件的版本號(hào)(例如:V1. 0)、客戶端的系統(tǒng)參數(shù)(如:操 作系統(tǒng)類型、操作系統(tǒng)的版本等),等等。所述檢測(cè)單元1401可以在用戶登錄至第一版本軟 件時(shí),向服務(wù)器發(fā)送升級(jí)檢測(cè)消息;或者,在用戶已登錄至第一版本軟件之后,使用該第一 版本軟件的過程中,向服務(wù)器發(fā)送升級(jí)檢測(cè)消息;例如:針對(duì)客戶端中的VI. 0版本的IM軟 件A,當(dāng)用戶登錄該VI. 0版本的IM軟件A時(shí),所述檢測(cè)單元1401可向服務(wù)器發(fā)送升級(jí)檢 測(cè)消息;或者,用戶登錄該VI. 0版本的IM軟件A之后,所述檢測(cè)單元1401可以定時(shí)(例如: 每隔一天、或每隔兩天等等)向服務(wù)器發(fā)送升級(jí)檢測(cè)消息。
[0136] 配置接收單元1402,用于接收所述服務(wù)器返回的升級(jí)配置信息。
[0137] 服務(wù)器在接收到升級(jí)檢測(cè)消息之后,可以根據(jù)升級(jí)檢測(cè)消息中攜帶的第一版本軟 件的版本相關(guān)信息,生成關(guān)于所述第一版本軟件的升級(jí)配置信息;所述配置接收單元1402 接收所述服務(wù)器返回的所述升級(jí)配置信息。舉例來說,所述升級(jí)配置信息可采用下述的XML 格式:
[0138] <patchupdate base="http://dldirl.xx.corii/ " count="" > 〈item oldl = 'VW)5, newl = " MD5,," patch 1 = " MD5] 3" url = "patch 1" size = "19965"> <item> <item old2 = " MD52 i" new2 = " M.)52 , patch2 = " M/..)52./ url = "patch2" size = "19965M> </item>
[0139] <item......</item> </patchupdate>
[0140] 其中,一個(gè)item表示所述升級(jí)配置信息中一個(gè)升級(jí)配置項(xiàng);每個(gè)item中的old的 值表示第一配置校驗(yàn)信息;new的值表示第二配置校驗(yàn)信息;patch的值表示增量配置校驗(yàn) ?目息;base+url的值表不地址彳目息。
[0141] 根據(jù)上述升級(jí)配置信息的格式可知,所述升級(jí)配置信息可包括至少一個(gè)升級(jí)配置 項(xiàng)(item),每個(gè)升級(jí)配置項(xiàng)(item)可包括:第一配置校驗(yàn)信息、所述第一配置校驗(yàn)信息對(duì) 應(yīng)的第二配置校驗(yàn)信息、所述第一配置校驗(yàn)信息對(duì)應(yīng)的增量配置校驗(yàn)信息,以及所述第一 配置校驗(yàn)信息對(duì)應(yīng)的地址信息;例如:上述第一個(gè)item中,第一配置校驗(yàn)信息為〃MD5K", 所述第一配置校驗(yàn)信息對(duì)應(yīng)的第二配置校驗(yàn)信息為〃MD5i_2〃,所述第一配置校驗(yàn)信息對(duì) 應(yīng)的增量配置校驗(yàn)信息為〃MD5i_ 3〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息為〃http:// dldirl. XX. com/patchl〃。再如:上述第二個(gè)item中,第一配置校驗(yàn)信息為〃MD52_i〃,所述 第一配置校驗(yàn)信息對(duì)應(yīng)的第二配置校驗(yàn)信息為〃MD5 2_2〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的增 量配置校驗(yàn)信息為〃 MD52_3 〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息為〃 http://dldirl. XX.com/patch2〃。
[0142] 升級(jí)判斷單元1403,用于判斷所述升級(jí)配置信息中是否存在與所述客戶端中的第 一版本軟件的校驗(yàn)信息相匹配的第一配置校驗(yàn)信息。
[0143] 所述升級(jí)判斷單元1403的判斷過程可以為:首先,獲取所述客戶端中的第一版本 軟件的校驗(yàn)信息,例如:可以從所述客戶端中的第一版本軟件的擴(kuò)展字段中讀取所述第一 版本軟件的校驗(yàn)信息;或者,可以根據(jù)所述客戶端中的第一版本軟件的第一數(shù)據(jù)字段,計(jì)算 所述客戶端中的第一版本軟件的校驗(yàn)信息。其次,將所述客戶端中的第一版本軟件的校驗(yàn) 信息分別與所述升級(jí)配置信息中的每個(gè)升級(jí)配置項(xiàng)(item)中的第一配置校驗(yàn)信息進(jìn)行比 較,如果所述客戶端中的第一版本軟件的校驗(yàn)信息與所述升級(jí)配置信息中的任一個(gè)升級(jí)配 置項(xiàng)(item)中的第一配置校驗(yàn)信息相同,則將與所述客戶端中的第一版本軟件的校驗(yàn)信息 相同的第一配置校驗(yàn)信息確定為相匹配的第一配置校驗(yàn)信息,例如:如果判斷所述客戶端 中的第一版本軟件的校驗(yàn)信息與所述升級(jí)配置信息中的第一個(gè)item中的MD5 W相同,則確 定MD5h為相匹配的第一配置校驗(yàn)信息。如果所述升級(jí)配置信息中存在所述相匹配的第一 配置校驗(yàn)信息,表明所述客戶端中的第一版本軟件存在升級(jí)配置,需要進(jìn)行升級(jí);如果所述 升級(jí)配置信息中存在所述相匹配的第一配置校驗(yàn)信息,表明所述客戶端中的第一版本軟件 不存在升級(jí)配置,無需進(jìn)行升級(jí),可結(jié)束軟件升級(jí)過程。
[0144] 升級(jí)確認(rèn)單元1404,用于當(dāng)所述升級(jí)配置信息中存在所述相匹配的第一配置檢驗(yàn) 信息時(shí),確認(rèn)所述客戶端中的第一版本軟件需要升級(jí)。
[0145] 請(qǐng)參見圖10a,為本發(fā)明實(shí)施例提供的升級(jí)獲取模塊的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖; 該升級(jí)獲取模塊101可包括:地址查找單元1101和下載單元1102。
[0146] 地址查找單元1101,用于當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),從所述升級(jí)配 置信息中查找所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息。
[0147] 其中,所述升級(jí)配置信息中包括至少一個(gè)第一配置校驗(yàn)信息,以及所述至少一個(gè) 第一配置校驗(yàn)信息各對(duì)應(yīng)的地址信息。所述地址查找單元1101可從所述升級(jí)配置信息中 查找所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息;按照?qǐng)D9所示實(shí)施例中所給出的例 子,所述相匹配的第一配置校驗(yàn)信息為MD5h,所述地址查找單元1101則可從所述升級(jí)配 置信息中查找到MD5K對(duì)應(yīng)的地址信息為〃http://dldirl. XX. com/patchl〃。
[0148] 下載單元1102,用于根據(jù)查找到的地址信息,下載所述增量升級(jí)文件。
[0149] 所述下載單元1102可利用查找到的地址信息,從該地址信息所指示的服務(wù)器或 網(wǎng)絡(luò)中下載所述增量升級(jí)文件;按照?qǐng)D9所示實(shí)施例中所給出的例子,所述下載單元1102 可從〃http://dldirl. XX. com/patchl〃所指示的服務(wù)器或網(wǎng)絡(luò)中下載所述增量升級(jí)文件。
[0150] 請(qǐng)參見圖10b,為本發(fā)明實(shí)施例提供的升級(jí)獲取模塊的另一個(gè)實(shí)施例的結(jié)構(gòu)示意 圖;地址查找單元1101、下載單元1102、第一校驗(yàn)計(jì)算單元1103和第一比較單元1104。其 中,地址查找單元1101和下載單元1102的結(jié)構(gòu)可參見圖10a所示實(shí)施例的相關(guān)描述,在此 不贅述。
[0151] 第一校驗(yàn)計(jì)算單元1103,用于計(jì)算已下載的所述增量升級(jí)文件的校驗(yàn)信息。
[0152] 其中,所述增量升級(jí)文件的校驗(yàn)信息,指對(duì)所述增量升級(jí)文件進(jìn)行校驗(yàn)計(jì)算獲得, 可唯一標(biāo)識(shí)一個(gè)增量升級(jí)文件;該校驗(yàn)信息可以采用校驗(yàn)算法進(jìn)行計(jì)算獲得,該校驗(yàn)算法 包括但不限于:哈希算法、MD5算法等等。優(yōu)選地,所述增量升級(jí)文件的校驗(yàn)信息為所述增 量升級(jí)文件的MD5值。
[0153] 第一比較單元1104,用于比較已下載的所述增量升級(jí)文件的校驗(yàn)信息與所述升 級(jí)配置信息中的所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的增量配置檢驗(yàn)信息是否相同,若相 同,則通知所述整合模塊將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版 本軟件;若不同,則通知所述下載單元根據(jù)查找到的地址信息,重新下載所述增量升級(jí)文 件。
[0154] 其中,所述升級(jí)配置信息中包括至少一個(gè)第一配置校驗(yàn)信息,以及所述至少一個(gè) 第一配置校驗(yàn)信息各對(duì)應(yīng)的增量配置校驗(yàn)信息。所述第一比較單元1104可比較已下載的 所述增量升級(jí)文件的校驗(yàn)信息與所述升級(jí)配置信息中的所述相匹配的第一配置校驗(yàn)信息 對(duì)應(yīng)的增量配置檢驗(yàn)信息是否相同;按照?qǐng)D9所示實(shí)施例中所給出的例子,所述相匹配的 第一配置校驗(yàn)信息為MD5K, MD5H對(duì)應(yīng)的增量配置校驗(yàn)信息為MD5i_3,所述第一比較單元 1104則判斷已下載的所述增量升級(jí)文件的MD5值是否與MD5i_ 3的值相同;如果二者相同,表 明已下載的增量升級(jí)文件正確,在下載過程中未出現(xiàn)數(shù)據(jù)丟失,可通知所述整合模塊將所 述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件;如果二者不同,表明已 下載的增量升級(jí)文件可能在下載過程中出現(xiàn)數(shù)據(jù)丟失,則需要通知所述下載單元根據(jù)查找 到的地址信息,重新下載所述增量升級(jí)文件;進(jìn)一步,本發(fā)明實(shí)施例中還可以設(shè)置重新下載 的次數(shù)限制,例如:可設(shè)置重新下載的次數(shù)為5次,當(dāng)所述下載單元重新下載5次增量升級(jí) 文件后,如果仍然判斷該增量升級(jí)文件在下載過程中出現(xiàn)了數(shù)據(jù)丟失,則可輸出升級(jí)失敗 提示信息。
[0155] 請(qǐng)參見圖11a,為本發(fā)明實(shí)施例提供的整合模塊的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;該 整合模塊102可包括:解析單元1201、合成計(jì)算單元1202和整合單元1203。
[0156] 解析單元1201,用于解析所述第一版本軟件,獲得第一數(shù)據(jù)字段和擴(kuò)展字段。
[0157] 如圖1所示,所述第一版本軟件包含第一數(shù)據(jù)字段和擴(kuò)展字段。所述解析單元 1201解析所述第一版本軟件,獲得第一數(shù)據(jù)字段和擴(kuò)展字段。
[0158] 合成計(jì)算單元1202,用于按照所述增量升級(jí)文件中的控制信息,將所述第一數(shù)據(jù) 字段和所述增量升級(jí)文件中的數(shù)據(jù)信息進(jìn)行合成計(jì)算,生成第二數(shù)據(jù)字段。
[0159] 如圖3所示,所述增量升級(jí)文件包括控制信息和數(shù)據(jù)信息。所述合成計(jì)算單元 1202的合成計(jì)算過程可以存在以下兩種可行的實(shí)施方式:
[0160] 在第一種可行的實(shí)施方式中,所述合成計(jì)算單元1202的合成計(jì)算過程可包括:a、 將所述增量升級(jí)文件的控制信息塊(Ctrl Block)中的控制信息全部讀取至所述客戶端的 內(nèi)存空間中;b、將所述第一數(shù)據(jù)字段和所述增量升級(jí)文件中的數(shù)據(jù)信息也全部讀取至所述 客戶端的內(nèi)存空間中;c、在所述客戶端的內(nèi)存空間中,按照所述增量升級(jí)文件的控制信息, 將所述第一數(shù)據(jù)字段和所述增量升級(jí)文件中的數(shù)據(jù)信息進(jìn)行合成計(jì)算,生成第二數(shù)據(jù)字 段;d、將所述第二數(shù)據(jù)字段從所述客戶端的內(nèi)存空間中讀出,并寫入所述客戶端的磁盤空 間中,刪除所述客戶端的內(nèi)存空間中的內(nèi)容以釋放所述客戶端的內(nèi)存空間。本實(shí)施方式可 快速合成第二數(shù)據(jù)字段,提升合成計(jì)算的效率。
[0161] 在第二種可行的實(shí)施方式中,述合成計(jì)算單元1202的合成計(jì)算過程可包括:e、將 所述增量升級(jí)文件的控制信息塊(Ctrl Block)中的第一個(gè)子控制信息塊中的控制信息讀 取至所述客戶端的內(nèi)存空間中;f、按照所述第一個(gè)子控制信息塊中的控制信息,從所述第 一數(shù)據(jù)字段和所述增量升級(jí)文件中的數(shù)據(jù)信息中讀取相應(yīng)的數(shù)據(jù)至所述客戶端的內(nèi)存空 間中;g、在所述客戶端的內(nèi)存空間中,按照所述第一子控制信息塊中的控制信息,對(duì)所述內(nèi) 存空間中的從所述第一數(shù)據(jù)字段和所述增量升級(jí)文件中的數(shù)據(jù)信息讀取的相應(yīng)數(shù)據(jù)進(jìn)行 合成計(jì)算,生成第二數(shù)據(jù)字段的第一部分?jǐn)?shù)據(jù)內(nèi)容;h、將所述第二數(shù)據(jù)字段的第一部分?jǐn)?shù) 據(jù)內(nèi)容從所述客戶端的內(nèi)存空間中讀出,并寫入所述客戶端的磁盤空間中,刪除所述客戶 端的內(nèi)存空間中的內(nèi)容以釋放所述客戶端的內(nèi)存空間;i、再按照上述e-h,生成第二數(shù)據(jù) 字段的其他部分?jǐn)?shù)據(jù)內(nèi)容并寫入所述客戶端的磁盤空間中,刪除所述客戶端的內(nèi)存空間中 的內(nèi)容以釋放所述客戶端的內(nèi)存空間;j、在所述客戶端的內(nèi)存空間中,將所述第二數(shù)據(jù)字 段的各部分?jǐn)?shù)據(jù)內(nèi)容順序組合,形成第二數(shù)據(jù)字段。本實(shí)施方式可有效節(jié)省合成計(jì)算所需 的內(nèi)存空間占用率,有效降低內(nèi)存資源的消耗。
[0162] 需要說明的是,上述兩種實(shí)施方式可以根據(jù)實(shí)際情況進(jìn)行選擇,例如:當(dāng)客戶端的 硬件配置較高,內(nèi)存資源較豐富的情況下,可選用第一種實(shí)施方式,提升合成計(jì)算的效率; 再如:當(dāng)客戶端的硬件配置較低,內(nèi)存資源較少的情況下,可選用第二種實(shí)施方式,有效降 低內(nèi)存資源的消耗。
[0163] 整合單元1203,用于將所述第二數(shù)據(jù)字段和所述擴(kuò)展字段整合為第二版本軟件。
[0164] 所述整合單元1203可以將所述擴(kuò)展字段添加至所述第二數(shù)據(jù)字段的末端,整合 形成第二版本軟件。
[0165] 請(qǐng)參見圖11b,為本發(fā)明實(shí)施例提供的整合模塊的另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖; 解析單元1201、合成計(jì)算單元1202、整合單元1203、第二校驗(yàn)計(jì)算單元1204和第二比較單 元1205。其中,解析單元1201、合成計(jì)算單元1202和整合單元1203的結(jié)構(gòu)可參見圖11a 所示實(shí)施例的相關(guān)描述,在此不贅述。
[0166] 第二校驗(yàn)計(jì)算單元1204,用于計(jì)算所述第二版本軟件的校驗(yàn)信息。
[0167] 其中,所述第二版本軟件的校驗(yàn)信息,指對(duì)所述第二版本軟件的第二數(shù)據(jù)字段進(jìn) 行校驗(yàn)計(jì)算獲得,可唯一標(biāo)識(shí)一個(gè)第二版本軟件;該校驗(yàn)信息可以采用校驗(yàn)算法進(jìn)行計(jì)算 獲得,該校驗(yàn)算法包括但不限于:哈希算法、MD5算法等等。優(yōu)選地,所述第二版本軟件的校 驗(yàn)信息為所述第二版本軟件的第二數(shù)據(jù)字段的MD5值。
[0168] 第二比較單元1205,用于比較比較所述第二版本軟件的校驗(yàn)信息與所述升級(jí)配置 信息中的所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的第二配置檢驗(yàn)信息是否相同,若相同,通 知所述安裝模塊在所述客戶端中安裝所述第二版本軟件。
[0169] 其中,所述升級(jí)配置信息中包括至少一個(gè)第一配置校驗(yàn)信息,以及所述至少一個(gè) 第一配置校驗(yàn)信息各對(duì)應(yīng)的第二配置校驗(yàn)信息。所述第二比較單元1205可比較所述第二 版本軟件的校驗(yàn)信息與所述升級(jí)配置信息中的所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的第 二配置檢驗(yàn)信息是否相同;按照?qǐng)D9所示實(shí)施例中所給出的例子,所述相匹配的第一配置 校驗(yàn)信息為MD5h,MD5 W對(duì)應(yīng)的第二配置校驗(yàn)信息為MD5i_2,所述第二比較單元1205判斷 所述第二版本軟件的MD5值是否與MD5i_ 2的值相同;如果二者相同,表明所述第二版本軟 件正確,在整合過程中未出現(xiàn)錯(cuò)誤,可通知所述安裝模塊在所述客戶端中安裝所述第二版 本軟件;如果二者不同,表明所述第二版本軟件存在數(shù)據(jù)錯(cuò)誤,可能在整合過程中出現(xiàn)了錯(cuò) 誤,可結(jié)束軟件升級(jí)過程,同時(shí)還可輸出升級(jí)失敗提示信息。
[0170] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較小,從而有效的降低了帶寬資源的 消耗,降低軟件升級(jí)和維護(hù)成本。
[0171] 本發(fā)明實(shí)施例還提供了一種客戶端,該客戶端可包含軟件升級(jí)裝置,該軟件升級(jí) 裝置的結(jié)構(gòu)可參見圖7-圖11所示實(shí)施例的相關(guān)描述,在此不贅述。需要說明的是,本實(shí)施 例的客戶端可以應(yīng)用于上述圖4-圖6所示的方法中。
[0172] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較小,從而有效的降低了帶寬資源的 消耗,降低軟件升級(jí)和維護(hù)成本。
[0173] 請(qǐng)參見圖12,為本發(fā)明實(shí)施例提供的一種軟件升級(jí)系統(tǒng)的結(jié)構(gòu)示意圖;該系統(tǒng)可 包含服務(wù)器和至少一個(gè)客戶端,該客戶端包括軟件升級(jí)裝置,該軟件升級(jí)裝置的結(jié)構(gòu)可參 見圖7-圖11所示實(shí)施例的相關(guān)描述,在此不贅述。需要說明的是,本實(shí)施例的軟件升級(jí)系 統(tǒng)以及系統(tǒng)中的服務(wù)器、客戶端均可應(yīng)用于圖4-圖6所示實(shí)施例的方法中。
[0174] 請(qǐng)一并參見圖13,為本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖;該服務(wù)器可 包括:升級(jí)檢測(cè)模塊201、升級(jí)配置模塊202和返回模塊203。
[0175] 升級(jí)檢測(cè)模塊201,用于接收所述客戶端發(fā)送的升級(jí)檢測(cè)消息。
[0176] 其中,所述升級(jí)檢測(cè)消息中攜帶所述客戶端中的第一版本軟件的版本相關(guān)信息。 所述升級(jí)檢測(cè)消息中攜帶所述客戶端中的第一版本軟件的版本相關(guān)信息;該第一版本軟件 的版本相關(guān)信息可以包括但不限于:第一版本軟件的校驗(yàn)信息(例如:第一版本軟件的MD5 值)、該第一版本軟件的版本號(hào)(例如:V1.0)、客戶端的系統(tǒng)參數(shù)(如:操作系統(tǒng)類型、操作系 統(tǒng)的版本等),等等。所述升級(jí)檢測(cè)模塊201可以在用戶登錄至所述客戶端的第一版本軟件 時(shí),接收所述客戶端發(fā)送的升級(jí)檢測(cè)消息;或者,所述升級(jí)檢測(cè)模塊201也可以在用戶已登 錄至第一版本軟件之后,使用該第一版本軟件的過程中,定時(shí)接收所述客戶端發(fā)送的升級(jí) 檢測(cè)消息。
[0177] 升級(jí)配置模塊202,用于根據(jù)所述升級(jí)檢測(cè)消息,生成關(guān)于所述第一版本軟件的升 級(jí)配置信息。
[0178] 所述升級(jí)配置模塊202可以根據(jù)升級(jí)檢測(cè)消息中攜帶的第一版本軟件的版本相 關(guān)信息,生成關(guān)于所述第一版本軟件的升級(jí)配置信息;所述升級(jí)配置信息可采用下述的 XML格式表示如下:
[0179] <patchupdate base-'http://dldirl.xx.com/" coimt-'" > 〈item oldl = " MD5, i" newl = v patch ! = '' MD5, 3" uii = "patch 1" size = "19965 "> </item> 〈item o!d2 = " MI)52 :" new2 = " M)5;:" patch2 = " MI)52 3" url = "patch2" size = "19965M> </item> 〈item......</itern> </patchupdate>
[0180] 其中,一個(gè)item表示所述升級(jí)配置信息中一個(gè)升級(jí)配置項(xiàng);每個(gè)item中的old的 值表示第一配置校驗(yàn)信息;new的值表示第二配置校驗(yàn)信息;patch的值表示增量配置校驗(yàn) ?目息;base+url的值表不地址彳目息。
[0181] 根據(jù)上述升級(jí)配置信息的格式可知,所述升級(jí)配置信息可包括至少一個(gè)升級(jí)配置 項(xiàng)(item),每個(gè)升級(jí)配置項(xiàng)(item)可包括:第一配置校驗(yàn)信息、所述第一配置校驗(yàn)信息對(duì) 應(yīng)的第二配置校驗(yàn)信息、所述第一配置校驗(yàn)信息對(duì)應(yīng)的增量配置校驗(yàn)信息,以及所述第一 配置校驗(yàn)信息對(duì)應(yīng)的地址信息;例如:上述第一個(gè)item中,第一配置校驗(yàn)信息為〃MD5K", 所述第一配置校驗(yàn)信息對(duì)應(yīng)的第二配置校驗(yàn)信息為〃MD5i_ 2〃,所述第一配置校驗(yàn)信息對(duì) 應(yīng)的增量配置校驗(yàn)信息為〃MD5i_3〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息為〃http:// dldirl. XX. com/patchl〃。再如:上述第二個(gè)item中,第一配置校驗(yàn)信息為〃MD52_i〃,所述 第一配置校驗(yàn)信息對(duì)應(yīng)的第二配置校驗(yàn)信息為〃MD5 2_2〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的增 量配置校驗(yàn)信息為〃 MD52_3 〃,所述第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息為〃 http://dldirl. XX.com/patch2〃。
[0182] 返回模塊203,用于向所述客戶端返回所述升級(jí)配置信息。
[0183] 所述返回模塊203向所述客戶端返回所述升級(jí)配置信息,所述客戶端則可以根據(jù) 所升級(jí)配置信息,完成所述客戶端的第一版本軟件的升級(jí)過程。
[0184] 本發(fā)明實(shí)施例中,當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),無需下載新版本軟件 的完整安裝包,僅需要獲取關(guān)于所述第一版本軟件的增量升級(jí)文件進(jìn)行軟件升級(jí);由于增 量升級(jí)文件的數(shù)據(jù)量相對(duì)于完整安裝包的數(shù)據(jù)量通常較小,從而有效的降低了帶寬資源的 消耗,降低軟件升級(jí)和維護(hù)成本。
[0185] 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì) 中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
[0186] 以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范 圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1. 一種軟件升級(jí)方法,其特征在于,包括: 當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第一版本軟件的增量升級(jí)文 件; 將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件; 在所述客戶端中安裝所述第二版本軟件。
2. 如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)客戶端中的第一版本軟件需要升級(jí) 時(shí),獲取關(guān)于所述第一版本軟件的增量升級(jí)文件之前,還包括: 判斷所述客戶端中的第一版本軟件是否需要升級(jí)。
3. 如權(quán)利要求2所述的方法,其特征在于,所述判斷所述客戶端中的第一版本軟件是 否需要升級(jí),包括: 向服務(wù)器發(fā)送升級(jí)檢測(cè)消息,所述升級(jí)檢測(cè)消息中攜帶所述客戶端中的第一版本軟件 的版本相關(guān)信息; 接收所述服務(wù)器返回的升級(jí)配置信息,所述升級(jí)配置信息中包括至少一個(gè)第一配置校 驗(yàn)信息; 判斷所述升級(jí)配置信息中是否存在與所述客戶端中的第一版本軟件的校驗(yàn)信息相匹 配的第一配置校驗(yàn)信息; 如果所述升級(jí)配置信息中存在所述相匹配的第一配置檢驗(yàn)信息,確認(rèn)所述客戶端中的 第一版本軟件需要升級(jí)。
4. 如權(quán)利要求3所述的方法,其特征在于,所述升級(jí)配置信息中還包括所述至少一個(gè) 第一配置校驗(yàn)信息各對(duì)應(yīng)的地址信息; 所述當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第一版本軟件的增量升級(jí) 文件,包括: 當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),從所述升級(jí)配置信息中查找所述相匹配的第 一配置校驗(yàn)信息對(duì)應(yīng)的地址信息; 根據(jù)查找到的地址信息,下載所述增量升級(jí)文件。
5. 如權(quán)利要求4所述的方法,其特征在于,所述升級(jí)配置信息中還包括所述至少一個(gè) 第一配置校驗(yàn)信息各對(duì)應(yīng)的增量配置校驗(yàn)信息; 所述根據(jù)查找到的地址信息,下載所述增量升級(jí)文件之后,還包括: 計(jì)算已下載的所述增量升級(jí)文件的校驗(yàn)信息; 比較已下載的所述增量升級(jí)文件的校驗(yàn)信息與所述升級(jí)配置信息中的所述相匹配的 第一配置校驗(yàn)信息對(duì)應(yīng)的增量配置檢驗(yàn)信息是否相同; 若相同,執(zhí)行將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件 的步驟; 若不同,根據(jù)查找到的地址信息,重新下載所述增量升級(jí)文件。
6. 如權(quán)利要求3-5任一項(xiàng)所述的方法,其特征在于,所述第一版本軟件包括第一數(shù)據(jù) 字段和擴(kuò)展字段; 所述增量升級(jí)文件包括控制信息和數(shù)據(jù)信息; 所述第二版本軟件包括第二數(shù)據(jù)字段和擴(kuò)展字段。
7. 如權(quán)利要求6所述的方法,其特征在于,所述將所述第一版本軟件和所述增量升級(jí) 文件進(jìn)行整合,生成第二版本軟件,包括: 解析所述第一版本軟件,獲得第一數(shù)據(jù)字段和擴(kuò)展字段; 按照所述增量升級(jí)文件中的控制信息,將所述第一數(shù)據(jù)字段和所述增量升級(jí)文件中的 數(shù)據(jù)信息進(jìn)行合成計(jì)算,生成所述第二數(shù)據(jù)字段; 將所述第二數(shù)據(jù)字段和所述擴(kuò)展字段整合為第二版本軟件。
8. 如權(quán)利要7所述的方法,其特征在于,所述升級(jí)配置信息中還包括所述至少一個(gè)第 一配置校驗(yàn)信息各對(duì)應(yīng)的第二配置校驗(yàn)信息; 所述將所述第二數(shù)據(jù)字段和所述擴(kuò)展字段整合為第二版本軟件之后,還包括: 計(jì)算所述第二版本軟件的校驗(yàn)信息; 比較所述第二版本軟件的校驗(yàn)信息與所述升級(jí)配置信息中的所述相匹配的第一配置 校驗(yàn)信息對(duì)應(yīng)的第二配置檢驗(yàn)信息是否相同; 若相同,執(zhí)行在所述客戶端中安裝所述第二版本軟件的步驟。
9. 一種軟件升級(jí)裝置,其特征在于,包括: 升級(jí)獲取模塊,用于當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),獲取關(guān)于所述第一版本 軟件的增量升級(jí)文件; 整合模塊,用于將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟 件; 安裝模塊,用于在所述客戶端中安裝所述第二版本軟件。
10. 如權(quán)利要求9所述的裝置,其特征在于,還包括: 升級(jí)判斷模塊,用于判斷所述客戶端中的第一版本軟件是否需要升級(jí)。
11. 如權(quán)利要求10所述的裝置,其特征在于,所述升級(jí)判斷模塊包括: 檢測(cè)單元,用于向服務(wù)器發(fā)送升級(jí)檢測(cè)消息,所述升級(jí)檢測(cè)消息中攜帶所述客戶端中 的第一版本軟件的版本相關(guān)信息; 配置接收單元,用于接收所述服務(wù)器返回的升級(jí)配置信息,所述升級(jí)配置信息中包括 至少一個(gè)第一配置校驗(yàn)信息; 升級(jí)判斷單元,用于判斷所述升級(jí)配置信息中是否存在與所述客戶端中的第一版本軟 件的校驗(yàn)信息相匹配的第一配置校驗(yàn)信息; 升級(jí)確認(rèn)單元,用于當(dāng)所述升級(jí)配置信息中存在所述相匹配的第一配置檢驗(yàn)信息時(shí), 確認(rèn)所述客戶端中的第一版本軟件需要升級(jí)。
12. 如權(quán)利要求11所述的裝置,其特征在于,所述升級(jí)配置信息中還包括所述至少一 個(gè)第一配置校驗(yàn)信息各對(duì)應(yīng)的地址信息; 所述升級(jí)獲取模塊包括: 地址查找單元,用于當(dāng)客戶端中的第一版本軟件需要升級(jí)時(shí),從所述升級(jí)配置信息中 查找所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的地址信息; 下載單元,用于根據(jù)查找到的地址信息,下載所述增量升級(jí)文件。
13. 如權(quán)利要求12所述的裝置,其特征在于,所述升級(jí)配置信息中還包括所述至少一 個(gè)第一配置校驗(yàn)信息各對(duì)應(yīng)的增量配置校驗(yàn)信息; 所述升級(jí)獲取模塊還包括: 第一校驗(yàn)計(jì)算單元,用于計(jì)算已下載的所述增量升級(jí)文件的校驗(yàn)信息; 第一比較單元,用于比較已下載的所述增量升級(jí)文件的校驗(yàn)信息與所述升級(jí)配置信息 中的所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的增量配置檢驗(yàn)信息是否相同,若相同,則通知 所述整合模塊將所述第一版本軟件和所述增量升級(jí)文件進(jìn)行整合,生成第二版本軟件;若 不同,則通知所述下載單元根據(jù)查找到的地址信息,重新下載所述增量升級(jí)文件。
14. 如權(quán)利要求11-13任一項(xiàng)所述的裝置,其特征在于,所述第一版本軟件包括第一數(shù) 據(jù)字段和擴(kuò)展字段; 所述增量升級(jí)文件包括控制信息和數(shù)據(jù)信息; 所述第二版本軟件包括第二數(shù)據(jù)字段和擴(kuò)展字段。
15. 如權(quán)利要求14所述的裝置,其特征在于,所述整合模塊包括: 解析單元,用于解析所述第一版本軟件,獲得第一數(shù)據(jù)字段和擴(kuò)展字段; 合成計(jì)算單元,用于按照所述增量升級(jí)文件中的控制信息,將所述第一數(shù)據(jù)字段和所 述增量升級(jí)文件中的數(shù)據(jù)信息進(jìn)行合成計(jì)算,生成第二數(shù)據(jù)字段; 整合單元,用于將所述第二數(shù)據(jù)字段和所述擴(kuò)展字段整合為第二版本軟件。
16. 如權(quán)利要求11-15任一項(xiàng)所述的裝置,其特征在于,所述升級(jí)配置信息中還包括所 述至少一個(gè)第一配置校驗(yàn)信息各對(duì)應(yīng)的第二配置校驗(yàn)信息; 所述整合模塊還包括: 第二校驗(yàn)計(jì)算單元,用于計(jì)算所述第二版本軟件的校驗(yàn)信息; 第二比較單元,用于比較比較所述第二版本軟件的校驗(yàn)信息與所述升級(jí)配置信息中的 所述相匹配的第一配置校驗(yàn)信息對(duì)應(yīng)的第二配置檢驗(yàn)信息是否相同,若相同,通知所述安 裝模塊在所述客戶端中安裝所述第二版本軟件。
17. -種客戶端,其特征在于,包括如權(quán)利要求9-16任一項(xiàng)所述的軟件升級(jí)裝置。
18. -種軟件升級(jí)系統(tǒng),包括服務(wù)器,其特征在于,還包括至少一個(gè)如權(quán)利要求17所述 的客戶端,所述客戶端與所述服務(wù)器通信連接。
19. 如權(quán)利要求18所述的系統(tǒng),其特征在于,所述服務(wù)器包括: 升級(jí)檢測(cè)模塊,用于接收所述客戶端發(fā)送的升級(jí)檢測(cè)消息,所述升級(jí)檢測(cè)消息中攜帶 所述客戶端中的第一版本軟件的版本相關(guān)信息; 升級(jí)配置模塊,用于根據(jù)所述升級(jí)檢測(cè)消息,生成關(guān)于所述第一版本軟件的升級(jí)配置 信息; 返回模塊,用于向所述客戶端返回所述升級(jí)配置信息。
【文檔編號(hào)】G06F9/445GK104123149SQ201310155618
【公開日】2014年10月29日 申請(qǐng)日期:2013年4月28日 優(yōu)先權(quán)日:2013年4月28日
【發(fā)明者】趙志宏 申請(qǐng)人:騰訊科技(深圳)有限公司