软件热升级的方法、装置、终端及计算机可读存储介质与流程

文档序号:28690245发布日期:2022-01-29 11:22阅读:94来源:国知局
软件热升级的方法、装置、终端及计算机可读存储介质与流程

1.本发明涉及软件升级技术领域,尤其涉及软件热升级的方法、装置、终端及计算机可读存储介质。


背景技术:

2.软件升级是软件运行过程中发现软件存在漏洞或问题的一种修补方式,一般而言,存在两种升级方式,一种是冷升级,一种是热升级。
3.其中,冷升级是指软件运维人员首先停止现有运行的版本软件,然后再运行新版本的软件,在这个升级过程中,软件无法对外提供服务,因此使用这种升级方法会影响到用户使用软件的体验;
4.至于热升级则是指在不停止原有运行服务的前提下对软件进行升级,比较有代表性的是nginx(一款轻量级的web服务器/反向代理服务器及电子邮件代理服务器)和运行在k8s(一个编排容器的工具)系统上的软件,当针对nginx使用错误的无法执行的软件包进行升级时,虽然能够进行回退,但是当重启服务后,程序仍会选用新版本的软件执行,在这种情况下,程序便无法执行,而运行在k8s系统上的软件虽然实现热升级以及无缝回退,但是其系统过于臃肿,用户学习成本高,维护难度大,从而如果用户要完全可靠的进行软件版本升级难度很大。
5.由此,目前需要有一种更好的方法来解决现有技术中的问题。


技术实现要素:

6.有鉴于此,本发明实施例提出软件热升级的方法、装置、终端及计算机可读存储介质,用以解决现有技术中的问题。
7.具体的,本发明提出了以下具体的实施例:
8.本发明实施例提出了一种软件热升级的方法,包括:
9.若接收到升级指令,则对预先创建的软连接文件进行更新,使得所述软连接文件指向软件升级文件,并基于所述升级指令与所述软件升级文件执行升级;
10.若升级不成功,则对所述软连接文件进行更新,使得所述软连接文件的指向软件原有文件,以基于所述软件原有文件提供服务;
11.若升级成功,则停止基于所述软件原有文件提供服务。
12.在一个具体的实施例中,所述软件升级文件与所述软件原有文件均为带版本后缀的软件二进制文件。
13.在一个具体的实施例中,所述软件升级文件的版本比所述软件原有文件的版本新。
14.在一个具体的实施例中,还包括:
15.创建指向带版本后缀的软件二进制文件的软连接文件;
16.执行所述软连接文件。
17.在一个具体的实施例中,还包括:
18.在所述升级完成前,继续基于所述软件原有文件提供服务。
19.本发明实施例提出了一种软件热升级的装置,包括:
20.指向模块,用于若接收到升级指令,则对预先创建的软连接文件进行更新,使得所述软连接文件指向软件升级文件,并基于所述升级指令与所述软件升级文件执行升级;
21.更新模块,用于若升级不成功,则对所述软连接文件进行更新,使得所述软连接文件的指向软件原有文件,以基于所述软件原有文件提供服务;
22.停止模块,用于若升级成功,则停止基于所述软件原有文件提供服务。
23.在一个具体的实施例中,所述软件升级文件与所述软件原有文件均为带版本后缀的软件二进制文件。
24.在一个具体的实施例中,所述软件升级文件的版本比所述软件原有文件的版本新。
25.在一个具体的实施例中,还包括:创建模块,用于创建指向带版本后缀的软件二进制文件的软连接文件;
26.执行所述软连接文件。
27.在一个具体的实施例中,还包括:持续模块,用于在所述升级完成前,继续基于所述软件原有文件提供服务。
28.本发明实施例还提出了一种终端,包括存储器以及处理器,所述存储器用于存储软件升级程序,所述处理器运行所述软件升级程序以使所述终端执行上述软件热升级的方法。
29.本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质上存储有软件升级程序,所述软件升级程序被处理器执行时实现上述软件热升级的方法。
30.以此,本发明实施例提出了软件热升级的方法、装置、终端及计算机可读存储介质,该方法包括:若接收到升级指令,则对预先创建的软连接文件进行更新,使得所述软连接文件指向软件升级文件,并基于所述升级指令与所述软件升级文件执行升级;若升级不成功,则对所述软连接文件进行更新,使得所述软连接文件的指向软件原有文件,以基于所述软件原有文件提供服务;若升级成功,则停止基于所述软件原有文件提供服务。本方案能可靠的,用户无感知的将软件程序进行升级,能在新版本软件运行失败时,在用户无感知的情况下,仍然使用旧版本软件运行,并保证系统或服务重启时,程序仍然能够使用正常的软件版本运行。从而满足程序升级过程中的高可靠,服务不断流,系统可维护性的要求。
附图说明
31.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
32.图1示出了本发明实施例提出的一种软件热升级的方法的流程示意图;
33.图2示出了本发明实施例提出的具体应用场景下的一种软件热升级的方法的流程示意图;
34.图3示出了本发明实施例提出的一种软件热升级的装置的结构示意图;
35.图4示出了本发明实施例提出的一种软件热升级的装置的另一结构示意图。
36.图例说明:
37.201-指向模块;202-更新模块;203-停止模块;204-创建模块。
具体实施方式
38.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
39.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
41.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
42.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
43.实施例1
44.本发明实施例1公开了一种软件热升级的方法,如图1所示,包括以下步骤:
45.步骤s101、若接收到升级指令,则对预先创建的软连接文件进行更新,使得所述软连接文件指向软件升级文件,并基于所述升级指令与所述软件升级文件执行升级;
46.具体的,如图2所示,在步骤101之前,该方法还包括:
47.创建指向带版本后缀的软件二进制文件的软连接文件;
48.执行所述软连接文件。
49.具体的,通过运行软连接文件,软连接文件所执行的软件二进制文件即可被触发启动,或者进行升级,或者提供服务。通过采用软连接文件的方式来执行软件二进制文件,可以统一程序执行入口,从而用户可以无差别运行软件从而灵活的进行软件版本升级和回退,不影响软件系统现有对外提供的服务,从而提高软件使用的舒适度,提高用户满意度。
50.在此,通过将软连接文件指向软件升级文件,具体的,例如为新版本的软件二进制文件,即可触发执行软件升级。
51.具体的,软件升级可能成功,也可能失败,不管如何,在进行软件升级时,也即在在所述升级完成前,继续基于所述软件原有文件提供服务。
52.基于此,不管后续是否升级成功,均留有软件原有文件提供服务,不至于无法启动
软件,导致无法提供服务的现象。
53.具体的软件原有文件就是软件的现有版本文件。
54.进一步的,所述软件升级文件与所述软件原有文件均为带版本后缀的软件二进制文件。
55.此外,所述软件升级文件的版本比所述软件原有文件的版本新。
56.步骤s102、若升级不成功,则对所述软连接文件进行更新,使得所述软连接文件的指向软件原有文件,以基于所述软件原有文件提供服务;
57.具体的,若是升级没有成功,则将软连接文件进行更新,将软连接文件的指向由版本较新的软件升级文件更改为版本较旧的软件原有文件,以此,避免重复基于软件升级文件执行升级,并将软件退回为软件原有文件的版本,从而保证了软件的正常进行。
58.步骤s103、若升级成功,则停止基于所述软件原有文件提供服务。
59.具体的,若是升级成功了,则停止软件原有文件的服务,后续可以基于软件升级文件提供服务。
60.在一个具体的应用场景中,本方案包含了指向可执行文件的软连接文件,原版本软件的可执行文件以及新版本软件的可执行文件,软连接通过指向不同的可执行文件版本进行升级,并统一程序执行入口,从而用户可以无差别运行软件;原版本软件的可执行文件是原版本软件实体;新版本软件的可执行文件是新版本软件实体;如图2所示,包括如下步骤:
61.步骤1、创建指向带版本后缀的软件二进制文件的软连接,并执行软连接文件,正常启动服务;
62.步骤2、更新软连接文件指向带有新版本后缀的软件二进制文件,并触发软件升级命令;
63.步骤3、在软件升级完成前,原版本服务不退出,继续正常对外提供服务;等待软件升级执行结果。如果更新成功,则跳转执行步骤4,否则跳转执行步骤5;
64.步骤4、新版本软件更新成功,退出原版本软件服务,软件升级成功,用户对升级过程无感知;
65.步骤5、新版本软件有故障,更新时发现无法启动新版本软件,此时原版本软件服务不会退出,并更新软连接文件指向原带版本后缀的软件二进制文件,从而保证系统的正常运行,最终用户对升级失败过程也无感知。
66.实施例2
67.为了对本发明进行进一步的说明,本发明实施例2还公开了一种软件热升级的装置,如图3所示,包括:
68.指向模块201,用于若接收到升级指令,则对预先创建的软连接文件进行更新,使得所述软连接文件指向软件升级文件,并基于所述升级指令与所述软件升级文件执行升级;
69.更新模块202,用于若升级不成功,则对所述软连接文件进行更新,使得所述软连接文件的指向软件原有文件,以基于所述软件原有文件提供服务;
70.停止模块203,用于若升级成功,则停止基于所述软件原有文件提供服务。
71.在一个具体的实施例中,所述软件升级文件与所述软件原有文件均为带版本后缀
的软件二进制文件。
72.在一个具体的实施例中,所述软件升级文件的版本比所述软件原有文件的版本新。
73.在一个具体的实施例中,如图4所示,该装置还包括:创建模块204,用于创建指向带版本后缀的软件二进制文件的软连接文件;
74.执行所述软连接文件。
75.在一个具体的实施例中,还包括:持续模块,用于在所述升级完成前,继续基于所述软件原有文件提供服务。
76.实施例3
77.本发明实施例3还公开了一种终端,包括存储器以及处理器,所述存储器用于存储软件升级程序,所述处理器运行所述软件升级程序以使所述终端执行实施例1中所述软件热升级的方法。
78.实施例4
79.本发明实施例4公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有软件升级程序,所述软件升级程序被处理器执行时实现实施例1中所述软件热升级的方法。
80.以此,本发明实施例提出了软件热升级的方法、装置、终端及计算机可读存储介质,该方法包括:若接收到升级指令,则将预先创建的软连接文件指向软件升级文件,以基于所述软件升级文件执行升级;若升级不成功,则将所述软连接文件的指向更新为软件原有文件,以基于所述软件原有文件提供服务;若升级成功,则停止基于所述软件原有文件提供服务。本方案能可靠的,用户无感知的将软件程序进行升级,能在新版本软件运行失败时,在用户无感知的情况下,仍然使用旧版本软件运行,并保证系统或服务重启时,程序仍然能够使用正常的软件版本运行。从而满足程序升级过程中的高可靠,服务不断流,系统可维护性的要求。
81.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
82.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
83.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
84.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1