一种数据更新方法、装置及系统的制作方法_2

文档序号:8339417阅读:来源:国知局
ry diff utility,二进制差分工具),在进行增量差分包与旧版本资源包合并时对应参考开源组件bspatch(Binary patch utility, 二进制合并工具,与bsdiff对应)等。
[0051]S102:存储各增量差分包,并记录各历史版本资源包的包标识与对应增量差分包存储地址的映射关系。
[0052]可以将计算出的各增量差分包存储到⑶N中,并确定各增量差分包在⑶N中的存储地址即URL (Uniform Resource Locator,统一资源定位符)。
[0053]在存储每一个历史版本资源包对应的增量差分包后,可通过一个资源映射库或者映射表的形式存储历史版本资源包的包标识及对于增量差分包的映射关系,在该映射关系中,对应存储地址的增量差分包可以对映射的历史版本资源包的包标识对应的资源包进行更新。其中,可以通过MD5 (消息摘要算法第五版)算法来计算每一个历史版本资源包的包标识O
[0054]S103:若接收到携带待更新版本资源包标识的更新请求,确定与所述待更新版本资源包标识的标识值相同的历史版本资源包的包标识;
[0055]S104:根据确定的包标识查找增量差分包存储地址,并响应所述更新请求返回查找到的增量差分包存储地址。
[0056]更新端可以通过定时更新或者用户手动触发更新等方式向服务端发起更新请求,更新端连接到对应服务端并发送更新请求可通过现有技术实现。其中,在所述更新请求中,会携带更新端中相应应用文件所对应的资源包的包标识,以便于服务端能够确定终端的资源包所处的历史版本,同样,终端中计算相应应用文件所对应的资源包的包标识的方式,采用与服务端侧对历史版本资源包的相同计算方式,均通过协商的MD5等形式的标识码计算方式进行计算。
[0057]服务端在接收到更新端的更新请求后,以所述更新请求中的包标识作为关键字在所述S102中记录的映射关系中,查找标识值与所述更新请求中的包标识相同的历史版本资源包的包标识,如果查找到相同的历史版本资源包的包标识,则将该相同的历史版本资源包的包标识映射的增量差分包的存储地址返回给所述更新端;如果没有查找到相同的历史版本资源包,表明更新端的资源包过于老旧,则将所述新版本资源包直接返回给更新端。
[0058]本发明实施例可以在发布对目标应用相应文件进行更新的新版本资源包时,能够得到新版本与各历史版本的差分部分的增量差分包,并根据映射存储的方式实现在用户需要对相应文件进行更新时,能够仅发送其中不同的部分给更新端,减少了更新所需的数据量,有利于快速下载,节省带宽资源以及能耗,节约了用户的下载时间。
[0059]再请参见图2,是本发明实施例的另一种数据更新方法的流程示意图,本发明实施例的所述方法可应用在应用服务端中,实现对更新端中的应用数据等的更新,具体的,所述方法包括:
[0060]S201:当接收到新版本资源包后,根据差分算法计算新版本资源包与存储的各历史版本资源包的差分部分,将差分部分作为各历史版本资源包的增量差分包。
[0061]差分算法可采用上述的二进制差分算法对新版本资源包与本地存储的各个历史版本资源包进行计算处理,得到每一个历史版本资源包对应的增量差分包。
[0062]S202:存储各增量差分包,并确定每一个增量差分包的存储地址。
[0063]可以将增量差分包存储到⑶N等服务端中,并确定每一个增量差分包在⑶N等服务端中的存储地址。
[0064]S203:在预置的包括各历史版本资源包的包标识与其资源包存储地址的资源映射库中,增加记录各历史版本资源包的包标识对应的增量差分包存储地址。
[0065]所述资源映射库为预先设置的,用于存储目标应用的每一个版本的资源包的包标识与资源包存储地址的映射关系,以便于根据资源包的包标识找到对应的资源包。各历史版本资源包的包标识可通过MD5算法计算得出。
[0066]进一步地,在存储了包标识以及资源包存储地址的映射关系的情况下,再存储记录对应的增量差分包的存储地址,以便于服务端不仅能够找到资源包包标识对应的资源包,还能找到对应的增量差分包。当然,也可以仅保存各个历史版本资源包的包标识与对应增量差分包的映射关系。
[0067]S204:接收更新端发送的更新请求,所述更新请求中携带所述更新端中待更新文件的版本信息和待更新版本资源包标识。
[0068]更新端可以通过定时更新或者用户手动触发更新等方式向服务端发起更新请求,更新端连接到对应服务端并发送更新请求可通过现有技术实现。
[0069]更新端根据本端的待更新文件,可以得到待更新文件的版本信息以及该待更新文件对应资源包的待更新版本资源包标识。
[0070]本发明实施例的在所述更新请求中,不仅会携带包括更新端中待更新文件对应资源包的待更新版本资源包标识,以便于服务端能够确定终端的资源包所处的历史版本,还可以携带待更新文件的版本信息。同样,终端中计算相应应用文件所对应的资源包的包标识的方式,与服务端侧对历史版本资源包的计算方式相同,均通过协商的MD5等形式的标识码计算方式进行计算。
[0071]S205:判断所述更新请求中的版本信息与所述新版本资源包的版本信息是否相同。
[0072]同样所述的版本信息也可以是终端根据MD5算法计算终端中目标应用的版本号码得到的版本标识码(即具体的标识值),而所述新版本资源包的版本信息也可以是服务端根据MD5算法计算所述新版本的版本号码得到的新版本资源包的版本标识码。在所述S205中,将两个版本标识码进行比较,若相同,则表明更新请求中的版本信息与所述新版本资源包的版本信息相同,此时表明更新端的目标应用已经是最新版本;若两个版本标识码不相同,则表明更新端需要进行后续的更新,执行下述的S206。
[0073]即具体可选地,在所述S201之前当接收到新版本资源包时,在预置的包括各历史版本标识与其对应版本号的版本映射库中,增加所述新版本资源包的版本标识与新版本号的映射关系。则所述S205可以包括:判断所述更新请求中的版本标识码与版本映射库中记载的新版本资源包的版本标识是否相同;若不相同,则确定述更新请求中的版本信息与所述新版本资源包的版本信息不相同。
[0074]S206:若不相同,确定所述资源映射库中与所述更新请求中的待更新版本资源包标识的标识值相同的历史版本资源包的包标识。如果确定出相同的历史版本资源包的包标识,则执行下述S207。
[0075]S207:将所述资源映射库中与该相同的历史版本资源包的包标识对应的增量差分包存储地址返回给所述更新端。
[0076]S208:若在所述资源映射库中未确定出与所述更新请求中的待更新版本资源包标识的标识值相同的历史版本资源包的包标识,则将所述新版本资源包的存储地址返回给所述更新端。
[0077]以所述更新请求中包标识的标识值作为关键字在所述S203的资源映射库中,查找与所述更新请求中的包标识相同的历史版本资源包的包标识,如果查找到相同的历史版本资源包的包标识,则将该相同的历史版本资源包的包标识映射的增量差分包的存储地址返回给所述更新端;如果没有查找到相同的历史版本资源包,则将所述新版本资源包的存储地址直接返回给更新端。
[0078]更新端可以根据服务端返回的增量差分包的存储地址或者新版本资源包的存储地址,发起HTTP下载请求以下载获取到的对应的增量差分包或者新版本资源包,以对更新端中的目标应用中的相关文件进行更新。
[0079]S209:生成所述新版本资源包的包标识,并将所述新版本资源包的包标识返回给所述更新端。
[0080]所述S209为可选步骤,在返回了增量差分包的存储地址或者新版本资源包的存储地址后,服务端还可以通过MD5等算法计算生成所述新版本资源包的包标识,将新版本资源包的包标识发送给更新端,以便于更新端在对目标应用的相关文件进行更新后,根据服务端返回的新版本资源包的包标识来验证本次更新是否成功。
[0081]本发明实施例可以在发布对目标应用相应文件进行更新的新版本资源包时,能够得到新版本与各历史版本的差分部分的增量差分包,并根据映射存储的方式实现在用户需要对相应文件进行更新时,能够仅发送其中不同的部分给更新端,减少了更新所需的数据量,有利于快速下载,节省带宽资源以及能耗,节约了用户的下载时间。并且基于MD5等标识码计算方式得到的标识码来对各类资源包以及版本进行标记,可以确保资源包的下载以及更新的有效性和准确性,保证了用户更新能够正常完成。
[0082]再请参见图3,是本发明实施例的再一种数据更新方法的流程示意图,本发明实施例的所述方法可应用在更新端中,例如应用在智能手机、平板电脑、个人电脑、智能可穿戴设备等终端设备中,具体的,所述方法包括:
[0083]S301:在检测到对本端的待更新文件进行更新时,生成该待更新文件的待更新版本资源包标识;
[0084]对于更新端中安装的目标应用,可以通过定时更新或者用户手动触发更新等方式来对本端所述目标应用的相关文件进行更新。更新端在检测到定时到来时或者手动触发时,通过MD5算法等方式计算得到该目标应用对应的待更新文件对应资源包的包标识。
[0085]更新端根据本端的待更新文件,可以得到待更新文件的版本信息以及该待更新文件对应资源包的待更新版本资源包标识。
[0086]S302:向服务端发送更新请求,所述更新请求中携带待更新文件的版本信息和待更新版本资源包标识;
[0087]更新端连接到对应服务端并发送更新请求可通过现有技术实现。在更新请求中携带版本信息用于使服务端判断是否需要响应该更新请求返回相应数据完成更新;而在更新请求中携带的待更新文件资源包的包标识则是用于指示服务端要发送何种更新资源包。所述更新请求中的版本信息也可以是更新端对目标应用的版本号码进行如MD5算法计算后得到
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1