一种基于功能模块的应用程序自动热更新方法技术

技术编号:17097177 阅读:31 留言:0更新日期:2018-01-21 08:48
本发明专利技术公开了一种基于功能模块的应用程序自动热更新方法,通过使应用程序定时向版本服务器发送包含自身主程序版本和各功能模块版本信息的版本查询协议,并接收所有匹配可用的更新包描述信息,然后依次执行下载更新包、记录更新日志、功能模块替换、版本信息切换和恢复运行,其中,功能模块替换前先记录待更新日志,并通知需要进行更新的各功能模块停止运行,并且仅在更新安装成功后才恢复更新日志及切换记录新版本信息;版本服务器能实时通知所有在线运行的应用程序进行更新,从而达到了更新过程最大限度不干扰原有程序运行,并在更新错误及失败的情况下都能重复安装成功,以及能通过版本服务器实时通知应用程序第一时间更新的技术目的。

【技术实现步骤摘要】
一种基于功能模块的应用程序自动热更新方法
本专利技术涉及一种应用程序自动热更新解决方法,属于计算机软件领域。
技术介绍
现有的程序更新通常采用在程序启动时运行单独的辅助进程来进行,从而实现对业务主进程进行更新。这种程序更新方式,在更新的过程中会一次或多次的在两个或多个进程中进行切换,来完成版本检测、版本更新的目的。这种传统的更新方式不仅繁琐,而且限定了更新的时机必须处于主进程退出后。另外,如果用户长时间不退出主进程,可能会导致更新解决问题的时间可能被无限延长,问题带来的损失可能被无限扩大。很多应用软件平台传统的整包更新,更是会导致每次更新体积过大,冗余文件极多,用户更新的成本非常高。非常的浪费网络流量和用户的时间。
技术实现思路
为了克服上述现有技术的不足,本专利技术旨在提供一种基于功能模块的应用程序自动热更新方法,通过执行版本查询比对,应用程序定时向版本服务器发送包含自身主程序版本和各功能模块版本信息的版本查询协议,并接收所有匹配可用的更新包描述信息,然后依次执行下载更新包、记录更新日志、功能模块替换、版本信息切换和恢复运行,其中,功能模块替换前先记录待更新日志,并通知需要进行更新的各功能模块停止运行,并且仅在更新安装成功后才恢复已更新日志及切换为新版本信息;当版本服务器探测到出现新的更新包后,立即将此更新包描述信息通知所有在线运行的应用程序,并提示选择更新或强制更新,以达到应用程序更新过程最大限度不干扰原有程序运行,并在更新过程发生错误、不匹配和安装失败的情况下都能重复安装成功,以及能通过版本服务器实时通知应用程序第一时间更新的技术目的。为此,一种基于功能模块的应用程序自动热更新方法,包括如下步骤:1)版本查询比对,应用程序定时向版本服务器发送包含自身主程序版本和各功能模块版本信息的版本查询协议,并接收所有匹配可用的更新包描述信息,其中,所述更新包包括更新脚本和更新程序文件,并表现为压缩文件格式,所述更新包描述信息包括其对应的程序名称、功能模块、网络路径、版本号、版本适用范围、更新强制性和发布时间;2)下载更新包,根据可用更新包的描述信息,执行强制更新或用户选择更新,并连接版本服务器进行更新包中的更新脚本和更新程序文件的下载,进行更新包完整性校验,其中,所下载的更新脚本和更新程序文件与正在运行的应用程序文件必须不在同一目录下;3)记录更新日志,将本次更新的旧版本信息、新版本信息和更新描述信息存入本地磁盘或注册表,以备异常情况下也能继续更新过程;4)功能模块替换,首先,主程序调用更新脚本,通知需要进行更新的各功能模块停止运行,然后替换待更新的程序文件;5)版本信息切换,还原步骤3)已记录的更新日志,并将实时版本信息切换记录为已更新完毕的新版本信息;6)恢复运行,将更新过程中所停止的已更新功能模块逐个恢复正常运行。进一步地,在步骤1)之前进行如下预置操作:1-a)在应用程序设置对主程序版本和各功能模块版本信息的记录载体,所述载体包括文件或注册表或数据库;1-b)在版本服务器一侧保存更新包和更新包的描述信息;1-c)使应用程序具有到版本服务器的网络连接。进一步地,所述更新包描述信息还包括所适用的操作系统、虚拟机环境、软件环境和环境变量信息。进一步地,所述版本比对过程既能发生在应用程序启动过程,也能发生在运行过程的任何时刻。更优地,当版本服务器探测到出现新的更新包后,立即将此更新包描述信息通知所有在线运行的应用程序,并提示选择更新或强制更新,这种情况下的版本比对过程为:应用程序比对此更新包描述信息所对应的功能模块和版本号适用范围,与自身各功能模块版本信息的约束关系,以判断本机此功能模块是否需要更新。进一步地,所述热更新的前提条件是,所述应用程序的主程序不依赖各功能模块,并可在各功能模块停止后或发生故障后仍正常运行。更优地,主程序启动后,能自动检查所述的更新日志,判断是否本次存在可用更新包,如存在,则自动执行步骤4)到6)的版本更新过程。本专利技术具有如下有益效果:本专利技术热更新方法的功能模块替换过程中,能由主程序仅停止待更新的功能模块,确保最大限制不干扰原有程序运行,并解决模块间依赖带来的模块更新时故障问题;在版本查询比对和下载更新过程中执行严格的更新描述信息匹配,确保不会执行错误、不匹配的更新;当更新的任何一步发生错误、不匹配和安装失败的情况下,都能通过重复安装成功;以及通过版本服务器实时通知应用程序第一时间更新,以确保及时解决软件紧急故障的需求。附图说明图1是一种基于功能模块的应用程序自动热更新方法流程图,图2是一种基于功能模块的应用程序自动热更新方法预置操作的流程图,图3是一种基于功能模块的应用程序自动热更新方法在版本服务器通知更新的流程图。具体实施方式为了加深对本专利技术的理解,下面结合附图和实施例对本专利技术进一步说明,该实施例仅用于解释本专利技术,并不对本专利技术的保护范围构成限定。一种基于功能模块的应用程序自动热更新方法,如图1所述,包括如下步骤:S101,版本查询比对,应用程序定时向版本服务器发送包含自身主程序版本和各功能模块版本信息的版本查询协议,并接收所有匹配可用的更新包描述信息。其中,所述更新包包括更新脚本和更新程序文件,并表现为压缩文件格式,所述更新脚本用于指示本次更新对应用程序所在计算机的磁盘文件、注册表、环境变量和服务等对象的处理方法。所述更新包描述信息包括此更新包对应的程序名称、功能模块、网络路径、版本号、版本适用范围、更新强制性和发布时间,其中,所述功能模块包括一组程序文件和其他类型文件的集合,它们共同组成一个完整而且相对独立的功能组,一个应用程序包含多个不同的功能模块;版本适用范围指示此更新包所匹配的目标应用程序版本范围,此范围之外的应用程序不可使用此更新包,否则会发生程序兼容性故障;更新强制性指示需用户选择安装还是自动强制安装此应用程序,一般有重大功能改变或安全性改进的更新包需使用强制更新类型。版本查询过程中,版本服务器能根据自身存储的版本库,与应用程序发来的主程序版本和各功能模块版本信息逐项比对,只有当应用程序名称、功能模块、版本号适用范围都匹配的更新包描述信息,才作为结果项发送给应用程序使用。作为进一步地措施,应用程序在收到更新包信息后,进一步检查版本号适用范围、操作系统、内核、功能模块之间的匹配关系。此措施确保应用程序不会使用不匹配的更新包。S102,下载更新包,根据可用更新包的描述信息,执行强制更新或用户选择更新,并连接版本服务器进行更新包中的更新脚本和更新程序文件的下载,进行更新包完整性校验,其中,所下载的更新脚本和更新程序文件与正在运行的应用程序文件必须不在同一目录下。更新包下载过程需使用更新包描述信息中的网络路径信息,对更新包列表中的多个更新包逐个进行下载。全部下载完成后,即进入步骤S103。S103,记录更新日志,将本次更新的旧版本信息、新版本信息和更新描述信息存入本地磁盘或注册表,以备异常情况下也能继续更新过程。此更新日志为更新过程开始前的事件指示,目的是记录应用程序环境的原始状态信息。S104,功能模块替换,首先,主程序调用更新脚本,通知需要进行更新的各功能模块停止运行,然后替换待更新的程序文件。功能模块替换过程开始之前,必须使得更新包列表对应的各功能模块停止运行,否则本文档来自技高网...
一种基于功能模块的应用程序自动热更新方法

【技术保护点】
一种基于功能模块的应用程序自动热更新方法,其特征在于,包括如下步骤:1)版本查询比对,应用程序定时向版本服务器发送包含自身主程序版本和各功能模块版本信息的版本查询协议,并接收所有匹配可用的更新包描述信息,其中,所述更新包包括更新脚本和更新程序文件,并表现为压缩文件格式,所述更新包描述信息包括其对应的程序名称、功能模块、网络路径、版本号、版本适用范围、更新强制性和发布时间;2)下载更新包,根据可用更新包的描述信息,执行强制更新或用户选择更新,并连接版本服务器进行更新包中的更新脚本和更新程序文件的下载,进行更新包完整性校验,其中,所下载的更新脚本和更新程序文件与正在运行的应用程序文件必须不在同一目录下;3)记录更新日志,将本次更新的旧版本信息、新版本信息和更新描述信息存入本地磁盘或注册表,以备异常情况下也能继续更新过程;4)功能模块替换,首先,主程序调用更新脚本,通知需要进行更新的各功能模块停止运行,然后替换待更新的程序文件;5)版本信息切换,还原步骤3)已记录的更新日志,并将实时版本信息切换记录为已更新完毕的新版本信息;6)恢复运行,将更新过程中所停止的已更新功能模块逐个恢复正常运行。

【技术特征摘要】
1.一种基于功能模块的应用程序自动热更新方法,其特征在于,包括如下步骤:1)版本查询比对,应用程序定时向版本服务器发送包含自身主程序版本和各功能模块版本信息的版本查询协议,并接收所有匹配可用的更新包描述信息,其中,所述更新包包括更新脚本和更新程序文件,并表现为压缩文件格式,所述更新包描述信息包括其对应的程序名称、功能模块、网络路径、版本号、版本适用范围、更新强制性和发布时间;2)下载更新包,根据可用更新包的描述信息,执行强制更新或用户选择更新,并连接版本服务器进行更新包中的更新脚本和更新程序文件的下载,进行更新包完整性校验,其中,所下载的更新脚本和更新程序文件与正在运行的应用程序文件必须不在同一目录下;3)记录更新日志,将本次更新的旧版本信息、新版本信息和更新描述信息存入本地磁盘或注册表,以备异常情况下也能继续更新过程;4)功能模块替换,首先,主程序调用更新脚本,通知需要进行更新的各功能模块停止运行,然后替换待更新的程序文件;5)版本信息切换,还原步骤3)已记录的更新日志,并将实时版本信息切换记录为已更新完毕的新版本信息;6)恢复运行,将更新过程中所停止的已更新功能模块逐个恢复正常运行。2.根据权利要求1所述的一种基于功能模块的应用程序自动热更新方法,其特征在于,在...

【专利技术属性】
技术研发人员:张蓉黄礼成邓钢雍志伟
申请(专利权)人:南京哈卢信息科技有限公司
类型:发明
国别省市:江苏,32

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

1
相关领域技术
  • 暂无相关专利