一种软件升级的方法、系统、设备及可读存储介质与流程

文档序号:24872129发布日期:2021-04-30 12:44阅读:75来源:国知局
一种软件升级的方法、系统、设备及可读存储介质与流程

本申请涉及软件升级领域,特别涉及一种软件升级的方法、系统、设备及可读存储介质。



背景技术:

随着网络技术的发展,越来越多的软件不再采用安装后独立运行的方案了,为了防破解、软件更新、管理等需求,都会设立集中的管理平台,所有的软件实例都作为客户端去连接管理平台,由管理平台统一管理所有的软件实例,比如软件定义网络、软件定义广域网等,而管理就有极大的可能需要修改客户端的程序和数据文件,把这些统一称为软件升级。

然而,软件升级有可能导致软件运行异常,进而导致软件失控、无法工作,因此,如何提高升级过程中软件的可靠性是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种软件升级的方法、系统、设备及可读存储介质,用于提高升级过程中软件的可靠性。

为解决上述技术问题,本申请提供一种软件升级的方法,该方法包括:

根据接收的升级请求下载对应的软件升级包;

将所述软件升级包安装到预设文件夹中,并确定所述预设文件夹中的新增文件和删除文件;

将软件安装目录中所述删除文件的文件链接删除,并在所述软件安装目录中增加指向所述预设文件夹中的新增文件的文件链接;

重启所述软件以完成所述软件的升级。

可选的,在重启所述软件之后,还包括:

判断第一预设时间内是否接收到所述软件的当前版本号;

若否,则执行软件回滚操作;

若是,则判断所述当前版本号与所述软件升级包对应的版本号是否一致;

若一致,则确认软件升级成功;

若不一致,则执行软件回滚操作。

可选的,所述执行软件回滚操作,包括:

将所述软件安装目录中所述新增文件的文件链接删除,并恢复所述软件安装目录中所述删除文件的文件链接。

可选的,在执行软件回滚操作之后,还包括:

判断第二预设时间内是否接收到所述软件的当前版本号;

若否,则确认软件出错并上报服务器;

若是,则判断所述当前版本号与所述软件的初始版本号是否一致;

若一致,则确认软件升级失败;

若不一致,则确认软件出错并上报服务器。

可选的,在根据接收的升级请求下载对应的软件升级包之前,还包括:

向服务器发送版本更新检查请求,以使所述服务器检查所述软件是否需要更新,并在所述软件需要更新时返回所述升级请求。

可选的,所述根据接收的升级请求下载对应的软件升级包,包括:

获取所述软件升级包的属性,并根据所述属性确定开始下载时间和指定带宽;

在所述开始下载时间以所述指定带宽下载所述软件升级包。

可选的,在根据接收的升级请求下载对应的软件升级包之后,在将所述软件升级包安装到预设文件夹中之前,还包括:

对所述软件升级包进行哈希校验;

若所述哈希校验通过,则执行将所述软件升级包安装到预设文件夹中的步骤。

本申请还提供一种软件升级的系统,该系统包括:

下载模块,用于根据接收的升级请求下载对应的软件升级包;

安装模块,用于将所述软件升级包安装到预设文件夹中,并确定所述预设文件夹中的新增文件和删除文件;

删除及增加模块,用于将软件安装目录中所述删除文件的文件链接删除,并在所述软件安装目录中增加指向所述预设文件夹中的新增文件的文件链接;

重启模块,用于重启所述软件以完成所述软件的升级。

本申请还提供一种软件升级设备,该软件升级设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述软件升级的方法的步骤。

本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述软件升级的方法的步骤。

本申请所提供软件升级的方法,包括:根据接收的升级请求下载对应的软件升级包;将软件升级包安装到预设文件夹中,并确定预设文件夹中的新增文件和删除文件;将软件安装目录中删除文件的文件链接删除,并在软件安装目录中增加指向预设文件夹中的新增文件的文件链接;重启软件以完成软件的升级。

本申请所提供的技术方案,通过将软件升级包安装到预设文件夹中,并确定预设文件夹中的新增文件和删除文件,然后将软件安装目录中删除文件的文件链接删除,并在软件安装目录中增加指向预设文件夹中的新增文件的文件链接,使得软件升级包中的文件以文件链接的形式存在于软件安装目录中,进而在软件出现问题时能够通过修改文件链接的方式立刻进行回滚操作,降低了软件宕机的可能性,保证了不会因升级工作导致客户端失控、无法工作,极大的提高了升级过程中软件的可靠性。本申请同时还提供了一种软件升级的系统、设备及可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

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

图2为本申请实施例所提供的另一种软件升级的方法的流程图;

图3为本申请实施例所提供的一种软件升级的系统的结构图;

图4为本申请实施例所提供的一种软件升级设备的结构图。

具体实施方式

本申请的核心是提供一种软件升级的方法、系统、设备及可读存储介质,用于提高升级过程中软件的可靠性。

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

基于现有技术中,随着网络技术的发展,越来越多的软件不再采用安装后独立运行的方案了,为了防破解、软件更新、管理等需求,都会设立集中的管理平台,所有的软件实例都作为客户端去连接管理平台,由管理平台统一管理所有的软件实例,比如软件定义网络、软件定义广域网等,其中:

软件定义网络是一种新型网络创新架构,是网络虚拟化的一种实现方式。其核心技术openflow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台,一般由一个管控平台和n个受控网络设备组成;

软件定义广域网是将软件定义网络技术应用到广域网场景中所形成的一种服务,这种服务用于连接广阔地理范围的企业网络、数据中心、互联网应用及云服务。而管理就有极大的可能需要修改客户端的程序和数据文件,把这些统一称为软件升级。

然而,软件升级有可能导致软件运行异常,进而导致软件失控、无法工作;故本申请提供了一种软件升级的方法,用于解决上述问题。

请参考图1,图1为本申请实施例所提供的一种软件升级的方法的流程图。

其具体包括如下步骤:

s101:根据接收的升级请求下载对应的软件升级包;

这里提到的升级请求具体可以为用户输入的,也可以为服务器发送的,在一个具体实施例中,在根据接收的升级请求下载对应的软件升级包之前,还可以执行如下步骤:

向服务器发送版本更新检查请求,以使服务器检查软件是否需要更新,并在软件需要更新时返回升级请求。

这里提到的向服务器发送版本更新检查请求,其具体可以为定时向服务器发送版本更新检查请求,也可以为间隔预设时间段向服务器发送版本更新检查请求,本申请对此不做具体限定。

可选的,为降低软件升级包下载过程中对软件正常运行的影响,还可以根据软件升级包属性对下载进行设置,即这里提到的根据接收的升级请求下载对应的软件升级包,其具体可以为:

获取软件升级包的属性,并根据属性确定开始下载时间和指定带宽;

在开始下载时间以指定带宽下载软件升级包。

在一个具体实施例中,这里提到的软件升级包的属性还可以包括软件升级包版本、资源位置、开始升级时间、哈希值、状态中的至少一项;

进一步的,可以通过对软件升级包清单表设置的方式实现对软件升级包的属性的设置,其中,该软件升级包清单表具体可以为如下表所示:

在一个具体实施例中,在根据接收的升级请求下载对应的软件升级包之后,还可以启动客户端升级代理,让客户端升级代理负责监控软件是否能成功启动,如果不能成功启动,则客户端升级代理能重启客户端软件,进而防止出现客户端软件永远无响应、失去控制的问题。

s102:将软件升级包安装到预设文件夹中,并确定预设文件夹中的新增文件和删除文件;

在软件升级时通常需要新增一些文件和删除一些文件,使得软件在回滚时需要恢复删除的文件,并将新增的文件删除,导致软件回滚的速度慢,可能出现软件宕机的情况,因此本步骤中将软件升级包安装到预设文件夹中,并确定预设文件夹中的新增文件和删除文件,其目的在于将软件升级包的安装位置与软件安装目录分离开,使软件安装目录中存储各个文件的文件链接,使得软件在需要调用文件时通过文件链接找到对应文件夹中的文件进行调用;在软件出现问题时能够通过修改文件链接的方式立刻进行回滚操作,降低软件宕机的可能性。

可选的,为提高软件升级的安全性,在根据接收的升级请求下载对应的软件升级包之后,在将软件升级包安装到预设文件夹中之前,还可以执行如下步骤完成对软件升级包的校验:

对软件升级包进行哈希校验;

若哈希校验通过,则执行将软件升级包安装到预设文件夹中的步骤。

这里提到的哈希校验具体可以为md5哈希校验或sha1哈希校验。

s103:将软件安装目录中删除文件的文件链接删除,并在软件安装目录中增加指向预设文件夹中的新增文件的文件链接;

s104:重启软件以完成软件的升级。

在一个具体实施例中,软件升级完成之后会被重启,然后主动向客户端升级代理和服务端升级管控中心通报软件当前版本号,进而确定升级是否成功,若不成功则需要执行软件回滚操作,即在执行完步骤s104之后,还可以执行图2所示的步骤来确定是否需要软件回滚,下面结合图2进行说明。

请参考图2,图2为本申请实施例所提供的另一种软件升级的方法的流程图。

其具体包括以下步骤:

s201:判断第一预设时间内是否接收到软件的当前版本号;

若否,则进入步骤s202;若是,则进入步骤s203。

s202:执行软件回滚操作;

在一个具体实施例中,这里提到的执行软件回滚操作,其具体可以为:

将软件安装目录中新增文件的文件链接删除,并恢复软件安装目录中删除文件的文件链接。

s203:判断当前版本号与软件升级包对应的版本号是否一致;

若一致,则进入步骤s204;若不一致,则返回执行步骤s202。

s204:确认软件升级成功。

可选的,在执行软件回滚操作之后,还可以执行如下步骤判断软件回滚操作是否执行成功:

判断第二预设时间内是否接收到软件的当前版本号;

若否,则确认软件出错并上报服务器;

若是,则判断当前版本号与软件的初始版本号是否一致;

若一致,则确认软件升级失败;

若不一致,则确认软件出错并上报服务器。

基于上述技术方案,本申请所提供的一种软件升级的方法,通过将软件升级包安装到预设文件夹中,并确定预设文件夹中的新增文件和删除文件,然后将软件安装目录中删除文件的文件链接删除,并在软件安装目录中增加指向预设文件夹中的新增文件的文件链接,使得软件升级包中的文件以文件链接的形式存在于软件安装目录中,进而在软件出现问题时能够通过修改文件链接的方式立刻进行回滚操作,降低了软件宕机的可能性,保证了不会因升级工作导致客户端失控、无法工作,极大的提高了升级过程中软件的可靠性。

请参考图3,图3为本申请实施例所提供的一种软件升级的系统的结构图。

该系统可以包括:

下载模块100,用于根据接收的升级请求下载对应的软件升级包;

安装模块200,用于将软件升级包安装到预设文件夹中,并确定预设文件夹中的新增文件和删除文件;

删除及增加模块300,用于将软件安装目录中删除文件的文件链接删除,并在软件安装目录中增加指向预设文件夹中的新增文件的文件链接;

重启模块400,用于重启软件以完成软件的升级。

在上述实施例的基础上,在一个具体实施例中,该系统还可以包括:

第一判断模块,用于判断第一预设时间内是否接收到软件的当前版本号;

第一执行模块,用于当第一预设时间内未接收到软件的当前版本号时,执行软件回滚操作;

第二判断模块,用于当第一预设时间内接收到软件的当前版本号时,判断当前版本号与软件升级包对应的版本号是否一致;

第一确认模块,用于当前版本号与软件升级包对应的版本号一致时,确认软件升级成功;

第二执行模块,用于当前版本号与软件升级包对应的版本号不一致时,执行软件回滚操作。

在上述实施例的基础上,在一个具体实施例中,该第一执行模块可以包括:

删除及恢复子模块,用于将软件安装目录中新增文件的文件链接删除,并恢复软件安装目录中删除文件的文件链接。

在上述实施例的基础上,在一个具体实施例中,该系统还可以包括:

第三判断模块,用于判断第二预设时间内是否接收到软件的当前版本号;

第二确认模块,用于当第二预设时间内未接收到软件的当前版本号时,确认软件出错并上报服务器;

第四判断模块,用于当第二预设时间内接收到软件的当前版本号时,判断当前版本号与软件的初始版本号是否一致;

第三确认模块,用于当前版本号与软件的初始版本号一致时,确认软件升级失败;

第四确认模块,用于当前版本号与软件的初始版本号不一致时,确认软件出错并上报服务器。

在上述实施例的基础上,在一个具体实施例中,该系统还可以包括:

发送模块,用于向服务器发送版本更新检查请求,以使服务器检查软件是否需要更新,并在软件需要更新时返回升级请求。

在上述实施例的基础上,在一个具体实施例中,该下载模块100可以包括:

获取子模块,用于获取软件升级包的属性,并根据属性确定开始下载时间和指定带宽;

下载子模块,用于在开始下载时间以指定带宽下载软件升级包。

在上述实施例的基础上,在一个具体实施例中,该系统还可以包括:

哈希校验模块,用于对软件升级包进行哈希校验;

第三执行模块,用于若哈希校验通过,则执行将软件升级包安装到预设文件夹中的步骤。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

请参考图4,图4为本申请实施例所提供的一种软件升级设备的结构图。

该软件升级设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,处理器522可以设置为与存储介质530通信,在软件升级设备500上执行存储介质530中的一系列指令操作。

软件升级设备500还可以包括一个或一个以上电源525,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述图1至图2所描述的软件升级的方法中的步骤由软件升级设备基于该图4所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种软件升级的方法、系统、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

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