客户端程序增量更新的方法及系统技术方案

技术编号:14369973 阅读:136 留言:0更新日期:2017-01-09 15:35
本发明专利技术提供了一种客户端程序增量更新的方法及系统,包括:将客户端的程序拆分成两个以上的模块;服务端计算新旧版本的模块的文件包的差异,生成包括更新操作列表和对应更新文件的增量更新包;客户端依据模块的名称获取服务端上的模块的最新版本号;若所述最新版本号与客户端的模块的版本号不同,则客户端依据所述名称和最新版本号获取所述模块所需的增量更新包;解压所述增量更新包,得到更新文件和更新操作列表;若所述更新操作列表中的操作类型是增量更新,则将所述更新文件与所述模块的原文件进行差异计算,生成新的更新文件,并将新的更新文件保存至客户端预设的临时目录下;将所述临时目录文件覆盖到客户端的程序目录中。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种客户端程序增量更新的方法及系统
技术介绍
随着智能客户端的发展,各种适用于客户端的程序应运而生。一般的程序都具备自动更新功能,通常是一个更新版本对应一个服务器上的更新包,程序更新时客户端将该更新包下载下来,然后进行覆盖替换,完成更新。但是如果这个版本更新的内容较多,则对应的更新包就会比较大,需要耗费大量的时间来下载更新包,用户体验感较差。公开号为CN104899057A的中国专利提出了一种软件模块的更新方法,包括:加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;由单一的线程依次从所述序列化后的请求队列中读取访问请求;当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。该方案通过对软件进行模块化更新,从而提高软件的更新速度,但是该方案对各个模块的更新仍是使用现有的支架下载全部更新包的方式,因此,当更新内容较多时,各模块的更新包仍比较大,下载时间较长。
技术实现思路
本专利技术所要解决的技术问题是:提供一种客户端程序增量更新的方法及系统,能够快速更新程序的各个模块。为了解决上述技术问题,本专利技术采用的技术方案为:一种客户端程序增量更新的方法,包括:将客户端的程序拆分成两个以上的模块;服务端计算新旧版本的模块的文件包的差异,生成包括更新操作列表和对应更新文件的增量更新包;客户端依据模块的名称获取服务端上的模块的最新版本号;若所述最新版本号与客户端的模块的版本号不同,则客户端依据所述名称和最新版本号获取所述模块所需的增量更新包;解压所述增量更新包,得到更新文件和更新操作列表;若所述更新操作列表中的操作类型是增量更新,则将所述更新文件与所述模块的原文件进行差异计算,生成新的更新文件,并将新的更新文件保存至客户端预设的临时目录下;将所述临时目录文件覆盖到客户端的程序目录中。本专利技术提供的另一个技术方案为:一种客户端程序增量更新的系统,包括:拆分模块,用于将客户端的程序拆分成两个以上的模块;差异计算模块,用于服务端计算新旧版本的模块的文件包的差异,生成包括更新操作列表和对应更新文件的增量更新包;版本号获取模块,用于客户端依据模块的名称获取服务端上的模块的最新版本号;更新包获取模块,用于若所述最新版本号与客户端的模块的版本号不同,则客户端依据所述名称和最新版本号获取所述模块所需的增量更新包;解压模块,用于解压所述增量更新包,得到更新文件和更新操作列表;更新文件获取模块,用于若所述更新操作列表中的操作类型是增量更新,则将所述更新文件与所述模块的原文件进行差异计算,生成新的更新文件,并将新的更新文件保存至客户端预设的临时目录下;更新模块,用于将所述临时目录文件覆盖到客户端的程序目录中。本专利技术的有益效果在于:首先将程序拆分成多个模块,只对需要更新的模块进行更新,减少了更新的数据量;其次,模块更新时从服务器获取增量更新包,将增量更新包中的更新文件与原文件进行差异计算生成新的更新文件,覆盖程序的原文件实现更新;采用增量更新的方式,区别于现有技术中将整个更新包下载下来的方法,具有下载时间短、更新速度快的优点。附图说明图1为本专利技术实施例的客户端程序增量更新的方法的流程图;图2为本专利技术实施例的客户端程序增量更新的系统的结构示意图。标号说明:1、拆分模块;2、差异计算模块;3、版本号获取模块;4、更新包获取模块;5、解压模块;6、更新文件获取模块;7、更新模块。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:将客户端程序拆分成多个模块,对模块进行增量更新。请参照图1,本专利技术提供:一种客户端程序增量更新的方法,包括:将客户端的程序拆分成两个以上的模块;服务端计算新旧版本的模块的文件包的差异,生成包括更新操作列表和对应更新文件的增量更新包;客户端依据模块的名称获取服务端上的模块的最新版本号;若所述最新版本号与客户端的模块的版本号不同,则客户端依据所述名称和最新版本号获取所述模块所需的增量更新包;解压所述增量更新包,得到更新文件和更新操作列表;若所述更新操作列表中的操作类型是增量更新,则将所述更新文件与所述模块的原文件进行差异计算,生成新的更新文件,并将新的更新文件保存至客户端预设的临时目录下;将所述临时目录文件覆盖到客户端的程序目录中。进一步的,服务端生成增量更新包后,依据所述更新操作列表和对应更新文件生成最新版本的完整文件,并将所述完整文件保存至服务端预设的修复目录下。从上述描述可知,进行增量更新时,可能出现更新文件生成失败等异常现象,因此服务端在生成增量更新包后还生成了最新版本的完整文件,因此当客户端使用增量更新的方式更新失败时能够从服务端下载该完整文件,使用传统的方式进行更新,确保更新成功。进一步的,所述更新操作列表包括对应更新文件的哈希值;生成新的更新文件之后,将新的更新文件保存至临时目录下之前,进一步包括:客户端判断新的更新文件的哈希值与更新操作列表的哈希值是否相同;若相同,则将所述新的更新文件保存至客户端的临时目录下;若不同,则从所述修复目录中获取所述完整文件,将所述完整文件作为新的更新文件保存至所述临时目录下。从上述描述可知,客户端使用增量更新的方式的得到更新文件后,需要先判断更新文件是否正确,即增量更新的更新文件是否成功生成,若正确则使用生成的更新文件进行更新,失败则使用完整文件进行更新,确保更新成功。进一步的,服务端将所述完整文件保存至修复目录下之后,生成所述模块的更新检测地址、更新下载地址以及修复下载地址,所述更新检测地址用于指向所述模块的最新版本号,所述更新下载地址用于指向所述增量更新包,所述修复下载地址用于指向所述完整文件。从上述描述可知,服务端生成网页配置文件,从而客户端能够依据网页配置文件获取最新版本号、增量更新包、完整文件等。进一步的,客户端以所述模块的名称和当前版本号为参数,通过所述更新检测地址从服务端获取最新版本号,通过所述更新下载地址从服务端获取增量更新包,通过所述修复下载地址从服务端获取完整文件。进一步的,服务端计算新旧版本的模块的文件包的差异,生成包括更新操作列表和对应更新文件的增量更新包,具体为:服务端遍历比较新旧版本的模块的文件包;若新版本的模块的文件包新增了文件,则设置更新操作列表中的操作类型为新增文件,将新增的文件作为更新文件,生成包括所述更新操作列表和更新文件的增量更新包;若新版本的模块的文件包删除了文件,则设置更新操作列表中的操作类型为删除文件,生成包括所述更新操作列表的增量更新包;若新版本的模块的文件包和旧版本的模块的文件包中的文件同名但文件内容不同,则设置更新操作列表中的操作类型为增量更新,对所述文件内容进行差异计算,生成增量更新文件,将增量更新文件作为更新文件,生成包括所述更新操作列表和更新文件的增量更新包。进一步的,解压所述增量更新包,得到更新文件和更新操作列表之后,将所述临时目录文件覆盖到客户端的程序目录中之前,进一步包括:若所述更新操作列表中的操作类型是新增文件,则将所述更新文件保存至所述临时目录下;若所述更新操作列表中的操作类型本文档来自技高网
...
客户端程序增量更新的方法及系统

【技术保护点】
一种客户端程序增量更新的方法,其特征在于,包括:将客户端的程序拆分成两个以上的模块;服务端计算新旧版本的模块的文件包的差异,生成包括更新操作列表和对应更新文件的增量更新包;客户端依据模块的名称获取服务端上的模块的最新版本号;若所述最新版本号与客户端的模块的版本号不同,则客户端依据所述名称和最新版本号获取所述模块所需的增量更新包;解压所述增量更新包,得到更新文件和更新操作列表;若所述更新操作列表中的操作类型是增量更新,则将所述更新文件与所述模块的原文件进行差异计算,生成新的更新文件,并将新的更新文件保存至客户端预设的临时目录下;将所述临时目录文件覆盖到客户端的程序目录中。

【技术特征摘要】
1.一种客户端程序增量更新的方法,其特征在于,包括:将客户端的程序拆分成两个以上的模块;服务端计算新旧版本的模块的文件包的差异,生成包括更新操作列表和对应更新文件的增量更新包;客户端依据模块的名称获取服务端上的模块的最新版本号;若所述最新版本号与客户端的模块的版本号不同,则客户端依据所述名称和最新版本号获取所述模块所需的增量更新包;解压所述增量更新包,得到更新文件和更新操作列表;若所述更新操作列表中的操作类型是增量更新,则将所述更新文件与所述模块的原文件进行差异计算,生成新的更新文件,并将新的更新文件保存至客户端预设的临时目录下;将所述临时目录文件覆盖到客户端的程序目录中。2.根据权利要求1所述的客户端程序增量更新的方法,其特征在于,服务端生成增量更新包后,依据所述更新操作列表和对应更新文件生成最新版本的完整文件,并将所述完整文件保存至服务端预设的修复目录下。3.根据权利要求2所述的客户端程序增量更新的方法,其特征在于,所述更新操作列表包括对应更新文件的哈希值;生成新的更新文件之后,将新的更新文件保存至临时目录下之前,进一步包括:客户端判断新的更新文件的哈希值与更新操作列表的哈希值是否相同;若相同,则将所述新的更新文件保存至客户端的临时目录下;若不同,则从所述修复目录中获取所述完整文件,将所述完整文件作为新的更新文件保存至所述临时目录下。4.根据权利要求2所述的客户端程序增量更新的方法,其特征在于,服务端将所述完整文件保存至修复目录下之后,生成所述模块的更新检测地址、更新下载地址以及修复下载地址,所述更新检测地址用于指向所述模块的最新版本号,所述更新下载地址用于指向所述增量更新包,所述修复下载地址用于指向所述完整文件。5.根据权利要求4所述的客户端程序增量更新的方法,其特征在于,客户端以所述模块的名称和当前版本号为参数,通过所述更新检测地址从服务端获取最新版本号,通过所述更新下载地址从服务端获取增量更新包,通过所述修复下载地址从服务端获取完整文件。6.根据权利要求1所述的客户端程序增量更新的方法,其特征在于,服务端计算新旧版本的模块的文件包的差异,生成包括更新操作列表和对应更新文件的增量更新包,具体为:服务端遍历比较新旧版本的模块的文件包;若新版本的模块的文件包新增了文件,则设置更新操作列表中的操作类型为新增文件,将新增的文件作为更新文件,生成包括所述更新操作列表和更新文件的增量更新包;若新版本的模块的文件包删除了文件,则设置更新操作列表中的操作类型为删除文件,生成包括所述更新操作列表的增量更新包;若新版本的模块的文件包和旧版本的模块的文件包中的文件同名但文件内容不同,则设置更新操作列表中的操作类型为增量更新,对所述文件内容进行差异计算,生成增量更新文件,将增量更新文件作为更新文件,生成包括所述更新操作列表和更新文件的增量更新包。7.根据权利要求6所述的客户...

【专利技术属性】
技术研发人员:刘德建胡彬方振华郭玉湖
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1