补丁管理方法及装置与流程

文档序号:16066992发布日期:2018-11-24 12:46阅读:322来源:国知局
本发明涉及通信领域,具体而言,涉及一种补丁管理方法及装置。
背景技术
在通讯领域中,每个设备生产厂商都会有自己一套独有的软件版本升级管理办法,来完成整个设备的软件版本的升级,通常在软件全版本升级时都会重启整个设备。同时,版本升级运行一段时间后可能都会发现存在一些各种各样的bug。为了尽可能小的影响设备的正常运行,一般情况下,生产厂商都采用打软件补丁的方式对已有的bug进行修复。对于提供的补丁大致可以分为两种:1、热补丁,大部分是函数级别的补丁,在不对进程进行重启的情况下完成已知bug的修复;2、冷补丁,一般都是功能性的bug,需要修复的地方较多,不能以热补丁解决的问题。冷补丁需要复位单板来修复故障,而热补丁则不需要,在对业务影响小方面优势十分明显,但冷补丁可以同时修复多个故障,甚至解决单板硬件上的bug,问题解决效率上的优势也十分明显。所以,在工程环境中,这两种补丁都经常会被使用。工程中经常出现这种情况,现网中所有的设备并不能在厂商发布新的软件版本时第一时间全部都进行升级操作。通常,在对一个地方的设备准备进行软件版本升级的时候,可能发现生产厂商针对准备升级的软件版本又发布了多个冷补丁或者热补丁,而这些补丁可能是其他地方设备使用发现的bug进行修复的补丁。如果用户发布的是多个冷补丁,而本地使用的设备又需要修复相关的故障,那可能需要激活多个冷补丁,导致需要复位多个单板,这样,在升级软件全集中断过一次业务,在激活冷补丁的时候可能又导致业务中断,让用户的使用体验十分差。同时,即使设备厂商提供的是热补丁,同时打多个业务,对于用户使用操作来说也不太友善。针对上述问题,相关技术中并未提出有效的解决方案。技术实现要素:本发明实施例提供了一种补丁管理方法及装置,以至少解决相关技术中软件升级包和补丁包分别升级复位两次单板,导致业务中断两次的问题。根据本发明的一个实施例,提供了一种补丁管理方法及装置,包括:根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;激活所述待激活的补丁包。可选地,在确定待激活的补丁包之前,还包括:获取补丁包激活配置文件,其中,所述补丁包激活配置文件包括以下信息至少之一:补丁包的名称、补丁包对应的软件升级包的版本号、补丁包的类型、补丁包对应的设备类型。可选地,在确定待激活的补丁包之前,还包括:保存需要升级的软件升级包集合以及与所述软件升级包集合中的软件升级包对应的补丁包。可选地,在所述软件升级包被激活时,激活所述待激活的补丁包包括:根据所述补丁包激活配置文件判断所述待激活的补丁包是否支持所述当前设备;在判断结果为是的情况下,激活所述待激活的补丁包可选地,所述待激活的补丁包的个数为多个。根据本发明的另一个实施例,提供了一种补丁管理装置,包括:确定模块,用于根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;激活模块,用于在所述软件升级包被激活时,激活所述待激活的补丁包。可选地,所述装置还包括:获取模块,用于在确定待激活的补丁包之前,获取补丁包激活配置文件,其中,所述补丁包激活配置文件包括以下信息至少之一:补丁包的名称、补丁包对应的软件升级包的版本号、补丁包的类型、补丁包对应的设备类型。可选地,所述装置还包括:保存模块,用于在确定待激活的补丁包之前,保存需要升级的软件升级包集合以及与所述软件升级包集合中的软件升级包对应的补丁包。可选地,所述激活模块包括:判断单元,用于根据所述补丁包激活配置文件判断所述待激活的补丁包是否支持所述当前设备;激活单元,用于在判断结果为是的情况下,激活所述待激活的补丁包。可选地,所述待激活的补丁包的个数为多个。根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:。根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;在所述软件升级包被激活时,激活所述待激活的补丁包。通过本发明,根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;在所述软件升级包被激活时,激活所述待激活的补丁包。也就是说,在当前设备在进行软件升级的同时进行补丁包的升级,将两次升级流程合并成一次升级流程,进而解决了相关技术中,软件升级包和补丁包分别升级复位两次单板,导致业务中断两次的问题,进而达到了减少补丁升级对于现网业务的影响的技术效果。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是本发明实施例的一种补丁管理方法的移动终端的硬件结构框图;图2是根据本发明实施例的补丁管理流程图;图3是根据本发明实施例的补丁管理结构示意图;图4是根据本发明实施例的补丁管理流程图(一);图5是根据本发明实施例的补丁管理流程图(二);图6是根据本发明实施例的补丁管理装置的结构框图;图7是根据本发明实施例的补丁管理装置的结构框图(一);图8是根据本发明实施例的补丁管理装置的结构框图(二);图9是根据本发明实施例的补丁管理装置的结构框图(三)。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。实施例1本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种补丁管理方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的补丁管理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。在本实施例中提供了补丁管理方法,图2是根据本发明实施例的补丁管理流程图,如图2所示,该流程包括如下步骤:步骤s202,根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;步骤s204,在该软件升级包被激活时,激活该待激活的补丁包。通过上述步骤,根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;在该软件升级包被激活时,激活该待激活的补丁包。也就是说,在当前设备在进行软件升级的同时进行补丁包的升级,将两次升级流程合并成一次升级流程,进而解决了相关技术中,软件升级包和补丁包分别升级复位两次单板,导致业务中断两次的问题,进而达到了减少补丁升级对于现网业务的影响的技术效果。下面结合具体示例,对实施例进行举例说明。本发明实施例提供了一种冷补丁管理和升级的方法,支持设备在进行软件全集升级的同时进行冷补丁版本的升级,解决了软件全集和冷补丁分别升级复位两次单板,导致业务中断两次的问题。其中提出的一种冷补丁包与软件全包同时升级的方法,包括:整个设备的软件在主控板上由一个版本解析管理模块和版本下载管理模块集中管理,其中,版本解析管理模块完成软件版本包的解析,版本下载管理模块完成主控或者线卡的版本请求应答。软件版本包包括以下三种类型:软件全集包、冷补丁包、热补丁包,其中软件全包升级时需要整个设备重启,冷补丁包升级则只需要对应存在问题的单板重启,热补丁包升级则任何单板都不需要重启。冷补丁包与软件全包同时升级的实现步骤如下:1、上传软件全集包和冷补丁包到设备的主控板上存储器的特定路径下;2、上传冷补丁包激活配置文件到主控板上;3、在主控板上激活软件全集包并将整个设备重启;4、设备重启后加载版本管理模块,进行新的软件全集包的解析;5、版本管理模块进行冷补丁激活配置文件的读取,确定需要激活的补丁,并完成补丁的解析;6、版本管理模块使能版本下载模块,应答主控和线卡的版本请求。其中,步骤1中,如果主控板存在1+1保护,则上传的版本文件需要进行主备间文件的同步;其中,步骤2中上传的冷补丁包激活配置文件,主要包括以下信息:1、冷补丁包名称;2、冷补丁对应软件全集包版本号,由于冷补丁修复的bug是固定的,因此其对应软件全集包的版本号也应当是固定的、唯一的;3、补丁包的类型,这里固定是冷补丁包,热补丁包也可以采用相同的方式;4、补丁包对应的设备类型,主要是针对设备厂商可能会一次发布相同功能的多个类型的设备,有的补丁包是不需要区分设备类型的,所以这里增加了这个字段。其中步骤3主要的目的告知设备版本管理需要升级到哪个软件全集包,同时将设备进行整机重启,开始升级;其中步骤4中,版本解析管理模块会完成软件全集包的解析,在没有冷补丁包需要激活的情况下,会直接进入步骤6,使能版本下载管理模块,开始应答本板或者其他单板的版本请求。其中步骤5,版本解析管理模块进行冷补丁激活配置文件的读取和解析,如果发生下列任何情况的一种,都直接进入步骤6,不影响设备的整个升级流程:1)读取文件失败;2)读取文件发现配置的版本号与当前需要升级软件全集包不一致;3)发现需要激活的冷补丁包不存在;4)发现需要激活的补丁不支持本设备类型。在上述步骤都成功的情况下,版本解析管理模块进行所有需要激活的冷补丁包的解析,这样,冷补丁包和软件全集包都进行了解析。此时,进入步骤6,使能版本下载管理模块,开始应答本板或者其他单板的版本请求,对于存在bug的版本文件则将补丁包中最新的文件应答给单板,从而在整个设备的升级启动过程中完成了版本bug的修复。当然,步骤5中,也可以采用版本解析管理模块到主控板上固定的路径下读取补丁包,在补丁包中管理自己对应的软件全集和设备类型等信息,但这种方式在灵活性上存在一定的问题,而且效率会比较低。同时,本方法也可以适用于软件全集已经升级后,需要同时激活多个冷补丁或者多个热补丁的场景,可以通过配置文件的方式将多个冷补丁或者热补丁一次激活成功。综上所述,本发明实施例提供了一种冷补丁包管理和升级的方法,可以支持设备在进行软件全集升级的同时进行冷补丁包的升级,将两次升级流程合并成一次升级流程,在提高了升级效率的同时也减少了冷补丁升级对于现网业务的影响,大大提高了用户对于设备升级的满意度。同时,也可以用于设备已经升级软件全集,需要激活多个冷补丁或者热补丁的场景,大大提高了补丁的激活效率。可选地,在确定待激活的补丁包之前,还包括以下步骤:步骤s11,获取补丁包激活配置文件,其中,该补丁包激活配置文件包括以下信息至少之一:补丁包的名称、补丁包对应的软件升级包的版本号、补丁包的类型、补丁包对应的设备类型。通过获取补丁包激活配置文件,可以进一步确定需要激活的补丁,进而在提高了升级效率的同时也减少了冷补丁升级对于现网业务的影响。可选地,在确定待激活的补丁包之前,还包括以下步骤:步骤s21,保存需要升级的软件升级包集合以及与该软件升级包集合中的软件升级包对应的补丁包。需要说明的是,上述步骤中的保存需要升级的软件升级包集合以及与该软件升级包集合中的软件升级包对应的补丁包方式可以为1+1的方式。在一个可选地实施方式中,在该软件升级包被激活时,激活该待激活的补丁包包括以下步骤:步骤s31,根据该补丁包激活配置文件判断该待激活的补丁包是否支持该当前设备;步骤s32,在判断结果为是的情况下,激活该待激活的补丁包。可选地,上述待激活的补丁包的个数为多个。下面结合可选实施例,对本发明实施例进行举例说明。可选实施例一如图3所述,主控板上存在版本解析管理和版本下载管理模块,版本解析管理模块负责版本包的解析和版本信息的保存,版本下载管理模块负责应答本板或者其他单板的版本请求消息。正常的情况下,设备整机升级的流程包括如下步骤:1、上传需要升级的软件全集包到设备的主控板上的特定路径下,如果备用主控存在,则同时同步到备用主控上;2、激活软件全集包,包括向设备指定升级包的名称和升级方式,设备保存该信息到存储介质中,然后整机重启设备;3、设备重启时读取对应的存储介质中保存的文件,获取需要升级的软件包名称和对应的路径,版本解析管理模块负责将版本全集包解析到特定的目录下,并保存相应的信息;4、版本解析管理模块解析完版本全集后,通知版本下载管理模块可以开始应答其他模块的版本请求,其中,版本下载管理模块在启动后初始化默认是不应答其他模块的版本请求的。5、本板的启动管理模块或者其他单板的启动管理模块,在循环的向主用主控的版本下载管理模块请求版本,收到版本下载管理模块的应答的版本信后,下载对应的版本文件并运行。6、整个设备的所有单板都请求到需要的版本信息,设备升级成功。可选实施例二在工程中经常出现这种情况,当一个设备准备进行软件全集包的升级时发现设备生产商已经针对其他设备发现的问题发布了多个冷补丁和热补丁,而冷补丁激活后需要重启单板或者设备才能生效,这样导致设备在软件全集升级和冷补丁包升级时两次重启,除了两次影响客户业务外,升级效率也十分低下。本可选实施例主要是针对这种情况,提出了一个补丁激活配置文件,设备重启时可以根据该配置文件来确定需要同时激活哪些补丁,关键参数如下表1所示:表1字段序号字段名称字段意义1patchfilename补丁文件名称2softversion补丁对应软件全集包版本号3patchtype补丁类型:冷补丁、热补丁4devtype补丁对应的设备类型上述配置文件具体的格式不限,可以是txt也可以是xml,同一个配置文件可以有多条记录,即一次激活多个冷补丁。同理,热补丁也可以采用类似的方式,但版本解析的方式可能不太一样。如图4所示,具体升级的流程包括:上传软件全集包到设备的主控板上的特定路径下,如果存在备用主控则同步到备用主控上;上传需要激活的补丁包到主控板上的特定路径上,处理基本同全集包;上传补丁激活配置文件,比如可以是patchcfg.xml到主控板的特定路径下,如果备用主控存在也同步到备用主控上。激活软件全集包,包括向设备指定升级包的名称和升级方式,设备保存该信息到存储介质中,然后整机重启设备;设备重启时读取对应的存储介质中保存的文件,获取需要升级的软件包名称和对应的路径,版本解析管理模块负责将版本全集包解析到特定的目录下,并保存相应的信息;版本解析管理模块读取补丁激活配置文件patchcfg.xml,如果读取失败则直接跳到整个设备的所有单板都请求到需要的版本信息,设备升级成功;判断所有记录中软件的版本号是否与当前需要升级的软件版本号一致、冷补丁集是否存在、所设置的设备类型是否匹配,如果有一项不满足则进入整个设备的所有单板都请求到需要的版本信息,设备升级成功;本解析管理模块解析patchcfg.xml中记录所需要激活的所有补丁包,解析完成后则使能版本下载管理模块;版本下载管理模块应答其他模块的版本请求,再查询版本信息时如果相同的文件存在补丁版本文件,则返回补丁文件的信息;否则返回查询到的版本文件的信息;其中,补丁文件可能与被补丁文件具有相同的文件名,但可能具有不同的小的版本号,可以通过版本号比较等方式确定哪个文件是补丁文件。整个设备的所有单板都请求到需要的版本信息,设备升级成功(具体可以参考图4中的步骤s401~s412)。如上文所述,热补丁也可以采用类似冷补丁的激活方式,也可以减少用户对于设备的操作;同时,在非升级状态,即只是设备整机重启状态,也可以采用上述方式,在整机重启的同时完成补丁包的激活,减少一些不必要的操作。可选地,在本实施例中还提供了一种如图5所示的补丁批量激活的方法(具体可以参考图5中的步骤s501~508)。综上所述,本发明实施例提供了一种冷补丁包管理和升级的方法,可以支持设备在进行软件全集升级的同时进行冷补丁包的升级,将两次升级流程合并成一次升级流程,在提高了升级效率的同时也减少了冷补丁升级对于现网业务的影响,大大提高了用户对于设备升级的满意度。同时,在激活多个冷补丁或者热补丁时,提高了激活的效率和灵活度,对于提升用户对于设备使用的方便有较大提高。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2在本实施例中还提供了一种补丁管理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图6是根据本发明实施例的补丁管理装置的结构框图,如图6所示,该装置包括:1)确定模块62,用于根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;2)激活模块64,用于在该软件升级包被激活时,激活该待激活的补丁包。通过图6所示的装置,根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;在该软件升级包被激活时,激活该待激活的补丁包。也就是说,在当前设备在进行软件升级的同时进行补丁包的升级,将两次升级流程合并成一次升级流程,进而解决了相关技术中,软件升级包和补丁包分别升级复位两次单板,导致业务中断两次的问题,进而达到了减少补丁升级对于现网业务的影响的技术效果。图7是根据本发明实施例的补丁管理装置的结构框图(一),如图7所示,该装置除了包括图6所示的模块外,还包括:1)获取模块72,用于在确定待激活的补丁包之前,获取补丁包激活配置文件,其中,该补丁包激活配置文件包括以下信息至少之一:补丁包的名称、补丁包对应的软件升级包的版本号、补丁包的类型、补丁包对应的设备类型。图8是根据本发明实施例的补丁管理装置的结构框图(二),如图8所示,该装置除了包括图6所示的模块外,还包括:1)保存模块82,用于在确定待激活的补丁包之前,保存需要升级的软件升级包集合以及与该软件升级包集合中的软件升级包对应的补丁包。图9是根据本发明实施例的补丁管理装置的结构框图(三),如图9所示,激活模块64包括:1)判断单元92,用于根据所述补丁包激活配置文件判断所述待激活的补丁包是否支持所述当前设备;2)激活单元94,用于在判断结果为是的情况下,激活所述待激活的补丁包。可选地,上述待激活的补丁包的个数为多个。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。实施例3本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:s1,根据当前设备请求的软件升级包的版本号与补丁包之间的对应关系,确定待激活的补丁包;s2,在所述软件升级包被激活时,激活所述待激活的补丁包。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述步骤s1、s2。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1