基于Windows服务实现PC端软件静默升级的系统及方法与流程

文档序号:12718960阅读:1423来源:国知局
基于Windows服务实现PC端软件静默升级的系统及方法与流程

本发明涉及软件升级技术领域,具体来讲是一种基于Windows服务实现PC端软件静默升级的系统及方法。



背景技术:

目前,对于PC客户端软件进行升级/更新的方法是从服务器下载一个最新的软件包来进行升级/更新操作。具体来说,现有的软件程序在进行升级/更新时通常采用的是整体更新方式,即直接将完整的更新包放在软件网站上或官方提供下载,PC端用户首先卸载旧版本的软件,然后下载安装新版本的软件程序。这样的缺陷是,软件程序的整体更新占用的时间和带宽过大,特别是在进行小版本升级或缺陷修复时,会频繁的要求或引导用户进行手动下载和更新,为用户带来不便。

以Windows系统为例,系统本身提供了一套程序升级/更新的机制。当有新版本发布时,用户会收到通知,让用户选择是否立即进行升级。但是,一个新的升级包至少有数兆大小,如果在软件产品无重大框架调整或增加特色功能的情况下就要用户下载完整的升级包进行安装,不仅会浪费用户时间、占用带宽和流量,而且一旦升级/更新过于频繁,会对用户形成骚扰,干扰了用户对软件的正常使用,影响用户体验。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种基于Windows服务实现PC端软件静默升级的系统及方法,能在不打扰用户的情况下(不显示升级程序界面)自动完成升级,不但节省带宽、节约网络流量,而且不会干扰用户的正常使用,提高了用户体验。

为达到以上目的,本发明提供一种基于Windows服务实现PC端软件静默升级的系统,该系统包括静默升级主服务模块、升级包下载模块和静默升级模块;

所述静默升级主服务模块宿主于Windows服务,长期在后台运行,其用于:按照设置的循环检测时间定期自动检测是否有软件版本的更新情况,一旦有,则启动升级包下载模块;并在检测到软件未在运行时,启动静默升级模块;

所述升级包下载模块用于:在后台完成升级包的下载,并将下载的升级包存放到指定的临时目录下;

所述静默升级模块用于:解压临时目录下的升级包,将升级包内的文件更新到软件对应的目录下,完成静默升级。

本发明还提供一种应用上述系统的基于Windows服务实现PC端软件静默升级的方法,包括以下步骤:

A、在安装PC端软件时配套安装静默升级主服务模块;设置静默升级主服务模块的循环检测时间,并启动静默升级主服务模块;

B、每当达到设置的循环检测时间后,静默升级主服务模块自动检测是否有软件版本的更新情况,一旦有,则启动升级包下载模块;

C、升级包下载模块在后台完成升级包的下载,并将下载的升级包存放到指定的临时目录下;

D、当静默升级主服务模块检测到软件未在运行时,启动静默升级模块;静默升级模块解压临时目录下的升级包,将升级包内的文件更新到软件对应的目录下,完成静默升级。

本发明的有益效果在于:

(1)本发明基于Microsoft Windows服务来实现PC端软件的静默升级。其中,静默升级主服务模块宿主于Windows服务,长期在后台运行,用于按照设置的循环检测时间定期自动检测是否有软件版本的更新情况,一旦有,则启动升级包下载模块进行升级包的下载;并在检测到软件未在运行时,启动静默升级模块进行静默升级。

与现有技术相比,本发明可在不打扰用户的情况下(不显示升级程序界面),根据设置的循环检测时间定期自动完成升级,不但节省带宽、节约网络流量,而且不会干扰用户的正常使用,提高了用户体验。特别在小版本功能的升级、功能缺陷的修复、客户端功能的临时上线或下线等情况时,无需引导用户去操作升级,而是在后台应用系统服务完成软件的升级流程,能在保证不干扰用户正常使用天软件的同时,完成对软件自身的升级/更新过程。

(2)本发明中,升级包下载模块会对所下载的升级包进行MD5校验,有效保证了所下载的升级包的安全性和可靠性。

(3)本发明的应用能够满足PC端上所有应用程序的静默升级需求,并能够根据用户的需求定制化静默升级服务,解决更多的产品需求,用户体验佳。

附图说明

图1为本发明实施例中基于Windows服务实现PC端软件静默升级的系统的结构框图;

图2为本发明实施例中基于Windows服务实现PC端软件静默升级的方法的流程图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

本发明是基于Microsoft Windows服务来实现PC端软件静默升级的方案。Microsoft Windows服务(即,以前的NT服务),是使软件能够创建在它们自己的Windows会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这种服务非常适合在服务器上使用,或为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用;还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

基于上述技术原理和技术特点,参见图1所示,本发明实施例提供一种基于Windows服务实现PC端软件静默升级的系统,该系统包括静默升级主服务模块(MainService)、升级包下载模块(Downloader)和静默升级模块(Updater)。

静默升级主服务模块宿主于Windows Service(Windows服务),长期在后台运行,其用于:按照设置的循环检测时间定期自动检测是否有软件版本的更新情况(包括小版本功能的升级、功能缺陷的修复、客户端功能的临时上线或下线等情况),一旦有,则启动升级包下载模块;并在检测到软件未在运行时,启动静默升级模块。

升级包下载模块用于:在后台完成升级包的下载,并将下载的升级包存放到指定的临时目录下。

静默升级模块用于:解压临时目录下的升级包,将升级包内的文件更新到软件对应的目录下,完成静默升级。

参见图2所示,本发明实施例还提供一种应用上述系统的基于Windows服务实现PC端软件静默升级的方法,包括以下步骤:

步骤S1:在安装PC端软件时配套安装静默升级主服务模块;设置静默升级主服务模块的循环检测时间,并启动静默升级主服务模块,转入步骤S2。

可以理解的是,在.Net开发平台下,Windows服务的应用程序中需要添加安装程序类。而在添加安装程序类时,有两个重要的组件:System.ServiceProcess.ServiceInstaller、System.ServiceProcess.Service ProcessInstaller的对象。其中,ServiceProcessInstaller:安装一个可执行文件,该文件包含扩展ServiceBase的类;该类由安装实用工具(如InstallUtil.exe)在安装服务应用程序时调用。ServiceProcessInstaller:执行可执行文件中的所有服务的公共操作。ServiceInstaller:安装一个类,该类扩展ServiceBase来实现服务。在安装服务应用程序时由安装实用工具调用该类。ServiceInstaller执行特定于其所关联服务的操作。它由安装实用工具用来将与服务关联的注册表值写入HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services注册表项内的子项。服务由它在该子键内的“服务名”(ServiceName)标识。

在此基础上,实际操作时,步骤S1具体包括以下操作:

步骤S101:在安装PC端软件时配套安装静默升级主服务模块,调整静默升级主服务模块的升级程序指向,使其指向所述PC端软件封装的独立升级程序,用于静默升级主服务模块调用升级过程的逻辑。本实施例中,是将静默升级主服务模块的升级程序指向“Updater.exe”,其具体实现代码可为如下内容:

步骤S102:调整静默升级主服务模块的配置文件中的配置选项,设置静默升级主服务模块的循环检测时间。可以理解的是,该循环检测时间可根据具体使用需要自行设置。本实施例中,默认的循环检测时间是30分钟,即默认检测升级时间为30分钟。

步骤S103:完成静默升级主服务模块的名称配置。本实施例中,是将静默升级主服务模块的名称配置为“TSService”,其具体实现代码可为如下内容:

步骤S104:启动静默升级主服务模块,所述静默升级主服务模块宿主于Windows服务;执行(启动)成功后,可在Windows服务列表中查看到该静默升级主服务模块的进程且该进程长期在后台运行。

步骤S2:每当达到设置的循环检测时间后,静默升级主服务模块自动检测是否有软件版本的更新情况(包括小版本功能的升级、功能缺陷的修复、客户端功能的临时上线或下线等情况),若没有,则休眠等待下一个周期,返回步骤S2;若有,则启动升级包下载模块,转入步骤S3。

步骤S3:升级包下载模块判断要下载的升级包是否已经存在(即,是否已经下载过),若是,直接转入步骤S5;若否,则转入步骤S4。该操作能有效避免升级包的重复下载,减少资源的浪费。

步骤S4:升级包下载模块在后台完成升级包的下载,并将下载的升级包存放到指定的临时目录下,转入步骤S5。

可以理解的是,为了有效保证所下载的升级包的安全性和可靠性,本实施例中升级包下载模块会对所下载的升级包进行校验。具体来说,步骤S4之后,还包括以下操作:升级包下载模块对所下载的升级包进行MD5(Message Digest Algorithm 5,消息摘要算法第五版)校验,若校验通过,则转入步骤S5,进行静默升级操作;若校验未通过,则不进行静默升级操作,返回步骤S2。

步骤S5:静默升级主服务模块检测当前环境中的软件是否正在运行,若是,则休眠等待下一个周期,返回步骤S5;若否,则启动静默升级模块,转入步骤S6。

步骤S6:静默升级模块解压临时目录下的升级包,将升级包内的文件更新到软件对应的目录下,完成静默升级。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1