一種數據更新方法、裝置及系統的制作方法
【技術領域】
[0001]本發明涉及計算機數據更新技術領域,尤其涉及一種數據更新方法、裝置及系統。
【背景技術】
[0002]在實際應用開發中,Hybrid App (混合應用)是一種介于Native App (本地應用)與Web App (網絡應用)之間的一種App (應用),更容易被開發者接受。它從外觀看起來和Native App無異,但它兼有Native App和Web App的優點,總體特性更接近Native App,而和Web App區別較大。雖然它的核心只有一個Web容器,但是通過這個容器加載的Web頁面能夠借助這個容器和本地進行信息交互,從而調用底層的功能實現復雜的功能,彌補了 WebApp能力上的缺陷。
[0003]Hybrid App通過Web容器加載的Web頁面有更高的靈活性,對于版本的更新控制也更加簡便。但是由于Hybrid App存在離線使用的需求,大部分Hybrid App會把這些Web端的文件存放在本地,而通過一個渠道來獲取新版本的文件,將新版本的文件存放到本地完成更新的過程。通過資源包的方式來進行版本的更新就是其中的一種。
[0004]在目前的資源包更新過程中,需要更新的文件所對應的新版本資源包可以放在Q)N (Content Delivery Network,內容分發網絡)上,App可以通過下載的方式下載得到新版本資源包,解壓后得到新版本文件覆蓋本地的原文件即可完成文件更新。
[0005]現有技術中,App需要下載包括新版本文件的所有內容的資源包,這會占用更新端當前較多的網絡帶寬,并且會消耗較多的時間來完成下載。
【發明內容】
[0006]本發明實施例提供一種數據更新方法、裝置及系統,可在對帶寬要求較低的情況下較快地完成數據更新。
[0007]為了解決上述問題,本發明實施例提供了一種數據更新方法,包括:
[0008]當接收到新版本資源包后,根據差分算法計算新版本資源包與存儲的各歷史版本資源包的差分部分,將差分部分作為各歷史版本資源包的增量差分包;
[0009]存儲各增量差分包,并記錄各歷史版本資源包的包標識與對應增量差分包存儲地址的映射關系;
[0010]若接收到攜帶待更新版本資源包標識的更新請求,確定與所述待更新版本資源包標識的標識值相同的歷史版本資源包的包標識;
[0011]根據確定的包標識查找增量差分包存儲地址,并響應所述更新請求返回查找到的增量差分包存儲地址。
[0012]相應地,本發明實施例還提供了另一種數據更新方法,包括:
[0013]在檢測到對本端的待更新文件進行更新時,生成該待更新文件的待更新版本資源包標識;
[0014]向服務端發送更新請求,所述更新請求中攜帶待更新文件的版本信息和待更新版本資源包標識;
[0015]接收所述服務端根據所述更新請求中的版本信息和包標識返回的資源包存儲地址,根據該資源包存儲地址發起下載請求以獲取資源包,并根據獲取的資源包更新所述待更新文件;
[0016]其中,接收到的資源包存儲地址包括增量差分包存儲地址或新版本資源包存儲地址,所述增量差分包是所述服務端根據差分算法計算服務端中所述待更新文件對應的新版本資源包與存儲的各歷史版本資源包的差分部分。
[0017]相應地,本發明實施例還提供了一種數據更新裝置,包括:
[0018]計算模塊,用于當接收到新版本資源包后,根據差分算法計算新版本資源包與存儲的各歷史版本資源包的差分部分,將差分部分作為各歷史版本資源包的增量差分包;
[0019]存儲模塊,用于存儲各增量差分包,并記錄各歷史版本資源包的包標識與對應增量差分包存儲地址的映射關系;
[0020]處理模塊,用于若接收到攜帶待更新版本資源包標識的更新請求,確定與所述待更新版本資源包標識的標識值相同的歷史版本資源包的包標識;根據確定的包標識查找增量差分包存儲地址,并響應所述更新請求返回查找到的增量差分包存儲地址。
[0021]相應地,本發明實施例還提供了另一種數據更新裝置,包括:
[0022]生成模塊,用于在檢測到對本端的待更新文件進行更新時,生成該待更新文件的待更新版本資源包標識;
[0023]請求模塊,用于向服務端發送更新請求,所述更新請求中攜帶待更新文件的版本信息和待更新版本資源包標識;
[0024]處理模塊,用于接收所述服務端根據所述更新請求中的版本信息和包標識返回的資源包存儲地址,根據該資源包存儲地址發起下載請求以獲取資源包;
[0025]更新模塊,用于根據獲取的資源包更新所述待更新文件;
[0026]其中,接收到的資源包存儲地址包括增量差分包存儲地址或新版本資源包存儲地址,所述增量差分包是所述服務端根據差分算法計算服務端中所述待更新文件對應的新版本資源包與存儲的各歷史版本資源包的差分部分。
[0027]相應地,本發明實施例還提供了一種數據處理系統,包括:服務端和更新端,其中,
[0028]所述服務端,用于當接收到新版本資源包后,根據差分算法計算新版本資源包與存儲的各歷史版本資源包的差分部分,將差分部分作為各歷史版本資源包的增量差分包;存儲各增量差分包,并記錄各歷史版本資源包的包標識與對應增量差分包存儲地址的映射關系;
[0029]所述更新端,用于向所述服務端發送更新請求,所述更新請求中包括待更新版本資源包標識;
[0030]所述服務端,還用于若接收到攜帶待更新版本資源包標識的更新請求,確定與所述待更新版本資源包標識的標識值相同的歷史版本資源包的包標識;根據確定的包標識查找增量差分包存儲地址,并響應所述更新請求返回查找到的增量差分包存儲地址;
[0031]所述更新端,還用于根據所說返回的增量差分包存儲地址發出下載請求下載增量差分包,以對待更新文件的資源包進行更新。
[0032]本發明實施例可以在發布對目標應用相應文件進行更新的新版本資源包時,能夠得到新版本與各歷史版本的差分部分的增量差分包,并根據映射存儲的方式實現在用戶需要對相應文件進行更新時,能夠僅將其中不同的部分給更新端,減少了更新所需的數據量,有利于快速下載,節省帶寬資源以及能耗,節約了用戶的下載時間。
【附圖說明】
[0033]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0034]圖1是本發明實施例的一種數據更新方法的流程示意圖;
[0035]圖2是本發明實施例的另一種數據更新方法的流程示意圖;
[0036]圖3是本發明實施例的再一種數據更新方法的流程示意圖;
[0037]圖4是本發明實施例的又一種數據更新方法的流程示意圖;
[0038]圖5是本發明實施例的一種數據更新系統的結構示意圖;
[0039]圖6是本發明實施例的一種數據更新裝置的結構示意圖;
[0040]圖7是本發明實施例的另一種數據處理裝置的結構示意圖;
[0041]圖8是圖7中的存儲模塊的其中一種具體結構示意圖;
[0042]圖9是圖7中的處理模塊的其中一種具體結構示意圖;
[0043]圖10是本發明實施例的再一種數據更新裝置的結構示意圖;
[0044]圖11是本發明實施例的又一種數據更新裝置的結構示意圖;
[0045]圖12是圖11中的更新模塊的其中一種具體結構示意圖。
【具體實施方式】
[0046]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0047]請參見圖1,是本發明實施例的一種數據更新方法的流程示意圖,本發明實施例的所述方法可應用在服務器端,例如各類可提供數據更新服務應用服務器或者數據服務器中,實現對諸如用戶終端或者其他服務器的更新端中相關數據的更新,具體的,所述方法包括:
[0048]SlOl:當接收到新版本資源包后,根據差分算法計算新版本資源包與存儲的各歷史版本資源包的差分部分,將差分部分作為各歷史版本資源包的增量差分包。
[0049]當應用開發者對原應用有更新時,可通過服務端發布新版本資源包的形式實現對更新端中的相關數據的更新。所述的新版本資源包包括對新版本中各個文件數據進行壓縮后得到的一個壓縮包,例如:將新版本文件中的HTML (Hypertext Markup Language,超文本標記語言)對應數據、JS (JavaScript,一種原型化繼承的面向對象的動態類型的客戶端腳本語言)對應數據、CSS (Cascading Style Sheet,級聯樣式表)對應數據、Image (圖片)對應數據等壓縮后得到的壓縮包。
[0050]在本發明實施例中,服務端在接收到開發者上傳的新版本資源包或者其他方式接收到的新版本資源包后,根據預置的差分算法(如二進制差分算法)對新版本資源包與本地存儲的各個歷史版本資源包進行計算處理,將計算得到的各歷史版本資源包的差分部分作為各歷史版本資源包相對于新版本資源包的增量差分包。所述增量差分包中包括了歷史版本資源包與新版本資源包中不同的部分,其數據量會明顯小于新版本資源包的數據量。具體的,二進制差分算法為對兩個文件的二進制進行對比,將其差分的部分提取出來進行壓縮,成為一個差分包的算法,具體實現可參考開源組件bsdiff (Bina