的版本標識碼。
[0088]S303:接收所述服務端根據所述更新請求中的版本信息和包標識返回的資源包存儲地址,根據該資源包存儲地址發起下載請求以獲取資源包,并根據獲取的資源包更新所述待更新文件;
[0089]其中,接收到的所述返回的資源包存儲地址包括增量差分包存儲地址或新版本資源包存儲地址,所述增量差分包是所述服務端根據差分算法計算服務端中所述待更新文件對應的新版本資源包與存儲的各歷史版本資源包的差分部分。
[0090]具體的,服務端在接收到更新端的更新請求后,根據更新請求中的版本信息以及包標識選擇對應的資源包(增量差分包或者新版本資源包)存儲地址返回給更新端可參考上述圖1至圖2對應實施例的描述,在此不贅述。
[0091]本發明實施例更新端在對目標應用的相關文件進行更新時,能夠僅下載其中不同的部分,減少了更新所需的數據量,有利于快速下載,節省帶寬資源以及能耗,節約了用戶的下載時間。
[0092]再請參見圖4,是本發明實施例的又一種數據更新方法的流程示意圖,本發明實施例的所述方法可應用在更新端中,例如應用在智能手機、平板電腦、個人電腦、智能可穿戴設備等終端設備中,具體的,所述方法包括:
[0093]S401:在檢測到對本端的待更新文件進行更新時,生成該待更新文件的待更新版本資源包標識;
[0094]S402:向服務端發送更新請求,所述更新請求中攜帶待更新文件的版本信息和待更新版本資源包標識;
[0095]S403:接收所述服務端根據所述更新請求中的版本信息和包標識返回的資源包存儲地址,根據該資源包存儲地址發起下載請求以獲取資源包;
[0096]S404:根據獲取的資源包更新所述待更新文件;
[0097]其中,若所述根據該資源包存儲地址發起下載請求以獲取資源包下載得到的資源包為增量差分包,則所述S404包括:根據預置的合并算法將所述增量差分包和所述待更新文件的資源包進行合并處理,得到更新后的所述待更新文件的資源包;解壓所述得到的更新后的所述待更新文件的資源包,得到完成更新后的文件。
[0098]若所述根據該資源包存儲地址發起下載請求以獲取資源包下載得到的資源包為新版本資源包,則所述S404包括:解壓獲取的新版本資源包,得到完成更新后的文件。
[0099]S405:接收服務端返回的新版本資源包的包標識;
[0100]服務端在發送對應資源包的存儲地址后,還可以采用MD5算法等計算其新版本資源包的包標識,然后將新版本資源包的包標識發送給更新端。
[0101]S406:對所述完成更新后的文件的資源包進行計算,得到更新后的文件資源包的更新包標識;
[0102]更新端在通過上述的S404得到完成更新后的文件后,對文件進行壓縮得到更新后的文件資源包,并采用MD5算法等計算得到更新后的文件資源包的包標識。
[0103]S407:將接收到的新版本資源包的包標識與所述更新包標識進行比較,若不相同,則發出用于指示更新失敗的提示。
[0104]將在S405中接收到的包標識與在S406中生成的包標識進行比較,若相同,則表明更新成功,否則,更新失敗,具體可以在S407中發出更新失敗的提示,以便于用戶重新發起更新。
[0105]本發明實施例更新端在對目標應用的相關文件進行更新時,能夠僅下載其中不同的部分,減少了更新所需的數據量,有利于快速下載,節省帶寬資源以及能耗,節約了用戶的下載時間。并且基于MD5等標識碼計算方式得到的標識碼來對各類資源包以及版本進行標記,可以確保資源包的下載以及更新的有效性和準確性,保證了用戶更新能夠正常完成。
[0106]下面對本發明實施例的數據更新裝置及系統進行詳細描述。
[0107]請參見圖5,是本發明實施例的一種數據更新系統的結構示意圖,本發明實施例的所述系統包括:服務端I以及更新端2,所述服務器端I可以為各類可提供數據更新服務應用服務器或者數據服務器,所述更新端包括智能手機、平板電腦、個人電腦、智能可穿戴設備等終端設備或者其他需要對數據進行更新的服務器。具體的,
[0108]所述服務端1,用于當接收到新版本資源包后,根據差分算法計算新版本資源包與存儲的各歷史版本資源包的差分部分,將差分部分作為各歷史版本資源包的增量差分包;存儲各增量差分包,并記錄各歷史版本資源包的包標識與對應增量差分包存儲地址的映射關系;
[0109]所述更新端2,用于向所述服務端I發送更新請求,所述更新請求中包括待更新文件版本資源包標識;
[0110]所述服務端1,還用于若接收到攜帶待更新版本資源包標識的更新請求,確定與所述待更新版本資源包標識的標識值相同的歷史版本資源包的包標識;根據確定的包標識查找增量差分包存儲地址,并響應所述更新請求返回查找到的增量差分包存儲地址;
[0111]所述更新端2,還用于根據所說返回的增量差分包存儲地址發出下載請求下載增量差分包,以對待更新文件進行更新。
[0112]具體的請參見圖6,是本發明實施例的一種數據更新裝置的結構示意圖,本發明實施例的所述裝置可設置在各類應用更新服務端中,具體可以設置在上述系統實施例的服務端中,所述裝置包括:
[0113]計算模塊11,用于當接收到新版本資源包后,根據差分算法計算新版本資源包與存儲的各歷史版本資源包的差分部分,將差分部分作為各歷史版本資源包的增量差分包;
[0114]存儲模塊12,用于存儲各增量差分包,并記錄各歷史版本資源包的包標識與對應增量差分包存儲地址的映射關系;
[0115]處理模塊13,用于若接收到攜帶待更新版本資源包標識的更新請求,確定與所述待更新版本資源包標識的標識值相同的歷史版本資源包的包標識;根據確定的包標識查找增量差分包存儲地址,并響應所述更新請求返回查找到的增量差分包存儲地址。
[0116]當應用開發者對原應用有更新時,可通過服務端發布新版本資源包的形式實現對更新端中的相關數據的更新。所述的新版本資源包包括對新版本中各個文件數據進行壓縮后得到的一個壓縮包,例如將新版本文件中的HTML對應數據、JS對應數據、CSS對應數據、Image對應數據等壓縮后得到的壓縮包。
[0117]在本發明實施例中,所述計算模塊11在接收到開發者上傳的新版本資源包或者其他方式接收到的新版本資源包后,根據預置的差分算法(如二進制差分算法)對新版本資源包與本地存儲的各個歷史版本資源包進行計算處理,將計算得到的各歷史版本資源包的差分部分作為各歷史版本資源包相對于新版本資源包的增量差分包。所述增量差分包中包括了歷史版本資源包與新版本資源包中不同的部分,其數據量會明顯小于新版本資源包的數據量。具體的,二進制差分算法為對兩個文件的二進制進行對比,將其差分的部分提取出來進行壓縮,成為一個差分包的算法,具體實現可參考開源組件bsdiff和bspatch等。
[0118]所述存儲模塊12可以將計算出的各增量差分包存儲到CDN中,并確定各增量差分包在⑶N中的存儲地址即URL。
[0119]在所述存儲模塊12存儲每一個歷史版本資源包對應的增量差分包后,可通過一個資源映射庫或者映射表的形式存儲歷史版本資源包的包標識及對于增量差分包的映射關系,在該映射關系中,對應存儲地址的增量差分包可以對映射的歷史版本資源包的包標識對應的資源包進行更新。其中,可以通過MD5 (消息摘要算法第五版)算法來計算每一個歷史版本資源包的包標識。
[0120]更新端可以通過定時更新或者用戶手動觸發更新等方式向服務端發起更新請求,更新端連接到對應服務端并發送更新請求可通過現有技術實現。其中,在所述更新請求中,會攜帶更新端中相應應用文件所對應的資源包的包標識,以便于服務端能夠確定終端的資源包所處的歷史版本,同樣,終端中計算相應應用文件所對應的資源包的包標識的方式,采用與服務端側對歷史版本資源包的相同計算方式,均通過協商的MD5等形式的標識碼計算方式進行計算。
[0121]所述處理模塊13在接收到更新端的更新請求后,以所述更新請求中的包標識作為關鍵字在所述存儲模塊12中記錄的映射關系中,查找標識值與所述更新請求中的包標識相同的歷史版本資源包的包標識,如果查找到相同的歷史版本資源包的包標識,所述處理模塊13將該相同的歷史版本資源包的包標識映射的增量差分包的存儲地址返回給所述更新端;如果沒有查找到相同的歷史版本資源包,表明更新端的資源包過于老舊,所述處理模塊13將所述新版本資源包直接返回給更新端。
[0122]本發明實施例可以在發布對目標應用相應文件進行更新的新版本資源包時,能夠得到新版本與各歷史版本的差分部分的增量差分包,并根據映射存儲的方式實現在用戶需要對相應文件進行更新時,能夠僅發送其中不同的部分給更新端,減少了更新所需的數據量,有利于快速下載,節省帶寬資源以及能耗,節約了用戶的下載時間。
[0123]再請參見圖7,是本發明實施例的另一種數據處理裝置的結構示意圖,本發明實施例的所述裝置可設置在上述系統實施例中的服務端中,并包括圖6對應實施例中的計算模塊11、存儲模塊12以及處理模塊13,具體的,在本發明實施例中,所述裝置還包括:記錄模塊14、標識發送模塊15。
[0124]進一步可選地,在本發明實施例中,如圖8所示,所述存儲模塊12包括:
[0125]存儲單元121,用于存儲各增量差分包,并確定每一個增量差分包的存儲地址;所述存儲單元121可以將增量差分包存儲到CDN等服務端中,并確定每一個增量差分包在CDN等服務端中的存儲地址。
[0126]記錄單元122,用于在預置的包括各歷史版本資源包的包標識與其資源包存儲地址的資源映射庫中,增加記錄各歷史版本資源包的包標識對應的增量差分包存儲地址。
[0127]所述資源映射庫為預先設置的,用于存儲目標應用的每一個版本的資源包的包標識與資源包存儲地址的映射關系,以便