一種用于確定軟件版本升級文件下載地址的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種用于確定軟件版本升級文件下載地址的方法、裝置和系統(tǒng)。本發(fā)明在原有C/S中加入軟件版本升級控制服務(wù)器,構(gòu)成軟件版本升級系統(tǒng),可根據(jù)用戶IP選擇合適的軟件升級服務(wù)器提供文件下載,起到網(wǎng)絡(luò)分流的作用,優(yōu)化負(fù)載均衡。
【專利說明】一種用于確定軟件版本升級文件下載地址的方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)【技術(shù)領(lǐng)域】,具體涉及一種用于確定軟件版本升級文件下載地址的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]軟件版本升級可實(shí)現(xiàn)軟件的性能優(yōu)化和功能升級,軟件版本升級有在線升級和非在線升級兩種方式。在互聯(lián)網(wǎng)尚未普及時,軟件供應(yīng)商一般使用的是非在線方式,將新版本的軟件存儲在移動存儲介質(zhì)上,通過郵寄與零售商銷售的方式來達(dá)到軟件版本升級與功能擴(kuò)展。采用上述方式軟件供應(yīng)商需要花費(fèi)很大的財(cái)力和人力來推廣所屬公司的最新版本軟件,軟件用戶為了能使用到最新功能的軟件也得增加開銷,這樣的軟件升級是緩慢、低效率的。互聯(lián)網(wǎng)的普及加快了軟件版本升級功能擴(kuò)展的步伐,軟件供應(yīng)商充分利用計(jì)算機(jī)的軟硬件資源、提升軟件的功能與性能,用戶能夠及時使用到最新版本的功能。
[0003]現(xiàn)有軟件供應(yīng)商普遍采用在線軟件版本升級方式,系統(tǒng)架構(gòu)普遍采用客戶端服務(wù)器(client/server,C/S)的系統(tǒng)模式,軟件更新方式主要包括兩種方式:軟件版本升級全量包方式(full amount release package, FARP)與軟件版本升級增量包方式(incremental release package, IRP)。
[0004]對于軟件版本升級全量包方式FARP,軟件供應(yīng)商發(fā)布軟件最新版本全量包的下載地址,用戶從某個服務(wù)器下載軟件,這種方式對于新用戶來說非常方便,但對于老用戶來說并不是一個好的選擇,因?yàn)椋ǔP掳姹拒浖拇蟛糠止δ芘c舊版本軟件相同,升級改動只涉及一小部分;軟件版本初期可能體積不大,但隨著軟件版本升級,功能不斷擴(kuò)張,軟件體積不斷增大,更新軟件版本不僅增加了軟件供應(yīng)商的開支,增加網(wǎng)絡(luò)供應(yīng)商的網(wǎng)絡(luò)供應(yīng)壓力,而且用戶下載軟件需要花費(fèi)較長的時間,且有時用戶在舊版本軟件下產(chǎn)生的用戶數(shù)據(jù)無法在新版本軟件上使用。因此,這種軟件版本升級方式不但浪費(fèi)用戶時間(有時候更新的內(nèi)容可能非常少),加大服務(wù)器的壓力和網(wǎng)絡(luò)的壓力,而且由于網(wǎng)絡(luò)原因造成的更新失敗可能導(dǎo)致軟件無法使用,影響用戶體驗(yàn)。
[0005]對于軟件版本升級增量包方式IRP,軟件供應(yīng)商提供軟件最新版本增量包的下載地址,用戶本地升級引擎下載后對本地舊版本軟件的文件進(jìn)行替換式升級,僅針對增量包中涉及的內(nèi)容進(jìn)行更新,減少了軟件供應(yīng)商的人力與財(cái)力成本,可降低網(wǎng)絡(luò)供應(yīng)商的負(fù)載壓力,節(jié)約軟件用戶的升級耗時。
[0006]但是,無論是軟件版本升級的全量包方式FARP還是增量包方式IRP,對于提供增量包下載的軟件升級服務(wù)器,目前大多采用單個服務(wù)器或集中于某一地區(qū)服務(wù)器的方式,服務(wù)器普遍訪問壓力大,網(wǎng)絡(luò)資源消耗多,也導(dǎo)致用戶下載耗時較長,用戶體驗(yàn)較差。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本發(fā)明提供一種用于確定軟件版本升級文件下載地址的方法、裝置及系統(tǒng),可有針對性地為客戶端分配軟件升級服務(wù)器,可削減下載資源的耗時,優(yōu)化網(wǎng)絡(luò)負(fù)載均衡。
[0008]本發(fā)明的一種用于確定軟件版本升級文件下載地址的方法,包括:信息接收步驟,接收來自客戶端的軟件版本升級請求和用戶信息,所述用戶信息包含用戶軟件版本信息和IP地址;信息判斷步驟,根據(jù)用戶軟件版本信息判斷用戶軟件是否為最新版本,當(dāng)不是最新版本時,根據(jù)用戶軟件版本信息確定用戶軟件版本與該軟件最新版本的差異;第一信息處理步驟,基于所述IP地址得到客戶端的位置;第二信息處理步驟,基于第一對應(yīng)關(guān)系,根據(jù)客戶端的位置確定客戶端的區(qū)域;第三信息處理步驟,基于第二對應(yīng)關(guān)系,根據(jù)客戶端的區(qū)域確定客戶端對應(yīng)的服務(wù)器;下載地址確定步驟,根據(jù)客戶端對應(yīng)的服務(wù)器以及用戶軟件版本與該軟件最新版本的差異,確定軟件版本升級文件的下載地址;信息發(fā)送步驟,將確定好的下載地址發(fā)送給所述客戶端。
[0009]優(yōu)選地,所述第一對應(yīng)關(guān)系為第一區(qū)域?qū)?yīng)于至少第一位置,所述至少第一位置位于所述第一區(qū)域內(nèi);所述第二對應(yīng)關(guān)系為第一區(qū)域?qū)?yīng)于至少一個服務(wù)器,所述至少一個服務(wù)器位于所述第一區(qū)域內(nèi),用于提供軟件版本升級文件下載服務(wù)。
[0010]優(yōu)選地,在所述第二信息處理步驟之后,所述方法還包括區(qū)域信息記錄步驟,記錄本次確定的客戶端的區(qū)域信息,所述區(qū)域包括以下各項(xiàng)中的至少一項(xiàng):華東、華北、華南、華中、西南、西北和東北。
[0011 ] 優(yōu)選地,在所述第三信息處理步驟中,在確定客戶端對應(yīng)的服務(wù)器時,從所述至少一個服務(wù)器中隨機(jī)選取一個服務(wù)器;當(dāng)所述客戶端與當(dāng)前服務(wù)器連接失敗時,從所述至少一個服務(wù)器中隨機(jī)選取另一個服務(wù)器。
[0012]優(yōu)選地,當(dāng)所述客戶端與所述至少一個服務(wù)器中的每一個服務(wù)器均連接失敗時,選取位于所述第一區(qū)域外部的服務(wù)器,且在所有位于所述第一區(qū)域外部的服務(wù)器中,選中的服務(wù)器到所述第一區(qū)域的幾何中心的距離最短。
[0013]本發(fā)明的一種軟件版本升級文件下載地址確定裝置,包括:信息接收模塊,用于接收來自客戶端的軟件版本升級請求和用戶信息,所述用戶信息包含用戶軟件版本信息和IP地址;信息判斷模塊,用于根據(jù)用戶軟件版本信息判斷用戶軟件是否為最新版本,當(dāng)不是最新版本時,根據(jù)用戶軟件版本信息確定用戶軟件版本與該軟件最新版本的差異;第一信息處理模塊,用于基于所述IP地址得到客戶端的位置;第二信息處理模塊,用于基于第一對應(yīng)關(guān)系,根據(jù)客戶端的位置確定客戶端的區(qū)域;第三信息處理模塊,用于基于第二對應(yīng)關(guān)系,根據(jù)客戶端的區(qū)域確定客戶端對應(yīng)的服務(wù)器;下載地址確定模塊,用于根據(jù)客戶端對應(yīng)的服務(wù)器以及用戶軟件版本與該軟件最新版本的差異,確定軟件版本升級文件的下載地址;信息發(fā)送模塊,用于將確定好的下載地址發(fā)送給所述客戶端。
[0014]本發(fā)明的一種軟件版本升級系統(tǒng),包括如前所述的軟件版本升級文件下載地址確定裝置以及多臺軟件升級服務(wù)器;所述多臺軟件升級服務(wù)器中的至少一臺位于第一區(qū)域,用于提供軟件版本升級文件下載服務(wù)。
[0015]優(yōu)選地,所述多臺軟件升級服務(wù)器存儲有軟件版本升級文件,所述軟件版本升級文件包含資源升級文件和數(shù)據(jù)庫升級文件,以壓縮包的形式存儲,不同的用戶軟件版本與該軟件最新版本的差異對應(yīng)于不同的壓縮包。
[0016]優(yōu)選地,客戶端的用戶數(shù)據(jù)保存在本地derby數(shù)據(jù)庫中,所述數(shù)據(jù)庫升級文件使用的數(shù)據(jù)庫操作語言為SQL語言。
[0017]本發(fā)明的有益效果:利用本發(fā)明可有針對性地為屬于不同區(qū)域的客戶端分配適合的軟件升級服務(wù)器,提供軟件版本升級文件下載服務(wù),相對單個服務(wù)器或集中于某一地區(qū)服務(wù)器的方式,本發(fā)明的動態(tài)分布式分配方案可起到分流作用,降低軟件升級服務(wù)器訪問壓力,使服務(wù)器負(fù)載趨于均衡。
【專利附圖】
【附圖說明】
[0018]圖1是本發(fā)明實(shí)施例的用于確定軟件版本升級文件下載地址的方法流程圖。
[0019]圖2是本發(fā)明實(shí)施例的軟件版本升級系統(tǒng)結(jié)構(gòu)示意圖。
[0020]圖3是本發(fā)明實(shí)施例的位置-區(qū)域?qū)?yīng)關(guān)系列表。
[0021]圖4是本發(fā)明實(shí)施例的區(qū)域-服務(wù)器對應(yīng)關(guān)系列表。
[0022]圖5是本發(fā)明實(shí)施例的軟件版本升級系統(tǒng)處理流程圖。
[0023]圖6是本發(fā)明實(shí)施例的軟件版本升級控制服務(wù)器的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0024]以下結(jié)合附圖以及具體實(shí)施例,對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)描述。
[0025]圖1示出了本發(fā)明的用于確定軟件版本升級文件下載地址的方法流程圖,包括:
[0026]Sll信息接收步驟,接收來自客戶端的軟件版本升級請求和用戶信息,用戶信息包含用戶軟件版本信息和IP地址。
[0027]S12信息判斷步驟,根據(jù)用戶軟件版本信息判斷用戶軟件是否為最新版本,如果不是最新版本,根據(jù)用戶軟件版本信息確定用戶軟件版本與該軟件最新版本的差異;如果是最新版本,則不需要升級,軟件直接啟動。
[0028]S13第一信息處理步驟,基于客戶端的IP地址得到客戶端的位置。
[0029]S14第二信息處理步驟,基于預(yù)設(shè)的第一對應(yīng)關(guān)系,根據(jù)客戶端的位置確定客戶端的區(qū)域。
[0030]S15第三信息處理步驟,基于預(yù)設(shè)的第二對應(yīng)關(guān)系,根據(jù)客戶端的區(qū)域確定對應(yīng)的服務(wù)器。
[0031]S16下載地址確定步驟,根據(jù)客戶端對應(yīng)的服務(wù)器以及用戶軟件版本與該軟件最新版本的差異,確定軟件版本升級文件的下載地址。
[0032]S17信息發(fā)送步驟,將確定好的下載地址發(fā)送給客戶端。
[0033]在實(shí)際應(yīng)用場景中,上述步驟流程可基于如圖2所示的軟件版本升級系統(tǒng)來實(shí)施。假設(shè)若干客戶端上搭載有同一款軟件,軟件供應(yīng)商定期或不定期對軟件進(jìn)行性能優(yōu)化和功能升級,相應(yīng)地,供應(yīng)商提供軟件版本升級文件供用戶下載。客戶端向“軟件版本升級控制服務(wù)器”(software version update control server, SVUCS)提出軟件升級請求,SVUCS服務(wù)器通過執(zhí)行S11-17可獲得軟件版本升級文件的下載地址,然后,客戶端從下載地址指向的軟件升級服務(wù)器(software update server, SUS)下載升級文件,進(jìn)行本地軟件版本升級更新。
[0034]具體來看,參考圖2,客戶端a、b和c上安裝有目標(biāo)軟件,以客戶端a的軟件版本升級流程為例,首先,客戶端a中的本地升級引擎(local update engine, LUE)在軟件啟動時驅(qū)動,向SVUCS服務(wù)器發(fā)出升級請求,LUE需收集本地用戶信息,例如客戶端a的IP地址、軟件版本信息和軟件用戶注冊ID等,將用戶信息發(fā)送給SVUCS服務(wù)器。另外,如果此時客戶端a不能進(jìn)行網(wǎng)絡(luò)訪問,跳過軟件版本升級的環(huán)節(jié),軟件正常啟動。
[0035]在SVUCS服務(wù)器收到客戶端a的用戶信息之后,根據(jù)IP地址定位客戶端a的位置,然后再根據(jù)預(yù)先設(shè)定的“位置-區(qū)域”對應(yīng)關(guān)系,可得到客戶端a的位置所屬的區(qū)域,例如我國主要有華北、華南、華中、西南、西北、東北等地區(qū),在本發(fā)明的一個實(shí)施例中,可按照圖3形式的列表,例如定位出客戶端a位置為廣東,所屬區(qū)域?yàn)槿A南,如果位置為上海,所屬區(qū)域?yàn)槿A東,等等。
[0036]在確定客戶端a所屬區(qū)域之后,SVUCS服務(wù)器按照預(yù)先設(shè)置的SUS服務(wù)器的分配情況,為客戶端a選擇合適的SUS服務(wù)器。在本發(fā)明的一個實(shí)施例中,可按照圖4形式的列表設(shè)置“區(qū)域-服務(wù)器”對應(yīng)關(guān)系,其中,各個SUS服務(wù)器位于其所對應(yīng)的區(qū)域內(nèi)。以客戶端a位于華南區(qū)域?yàn)槔芍獙?yīng)的SUS服務(wù)器A,則選擇SUS服務(wù)器A為客戶端a提供下載,然后SVUCS服務(wù)器將軟件版本升級文件在SUS服務(wù)器A的下載地址發(fā)送給客戶端a。
[0037]這樣處理的好處是按照就近原則,將位于華南地區(qū)的SUS服務(wù)器A分配給客戶端a,有利于提高下載速度,削減下載耗時,在眾多客戶端同時請求版本升級的情況下,可明顯分流下載任務(wù),提聞網(wǎng)絡(luò)負(fù)載均衡。
[0038]優(yōu)選地,在每一次確定客戶端的位置或區(qū)域之后,可記錄該位置或區(qū)域信息,通過對位置或區(qū)域信息的數(shù)量統(tǒng)計(jì),可掌握相關(guān)的用戶量分布等軟件使用情況。
[0039]在本發(fā)明的一個實(shí)施例中,對于活動客戶端較多的區(qū)域,可分配多個SUS服務(wù)器提供升級文件下載服務(wù),例如對于華東地區(qū),對應(yīng)SUS服務(wù)器C和C’,兩者都適合作為華東地區(qū)客戶端C的SUS服務(wù)器,SVUCS服務(wù)器可隨機(jī)地選取服務(wù)器C (或服務(wù)器C’ )的下載地址下發(fā)給客戶端C。在本發(fā)明中,SVUCS服務(wù)器可從多個符合條件的服務(wù)器中隨機(jī)選取一個服務(wù)器作為提供升級文件下載的服務(wù)器;如果客戶端連接當(dāng)前服務(wù)器失敗,SVUCS服務(wù)器可在剩余的符合條件的服務(wù)器中再隨機(jī)選取一個服務(wù)器反饋給客戶端。
[0040]在本發(fā)明的一個實(shí)施例中,如果客戶端c與所有符合條件的SUS服務(wù)器(C和C’ )均連接失敗,SVUCS服務(wù)器還可選取華東地區(qū)以外的區(qū)域?qū)?yīng)的SUS服務(wù)器,選取原則是在所有位于華東地區(qū)以外的SUS服務(wù)器中,選取那個到華東地區(qū)的幾何中心距離最近的SUS服務(wù)器,作為提供升級文件下載的服務(wù)器,以盡量縮短用戶下載時間。
[0041]對于本發(fā)明中的SUS服務(wù)器,是為客戶端提供軟件版本升級文件下載的服務(wù)器,由于客戶端軟件的功能運(yùn)作需要資源文件和用戶本地?cái)?shù)據(jù)庫的支持,軟件版本升級涉及資源文件的升級和本地?cái)?shù)據(jù)庫的升級。因此,軟件版本升級文件包含資源升級文件和數(shù)據(jù)庫升級文件,形成不同的軟件更新增量包,對應(yīng)于不同的用戶軟件版本與軟件最新版本的差異。利用這些增量包可將不同的用戶軟件版本升級到最新版本。
[0042]此處,由于客戶端存在不同的軟件版本,對于不同的版本要更新到最新版本所需要的增量包一般不同,因此需要提供不同的軟件更新增量包。提供多個軟件更新增量包下載地址的方式也起到一定的網(wǎng)絡(luò)分流作用,避免所有客戶端向同一臺服務(wù)器發(fā)出軟件版本升級請求。根據(jù)公司的業(yè)務(wù)需求,可提供的軟件版本升級包數(shù)量是可配的,例如可提供最近5個版本的軟件升級包供軟件用戶升級使用。
[0043]在本發(fā)明的一個實(shí)施例中,由于軟件更新包中的資源文件和數(shù)據(jù)庫文件的執(zhí)行語句可能含有重合的部分,在SUS服務(wù)器中利用軟件打包程序分別勾選需要的資源文件和數(shù)據(jù)庫文件進(jìn)行打包,也即僅對新增功能的代碼進(jìn)行打包,形成不同的壓縮包,供不同軟件版本的用戶下載,可保證軟件更新增量包的最小化,對舊版本軟件功能的高度復(fù)用,減少用戶下載數(shù)據(jù)量,采用高壓制的方式保證網(wǎng)絡(luò)傳輸時間的較小化。
[0044]需要注意,本發(fā)明需要在多個區(qū)域布置多臺SUS服務(wù)器,多臺SUS服務(wù)器之間應(yīng)定時同步數(shù)據(jù),例如在凌晨網(wǎng)絡(luò)空閑時進(jìn)行數(shù)據(jù)同步。
[0045]對于客戶端一側(cè),客戶端接收到SVUCS服務(wù)器下發(fā)的下載地址之后,向相應(yīng)的SUS服務(wù)器發(fā)出下載請求,下載成功后對壓縮包解壓得到升級文件,執(zhí)行軟件版本的升級。
[0046]升級時,對于軟件資源文件,進(jìn)行簡單的添加、刪除和替換等操作即可完成資源文件升級;還可以增加對需要替換文件的備份,在文件覆蓋失敗時LUE對文件及時還原,確保版本升級失敗時軟件仍可用,提高軟件版本升級的安全性。
[0047]對于用戶本地?cái)?shù)據(jù)庫的升級,由于本地?cái)?shù)據(jù)庫保存的是用戶使用軟件的歷史數(shù)據(jù),這些數(shù)據(jù)信息都是獨(dú)有的,因此不能使用粗暴的資源文件替換方式進(jìn)行升級,本發(fā)明采用以下方式實(shí)現(xiàn):客戶端軟件將本地?cái)?shù)據(jù)保存在本地derby數(shù)據(jù)庫中,相應(yīng)地,從SUS服務(wù)器上下載到的軟件數(shù)據(jù)庫升級文件以SQL語言作為數(shù)據(jù)庫操作語言,則升級時只能通過執(zhí)行SQL語句對本地?cái)?shù)據(jù)庫進(jìn)行更新,并且當(dāng)數(shù)據(jù)庫更新失敗時,可通過回滾數(shù)據(jù)庫歷史數(shù)據(jù)還原先前的數(shù)據(jù)庫數(shù)據(jù),保證用戶數(shù)據(jù)不丟失,提高軟件版本升級的安全性。
[0048]優(yōu)選地,在實(shí)際應(yīng)用場景中,可按如圖5的軟件版本升級系統(tǒng)處理流程圖進(jìn)行客戶端軟件版本升級,對該流程圖中的具體步驟作如下說明:
[0049]a.首先,客戶端軟件啟動時LUE驅(qū)動,LUE收集客戶端的IP地址信息、軟件版本、軟件用戶注冊ID等信息,然后向軟件版本升級控制服務(wù)器SVUCS發(fā)出升級請求;當(dāng)客戶端不能進(jìn)行網(wǎng)絡(luò)訪問時跳過軟件版本升級,正常啟動。
[0050]此處,軟件版本升級流程由LUE驅(qū)動,由于眾多用戶啟動軟件的時間一般情況下是不相同的,這種在啟動時進(jìn)行軟件版本檢查與升級的方式可起到分時作用,避免同一時間對服務(wù)器發(fā)起大量訪問。
[0051]b.在SVUCS服務(wù)器上的遠(yuǎn)程版本控制引擎(remote version controlengine, RVCE)對客戶端信息進(jìn)行監(jiān)聽,獲取來自客戶端的請求信息,獲取其中的客戶端版本號,然后與軟件最新的版本進(jìn)行比對。
[0052]c.若來自客戶端的軟件版本與軟件最新的版本一致,即客戶端的軟件無需升級,則返回給客戶端,告知客戶端軟件無需升級,客戶端軟件自動正常啟動。
[0053]d.若本地軟件版本與最新軟件版本不一致時,需要進(jìn)行升級;
[0054]e.利用設(shè)置的“軟件版本升級配置文件”,選擇合適的軟件更新增量包下載地址;在本發(fā)明的一個實(shí)施例中,軟件版本升級配置文件的結(jié)構(gòu)框架可參考表I的設(shè)置:
[0055]關(guān)于表I的軟件版本升級配置文件的說明:
[0056]首先,根據(jù)客戶端的IP地址判斷客戶端所在區(qū)域,如西南地區(qū);
[0057]其次,根據(jù)客戶端版本信息計(jì)算與最新版本客戶端的版本差異,如與最新版本的差異為2 ;
[0058]再次,讀取該配置文件,找到configuration根節(jié)點(diǎn),然后根據(jù)IP找到name為southwest的location節(jié)點(diǎn),接著根據(jù)版本差異2找到two節(jié)點(diǎn),然后讀取里邊的address節(jié)點(diǎn),得到SUS服務(wù)器更新包下載地址。
[0059]
〈configuration〉
<localion name=,,south\vcst”>
<onc>
〈address id=,T,> remote addrcss</acldrcss>
<addrcss id=”2”> remote addrcss</addrcss>
</onc>
<two>
<addrcss id=”l”> remote addrcss</addrcss>
<addrcss id=”2”> remote addrcss</addrcss>
</two>`
<lhrcc>
<address id=”l”> remote address</addrcss>
</lhrcc>
<four>
〈address id=” l”> remote addrcss</addrcss>
</Tour>
<llvc>
<addrcss id=”l”> remote addrcss</addrcss>
</Tivc>
〈/location〉
〈location name=”southwcst”>......〈/location〉
〈location namc=,,norlh,,>......〈/location〉
〈location namc=”south”>......〈/location〉
〈location namc=’’middle”>......〈/location〉
<location name=5,northeast5,>......</location>
〈/configuration〉
[0060]表1
[0061]此處,使用軟件版本升級配置文件,其中的服務(wù)器地址可以人工改動,可避免程序?qū)懰?,?dāng)發(fā)現(xiàn)服務(wù)器地址不可用時,可通過修改配置文件對服務(wù)器地址進(jìn)行替換,無需修改RVCE,方便日后的升級與兼容。相比將軟件升級服務(wù)器地址寫死在本地升級引擎,這種動態(tài)選擇升級服務(wù)器的方式可避免一旦升級服務(wù)器地址改變軟件無法正常升級的風(fēng)險,提高軟件版本升級系統(tǒng)可擴(kuò)展性與穩(wěn)健性。
[0062]f.客戶端接收下載地址,該下載地址經(jīng)SVUCS服務(wù)器采用加密算法加密,LUE可進(jìn)行解密操作。在本發(fā)明的一個實(shí)施例中,可使用對稱加密算法,將服務(wù)器真實(shí)地址(稱為明文)使用特定密鑰key值進(jìn)行加密,得到加密后的服務(wù)器地址(稱為密文),寫死在本地升級引擎中的是加密后的SVUCS地址,本地升級引擎更具加密后的SVUCS地址和密鑰采用特定的解密算法得到真實(shí)的服務(wù)器訪問地址,這樣在一定程度上可以保證服務(wù)器地址的安全性,避免不良用戶使用破解工具對本地升級引擎進(jìn)行破解直接獲取到服務(wù)器的訪問地址,然后進(jìn)行惡意攻擊。同樣,若本地客戶軟件需要進(jìn)行版本升級,SVUCS返回的軟件增量包的地址也是經(jīng)過加密后的軟件升級服務(wù)器地址,需要本地解密后進(jìn)行下載訪問。本發(fā)明使用特定的加密算法,能夠較好地保證服務(wù)器的安全性。
[0063]g.下載地址解密后,客戶端向SUS服務(wù)器發(fā)出下載請求。
[0064]h.客戶端判斷請求連接是否超時。在本發(fā)明的一個實(shí)施例中,客戶端啟動兩個定時器:一個是http連接定時器,用戶控制客戶端訪問服務(wù)器的超時,及時釋放網(wǎng)絡(luò)連接;另一個是下載超時定時器,用于控制軟件下載超時,在連續(xù)三次下載超時后提示軟件用戶當(dāng)前的網(wǎng)絡(luò)狀況欠佳,這種狀況會給軟件用戶兩個選擇繼續(xù)進(jìn)行軟件版本升級和下一次更新,保證軟件友好的交互性。
[0065]1.在SUS服務(wù)器端,通過訪問連接數(shù)限制和每個連接的最大流量來控制,SUS服務(wù)器判斷單位時間內(nèi)接收到的請求是否超過閾值,這樣可以較好地保護(hù)SUS服務(wù)器??蛻舳撕蚐US服務(wù)器較好地交互保證軟件增量包的順利下載、網(wǎng)絡(luò)資源的及時釋放。
[0066]j.客戶端下載完畢后,斷開與SUS服務(wù)器的連接。
[0067]k.客戶端解壓下載的軟件更新增量包。在本發(fā)明的一個實(shí)施例中,客戶端并不是直接將軟件升級文件一一下載然后進(jìn)行軟件升級操作,而是由本地軟件升級引擎自動解壓,抽取其中的資源升級文件和數(shù)據(jù)庫升級文件。使用壓縮包既節(jié)約了服務(wù)器的存儲空間,也保證了軟件版本升級在進(jìn)行更新包下載時下載速度最短化,保證下載的成功率,將軟件版本升級的大部分責(zé)任轉(zhuǎn)交給本地軟件升級引擎去完成,減少了服務(wù)器的壓力和網(wǎng)絡(luò)負(fù)載,保證升級時間的最短化。
[0068]在本發(fā)明的一個實(shí)施例中,為較好地獲取用戶體驗(yàn),在進(jìn)行資源升級時,還可顯示下載進(jìn)度條、下載速度和版本升級的進(jìn)度,帶給軟件用戶較好地軟件升級體驗(yàn)。軟件版本升級完后做善后處理,刪除臨時文件等操作。
[0069]1.替換客戶端資料文件,更新本地?cái)?shù)據(jù)庫。軟件將用戶產(chǎn)生的歷史數(shù)據(jù)保存在本地derby數(shù)據(jù)庫中,其中derby數(shù)據(jù)庫是java虛擬機(jī)自帶的一種輕量級數(shù)據(jù)庫,使用的數(shù)據(jù)庫操作語言是SQL。如前所述,通過執(zhí)行配置文件中的SQL語句對需要升級的數(shù)據(jù)庫內(nèi)容進(jìn)行升級。當(dāng)數(shù)據(jù)庫更新失敗時,可回滾數(shù)據(jù)庫歷史數(shù)據(jù),還原先前的數(shù)據(jù)庫數(shù)據(jù);另外,資源文件升級時,對待替換的文件進(jìn)行備份,在文件覆蓋失敗時及時還原,保證用戶數(shù)據(jù)的安全性。
[0070]另一方面,本發(fā)明的SVUCS服務(wù)器的結(jié)構(gòu)框圖如圖6,其用于確定軟件版本升級文件的下載地址,包括:
[0071]信息接收模塊101,用于接收來自客戶端的軟件版本升級請求和用戶信息,用戶信息包含用戶軟件版本信息和IP地址。
[0072]信息判斷模塊102,用于根據(jù)用戶軟件版本信息判斷用戶軟件是否為最新版本,當(dāng)不是最新版本時,根據(jù)用戶軟件版本信息確定用戶軟件版本與該軟件最新版本的差異。
[0073]第一信息處理模塊103,用于基于所述IP地址得到客戶端的位置。
[0074]第二信息處理模塊104,用于基于第一對應(yīng)關(guān)系,根據(jù)客戶端的位置確定客戶端的區(qū)域。
[0075]第三信息處理模塊105,用于基于第二對應(yīng)關(guān)系,根據(jù)客戶端的區(qū)域確定客戶端對應(yīng)的服務(wù)器。
[0076]下載地址確定模塊106,用于根據(jù)客戶端對應(yīng)的服務(wù)器以及用戶軟件版本與該軟件最新版本的差異,確定軟件版本升級文件的下載地址。
[0077]信息發(fā)送模塊107,用于將確定好的下載地址發(fā)送給客戶端。
[0078]不同于與常見的C/S模式,本發(fā)明充分利用服務(wù)器資源,在原有C/S中加入SVUCS服務(wù)器,構(gòu)成軟件版本升級系統(tǒng),SVUCS服務(wù)器可根據(jù)用戶IP選擇較近的軟件升級服務(wù)器提供文件下載,在整個系統(tǒng)中起到網(wǎng)絡(luò)分流的作用,優(yōu)化負(fù)載均衡。更重要地,由于SVUCS服務(wù)器根據(jù)區(qū)域分配下載地址,可記錄不同區(qū)域軟件用戶的相關(guān)數(shù)據(jù),這些用戶數(shù)據(jù)能夠幫助軟件供應(yīng)商分析用戶區(qū)域分布和使用量情況,有利于制定發(fā)展決策。
[0079]以上,結(jié)合具體實(shí)施例對本發(fā)明的技術(shù)方案進(jìn)行了詳細(xì)介紹,所描述的具體實(shí)施例用于幫助理解本發(fā)明的思想。本領(lǐng)域技術(shù)人員在本發(fā)明具體實(shí)施例的基礎(chǔ)上做出的推導(dǎo)和變型也屬于本發(fā)明保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種用于確定軟件版本升級文件下載地址的方法,其特征在于,包括: 信息接收步驟,接收來自客戶端的軟件版本升級請求和用戶信息,所述用戶信息包含用戶軟件版本信息和IP地址; 信息判斷步驟,根據(jù)用戶軟件版本信息判斷用戶軟件是否為最新版本,當(dāng)不是最新版本時,根據(jù)用戶軟件版本信息確定用戶軟件版本與該軟件最新版本的差異; 第一信息處理步驟,基于所述IP地址得到客戶端的位置; 第二信息處理步驟,基于第一對應(yīng)關(guān)系,根據(jù)客戶端的位置確定客戶端的區(qū)域; 第三信息處理步驟,基于第二對應(yīng)關(guān)系,根據(jù)客戶端的區(qū)域確定客戶端對應(yīng)的服務(wù)器; 下載地址確定步驟,根據(jù)客戶端對應(yīng)的服務(wù)器以及用戶軟件版本與該軟件最新版本的差異,確定軟件版本升級文件的下載地址; 信息發(fā)送步驟,將確定好的下載地址發(fā)送給所述客戶端。
2.如權(quán)利要求1所述的用于確定軟件版本升級文件下載地址的方法,其特征在于,其中: 所述第一對應(yīng)關(guān)系為第一區(qū)域?qū)?yīng)于至少第一位置,所述至少第一位置位于所述第一區(qū)域內(nèi); 所述第二對應(yīng)關(guān)系為第一區(qū)域`對應(yīng)于至少一個服務(wù)器,所述至少一個服務(wù)器位于所述第一區(qū)域內(nèi),用于提供軟件版本升級文件下載服務(wù)。
3.如權(quán)利要求2所述的用于確定軟件版本升級文件下載地址的方法,其特征在于,在所述第二信息處理步驟之后,所述方法還包括: 區(qū)域信息記錄步驟,記錄本次確定的客戶端的區(qū)域信息,所述區(qū)域包括以下各項(xiàng)中的至少一項(xiàng):華東、華北、華南、華中、西南、西北和東北。
4.如權(quán)利要求2所述的用于確定軟件版本升級文件下載地址的方法,其特征在于,在所述第三信息處理步驟中,在確定客戶端對應(yīng)的服務(wù)器時,從所述至少一個服務(wù)器中隨機(jī)選取一個服務(wù)器; 當(dāng)所述客戶端與當(dāng)前服務(wù)器連接失敗時,從所述至少一個服務(wù)器中隨機(jī)選取另一個服務(wù)器。
5.如權(quán)利要求4所述的用于確定軟件版本升級文件下載地址的方法,其特征在于,當(dāng)所述客戶端與所述至少一個服務(wù)器中的每一個服務(wù)器均連接失敗時,選取位于所述第一區(qū)域外部的服務(wù)器,且在所有位于所述第一區(qū)域外部的服務(wù)器中,選中的服務(wù)器到所述第一區(qū)域的幾何中心的距離最短。
6.一種軟件版本升級文件下載地址確定裝置,其特征在于,包括: 信息接收模塊,用于接收來自客戶端的軟件版本升級請求和用戶信息,所述用戶信息包含用戶軟件版本信息和IP地址; 信息判斷模塊,用于根據(jù)用戶軟件版本信息判斷用戶軟件是否為最新版本,當(dāng)不是最新版本時,根據(jù)用戶軟件版本信息確定用戶軟件版本與該軟件最新版本的差異; 第一信息處理模塊,用于基于所述IP地址得到客戶端的位置; 第二信息處理模塊,用于基于第一對應(yīng)關(guān)系,根據(jù)客戶端的位置確定客戶端的區(qū)域; 第三信息處理模塊,用于基于第二對應(yīng)關(guān)系,根據(jù)客戶端的區(qū)域確定客戶端對應(yīng)的服務(wù)器; 下載地址確定模塊,用于根據(jù)客戶端對應(yīng)的服務(wù)器以及用戶軟件版本與該軟件最新版本的差異,確定軟件版本升級文件的下載地址; 信息發(fā)送模塊,用于將確定好的下載地址發(fā)送給所述客戶端。
7.如權(quán)利要求6所述的軟件版本升級文件下載地址確定裝置,其特征在于,其中: 所述第一對應(yīng)關(guān)系為第一區(qū)域?qū)?yīng)于至少第一位置,所述至少第一位置位于所述第一區(qū)域內(nèi); 所述第二對應(yīng)關(guān)系為第一區(qū)域?qū)?yīng)于至少一個服務(wù)器,所述至少一個服務(wù)器位于所述第一區(qū)域內(nèi),用于提供軟件版本升級文件下載服務(wù)。
8.如權(quán)利要求7所述的軟件版本升級文件下載地址確定裝置,其特征在于,還包括區(qū)域信息記錄模塊,用于記錄本次確定的客戶端的區(qū)域信息,所述區(qū)域包括以下各項(xiàng)中的至少一項(xiàng):華東、華北、華南、華中、西南、西北和東北。
9.如權(quán)利要求7所述的軟件版本升級文件下載地址確定裝置,其特征在于,在所述第三信息處理模塊確定客戶端對應(yīng)的服務(wù)器時,從所述至少一個服務(wù)器中隨機(jī)選取一個服務(wù)器; 當(dāng)所述客戶端與當(dāng)前服務(wù)器連接失敗時,所述第三信息處理模塊從所述至少一個服務(wù)器中隨機(jī)選取另一個服務(wù)器。
10.如權(quán)利要求9所述的軟件版本升級文件下載地址確定裝置,其特征在于,當(dāng)所述客戶端與所述至少一個服務(wù)器中 的每一個服務(wù)器均連接失敗時,所述第三信息處理模塊選取位于所述第一區(qū)域外部的服務(wù)器,且在所有位于所述第一區(qū)域外部的服務(wù)器中,所述第三信息處理模塊選中的服務(wù)器到所述第一區(qū)域的幾何中心的距離最短。
11.一種軟件版本升級系統(tǒng),其特征在于,包括如權(quán)利要求6-10中任一項(xiàng)所述的軟件版本升級文件下載地址確定裝置以及多臺軟件升級服務(wù)器;其中,所述多臺軟件升級服務(wù)器中的至少一臺位于第一區(qū)域,用于提供軟件版本升級文件下載服務(wù)。
12.如權(quán)利要求11的軟件版本升級系統(tǒng),其特征在于,所述多臺軟件升級服務(wù)器存儲有軟件版本升級文件,所述軟件版本升級文件包含資源升級文件和數(shù)據(jù)庫升級文件,以壓縮包的形式存儲,不同的用戶軟件版本與該軟件最新版本的差異對應(yīng)于不同的壓縮包。
13.如權(quán)利要求12的軟件版本升級系統(tǒng),其特征在于,客戶端的用戶數(shù)據(jù)保存在本地derby數(shù)據(jù)庫中,所述數(shù)據(jù)庫升級文件使用的數(shù)據(jù)庫操作語言為SQL語言。
【文檔編號】H04L29/08GK103888523SQ201410088302
【公開日】2014年6月25日 申請日期:2014年3月11日 優(yōu)先權(quán)日:2014年3月11日
【發(fā)明者】王勇 申請人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司