一种软件更新的系统和方法

文档序号:6576668阅读:175来源:国知局
专利名称:一种软件更新的系统和方法
技术领域
本发明公布了一种软件更新的系统和方法。更具体的,涉及一种用于软件故障维
护及自动更新的系统和方法。
背景技术
随着多媒体终端的软件技术日益成熟,多媒体终端产品的功能要求也由单一化到 多样化,支持的环境也越来越多,对产品的复用性要求越来越高。每一次版本更新,对于不 同的版本,不同的环境,经常需要制作多个同一目标版本的软件包,增加了工程人员和开发 人员的工作量。 目前的软件升级存在这样几个问题1、工程操作复杂,需要针对系统中的每个模 块制作多个升级软件包;2、如果升级,必须全部升级,无法做到只更新某一区域的用户;3、 由于客户端版本不同,开发人员在更新前需要判断客户端版本是否兼容目标版本,这样开 发人员需要了解每一个版本的信息,如果判断失误,就会使更新失败,主观性比较大,且无 标准;4、对于解决故障现有技术只能是全面升级,但其实往往只需替换或修改几个文件即 可完成故障修复。

发明内容
为了解决上述问题的全部或者至少之一,本发明提出一种可解决设备软件故障修 复及设备软件自动更新的系统与方法。
本发明公开了一种软件更新系统,包括服务器和客户端,其中 所述服务器包括版本管理模块、更新策略模块,所述版本管理模块用于在服务器 上建立版本数据库,管理版本信息,还用于提供查询接口 ,所述查询接口用于使所述版本管 理模块具有可移植性,嵌入其它模块,获取和/或提供信息;所述更新策略模块,用于根据 所述版本管理模块的版本信息提供更新策略,所述更新策略用于指导所述更新执行模块执 行软件更新; 所述客户端包括更新执行模块,用于在客户端登陆服务器并通过了所述更新策略 检查需要执行更新时,下载更新软件包执行软件更新;所述更新执行模块还用于备份更新 前的客户端版本,并用于根据客户端版本与所述服务器上更新软件包的不同制定更新文件 清单,还用于生成更新结果报告。 所述更新策略包括以下参数中一项或多项的组合策略名称、策略优先级、客户端 类型、客户端版本,更新范围,更新生效时间,更新标志。用户也可以设定其他的参数项。其 中所述更新范围,用于预先设定需要进行软件更新的省份、城市、业务区、企业或特定用 户;所述更新生效时间,用于指定软件更新可以开始的时间;所述更新标志,包括升级、不 升级、强制升级,用于对所述更新策略的选项进行检测后,给出的用户是否应当执行更新的 提示。 本发明公开的所述软件更新系统还包括故障诊断模块,设置于服务器,还包括设置于客户端上的驻留程序;所述故障诊断模块用于在服务器接到客户端上报故障时通过在 所述客户端上的驻留程序远程获取所述客户端故障信息,根据故障信息制定出故障修复文 件做成故障修复包。所述故障修复模块还用于在所述客户端再次登陆服务器后向所述客户 端发送更新命令提示客户端进行更新以修复故障。需要说明的是,在执行故障修复时,所述 更新执行模块下载升级服务器上的所述更新软件包为故障修复包。 根据本发明的软件更新系统,本发明还公开了一种软件更新方法,包括以下步 骤 根据版本管理模块的信息,更新策略模块设置更新策略; 客户端登陆服务器后,所述更新策略模块检查客户端当前版本软件是否符合所述 更新策略,并向客户端返回检查结果; 当符合所述更新策略时,所述客户端启动更新执行模块发起软件更新; 所述更新执行模块从服务器上下载更新软件包,完成更新,其中进行的是增量式下载。 本发明公开的所述的软件更新方法,其中所述设置更新策略,包括对以下参数中 一项或多项组合的设定 策略名称、策略优先级、客户端类型、客户端版本、更新范围、更新生效时间、更新 标志。 本发明公开的所述的软件更新方法中,根据比较结果,从所述更新服务器下载文 件的步骤,具体包括 所述更新执行模块比较客户端当前版本软件与服务器上的更新软件包,将更新软 件包中新增而当前版本软件中没有的文件列成清单; 依据所述文件清单,所述更新执行模块从所述服务器增量式下载更新软件包中的 文件,执行更新。
本发明公开的所述软件更新方法中,启动更新执行模块发起软件更新后,包括 更新执行模块将所述客户端当前版本软件备份; 如软件更新失败,执行版本回退,根据所述备份回退至更新前版本。 本发明公开的系统还可以利用更新策略模块来对更新软件包进行检验。即利用一
定的更新策略设定特定客户端对更新包进行检测,在确保更新包功能无误后再供大范围更
新使用。利用更新策略设定特定客户端对用于更新的软件包进行检测,方法如下 在所述更新策略中设定特定客户端,使得所述特定客户端启动更新; 所述特定客户端登陆服务器后,通过更新策略模块检查得到更新提示,下载测试
用更新软件包并更新; 对所述特定客户端版本进行检查分析,根据检查分析结果,完善所述更新软件包。
本发明公开的所述软件更新方法中,所述更新服务器上的软件包为客户端故障修 复包,所述故障修复包生成步骤如下 接到客户端上报故障后,故障诊断模块通过所述客户端上的驻留程序进行故障诊 断; 根据诊断结果制定修复方案; 将修复所需文件打包成故障修复包上传到升级服务器。
5
本发明提供的软件更新方法,内容包括根据版本管理模块的信息,更新策略模块 设置更新策略;客户端登陆服务器后,所述更新策略模块检查客户端当前版本软件是否符 合所述更新策略,并向客户端返回检查结果;符合所述更新策略时,客户端启动更新执行模 块发起软件更新;更新执行模块从服务器下载更新软件包,执行更新。故障发生时,用故障 修复包替代更新软件包,可以利用本发明的软件更新方法实现故障修复。通过本发明的软 件更新系统和/或方法,不但可以实现软件的自动更新,还可以实现故障修复。并且,软件 更新的过程可以通过更新策略地设定而变得更简便更可控,比如可以定时、定点的实现软 件更新;软件的故障修复过程也更有针对性,更易操作,不用费时费事;这解决了背景技术 中提到的关于软件更新与故障修复的诸多难题。本发明的其它特征和优点将在随后的说明 书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而得以了解。本发 明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构 来实现和获得。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实
施例一起用于解释本发明,并不构成对本发明的限制。
图1是根据本发明的软件更新系统的示意图。
图2是版本管理模块的组成示意图。 图3是本发明实现软件更新的具体实施步骤流程图 图4是根据本发明更新执行模块执行更新过程的流程图。 图5是根据本发明实现故障修复的流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对 本发明作进一步的详细描述。 如图1是本发明的软件更新系统的示意图,客户端主要包括更新执行模块,客户 端主程序,客户端驻留程序;服务器端主要包括服务器主程序、版本管理模块、更新策略模 块、故障诊断模块,以及统一更新版本包。其中 版本管理模块包括版本数据库,版本管理模块用来管理版本信息,还能够提供查 询接口 ,让其他模块嵌入版本管理模块。 更新策略模块用于制定更新策略。根据查询版本数据库的得到的版本信息,工程 人员制定出更新策略上传道服务器上。更新策略内容包括策略名称、策略优先级、客户端 类型、客户端版本,更新范围,更新生效时间,更新标志等等。用户也可以自定义各种更新策 略选项。 更新执行模块,根据更新策略检查的结果,执行更新过程,并且将更新结果上报服 务器。当客户端登录系统时,根据更新策略的判断结果启动更新执行模块;更新执行模块首 先将当前版本文件备份,这样当更新失败时可以执行版本回退;然后比较当前版本与服务 器上的目标版本更新软件包的差异,生成一份不同的文件的清单,按照清单进行增量式下 载,降低了服务器的负载,也加快了更新的时间。更新完成后,自动生成一份此次更新的结果报告,自动上传至服务器,便于工程人员后期跟踪,同时也可以根据这些信息更新版本数据库。其中的更新软件包,是工程人员根据各种信息包括版本数据库中的信息,预先做好放到服务器上的。 故障诊断模块,进行故障定位并提供故障修复包。在故障发生时,工程人员通过客户端上的驻留程序获取客户端的版本信息、系统信息、操作日志、告警信息、故障信息等,进行故障定位,生成诊断结果,制定故障修复方案;工程人员根据所述故障修复方案,将修复所需文件制成故障修复软件包上传到服务器上。当用户下次登陆服务器时,故障诊断模块向用户发送更新命令,提示用户进行文件更新。此处需要说明的是,即使故障诊断模块不像用户发送更新命令,发生故障的客户端登陆服务器也会接受更新策略的检查,得到更新的指示,不过此处更新下载的更新软件包实际上为故障修复包。 本发明涉及的软件更新系统既能实现自动更新功能,又能实现单纯的故障维护。其中,版本管理模块是进行自动更新和故障维护的基础。 如图2所示,版本管理模块包括一个版本数据库,和若干查询接口。其中,查询接口,用于嵌入其它模块,使版本管理模块具有兼容性,可以自动获取客户端相关信息。版本数据库,用于汇总版本信息,并进行管理。访问版本管理模块,可以获得上述版本信息。所述版本信息,包括客户端版本号、版本功能、版本适用范围、客户端系统要求,以及与客户端软件相关的其它各种信息。 本发明涉及的软件自动更新系统在实现自动更新的过程中,工程人员通过查询服务器上的版本信息库,了解版本信息,给制定更新策略提供依据;更新策略模块给出更新策略;客户端根据更新策略启动更新执行程序。 如图3所示,本发明实现软件更新的具体实施步骤如下 S301工程人员根据查询版本数据库的信息,制定更新策略,将更新包上传到服务器上; S302客户端登陆服务器后,更新策略模块对客户端是否符合更新策略进行检查并向客户端返回提示,当返回"不更新"时,不启动更新执行模块,退出查询;否则,启动更新执行模块; S303更新执行模块首先将当前版本文件进行备份; S304然后比较当前版本与更新服务器上的目标版本的差异,根据比较结果生成一份当前版本没有而目标版本有的文件的清单; S305依据文件清单进行增量式下载文件,并自动安装更新相关文件; S306若更新成功,则生成一份此次更新的结果报告,并上传至服务器;若更新失
败,则执行版本回退,回退到更新前的版本,当再次登录时,重新启动更新程序。 为进一步提高本发明的实用性,本发明的自动更新方法还可以进行改进,下面提
供了一种优选实施例。针对更新包,利用更新策略模块设置特定客户端对其进行检验,确保
更新软件包功能无误后再上传到服务器上,供大范围使用。可避免更新软件包不完善影响
网络中大范围用户。其实现方法如下 步骤1、工程人员在更新策略中设定特定客户端满足更新条件; 步骤2、特定客户端登陆后通过更新策略检查启动下载测试更新软件包并更新; 步骤3、工程人员对所述特定客户端版本进行检查,根据检查结果完善更新包;
步骤4、将更新软件包上传到服务器,供大范围下载。 更进一步地,本发明的自动更新方法,还可以做以下改进,即在后台更新,不影响用户前台操作。 在实现上述软件更新的具体步骤中,步骤S301更新策略的制定,是通过更新策略模块来实现的。现结合一个具体实施例,对更新策略模块再做进一步详细说明。在实际中如何制定更新策略以及如何利用更新策略启动更新的方法可以描述为 步骤一、通过查询版本数据库,获得软件的最新版本信息,以及查看历史版本在现网中的分布情况,包括现网版本号,版本分布情况,以及系统中各个模块的配套版本,等等情况。这些信息作为制定更新策略的依据。 步骤二、对上一步获取的信息进行分析,现网版本和最新版本进行比较,制定更新策略,具体可以包括如下一些参数的一项或多项的组合,这里只是举例说明,用户可根据需要设定其他的更新策略参数。可选的,所述设定更新策略参数包括 设定策略优先级,可以同时制定多条更新策略,工程人员根据现网特点,对更新策略的执行进行排序,例如如果不满足策略A,就执行策略B,这样可以应对复杂的现网环境;
设定客户端类型,根据获取的信息确定客户端是B/S结构的网页版客户端还是C/S结构的桌面客户端; 设定客户端版本号,确定一个让客户端版本与之相比较的版本号; 设定版本比较标志,包括大于、大于等于、小于、小于等于、等于,并选择其中一种。
这是用来将当前版本型号与设定的客户端版本号(预定版本号)进行比较进而判断客户端
是否满足更新策略,例如选择大于,就表示大于预定版本的客户端符合本条策略; 设定更新范围,包括设定省份、城市、业务区、企业、用户,这是工程人员预先设定
更新对象的选项,用来制定更新策略执行的范围,在此限定范围的用户才可更新; 设定更新亂(Uniform/Universal Resource Locator,统一 /通用资源定位器),
更新URL是需要更新时下载更新文件的网络地址; 设定更新生效时间,指定更新策略开始执行的具体时间,在此时间之后,所述更新范围的用户才可以进行更新操作; 设定更新标志,包括更新、不更新、强制更新,更新标志是对上述更新策略的其他选项进行检测后,给出的用户是否应当执行更新的提示,例如,若更新标志设定为"不更新",则客户端经过更新策略检查满足以上条件的,服务器就提示用户不更新;若更新标志设定为"更新"、"强制更新",客户端经过更新策略检查满足条件的,服务器就提示用户更新。 步骤三、将设定好的更新策略上传到服务器; 步骤四、当用户向服务器发送登录请求时,服务器会自动进行更新策略的检查,如果满足更新策略,就根据更新策略中的更新标志对用户进行提示。例如更新策略中更新标志选择的是更新,那么服务器检查完成发现满足该条更新策略时,就提示用户进行更新;反之,如果更新策略中更新标志为不更新,则用户登录后不会提示更新。 上述更新策略设定不但可用于C/S结构,也可用于B/S结构。本软件更新系统与方法适用于所有的软件更新,上述实施例只是一个展示,并不构成对技术方案的限制。
本部分结合一个具体实施例及附图4对更新执行模块执行具体更新过程作进一步的说明。根据更新策略的指示,启动更新,更新执行模块首先将当前版本文件进行备份,这样当更新失败时,可以执行版本回退;然后比较当前版本与更新服务器上的目标版本的差异,将不同的部分生成一份文件清单,这样根据文件清单进行增量式下载,既降低了服务器的负载,也加快了更新的时间。更新完成之后,自动生成一份此次更新的结果报告,并且自动上传至服务器,这样便于工程人员后期跟踪,同时也可以根据这些信息更新版本数据库。具体方法可描述如下 S401更新执行模块首先将当前版本文件进行备份; S402然后更新执行模块对当前版本与更新服务器上的目标版本进行比较,检查
当前版本不同于目标版本的部分,生成一份文件清单; S403依据文件清单从服务器上下载文件并安装更新; S404更新完成跳转至S406,更新失败跳转至S405 ; S405执行版本回退,根据备份记录回退至更新前版本; S406自动生成一份此次更新的结果报告,上传至服务器; 基于本发明的软件更新过程,可选地,为了解决网络中断及网络传输速度过慢等造成的无法继续下载,所述更新执行模块还可以做如下改进,在从服务器下载文件并进行更新的过程中,包括 步骤A、网络中断时或无法继续下载时,更新程序自动尝试重新建立连接,若连续n(用户可自己定义)次失败则告知用户"因网络无法连接导致更新未完成,请稍后再试"(用户可自定义); 步骤B、用户可在稍后重新启动客户端触发自动更新流程;若用户m(用户自定义)秒内无反应,跳转至上述步骤S405。 本申请涉及的装置除了能够维护客户端系统结构性的自动更新,还能对客户端的故障进行维护。故障修复只需预先设定特定更新策略,根据更新策略让故障客户端下载修复方案,该修复方案即为专门针对故障制定的故障修复包。这样解决了现有技术中进行故障维护只能全面升级的难题。 故障修复过程的实现,有故障时,工作人员诊断后,通过客户端上的驻留程序对客户端进行故障诊断,获得客户端的信息。客户端上的驻留程序,用来收集客户端的故障信息,包括客户端版本信息,客户端系统信息,客户端操作日志,故障信息,告警信息等。工程人员根据得到的相关信息制成故障修复软件包传到服务器,然后利用更新策略的设置,指定出现故障的客户端下载故障修复软件包更新。即故障修复时,用故障修复包替换了以前所说的升级软件包,将故障修复过程融合到之前的软件更新过程中去。 现结合一个具体实施例对本发明所述方法如何实现故障修复功能进行说明。如图5所示,本发明实现故障修复功能的具体实施步骤如下
S501当有故障发生时,客户端主动上报故障; S502工程人员收到故障通知,通过客户端上的驻留程序进行故障诊断,获取客户
端版本信息和系统信息,获取客户端的操作日志,查看告警信息,进行故障定位; S503工程人员根据诊断结果制定修复方案; S504把故障修复文件打包上传至服务器; S505设定更新策略,使得故障客户端能够满足更新策略;
S506故障客户端再次登录服务器时,通过更新策略检查,下载故障修复包更新软件,完成故障维护。 特别说明,本发明方法主要属于一种自动更新的系统和方法,所以本发明对于软件的更新都适用,是一种实用性非常高,应用范围非常广的方法。当然,本发明还可有其他多种实施例,以上仅为本发明的优选实施例而已,并不限制本发明。同时,对于本领域的普通技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种软件更新系统,包括服务器和客户端,其特征在于,所述服务器包括版本管理模块、更新策略模块,所述版本管理模块用于在服务器上建立版本数据库,管理版本信息,还用于提供查询接口,所述查询接口用于使所述版本管理模块具有可移植性,嵌入其它模块,获取和/或提供信息;所述更新策略模块,用于根据所述版本管理模块的版本信息提供更新策略,所述更新策略用于指导所述更新执行模块执行软件更新;所述客户端包括更新执行模块,用于在客户端登陆服务器并通过了所述更新策略检查需要执行更新时,下载更新软件包执行软件更新。
2. 根据权利要求1所述的软件更新系统,其特征在于,所述更新策略包括以下参数的 一项或者多项的组合,包括策略优先级、客户端类型、客户端版本,更新范围,更新生效时 间,更新标志。
3. 根据权利要求1所述的软件更新系统,其特征在于,所述更新执行模块用于比较客 户端版本与所述服务器上更新软件包的不同生成更新文件清单,更新执行模块狭窄更新软 件包时依据所述文件清单增量式下载。
4. 根据权利要求1或3所述的软件更新系统,其特征在于,所述更新执行模块用于备份 更新前的客户端版本,还用于更新成功后生成更新结果报告。
5. 根据权利要求1所述软件更新系统,其特征在于,所述更新执行模块下载服务器上 的所述更新软件包为故障修复包,所述服务器上包括故障诊断模块,所述故障诊断模块用于在服务器接到客户端上报故 障时远程获取所述客户端故障信息,依据所述故障信息制定所述故障修复包。
6. —种软件更新方法,应用于如权利要求1所述的软件更新系统中,更新客户端软件, 其特征在于,包括以下步骤根据版本管理模块的信息,更新策略模块设置更新策略;客户端登陆服务器后,所述更新策略模块检查客户端当前版本软件是否符合所述更新 策略,并向客户端返回检查结果;当符合所述更新策略时,所述客户端启动更新执行模块发起软件更新; 所述更新执行模块从所述服务器下载更新软件包,执行更新。
7. 如权利要求6所述的软件更新方法,其特征在于,所述设置更新策略,包括对以下参 数一项或多项的设定策略名称、策略优先级、客户端类型、客户端版本、更新范围、更新生效时间、更新标志。
8. 如权利要求6所述的软件更新方法,其特征在于,根据比较结果,从服务器下载文 件,包括比较所述当前版本软件不同于软件包的部分,生成更新文件清单;所述更新执行模块依据所述更新文件清单从服务器进行增量式下载并更新文件;更新成功后,所述更新执行模块生成更新报告上传到服务器。
9. 如权利要求6所述的软件更新方法,其特征在于,启动更新执行模块发起软件更新 后,包括更新执行模块将所述客户端当前版本软件备份; 如软件更新失败,执行版本回退,根据所述备份回退至更新前版本。
10.如权利要求6所述的软件更新方法,其特征在于,所述更新服务器上的软件包为客户端故障修复包,所述故障修复包生成步骤如下接到客户端上报故障后,故障诊断模块通过所述客户端上的驻留程序进行故障诊断; 根据诊断结果制定修复方案;将修复所需文件打包成故障修复包上传到升级服务器。
全文摘要
本发明提供一种软件更新的系统与方法。本发明提供的软件更新方法,根据查询版本管理模块的信息,更新策略模块设置更新策略;客户端登陆服务器后,更新策略模块检查客户端当前版本软件是否符合所述更新策略,并向客户端返回检查结果;符合更新策略时,客户端启动更新执行模块发起软件更新;更新执行模块从服务器下载更新软件包,执行更新。故障发生时,用故障修复包替代更新软件包,可以利用本发明的软件更新方法实现故障修复。通过本发明的软件更新系统和/或方法,软件升级和故障维护的过程可以通过更新策略的设定变得更简便更可控,实用效果非常显著。
文档编号G06F9/445GK101699399SQ20091011047
公开日2010年4月28日 申请日期2009年11月3日 优先权日2009年11月3日
发明者党倩 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1