一种系统软件版本管理方法、装置及存储介质与流程

文档序号:23805263发布日期:2021-02-03 08:15阅读:52来源:国知局
一种系统软件版本管理方法、装置及存储介质与流程

[0001]
本申请涉及软件领域,尤其涉及一种系统软件版本管理方法、装置和存储介质。


背景技术:

[0002]
现有技术中,软件版本管理通常依赖升级脚本或者升级程序,分别将不同软件模块,按照预期的处理方式进行安装或者执行指定操作。这种方式可能出现的问题是每次版本发布涉及到的模块或者文件以及对应的操作可能不一样,升级脚本每次需要人工重新编写,人工处理可能会引入升级失败的风险;而且升级涉及到模块可能会有新增加,每次新增都要编写新的模块的处理流程,效率较低。


技术实现要素:

[0003]
针对上述技术问题,本申请实施例提供了一种软件版本管理方法、装置及存储介质,用以实现软件自动化升级处理,避免人工干预,提高软件升级的安全性和效率。
[0004]
第一方面,本申请实施例提供的一种系统软件版本管理方法,包括:
[0005]
对系统软件升级包进行封装,并确定升级包信息配置文件;
[0006]
获取基线版本的系统信息配置文件,并将所述升级包信息配置文件更新到所述基线版本的系统信息配置文件中,得到第二系统信息配置文件;
[0007]
根据所述升级包信息配置文件和所述第二系统信息配置文件对软件系统进行版本升级操作。
[0008]
进一步的,所述所述对系统软件升级包进行封装,并确定升级包信息配置文件之前,还包括:
[0009]
确定模块升级信息配置文件,所述模块升级信息配置文件用于记录本次升级中该模块涉及的所有文件的名称、md5值、相对路径和处理方式。
[0010]
进一步的,所述对系统软件升级包进行封装,并确定升级包信息配置文件包括:
[0011]
对文件名称和相对路径进行校验;
[0012]
计算升级包内文件md5值,并根据所述模块升级信息配置文件中的md5值进行完整性校验对比,实现升级包封装前文件完整性校验;
[0013]
将当前版本所有升级模块打包为一个压缩包;
[0014]
根据所有模块的模块升级信息配置文件内容确定所述升级包信息配置文件。
[0015]
优选的,所述基线版本的系统信息配置文件包括以下内容之一或者组合:
[0016]
操作系统类型和版本号;
[0017]
系统中所有已安装的软件名称,相应的依赖库名称,已安装的软件的版本号,已安装的依赖库的版本号;
[0018]
系统有关的配置信息;
[0019]
开发的软件或者模块相关信息。
[0020]
优选的,所述开发的软件或者模块相关信息包括:
[0021]
模块名称;
[0022]
所述模块包含的所有文件名;
[0023]
文件的升级处理方式;
[0024]
文件的安装位置;
[0025]
文件源位置;
[0026]
文件md5值;
[0027]
文件权限;
[0028]
文件所属群组;
[0029]
文件升级后续操作方式。
[0030]
进一步的,所述根据所述升级包信息配置文件和所述第二系统信息配置文件进行版本升级操作包括:
[0031]
备份需要替换的文件;
[0032]
依据第二系统信息配置文件中记录的模块处理方式更新需要升级的模块;
[0033]
以模块为单位执行升级后续操作;
[0034]
校验更新后的文件的md5值与所述升级包信息配置文件中的md5值是否一致。
[0035]
使用本发明提供的软件版本管理方法,通过软件自动化处理,避免人工干预,从而提高软件升级的安全性和可靠性。
[0036]
第二方面,本申请实施例还提供一种系统软件版本管理装置,包括:
[0037]
自动化系统软件升级包封装模块,用于对系统软件升级包进行封装,并确定升级包信息配置文件;
[0038]
系统信息重建模块,用于获取基线版本的系统信息配置文件,并将所述升级包信息配置文件更新到所述基线版本的系统信息配置文件中,得到第二系统信息配置文件;
[0039]
软件管理模块,用于根据所述升级包信息配置文件和所述第二系统信息配置文件对软件系统进行版本升级操作。
[0040]
第三方面,本申请实施例还提供一种系统软件版本管理装置,包括:存储器、处理器和用户接口;
[0041]
所述存储器,用于存储计算机程序;
[0042]
所述用户接口,用于与用户实现交互;
[0043]
所述处理器,用于读取所述存储器中的计算机程序,所述处理器执行所述计算机程序时,实现本发明提供的系统软件版本管理方法。
[0044]
第四方面,本申请实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述处理器执行所述计算机程序时实现本发明提供的系统软件版本管理方法。
附图说明
[0045]
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]
图1为本申请实施例提供的系统软件版本管理方法示意图;
[0047]
图2为本申请实施例提供的系统软件封装过程流程示意图;
[0048]
图3为本申请实施例提供的升级操作过程流程示意图;
[0049]
图4为本申请实施例提供的一种系统软件版本管理装置结构示意图;
[0050]
图5为本申请实施例提供的另一种系统软件版本管理装置结构示意图。
具体实施方式
[0051]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0052]
下面对文中出现的一些词语进行解释:
[0053]
1、本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0054]
2、本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
[0055]
3、md5,即message-digest algorithm5,一种密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输内容完整一致。
[0056]
系统中软件版本升级是以软件模块为单位进行处理,一个模块可以是一个安装软件或者是一个部署的软件包,或者一个开源软件的一套配置文件。模块升级可以是全量升级或者是部分文件的升级。
[0057]
复杂系统的软件版本管理指的是系统中模块的更新,除了有文件替换、文件删除、更新安装、删除安装等常规操作外,还可以有配置修改、执行命令、执行脚本等特定需求的操作,以及各个模块的更新可能有相互依赖关系,需要协作更新,功能才能起作用。
[0058]
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0059]
需要说明的是,本申请实施例的展示顺序仅代表实施例的先后顺序,并不代表实施例所提供的技术方案的优劣。
[0060]
实施例一
[0061]
参见图1,本申请实施例提供的一种系统软件版本管理方法示意图,如图所示,该方法包括步骤s101到s103:
[0062]
s101,对系统软件升级包进行封装,并确定升级包信息配置文件;
[0063]
s102,获取基线版本的系统信息配置文件,并将所述升级包信息配置文件更新到所述基线版本的系统信息配置文件中,得到第二系统信息配置文件;
[0064]
s103,根据所述升级包信息配置文件和所述第二系统信息配置文件进行版本升级操作。
[0065]
通过上述步骤,软件自动对升级文件进行封装,自动进行校验,自动进行升级操
作,从而避免人工干预引入的风险,提高软件升级的安全性和效率。
[0066]
作为一种优选示例,在上述步骤s101之前,还包括:
[0067]
确定模块升级信息配置文件,所述模块升级信息配置文件用于记录本次升级中涉及的所有文件的名称、md5值、相对路径和处理方式。
[0068]
需要说明的是,所述模块升级信息配置文件可以由模块开发人员提供。
[0069]
优选的,上述模块升级信息配置文件可以是一个.json文件,例如fileinfo.json文件。该文件每一个升级模块均附加一个文件,用于记录当前模块在本次升级中涉及到的所有文件的名称,md5值,相对路径,处理方式等信息。作为一种优选示例,处理方式信息可以不填写,若处理方式未填写的情况下,默认以替换或者安装方式进行处理。
[0070]
需要说明的是,上述模块升级信息配置文件以及涉及到的所有文件提交到升级版本库中(提交可以是生成新的文件,或者更新原有的文件),将由持续集成软件如jenkins等,监控升级版本库发生版本更新事件,自动触发s101步骤的执行,也可以通过预设的启动按钮触发s101步骤的执行。
[0071]
作为一种优选示例,上述步骤s101具体包括以下步骤,如图2所示,包含s201到s204:
[0072]
s201,对文件名称和相对路径进行校验;
[0073]
作为一种可选的方案,若校验通过,则执行s202,若校验不通过,则触发告警,将告警消息发送到预设的目标设备或者目标软件,或者通过邮件方式通知有关人员。
[0074]
s202,计算md5值,并根据所述模块升级信息配置文件中的md5值进行完整性校验;作为一种优选示例,开发人员提供的文件,计算md5值为20abe48e15deaf253a389062cf29df72,但是模块升级信息配置文件中记录该文件md5值为11526c9bc771f38fd99fce7690d54bb2,对比不一致,可以判断该文件损坏或者被篡改。
[0075]
本步骤中,计算md5值,是针对当前模块升级所涉及的所有文件进行的。计算完成后,读取当前模块对应的模块升级信息配置文件中的md5值,对这两个md5进行校验(例如比较是否相同)。需要说明的是,对所有需要升级的模块均进行本步骤的校验操作。
[0076]
作为一种可选的方案,若所有模块的校验均通过,则继续执行s203,若不是所有模块校验都通过,则则触发告警,将告警消息发送到预设的目标设备或者目标软件,或者通过邮件方式通知有关人员。
[0077]
s203,将当前版本所有升级模块打包为一个压缩包;
[0078]
本步骤中,为了降低一个版本中多个文件传输前后有延迟或者某个文件传输失败的风险,将当前版本需要升级的所有模块相关的文件打包为一个压缩包。
[0079]
s204,根据所有模块的模块升级信息配置文件内容确定所述升级包信息配置文件。
[0080]
本步骤中,将所有模块的模块升级信息配置文件(例如所有模块的fileinfo.json文件)合并到一个文件中,形成升级包信息配置文件(package infomodel files)。
[0081]
经过上述步骤s201到s204后,完成自动化系统软件升级包的封装。
[0082]
作为另一种优选示例,上述步骤s102中,基线版本的系统信息配置文件用于记录上一个版本以及系统相关的全量信息,所述的全量信息可以包括以下之一或者组合:
[0083]
操作系统类型和版本号;
[0084]
系统中所有已安装的软件名称,已安装的软件相应的依赖库名称,已安装的软件的版本号,已安装的依赖库的版本号;
[0085]
系统有关的配置信息;具体的,系统有关的配置信息可以包括网卡信息,路由信息,网络防火墙信息,系统内核参数,系统开机启动项,系统定时任务等。
[0086]
开发的软件或者模块相关信息。
[0087]
需要说明的是,上述开发的软件或者模块是指除操作系统之外,由产品开发人员开发的软件或者模块,本实施例中需要升级的软件包含在上述开发的软件或者模块中。
[0088]
作为一种优选示例,上述开发的软件或者模块相关信息包括以下之一或者组合:
[0089]
模块名称;
[0090]
所述模块包含的所有文件名;
[0091]
文件的升级处理方式,升级处理方式可以包括安装、替换、删除或添加之一;
[0092]
文件的安装位置;
[0093]
文件源位置;
[0094]
文件md5值;
[0095]
文件权限;
[0096]
文件所属群组;
[0097]
文件升级后续操作方式,可以包括执行脚本或者执行命令。
[0098]
需要说明的是,若涉及到多个模块,则每个模块均包括上述开发的软件或者模块相关信息。
[0099]
作为另一种优选示例,上述步骤s103中,根据所述升级包信息配置文件和所述第二系统信息配置文件进行版本升级操作包括如图3所示的步骤s301到s304:
[0100]
s301,备份需要替换的文件;
[0101]
本步骤中,对所有升级操作将替换的文件进行备份,以便用于软件版本回滚操作。不同处理方式对应的备份方式不一样。例如,如果模块升级是以替换方式升级,备份操作放在替换之前;如果模块升级是以安装方式升级,备份操作放在该模块升级成功后。
[0102]
s302,依据模块处理方式更新需要升级的模块;
[0103]
本步骤中所述的模块处理方式,优先在升级包信息配置文件中查找,如果没有找到再到第二系统信息配置文件中查找。
[0104]
s303,以模块为单位执行升级后续操作;
[0105]
本步骤中所述的后续操作方式,优先在升级包信息配置文件中查找,如果没有找到再到第二系统信息配置文件中查找。
[0106]
s304,校验更新后的文件的md5值与所述升级包信息配置文件中的md5值是否一致。
[0107]
本步骤中,若更新后的文件的md5值与所述升级包信息配置文件中的md5值一致,则升级操作成功,否则可以通过触发http请求上报错误到网络服务器中记录。
[0108]
通过本实施例的方法,软件自动进行升级文件的校验和封装,自动读取基线版本信息,并根据升级文件和基线版本信息,生成新的系统信息配置文件,并根据系统信息配置文件中记录的开发的软件或者模块相关信息,进行校验和升级包封装和升级包安装过程,无需人工参与,避免人工参与引入不确定因素,提高了软件版本管理的安全性和可靠性。
[0109]
实施例二
[0110]
基于同一个发明构思,本发明实施例还提供了一种系统软件版本管理装置,如图4所示,该装置包括:
[0111]
自动化系统软件升级包封装模块401,用于对系统软件升级包进行封装,并确定升级包信息配置文件;
[0112]
系统信息重建模块402,用于获取基线版本的系统信息配置文件,并将所述升级包信息配置文件更新到所述基线版本的系统信息配置文件中,得到第二系统信息配置文件;
[0113]
软件管理模块403,用于根据所述升级包信息配置文件和所述第二系统信息配置文件进行版本升级操作。
[0114]
需要说明的是,本实施例提供的自动化系统软件升级包封装模块401,能实现图1中步骤s101包含的全部功能,解决相同技术问题,达到相同技术效果,在此不再赘述;
[0115]
相应的,本实施例提供的系统信息重建模块402,能实现图1中步骤s102包含的全部功能,解决相同技术问题,达到相同技术效果,在此不再赘述。
[0116]
相应的,本实施例提供的软件管理模块403,能实现图1中步骤s103包含的全部功能,解决相同技术问题,达到相同技术效果,在此不再赘述。
[0117]
需要说明的是,实施例二提供的装置与实施例一提供的方法属于同一个发明构思,解决相同的技术问题,达到相同的技术效果,实施例二提供的装置能实现实施例一的所有方法,相同之处不再赘述。
[0118]
实施例三
[0119]
基于同一个发明构思,本发明实施例还提供了一种系统软件版本管理装置,如图5所示,该装置包括:
[0120]
包括存储器502、处理器501和用户接口503;
[0121]
所述存储器502,用于存储计算机程序;
[0122]
所述用户接口503,用于与用户实现交互;
[0123]
所述处理器501,用于读取所述存储器502中的计算机程序,所述处理器501执行所述计算机程序时,实现:
[0124]
对系统软件升级包进行封装,并确定升级包信息配置文件;
[0125]
获取基线版本的系统信息配置文件,并将所述升级包信息配置文件更新到所述基线版本的系统信息配置文件中,得到第二系统信息配置文件;
[0126]
根据所述升级包信息配置文件和所述第二系统信息配置文件进行版本升级操作。
[0127]
其中,在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器501代表的一个或多个处理器和存储器502代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器501负责管理总线架构和通常的处理,存储器502可以存储处理器501在执行操作时所使用的数据。
[0128]
处理器501可以是cpu、asic、fpga或cpld,处理器501也可以采用多核架构。
[0129]
处理器501执行存储器502存储的计算机程序时,实现图1到图3所示的任一系统软件版本管理方法。
[0130]
需要说明的是,实施例三提供的装置与实施例一提供的方法属于同一个发明构思,解决相同的技术问题,达到相同的技术效果,实施例三提供的装置能实现实施例一的所有方法,相同之处不再赘述。
[0131]
本申请还提出一种处理器可读存储介质。其中,该处理器可读存储介质存储有计算机程序,所述处理器执行所述计算机程序时实现实现图1到图3所示的任一软件版本管理方法。
[0132]
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0133]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0134]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0135]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0136]
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1