一种软件升级的方法和系统的制作方法

文档序号:7767506阅读:345来源:国知局
专利名称:一种软件升级的方法和系统的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种软件升级的方法和系统。
背景技术
现有的大型系统应用软件中,大多采用基于S0A(ServiCe OrientedArchitecture,面向服务的架构)的设计思想,提供平台化、组件(Component)化 的封装实现,由平台(PLAT)框架实现资源的统一管理和访问控制,并由各组件实现相对独 立的具体业务应用功能。如图1所示,为系统应用软件的体系架构示意图。通过采用上述 体系架构,可保证软件整体的易扩展性、灵活定制、按需部署等特点,并可以更好地满足用 户的使用需求。现有技术中,软件产品一般都会因解决当前版本中存在的问题或者加载其他功 能等需求而进行升级。在图1所示的体系架构下,如果只有Componenta)受到影响, 则只需要对Componenta)进行升级操作,其他模块不做任何处理;如果Component (1)、 Component (2)受到影响,则对Component (1)、Component (2)分别执行升级操作。在实现本发明的过程中,发明人发现现有技术中至少存在以下问题上述体系架构提供了灵活性和受影响范围最小化的升级方式,同时也导致升级操
作的复杂度增加。例如,如果Component (1)、Component (2)......Component (η)各有一个
功能需要修改,则需要执行η次组件的手工升级操作。特殊的,如果组件之间存在依赖关 系,需要首先升级Component (1),之后才能升级Component (2);或者,当前版本和待升级版 本的间隔较多(如当前版本是VI,需要升级到版本V5,中间间隔了版本V2、V3、V4)时,还需 要考虑升级的顺序和路径,从而导致升级过程更加复杂和繁琐。进一步的,大型应用软件的升级往往由技术人员到用户现场来完成,如果用户当 前使用的版本和最新发布的版本间隔较多时,技术人员容易出现考虑不全面等问题,在到 达用户现场执行升级时,才会发现少带了某个版本,从而导致升级失败,影响升级效率,甚 至可导致用户业务长时间中断而成为事故。

发明内容
本发明提供一种软件升级的方法和系统,以降低软件升级时的复杂度,提高升级效率。为了达到上述目的,本发明提供一种软件升级的方法,该方法包括以下步骤当确定了待升级组件的版本信息时,客户端根据所述版本信息确定升级路径,并 根据所述升级路径获取待升级组件对应的组件版本;所述客户端根据所述升级路径将获取的组件版本发送给服务端;由所述服务端根 据所述组件版本升级对应的待升级组件。所述客户端根据所述版本信息确定升级路径,具体包括所述客户端根据所述版本信息和各待升级组件之间的依赖关系确定待升级组件的升级顺序,并根据所述待升级组件的升级顺序确定所述升级路径。根据所述升级路径获取待升级组件对应的组件版本,之后还包括所述客户端存 储所述组件版本,并记录所述组件版本和存储位置的对应关系;在将所述组件版本发送给服务端时,所述客户端根据所述组件版本和存储位置的 对应关系从对应的存储位置处获得组件版本,并将所述组件版本发送给所述服务端。所述客户端根据所述升级路径将获取的组件版本发送给服务端,之前还包括所述客户端向所述服务端发送指示消息;所述服务端根据所述指示消息检测待升 级组件的当前版本信息,并将所述当前版本信息发送给所述客户端;所述客户端根据所述当前版本信息确定所述升级路径是否正确;如果是,则执行 将获取的组件版本发送给所述服务端的步骤;否则,所述客户端根据所述当前版本信息重 新确定升级路径。所述服务端根据所述组件版本升级对应的待升级组件,之后还包括所述服务端将待升级组件的升级进度信息发送给所述客户端,由所述客户端根据 待升级组件的升级进度信息显示升级进度。本发明提供一种软件升级的系统,包括客户端,用于当确定了待升级组件的版本信息时,根据所述版本信息确定升级路 径,并根据所述升级路径获取待升级组件对应的组件版本;以及根据所述升级路径将获取 的组件版本发送给服务端;服务端,用于根据所述组件版本升级对应的待升级组件。所述客户端包括路径计算模块,用于根据所述版本信息确定升级路径;软件管理模块,用于根据所述升级路径获取待升级组件对应的组件版本;软件升级模块,用于当需要升级待升级组件时,按照所述升级路径选择待升级组 件对应的组件版本,并指示第一通讯模块将组件版本发送给所述服务端;第一通讯模块,用于将选择的组件版本发送给所述服务端。所述路径计算模块,具体用于根据所述版本信息和各待升级组件之间的依赖关系 确定待升级组件的升级顺序,并根据所述待升级组件的升级顺序确定所述升级路径。所述软件管理模块,还用于存储所述组件版本,并记录所述组件版本和存储位置 的对应关系;所述软件升级模块,具体用于按照所述升级路径以及所述组件版本和存储位置的 对应关系从对应的存储位置处选择组件版本。所述软件升级模块,还用于通过所述第一通讯模块向所述服务端发送指示消息, 指示所述服务端根据所述指示消息检测待升级组件的当前版本信息;并获得来自所述服务 端的所述当前版本信息;当根据所述当前版本信息确定所述升级路径正确时,则执行将获取的组件版本发 送给所述服务端的步骤;否则,由所述路径计算模块根据所述当前版本信息重新确定升级 路径。所述服务端包括第二通讯模块,用于接收来自所述客户端的组件版本;
升级执行模块,用于根据所述组件版本升级对应的待升级组件。所述服务端还包括版本检测模块;所述第二通讯模块,还用于接收来自所述客户 端的指示消息,并将当前版本信息发送给所述客户端;所述版本检测模块,用于根据所述指示消息检测待升级组件的当前版本信息,并 由所述第二通讯模块将当前版本信息发送给所述客户端。所述服务端还包括升级进度报告模块;所述升级进度报告模块,用于将待升级组 件的升级进度信息发送给所述客户端,由所述客户端根据待升级组件的升级进度信息显示 升级进度。与现有技术相比,本发明至少具有以下优点可根据升级前的版本信息和计划升级后的版本信息计算出升级路径,并根据升级 路径实现对组件当前版本的升级,避免了依靠维护人员人工推测造成的问题,使升级执行 工作简单且有效率,极大地简化了升级步骤,提高了升级效率。


图1是现有技术中系统应用软件的体系架构示意图;图2是本发明提供的一种软件升级的系统结构示意图;图3是本发明提供的组件依赖关系文件的内容示意图;图4是本发明提供的升级路径文件的内容示意图;图5是本发明提供的一种软件升级的方法流程图;图6是本发明提供的客户端升级工具的示意图;图7是本发明提供的客户端执行升级路径计算的示意图;图8是本发明提供的记录组件版本和存储位置的对应关系的示意图。
具体实施例方式下面结合附图对本发明实施例进行详细描述。针对现有大型系统应用软件中采用基于SOA实现的体系架构中,在升级软件版本 时存在的问题,本发明提供一种软件升级的系统(如一套升级工具),由客户端(Client 端)和服务端(Server端)组成。其中,Server端可设置于待升级软件所在的设备上(即待升级组件所对应的设备 上,如图1所示的各个Component所对应的设备,可以为计算机等),并可根据Client端的 指令执行相应动作,该相应动作包括但不限于待升级组件的版本检测、升级文件的获取、执 行软件升级、升级进度报告等。另外,Client端可灵活运行在任意的与Server端网络可达 的设备(如计算机)上,并可提供升级路径计算、升级软件包管理和升级过程控制等功能。需要注意的是,该client端和server端可以分别运行在不同的设备上,也可以同 时运行在应用软件(待升级组件的软件)所在的设备上,以提供方便灵活的升级操作。其 中,client端和server端运行在相同设备或者不同设备上的处理方式类似,本发明中以 client端和server端运行在不同设备上为例进行说明。如图2所示,为本发明提出的一种软件升级的系统,该系统中可以包括但不限于 客户端21、服务端22、组件(包括各待升级组件)等;其中
客户端21,用于当确定了待升级组件的版本信息时,根据该版本信息确定升级路 径,并根据升级路径获取待升级组件对应的组件版本;以及根据升级路径将获取的组件版 本发送给服务端22。服务端22,用于根据组件版本升级对应的待升级组件。本发明中,该客户端21具体包括路径计算模块211、软件升级模块212、第一通讯 模块213和软件管理模块214。其中路径计算模块211,用于当确定了待升级组件的版本信息时,根据该版本信息确定 升级路径。其中,该待升级组件的版本信息包括但不限于该待升级组件的当前版本和计划 升级版本,该路径计算模块211,具体用于根据该版本信息和各待升级组件之间的依赖关系 确定待升级组件的升级顺序,并根据待升级组件的升级顺序确定升级路径。本发明中,各待升级组件之间的依赖关系是制约和确定组件升级顺序的关键条 件,该依赖关系可以通过XML (extensible Markup Language,可扩展标记语言)文件的方式 随组件版本发布,如图3所示的一种组件依赖关系文件的内容示意图。另外,升级路径规定 了升级执行的顺序,可根据各待升级组件间的依赖关系计算得出,且升级路径也可以通过 一个XML文件方式记录在client端所在的设备中,供软件升级时使用,如图4所示的一种 升级路径文件的内容示意图。基于上述组件依赖关系文件和升级路径文件,本发明中,需要在进行软件升级前, 需要明确升级任务,并确定待升级组件的版本信息。例如,应用软件包含Component (1) 到 Component (η)和 PLAT,共 n+1 个组件,待升级组件有 Component (1)、Component (3)、 Component (5)和PLAT共4个组件,各待升级组件(4个组件)的版本信息均为当前版本是 VI,计划升级版本是V3。之后,根据各待升级组件的版本信息,以及随软件版本发布的组件依赖关系文件, 可计算出上述4个组件从版本Vl升级到版本V3的升级路径和顺序,并生成升级路径文件。 例如,该升级路径可以为 PLAT V2- > PLAT V3- > Component (1) V2- > Component (1)V3- > Component(3)V2- > Component(5)V2- > Component(3)V3- > Component(5)V3。软件管理模块214,用于根据升级路径获取待升级组件对应的组件版本。例如,上 述升级路径下,软件管理模块214需要分别获取组件版本PLAT V2、PLAT V3、Component (1) V2> Component (1) V3> Component (3) V2> Component (5) V2> Component (3) V3> Component (5) V3。进一步的,当获取到各待升级组件对应的组件版本后,软件管理模块214还可以 存储该获取到的组件版本,并记录组件版本和存储位置的对应关系。需要注意的是,上述路径计算模块211和软件管理模块214执行的相关操作可为 升级前的准备操作,之后,当需要升级待升级组件时,则会由软件升级模块212启动相关升 级操作,其中软件升级模块212,用于当需要升级待升级组件时,按照升级路径选择待升级组件 对应的组件版本,并指示第一通讯模块213将组件版本发送给服务端。具体的,根据软件管理模块214记录的组件版本和存储位置的对应关系,软件升 级模块212可按照升级路径从对应的存储位置处选择组件版本,即按照升级路径的顺序依 次从对应的存储位置处选择组件版本。例如,上述升级路径下,软件升级模块212先选择组件版本PLAT V2,并指示第一通讯模块213将组件版本PLAT V2发送给服务端22,当待升级 组件PLAT的版本V2升级完成(即客户端21接收到升级完成的信息)后,软件升级模块 212选择组件版本PLAT V3,并指示第一通讯模块213将组件版本PLAT V3发送给服务端 22,以此类推,软件升级模块212可将升级路径文件所对应的各个组件版本选择出来,并指 示第一通讯模块213发送给服务端22,以完成各待升级组件的软件版本升级过程。第一通讯模块213,用于将选择的组件版本发送给服务端22。即按照软件升级模 块212的指示,依次将软件升级模块212按照升级路径所选择的组件版本发送给服务端22。需要说明的是,本发明中,该软件升级模块212还用于通过第一通讯模块213向服 务端22发送指示消息,指示该服务端22根据该指示消息检测待升级组件的当前版本信息, 并获得来自服务端22的当前版本信息。当根据当前版本信息确定升级路径正确时,则执行 将获取的组件版本发送给服务端22的步骤;否则,由路径计算模块211根据当前版本信息 重新确定升级路径。例如,升级路径为PLAT V2- > PLAT V3- > PLAT V4时,如果客户端21 获知PLAT的当前版本信息为V2,显然升级路径是不正确的,此时需要根据当前版本信息重 新确定升级路径为PLAT V3- > PLAT V4。本发明中,该服务端22具体包括第二通讯模块221、升级执行模块222、版本检测 模块223和升级进度报告模块224。其中,第二通讯模块221,用于接收来自客户端21的组件版本。升级执行模块222,用于根据组件版本升级对应的待升级组件。另外,第二通讯模块221,还用于接收来自客户端21的指示消息,并将当前版本信 息发送给客户端21 ;版本检测模块223,用于根据第二通讯模块221接收的指示消息检测待升级组件 的当前版本信息,并由第二通讯模块221将该当前版本信息发送给客户端21。本发明中,该升级进度报告模块224,用于将待升级组件的升级进度信息发送给客 户端21,由客户端21 (如客户端21的软件升级模块212)根据待升级组件的升级进度信息 显示升级进度。其中,本发明系统的各个模块可以集成于一体,也可以分离部署。上述模块可以合 并为一个模块,也可以进一步拆分成多个子模块。另外,上述各功能模块执行的操作还可由 对应的客户端或服务端来实现。基于与上述系统同样的发明构思,本发明还提出了一种软件升级的方法,该方法 应用于包括客户端、服务端、组件(包括各待升级组件)的系统中,服务端可设置于待升级 软件所在的设备上,并可根据客户端的指令执行相应动作(如待升级组件的版本检测、升 级文件的获取、执行软件升级、升级进度报告等),客户端可灵活运行在任意的与服务端网 络可达的设备上,并可提供升级路径计算、升级软件包管理和升级过程控制等功能。如图5 所示,该方法包括以下步骤步骤501,确定待升级组件的版本信息。其中,该待升级组件的版本信息包括但不 限于该待升级组件的当前版本和计划升级版本。具体的,在对待升级组件进行软件升级前,需要明确升级任务(实际应用中可由 系统维护人员执行),并确定待升级组件的版本信息。例如,应用软件包含Component (1) 到 Component (η)和 PLAT,共 n+1 个组件,待升级组件有 Component (1)、Component (3)、Component (5)和PLAT共4个组件,各待升级组件(4个组件)的版本信息均为当前版本是 VI,计划升级版本是V3。步骤502,启动客户端升级工具。实际应用中可由系统维护人员在自己的便携机上 启动客户端升级工具,如图6所示的客户端升级工具的示意图。步骤503,客户端根据待升级组件的版本信息确定升级路径。其中,该客户端可根 据该版本信息和各待升级组件之间的依赖关系确定待升级组件的升级顺序,并根据待升级 组件的升级顺序确定所述升级路径。本发明中,根据组件依赖关系文件(即随软件版本发布的规定组件间依赖关系的 配置文件)和各待升级组件的版本信息,可计算出升级路径和顺序,并生成升级路径文件。 例如,可计算出上述4个组件从版本Vl升级到版本V3的升级路径和顺序,如图7所示的客 户端执行升级路径计算的示意图。步骤504,客户端根据该升级路径获取待升级组件对应的组件版本。优选的,当获取到组件版本后,客户端还可存储该获取到的组件版本,并记录组件 版本和存储位置的对应关系,如图8所示的记录组件版本和存储位置的对应关系的示意 图。之后,在需要根据升级路径将获取的组件版本发送给服务端时,可直接根据组件版本和 存储位置的对应关系从对应的存储位置处获得组件版本并进行发送。例如,可执行软件管 理,完成记录组件版本和存储位置的对应关系的功能,并追加组件版本存储位置信息到升 级路径文件中。步骤505,客户端根据该升级路径将获取的组件版本发送给服务端。即按照升级路 径的顺序依次将各组件版本发送给服务端。优选的,本步骤之前,该客户端还可以向服务端发送指示消息,指示该服务端根据 该指示消息检测待升级组件的当前版本信息;当服务端接收到该指示消息后,则会检测待 升级组件的当前版本信息,并将当前版本信息发送给客户端。之后,客户端接收来自服务端 的当前版本信息,当根据当前版本信息确定升级路径正确时,则执行将获取的组件版本发 送给服务端的步骤;否则,根据当前版本信息重新确定升级路径。步骤506,服务端根据该组件版本升级对应的待升级组件。其中,服务端每接收到 一个组件版本,则会升级对应的待升级组件的当前版本,由于各组件版本的发送顺序是按 照升级路径发送的,则服务端升级待升级组件的当前版本时,可满足组件之间的依赖关系。 另外,每个组件版本升级完成后,服务端还需要向客户端发送确认信息,当接收到确认信息 后,客户端将按照升级路径发送下一个组件版本,以此类推,从而完成各个组件版本的升级 工作。优选的,在服务端升级待升级组件的当前版本的过程中,服务端还可以将待升级 组件的升级进度信息发送给客户端,由客户端根据待升级组件的升级进度信息显示升级进度。综上所述,本发明中,可以使升级准备工作完备且有条理,只需要知道升级前的版 本和计划升级后的版本信息,即可通过路径计算工具计算出升级路径和所需组件及具体版 本信息,避免了依靠维护人员人工推测造成遗漏的问题。本发明中,还可以将客户端部署在用户的便携机上,此时系统维护人员可根据升 级路径拷贝所需的组件版本到该便携机上,在进行应用软件的升级工作时,直接将便携机接入应用软件所在网络中,并在应用软件所在设备上安装和运行server端升级工具,在维 护人员便携机上运行client端升级工具,从而可以完成升级操作。因此,本发明还使升级执行工作简单且有效率,在升级前执行工具计算出升级路 径,并获取相应的软件包,当需要进行升级时,只需要将自身的便携机接入应用软件设备所 在的网络中,点击升级按钮即可一键完成所有待升级组件的升级操作,避免了每升级一个 组件都要拷贝相应的软件包到设备上,再手工执行一次升级操作的繁琐,极大地简化了升 级步骤,提高了升级效率。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通 过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发 明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储 介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可 以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流 程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种软件升级的方法,其特征在于,该方法包括以下步骤当确定了待升级组件的版本信息时,客户端根据所述版本信息确定升级路径,并根据 所述升级路径获取待升级组件对应的组件版本;所述客户端根据所述升级路径将获取的组件版本发送给服务端;由所述服务端根据所 述组件版本升级对应的待升级组件。
2.如权利要求1所述的方法,其特征在于,所述客户端根据所述版本信息确定升级路 径,具体包括所述客户端根据所述版本信息和各待升级组件之间的依赖关系确定待升级组件的升 级顺序,并根据所述待升级组件的升级顺序确定所述升级路径。
3.如权利要求1所述的方法,其特征在于,根据所述升级路径获取待升级组件对应的 组件版本,之后还包括所述客户端存储所述组件版本,并记录所述组件版本和存储位置的 对应关系;在将所述组件版本发送给服务端时,所述客户端根据所述组件版本和存储位置的对应 关系从对应的存储位置处获得组件版本,并将所述组件版本发送给所述服务端。
4.如权利要求1所述的方法,其特征在于,所述客户端根据所述升级路径将获取的组 件版本发送给服务端,之前还包括所述客户端向所述服务端发送指示消息;所述服务端根据所述指示消息检测待升级组 件的当前版本信息,并将所述当前版本信息发送给所述客户端;所述客户端根据所述当前版本信息确定所述升级路径是否正确;如果是,则执行将获 取的组件版本发送给所述服务端的步骤;否则,所述客户端根据所述当前版本信息重新确 定升级路径。
5.如权利要求1所述的方法,其特征在于,所述服务端根据所述组件版本升级对应的 待升级组件,之后还包括所述服务端将待升级组件的升级进度信息发送给所述客户端,由所述客户端根据待升 级组件的升级进度信息显示升级进度。
6.一种软件升级的系统,其特征在于,包括客户端,用于当确定了待升级组件的版本信息时,根据所述版本信息确定升级路径,并 根据所述升级路径获取待升级组件对应的组件版本;以及根据所述升级路径将获取的组件 版本发送给服务端;服务端,用于根据所述组件版本升级对应的待升级组件。
7.如权利要求6所述的系统,其特征在于,所述客户端包括路径计算模块,用于根据所述版本信息确定升级路径;软件管理模块,用于根据所述升级路径获取待升级组件对应的组件版本;软件升级模块,用于当需要升级待升级组件时,按照所述升级路径选择待升级组件对 应的组件版本,并指示第一通讯模块将组件版本发送给所述服务端;第一通讯模块,用于将选择的组件版本发送给所述服务端。
8.如权利要求7所述的系统,其特征在于,所述路径计算模块,具体用于根据所述版本信息和各待升级组件之间的依赖关系确定 待升级组件的升级顺序,并根据所述待升级组件的升级顺序确定所述升级路径。
9.如权利要求7所述的系统,其特征在于,所述软件管理模块,还用于存储所述组件版本,并记录所述组件版本和存储位置的对 应关系;所述软件升级模块,具体用于按照所述升级路径以及所述组件版本和存储位置的对应 关系从对应的存储位置处选择组件版本。
10.如权利要求7所述的系统,其特征在于,所述软件升级模块,还用于通过所述第一通讯模块向所述服务端发送指示消息,指示 所述服务端根据所述指示消息检测待升级组件的当前版本信息;并获得来自所述服务端的 所述当前版本信息;当根据所述当前版本信息确定所述升级路径正确时,则执行将获取的组件版本发送给 所述服务端的步骤;否则,由所述路径计算模块根据所述当前版本信息重新确定升级路径。
11.如权利要求6所述的系统,其特征在于,所述服务端包括 第二通讯模块,用于接收来自所述客户端的组件版本;升级执行模块,用于根据所述组件版本升级对应的待升级组件。
12.如权利要求11所述的系统,其特征在于,所述服务端还包括版本检测模块;所述第二通讯模块,还用于接收来自所述客户端的指示消息,并将当前版本信息发送 给所述客户端;所述版本检测模块,用于根据所述指示消息检测待升级组件的当前版本信息,并由所 述第二通讯模块将当前版本信息发送给所述客户端。
13.如权利要求11所述的系统,其特征在于,所述服务端还包括升级进度报告模块; 所述升级进度报告模块,用于将待升级组件的升级进度信息发送给所述客户端,由所述客户端根据待升级组件的升级进度信息显示升级进度。
全文摘要
本发明公开了一种软件升级的方法和系统,该方法包括当确定了待升级组件的版本信息时,客户端根据所述版本信息确定升级路径,并根据所述升级路径获取待升级组件对应的组件版本;所述客户端根据所述升级路径将获取的组件版本发送给服务端;所述服务端根据所述组件版本升级对应的待升级组件。本发明中,使升级准备工作完备且有条理,且简化了升级步骤,提高了升级效率。
文档编号H04L29/08GK102006332SQ20101057199
公开日2011年4月6日 申请日期2010年12月3日 优先权日2010年12月3日
发明者刘安, 王丰恺 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1