本发明涉及软件升级方法,尤其涉及一种基于远程校验算法的C/S架构软件自动更新升级方法。
背景技术:
目前,常用的C/S架构的软件升级方法存在一些不足,例如,业务逻辑客户端不能共享,组件之间缺乏关联,开放程度也差。另外,由于客户端很庞大,以至于应用程序的升级和维护十分困难。在目前的C/S模式下,应用程序的每次升级时都需要重新在每个客户端安装应用程序,每个程序的升级策略、升级时间、升级配置均不一致,因此,在对于整个系统存在大量软件的情况下,升级过程非常繁琐,用户体验差。同时目前软件更新往往是采用重新下载安装包,先卸载原有软件后重新安装的方式,网络传输量大,更新速度慢。
技术实现要素:
发明目的:本发明针对现有技术存在的问题,提供一种基于远程校验算法的C/S架构软件自动更新升级方法,能够使得用户端所有需要升级的客户端软件能够统一自动升级到最新版本,并能够对升级策略、升级时间等进行统一的设置,并且采用增量式下载技术,减少升级软件文件传输,提高升级速度,提升用户软件升级过程体验度。
技术方案:本发明所述的基于远程校验算法的C/S架构软件自动更新升级方法包括:
各用户的客户端对待更新的软件版本、校验值信息和对应的更新策略信息进行采集,并上报给服务端;
服务端对各用户的客户端上报的软件版本、校验值信息和对应的更新策略信息进行汇总,形成软件自动更新策略管理文件;
当应用软件新版本提交至服务端的版本库后,服务端根据各用户的自动更新策略管理文件下发更新通告;
客户端采用编解码技术以及数字签名技术将应用软件当前版本形成校验值,发送至服务端;
服务端将应用软件新版本的校验值与客户端当前软件版本的校验值进行比对;
服务端通过比对,将与客户端不一致的软件文件版本下发至客户端;
客户端将接收的文件版本的安装运行文件替换掉当前版本的文件,完成升级;
在软件升级的过程中,服务端通过软件更新监视管理后台软件对于软件状态进行可视化显示。
其中,客户端通过Web服务以统一的格式向服务器进行直接获取各种文件和信息。
其中,所述编解码数字签名技术是综合将文件内容、文件名称、文件大小以及文件修改时间作为待校验内容运用MD5算法进行数字摘要校验,形成校验值。
有益效果:本发明与现有技术相比,其显著优点是:1、采用本发明进行软件更新,能够将待更新的客户端软件统一到最新软件版本上,从而避免软件版本的“碎片化”产生;2、减少升级文件数量,提高升级速度,提升用户体验度;3、通过用户对于需要保留的已有个人数据,可以避免在软件升级的过程中软件设置以及已有的数据丢失;4、通过综合利用Web服务技术以及数据分发服务技术,使得软件版本库中有新版本软件发布时,应用客户端能够自动感知,无需用户主动去查询具体软件的版本情况;5、通过软件更新的可视化方式,对于软件更新过程进行全程的跟踪,并对软件更新过程中出现的错粗进行跟踪,提高软件更新效率,增强用户体验度。
附图说明
图1是本发明的一个实施例的流程示意图。
具体实施方式
如图1所示,本实施例的基于远程校验算法的C/S架构软件自动更新升级方法包括以下步骤:
S1、各用户的客户端对待更新的软件版本、校验值信息和对应的更新策略信息进行采集,并上报给服务端。
其中,待更新的软件版本信息包括用户待更新的软件名称、软件安装目录等软件信息,更新策略信息包括自动/手动更新方式和更新时间等信息。客户端通过Web服务以统一的格式与服务端数据通信。Web服务技术是指客户端将文件校验值、软件目录结构树以及文件内容等信息通过Web服务以统一的格式向服务器进行直接获取,避免不同数据的格式不同、访问方式不同导致软件更新过程失败。
S2、服务端对各用户的客户端上报的软件版本、校验值信息和对应的更新策略信息进行汇总,形成软件自动更新策略管理文件。
S3、当应用软件新版本提交至服务端的版本库后,服务端根据各用户的自动更新策略管理文件下发更新通告。
其中,应用软件新版本提交至服务端后,需要软件版本管理人员进行审核,在审核完成后提交至软件版本库,从而完成软件版本的安全审计。在完成最新版本软件审核入库后,软件版本管理员可以选择该软件对全部用户进行更新通告,也可以选择部分用户进行更新通告。
另外,本步骤采用了数据分发服务技术,在软件版本或者软件升级配置有所变化时,将变化通告给用户客户端,从而使得客户端能够及时获取服务器端软件版本更新信息,避免客户端定时向服务器端询问软件版本信息,减少网络开销。
S4、客户端采用编解码技术以及数字签名技术将应用软件当前版本形成校验值,发送至服务端。
其中,编解码技术以及数字签名技术是综合将文件内容、文件名称、文件大小以及文件修改时间作为待校验内容运用MD5算法进行数字摘要校验,形成校验值。
S5、服务端将应用软件新版本的校验值与客户端当前软件版本的校验值进行比对。
其中,将校验值作为文件的身份ID在客户端以及服务器版本库中进行比较,从而避免对文件进行全部的二进制比较,由此支持用户自定义保留无需替换的软件运行时数据文件,从而提高软件升级速度,提升用户体验度,减少网络传输开销、降低系统资源消耗,提高比较速度。
S6、服务端通过比对,将与客户端不一致的软件文件版本下发至客户端。
如果用户是手动更新方式,则用户选择更新后,开始下发软件新版本,如果自动更新则直接下发新版本。本步骤采用了增量式更新技术,只对于版本库中与客户端不一致的软件文件(二进制执行程序文件、配置文件、数据文件)进行下载替换,而不是进行全部软件文件的下载,从而在待更新软件数量较大的情况下,能够快速进行软件的更新升级过程并减少网络传输的数据量、降低网络资源的开销。
S7、客户端将接收的文件版本的安装运行文件替换掉当前版本的文件,完成升级。
S8、在软件升级的过程中,服务端通过软件更新监视管理后台软件对于软件状态进行可视化显示。
其中,本步骤采用了软件更新反馈可视化技术,服务端通过软件更新监视管理后台软件对于软件状态进行可视化显示,如表1所示,包括已发送更新通知、用户选择更新/用户拒绝更新/自动更新、完成更新、更新失败等状态,从而能够完整快速的掌握软件更新状态,并对软件更新过程中出现的错误进行跟踪,提高软件更新效率,增强用户体验度。
表1基于远程校验算法的C/S架构软件自动更新升级方法软件更新状态结构表