软件版本升级方法、装置及设备与流程

文档序号:17748356发布日期:2019-05-24 20:47阅读:258来源:国知局
软件版本升级方法、装置及设备与流程

本申请涉及通信技术领域,尤其涉及一种软件版本升级方法、装置及设备。



背景技术:

为了对软件版本进行完善,软件版本的开发者在软件版本发布后,还会发布针对该软件版本的补丁文件。安装了该软件版本的客户端可以下载该补丁文件,并利用该补丁文件对该软件版本进行升级,以修复该软件版本中的漏洞或实现对该软件版本的优化。

现有技术中,利用补丁文件对软件版本进行升级的过程中,首先确定出该软件版本中需要更新的待修改文件,并对该待修改文件进行备份;然后,停止运行该待修改文件的进程,利用补丁文件覆盖该待修改文件;之后,重新启动进程。

可见,在软件版本的升级过程中,需要先停止进程,使得运行该软件版本的进程需要中断一段时间,从而会影响该进程对应的业务的运行。



技术实现要素:

本申请提供一种软件版本升级方法、装置及设备,用于在软件版本升级过程,降低对业务造成的影响。

第一方面,提供了一种软件版本升级方法,包括:

确定针对所述软件版本的补丁文件包;

依据所述补丁文件包中的补丁文件,确定所述软件版本中无需更新的文件;

确定所述软件版本的升级版本中包含的各个文件的链接地址,其中,所述各个文件的链接地址包括所述补丁文件的链接地址以及所述无需更新的文件的链接地址;

触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

在所述第一方面的第一种可能实现方式中,所述触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件之后,所述方法还包括:

检测到补丁回退指令时,触发所述进程运行所述软件版本中的文件。

在所述第一方面的第二种可能实现方式中,在所述确定针对所述软件版本的补丁文件包之前,还包括:

下载并安装所述补丁文件。

结合所述第一方面或所述第一方面的上述任一种可能实现方式,在所述第一方面的第三种可能实现方式中,在所述补丁文件包中还包括配置文件,所述配置文件用于指示运行补丁文件的进程。

所述触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件包括:

触发所述配置文件指示的运行所述补丁文件的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

结合所述第一方面或所述第一方面的上述任一种可能实现方式,在所述第一方面的第四种可能实现方式中,所述触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件包括:

当运行所述软件版本的进程为插件进程时,触发所述插件进程卸载运行所述软件版本中的文件的插件,并加载运行所述链接地址链接的文件的插件。

第二方面,提供了一种软件版本升级装置,包括:

第一文件确定模块,用于确定针对所述软件版本的补丁文件包;

第二文件确定模块,用于依据所述补丁文件包中的补丁文件,确定所述软件版本中无需更新的文件;

地址确定模块,用于确定所述软件版本的升级版本中包含的各个文件的链接地址,其中,所述各个文件的链接地址包括所述补丁文件的链接地址以及所述无需更新的文件的链接地址;

升级模块,用于触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

在所述第二方面的第一种可能实现方式中,还包括:

回退模块,用于检测到补丁回退指令时,触发所述进程运行所述软件版本中的文件。

在所述第二方面的第二种可能实现方式中,还包括:

补丁安装模块,用于下载并安装所述补丁文件。

结合所述第二方面或所述第二方面的上述任一种可能实现方式,在所述第二方面的第三种可能实现方式中,所述升级模块具体用于:

触发所述配置文件指示的运行所述补丁文件的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

结合所述第二方面或所述第二方面的上述任一种可能实现方式,在所述第二方面的第四种可能实现方式中,所述升级模块具体用于:

当运行所述软件版本的进程为插件进程时,触发所述插件进程卸载运行所述软件版本中的文件的插件,并加载运行所述链接地址链接的文件的插件。

第三方面,提供了一种软件版本升级设备,包括处理器以及存储器,

所述存储器用户存储一组程序指令;

所述处理器用于调用所述存储器的所述程序指令,执行如下操作:

确定针对所述软件版本的补丁文件包;

依据所述补丁文件包中的补丁文件,确定所述软件版本中无需更新的文件;

确定所述软件版本的升级版本中包含的各个文件的链接地址,其中,所述各个文件的链接地址包括所述补丁文件的链接地址以及所述无需更新的文件的链接地址;

触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

由上述的技术方案可知,确定了补丁文件包之后,依据该补丁文件包中补丁文件确定该软件版本中无需更新的文件,并基于该无需更新的文件的链接地址和该补丁文件包中补丁文件的链接地址,确定该软件版本升级之后的升级版本中需包含的各个文件的链接地址,然后触发运行该软件版本的进程,运行该各个文件的链接地址链接的相应文件,由于链接地址链接的文件包括补丁文件以及软件版本中无需更新的文件,因此即实现了将进程运行升级版本文件的目的,从而实现了软件版本升级。进程只需切换到运行链接地址对应的文件即可,无需停止较长的时间,因此可以减少对业务的影响。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种软件版本升级方法一个实施例的流程示意图;

图2为本申请实施例提供的软件版本V1.0.1.0.0中包含的多个文件的目录示意图;

图3为本申请实施例提供的针对软件版本V1.0.1.0.0的补丁文件包中的补丁文件的目录示意图;

图4为本申请实施例提供的软件版本与升级版本之间的链接关系示意图;

图5为本申请实施例提供的一种软件版本升级装置一个实施例的结构示意图;

图6为本申请实施例提供的一种软件版本升级设备一个实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1,其示出了本申请一种软件版本升级方法一个实施例的流程示意图,本实施例的方法可以包括:

101,确定针对软件版本的补丁文件包。

当需要对网元设备中的软件版本进行更新时,可以在下载并安装该补丁文件包后,利用该网元设备中存在的该补丁文件包中的补丁文件对软件版本进行升级。

102,依据补丁文件包中的补丁文件,确定所述软件版本中无需更新的文件。

补丁文件包中补丁文件可以是需要向该软件版本中增加的文件,即补丁文件包中包含且该软件版本中不包含的文件;也可以是对软件版本中的文件进行更新的文件,即该软件版本和补丁文件包中包含的文件名称相同的文件,但是该文件中包含的数据内容不同。

通过将该补丁文件包中的补丁文件与该软件版本中包含的文件进行比较,可以确定出该软件版本中不需要更新的文件和/或需要更新的文件。

103,确定该软件版本的升级版本中包含的各个文件的链接地址。

其中,该各个文件的链接地址包括该补丁文件包中补丁文件的链接地址以及该软件版本中无需更新的文件的链接地址。

链接地址可以具体是指各个文件的位置信息等。

根据补丁文件以及软件版本中的文件,可以确定出软件版本升级之后的升级版本中包含的文件。

由于软件版本中文件的位置,以及补丁文件包中补丁文件的位置已知,因此可以确定出构成升级版本的各个文件的链接地址。

104,触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

本申请实施例中,无需利用补丁文件更新软件版本的文件,也无需备份该软件版本中的文件。只需确定出升级版本中各个文件的链接地址,将原来运行软件版本中文件的进程,触发运行该链接地址链接的相应文件,由于链接地址链接的文件包括补丁文件(包括软件版本中需要更新的文件对应的补丁文件)以及软件版本中无需更新的文件,因此即实现了将进程运行升级版本文件的目的,从而实现了软件版本升级。进程只需切换到运行链接地址对应的文件即可,无需停止较长的时间,因此可以减少对进程对应的业务的影响。且也无需备份文件、覆盖文件等复杂的操作,节省了升级时间,提高了升级效率。

一个进程可能并不需要运行该软件版本中的全部文件,因此,可以根据自身需求,运行各个文件的链接地址链接的相应文件。

其中,在利用补丁文件进行升级时,可以直接向运行该软件版本中文件的进程发送升级指令。运行该软件版本中文件的进程响应该升级指令,即可依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。即实现进程由运行该软件版本中需要更新的文件切换到补丁文件包中的补丁文件,从而使得软件版本中需要更新的文件均升级到补丁文件包中的补丁文件。

可以理解的是,由于本申请实施例在对软件版本进行升级的过程中,并没有利用补丁文件对原来的软件版本进行覆盖,使得原来的软件版本仍然完整保存在该设备中,这样当该补丁文件包出现异常时,可以直接将进程重新切换到运行软件版本中的文件。因此无需备份文件,也无需在补丁回退时由于先停止进程而导致业务中断时间较长,对业务造成的影响。

因此本申请实施例,在触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件之后,所述方法还包括:

检测到补丁回退指令时,触发所述进程运行所述软件版本中的文件。

其中,该补丁回退指令,可以是指检测到补丁文件运行异常等情况时生成的。

可以理解的是,在实际应用中,确定针对该软件版本的补丁文件之前需要下载补丁文件包并安装。

补丁文件包安装后,该补丁文件包与该软件版本是两个独立的软件包,而确定的升级版本中各个文件的链接地址,实际上是建立了该补丁文件包与该软件版本中无需更新的文件的链接关系。

可选的,可以先将该软件版本中无需更新的文件以及该补丁文件包中的补丁文件确定为该软件版本升级之后的升级版本中包含的文件,然后确定该无需更新的文件的链接地址以及补丁文件包中补丁文件的链接地址,将该无需更新的文件的链接地址以及补丁文件的链接地址进行组合,得到升级版本中各个文件的链接地址。

下面以一个实例来进行介绍。假设网元设备当前安装并运行为软件版本V1.01.0.0,需要利用补丁文件包中的补丁文件将该软件版本升级为升级版本V1.01.0.1。其中可以理解的是,包含能够被运行的程序文件以及运行所述程序文件过程中所产生的数据文件。在软件版本升级的过程中数据文件不会发生改变,而程序文件则可能会存在更新。

假设该软件版本中包含有程序文件software,具体包括:file1至filen。同时,该软件版本中还包括运行软件版本中产生的多个数据文件date,具体包括date1至daten,其中n为大于1的自然数。如图2所示,为该软件版本V1.0.1.0.0中包含的文件的目录示意图。

假设针对该软件版本V1.0.1.0.0的补丁文件包括补丁文件file3和fileX,其中,补丁文件file3是该软件版本V1.0.1.0.0中包含的文件file3的更新文件,而该fileX为新增的程序文件。如图3所示,示出了补丁文件包中的补丁文件的目录示意图,即该补丁文件包中包括补丁文件file3和补丁文件fileX。

将图2和图3的文件目录进行对比可以看出,原来的软件版本V1.0.1.0.0中除了程序文件file3需要发生更新外,其他文件均不需要更新。根据软件版本V1.0.1.0.0中包含的文件目录以及补丁文件包中包含的补丁文件目录,可以确定出利用该补丁文件包对该软件版本V1.0.1.0.0进行升级后,升级版本中包含的文件包括该软件版本V1.0.1.0.0中无需更新的文件,即,程序文件file1、file2、file4至filen,以及该软件版本V1.0.1.0.0中所有的数据文件;同时,升级软件版本中还包括:补丁文件包中的补丁文件file3和新增文件filex。当网元设备中安装了软件版本和该补丁文件包后,该软件版本以及补丁文件包中各个文件的链接地址便是确定的,将该软件版本中无需更新的文件的链接地址以及补丁文件的链接地址进行组合,便可以得到升级后的升级版本中包含的各个文件的链接地址。如图4所示,为软件版本中无需更新的文件与该补丁文件包中补丁文件之间的关系示意图,可知升级版本中的文件包括补丁文件以及链接的软件版本中无需更新的文件。

由以上过程也可以看出,本申请对软件版本进行升级的过程中,无需利用补丁文件覆盖该软件版本中需要更新的文件,即无需构建一个完整的升级版本,从而使得原来的该软件版本得到保留,这样在补丁文件包存在异常的情况,无需重新构建升级之前的版本,可以直接将进程切换到运行原软件版本中的文件。

其中,由于进程运行的软件版本中的文件可能无需更新,此时,该进程则可以不需要运行链接地址链接的相应文件,直接运行软件版本中的文件即可。

需要运行升级版本的进程的确定可以有多种实现方式。

在一种可能实现方式中,当根据补丁文件确定软件版本中存在需要更新的文件时,则触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件具体可以是运行所述软件版本中需要更新的文件的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

也即需要运行升级版本的进程可以是运行的文件为软件版本中需要更新的文件的进程。

若进程运行的软件版本中的文件无需更新,则进程可以继续运行该软件版本的文件。

当然,作为另一种可能的实现方式,在该补丁文件包中还可以有包含配置文件,该配置文件中包括用于指示运行该补丁文件包中各个补丁文件的进程信息。如,在补丁文件包中包含有补丁文件file3和fileX,在该配置文件中可以指示出由运行原来的软件版本中file3的进程A运行该补丁文件file3,由进程B运行fileX。

因此,所述触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件包括:

触发所述配置文件指示的运行所述补丁文件的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

在以上任意一个实施例中,当运行软件版本中的文件的进程为普通进程时,则在触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件时,可以是触发所述普通进程终止运行,同时在所述各个文件的链接地址链接的相应文件中,重新启动所述普通进程。

当运行软件版本中的文件的进程为插进进程时,则在触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件时,可以是所述插件进程卸载运行所述软件版本中的文件的插件,并重新加载运行所述各个文件的链接地址链接的相应文件的插件。

其中,插件进程就是由多个插件或者模块组成,每个插件可以独立启动、停止、卸载、安装等。因此插件进程的一个插件升级、打补丁,只对这个插件有影响。因此可以针对插进运行的软件版本中的文件是否需要更新,来确定是否对插进进行升级。

图5为本申请实施例提供的一种软件版本升级装置一个实施例的结构示意图,该装置可以包括:

第一文件确定模块501,用于确定针对所述软件版本的补丁文件包。

第二文件确定模块502,用于依据所述补丁文件包中的补丁文件,确定所述软件版本中无需更新的文件。

补丁文件包中补丁文件可以是需要向该软件版本中增加的文件,即补丁文件包中包含且该软件版本中不包含的文件;也可以是对软件版本中的文件进行更新的文件,即该软件版本和补丁文件包中包含的文件名称相同的文件,但是该文件中包含的数据内容不同。

通过将该补丁文件包中的补丁文件与该软件版本中包含的文件进行比较,可以确定出该软件版本中不需要更新的文件和/或需要更新的文件。

地址确定模块503,用于确定所述软件版本的升级版本中包含的各个文件的链接地址。其中,所述各个文件的链接地址包括所述补丁文件的链接地址以及所述无需更新的文件的链接地址。

链接地址可以具体是指各个文件的位置信息等。

根据补丁文件以及软件版本中的文件,可以确定出软件版本升级之后的升级版本中包含的文件。

由于软件版本中文件的位置,以及补丁文件包中补丁文件的位置已知,因此可以确定出构成升级版本的各个文件的链接地址。

升级模块501,用于触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

本申请实施例中,无需利用补丁文件更新软件版本的文件,也无需备份该软件版本中的文件。只需确定出升级版本中各个文件的链接地址,将原来运行软件版本中文件的进程,触发运行该链接地址链接的相应文件,由于链接地址链接的文件包括补丁文件(包括软件版本中需要更新的文件对应的补丁文件)以及软件版本中无需更新的文件,因此即实现了将进程运行升级版本文件的目的,从而实现了软件版本升级。进程只需切换到运行链接地址对应的文件即可,无需停止较长的时间,因此可以减少对业务的影响。且也无需备份文件、覆盖文件等复杂的操作,节省了升级时间,提高了升级效率。

一个进程可能并不需要运行该软件版本中的全部文件,因此,可以根据自身需求,运行各个文件的链接地址链接的相应文件。

由于本申请实施例在对软件版本进行升级的过程中,并没有利用补丁文件对原来的软件版本进行覆盖,使得原来的软件版本仍然完整保存在该设备中,这样当该补丁文件包出现异常时,可以直接将进程重新切换到运行软件版本中的文件。因此无需备份文件,也无需在补丁回退时由于先停止进程而导致业务中断,对业务造成的影响。

因此本申请实施例,该装置还可以包括:

回退模块,用于检测到补丁回退指令时,触发所述进程运行所述软件版本中的文件。

其中,该补丁回退指令,可以是指检测到补丁文件运行异常等情况时生成的。

在实际应用中,确定针对该软件版本的补丁文件之前需要下载补丁文件包并安装。因此,该装置还可以包括:

补丁安装模块,用于下载并安装所述补丁文件。

补丁文件包安装后,该补丁文件包与该软件版本是两个独立的软件包,而确定的升级版本中各个文件的链接地址,实际上是建立了该补丁文件包与该软件版本中无需更新的文件的链接关系。

其中,由于进程运行的软件版本中的文件可能无需更新,此时,该进程则可以不需要运行链接地址链接的相应文件,直接运行软件版本中的文件即可。

需要运行升级版本的进程的确定可以有多种实现方式。

在一种可能实现方式中,当根据补丁文件确定软件版本中存在需要更新的文件时,则所述升级模块具体可以是运行所述软件版本中需要更新的文件的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

也即需要运行升级版本的进程可以是运行的文件为软件版本中需要更新的文件的进程。

若进程运行的软件版本中的文件无需更新,则进程可以继续运行该软件版本的文件。

当然,作为另一种可能的实现方式,在该补丁文件包中还可以有包含配置文件,该配置文件中包括用于指示运行该补丁文件包中各个补丁文件的进程信息。因此,所述升级模块可以具体用于:

触发所述配置文件指示的运行所述补丁文件的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

在上述描述中,当运行软件版本中的文件的进程为普通进程时,则升级模块可以是触发所述普通进程终止运行,同时在所述各个文件的链接地址链接的相应文件中,重新启动所述普通进程。

当运行软件版本中的文件的进程为插进进程时,则所述升级模块可以是所述插件进程卸载运行所述软件版本中的文件的插件,并重新加载运行所述各个文件的链接地址链接的相应文件的插件。

其中,插件进程就是由多个插件或者模块组成,每个插件可以独立启动、停止、卸载、安装等。因此插件进程的一个插件升级、打补丁,只对这个插件有影响。因此可以针对插进运行的软件版本中的文件是否需要更新,来确定是否对插进进行升级。

上述实施例所述的软件版本升级装置,在实际应用中,可以集成到软件版本升级设备中,该软件版本升级设备可以是指安装软件版本,具有软件版本升级需求的网元设备等。部署本申请实施例软件版本升级装置的软件版本升级设备,进程无需停止较长的时间,因此可以检测进程对应的业务的中断时间,减少对业务的影响。且也无需备份文件、覆盖文件等复杂的操作,节省了升级时间,提高了升级效率。

通过以上描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。因此,参见图6,本申请实施例还提供了一种软件版本升级设备,该软件版本升级设备至少包括处理器601和存储器602。

该存储器602存储一组程序指令,该存储器可以是是高速RAM存储器,也可能是非易失性存储器(non-volatile memory),例如至少一个磁盘存储器等。

该处理器601,用于调用该存储器602存储的程序指令,执行如下操作:

确定针对所述软件版本的补丁文件包;

依据所述补丁文件包中的补丁文件,确定所述软件版本中无需更新的文件;

确定所述软件版本的升级版本中包含的各个文件的链接地址,其中,所述各个文件的链接地址包括所述补丁文件的链接地址以及所述无需更新的文件的链接地址;

触发运行所述软件版本的进程,依据所述各个文件的链接地址,运行所述各个文件的链接地址链接的相应文件。

其中,该处理器可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

可选地,该软件版本升级设备可以用于执行本申请实施例提供的如图1所示的软件版本升级方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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