CN110716734A - 一种软件升级的方法、装置、电子设备及介质 - Google Patents
一种软件升级的方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN110716734A CN110716734A CN201910890350.2A CN201910890350A CN110716734A CN 110716734 A CN110716734 A CN 110716734A CN 201910890350 A CN201910890350 A CN 201910890350A CN 110716734 A CN110716734 A CN 110716734A
- Authority
- CN
- China
- Prior art keywords
- software
- upgraded
- downloading
- hardware architecture
- latest version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012546 transfer Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 12
- 230000026676 system process Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种软件升级的方法、装置、电子设备及介质,涉及计算机技术领域,本申请的方案包括:获取待升级软件的最新版本适用的硬件架构信息,若待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,则生成下载任务,下载任务用于下载待升级软件的最新版本对应的镜像文件,根据下载任务,从服务器下载镜像文件,在容器化运行环境中运行镜像文件,以实现待升级软件的升级操作。采用本申请可以降低维护软件的复杂程度。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种软件升级的方法、装置、电子设备及介质。
背景技术
目前,智能边缘设备越来越多,比如智能音箱、智能路由器或者智能存储网关等,不同边缘设备之间的硬件型号参数、软件***和版本都有差异。
针对上述差异,目前需要分别为不同边缘设备维护不同版本的软件,为了使同一版本的软件尽可能应用于在不同边缘设备中,相关技术往往通过降低边缘设备之间的差异的方式,以使得不同边缘设备兼容同一版本的软件,以此降低维护软件的复杂程度。
然而,边缘设备由于存在功能限制、***差异以及生产厂商不同等客观因素,导致很难实现降低不同边缘设备之间的差异,因此难以降低维护软件的复杂程度。
发明内容
本申请实施例的目的在于提供一种软件升级的方法、装置、电子设备及介质,以降低维护软件的复杂程度。具体技术方案如下:
第一方面,提供了一种软件升级的方法,所述方法应用于包括服务器与至少两个边缘设备的***,每个所述边缘设备中设置有边缘组件,所述边缘组件用于承载容器化运行环境,所述方法执行于所述边缘组件,所述方法包括:
获取待升级软件的最新版本适用的硬件架构信息;
若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,则生成下载任务,所述下载任务用于下载所述待升级软件的最新版本对应的镜像文件;
根据所述下载任务,从所述服务器下载所述镜像文件;
在所述容器化运行环境中运行所述镜像文件,以实现所述待升级软件的升级操作。
可选的,所述下载任务包括下载方式,所述下载方式为对等网络下载方式或超文本传输协议下载方式;所述根据所述下载任务,从所述服务器下载所述镜像文件,包括:
若所述下载方式为对等网络下载方式,则通过所述对等网络下载方式,从其他边缘设备下载所述镜像文件;
若所述下载方式信息为超文本传输协议下载方式,则通过所述超文本传输协议下载方式,从所述服务器下载所述镜像文件。
可选的,所述获取待升级软件的最新版本适用的硬件架构信息,包括:
接收服务器发送的软件升级消息,所述软件升级消息包括所述待升级软件的最新版本适用的硬件架构信息;
从所述软件升级消息中获取所述待升级软件对应的最新版本适用的硬件架构信息。
可选的,在所述接收服务器发送的软件升级消息之前,所述方法还包括:
若上一次升级所述待升级软件的时刻与当前时刻之间的时长大于或者等于预设时长,则向所述服务器发送升级请求,所述升级请求用于向所述服务器请求获取所述待升级软件的最新版本适用的硬件架构信息。
可选的,在所述获取待升级软件的最新版本适用的硬件架构信息之前,所述方法还包括:
若当前***版本不支持承载容器化运行环境,则获取所述待升级软件对应的升级文件的最新版本适用的硬件架构信息和***版本信息;
若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,且所述***版本信息包括所述边缘设备的***版本,则生成下载任务,所述下载任务用于下载所述待升级软件对应的升级文件;
根据所述下载任务,从所述服务器下载所述待升级软件对应的升级文件;
在当前***版本对应的***进程中运行所述待升级软件对应的升级文件。第二方面,提供了一种软件升级的装置,所述装置应用于包括服务器与至少两个边缘设备的***,每个所述边缘设备中设置有边缘组件,所述边缘组件用于承载容器化运行环境,所述装置执行于所述边缘组件,所述装置包括:
获取模块,用于获取待升级软件的最新版本适用的硬件架构信息;
生成模块,用于若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,则生成下载任务,所述下载任务用于下载所述待升级软件的最新版本对应的镜像文件;
下载模块,用于根据所述下载任务,从所述服务器下载所述镜像文件;
运行模块,用于在所述容器化运行环境中运行所述镜像文件,以实现所述待升级软件的升级操作。
可选的,所述下载任务包括下载方式,所述下载方式为对等网络下载方式或超文本传输协议下载方式;所述下载模块,具体用于:
若所述下载方式为对等网络下载方式,则通过所述对等网络下载方式,从其他边缘设备下载所述镜像文件;
若所述下载方式信息为超文本传输协议下载方式,则通过所述超文本传输协议下载方式,从所述服务器下载所述镜像文件。
可选的,所述获取模块,具体用于:
接收服务器发送的软件升级消息,所述软件升级消息包括所述待升级软件的最新版本适用的硬件架构信息;
从所述软件升级消息中获取所述待升级软件对应的最新版本适用的硬件架构信息。
可选的,所述装置还包括:请求模块;
所述请求模块,用于若上一次升级所述待升级软件的时刻与当前时刻之间的时长大于或者等于预设时长,则向所述服务器发送升级请求,所述升级请求用于向所述服务器请求获取所述待升级软件的最新版本适用的硬件架构信息。
可选的,
所述获取模块,还用于若当前***版本不支持承载容器化运行环境,则获取所述待升级软件对应的升级文件的最新版本适用的硬件架构信息和***版本信息;
所述生成模块,还用于若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,且所述***版本信息包括所述边缘设备的***版本,则生成下载任务,所述下载任务用于下载所述待升级软件对应的升级文件;
所述下载模块,还用于根据所述下载任务,从所述服务器下载所述待升级软件对应的升级文件;
所述运行模块,还用于在当前***版本对应的***进程中运行所述待升级软件对应的升级文件。
第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法步骤。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本申请实施例提供的一种软件升级的方法、装置、电子设备及介质,本申请实施例中的边缘设备中都设置有边缘组件,相比于现有技术中需要为不同软件***内核版本边缘设备维护不同版本的软件,本申请实施例由于每个边缘组件都承载了容器化运行环境,容器化运行环境可以运行相同版本的软件以及相同的镜像文件,所以在软件升级时,如果待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,就可以生成下载任务,并下载待升级软件对应的镜像文件,即使各边缘设备的***版本不同,各边缘设备也可以通过容器化运行环境运行相同的镜像文件,所以本申请无需为不同软件***内核版本边缘设备维护不同版本的软件,因此大大降低了维护软件的复杂程度。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种边缘组件的示意图;
图2为本申请实施例提供的一种软件升级的方法流程图;
图3为本申请实施例提供的另一种软件升级的方法流程图;
图4为本申请实施例提供的一种软件升级的装置的结构示意图;
图5为本申请实施例提供的一种软件升级的装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种软件升级的方法,该方法应用于包括服务器与至少两个边缘设备的***,每个边缘设备中设置有边缘组件,边缘组件用于承载容器化运行环境,该方法执行于边缘组件。其中,边缘设备可以是家庭智能边缘设备,比如智能音箱、智能路由器或者智能存储网关等,边缘设备也可以是向企业或服务提供商核心网络提供入口点的设备。
这些边缘设备可以与服务器构成一个***,在该***中,服务器可以向该服务器下的各边缘设备提供软件升级所用的镜像文件,以使得边缘设备可以更新边缘设备中的待升级软件。
如图1所示,图1为本申请实施例提供一种边缘组件的示意图。边缘组件中包括:长连接模块、定时升级模块、下载引擎模块、应用程序接口(Application ProgrammingInterface,API)以及服务引擎模块,其中,服务引擎模块包括开源引擎子模块以及原生引擎子模块。
其中,长连接模块用于接收服务器发送的软件升级消息,根据软件升级消息建立下载待升级软件最新版本的镜像文件的下载任务,并将该下载任务发送至下载引擎模块。
定时升级模块用于定期访问升级链接,边缘设备可以通过定期访问升级链接的方式,向服务器发送升级请求,并根据服务器发送的升级消息建立下载待升级软件最新版本的镜像文件的下载任务,并将该下载任务发送至下载引擎模块。
当下载引擎模块接收到下载任务时,可以通过下载任务包括的下载方式(比如对等网络下载方式或者超文本传输协议下载方式),下载待升级软件最新版本的镜像文件并进行校验。
其中,校验是下载完成后,边缘组件检查文件是否正确的操作。
经边缘设备的校验,若该镜像文件与下载任务应该下载的镜像文件一致,则下载引擎模块将待升级软件最新版本的镜像文件发送至API。
API用于衔接软件***的不同组成部分,当API接收到下载引擎发送的镜像文件时,可以将该镜像文件发送至服务引擎模块。
服务引擎模块用于管理边缘设备中的软件,服务引擎模块包括开源引擎子模块以及原生引擎子模块两种子模块,每种子模块分别对应一种运行方式,边缘设备可以根据服务器发送的升级消息,自行选择运行两种子模块中的一种。
其中,针对两种子模块各自的运行方式,开源引擎子模块适用于软件***内核版本为3.10版本及3.10版本以上的边缘设备,开源引擎子模块可以承载容器化运行环境,并在承载的容器化运行环境中运行镜像文件,达到镜像文件与软件***兼容的目的。开源引擎子模块的功能还可以包括:对边缘设备中的软件进行启动、结束、重启、升级、资源分配等。
原生引擎子模块适用于软件***内核版本低于3.10版本的边缘设备,其功能可以包括:对边缘设备中的软件进行启动、结束、重启、升级等操作。
下面将结合具体实施方式对本申请实施例提供的一种软件升级的方法进行详细的说明,该方法执行于图1所示的边缘组件,如图2所示,具体步骤如下:
步骤201、获取待升级软件的最新版本适用的硬件架构信息。
其中,步骤201可以由图1中长连接模块或者定时升级模块执行。
边缘设备的硬件架构可以包括处理器的架构,例如,处理器的架构可以为x86架构(The x86 architecture)、arm架构(Acorn Reduced Instruction Set ComputingMachine)或者mipsle架构(Microprocessor without interlocked piped stagesarchitecture)等。
步骤202、若待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,则生成下载任务。
其中,步骤202可以由图1中长连接模块或者定时升级模块执行。
若待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,则说明该待升级软件的最新版本适用于该边缘设备的硬件架构。
进而,边缘组件可以根据该软件升级消息,建立用于下载最新版本的待升级软件对应的镜像文件的下载任务。
下载任务用于下载待升级软件的最新版本对应的镜像文件,镜像文件可以为边缘设备需要安装的最新版本的待升级软件的安装文件。
例如,若待升级软件的最新版本适用的硬件架构信息为x86架构的处理器,边缘设备的硬件架构信息为x86架构的处理器,则边缘组件可以生成下载镜像文件的下载任务。
步骤203、根据下载任务,从服务器下载镜像文件。
其中,步骤203可以由图1中的下载引擎模块执行。
步骤204、在容器化运行环境中运行镜像文件。
其中,步骤204可以由图1中的服务引擎模块执行。
具体的,下载引擎子模块从服务器下载镜像文件后,下载引擎子模块可以向API发送该镜像文件,当API接收到下载引擎发送的镜像文件时,API可以向服务引擎模块发送该镜像文件。
当服务引擎模块接收到该镜像文件时,服务引擎模块可以通过开源引擎子模块运行该镜像文件,开源引擎子模块可以基于自身的接口,在承载的容器化运行环境中运行镜像文件,来实现待升级软件的升级操作。
根据图1所述内容,若边缘组件所属的边缘设备的软件***内核版本为3.10版本或3.10以上的版本,则开源引擎子模块可以在承载的容器化运行环境中运行下载后的镜像文件。
其中,若开源引擎子模块在硬件构架相同、软件***版本不同的边缘设备中承载相同的容器化运行环境,则这些硬件构架相同、软件***版本不同的边缘设备可以运行同一版本的软件。
本申请实施例提供的一种软件升级的方法,本申请实施例中的边缘设备中都设置有边缘组件,相比于现有技术中需要为不同软件***内核版本边缘设备维护不同版本的软件,本申请实施例由于每个边缘组件都承载了容器化运行环境,容器化运行环境可以运行相同版本的软件以及相同的镜像文件,所以在软件升级时,如果待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,就可以生成下载任务,并下载待升级软件对应的镜像文件,即使各边缘设备的***版本不同,各边缘设备也可以通过容器化运行环境运行相同的镜像文件,所以本申请无需为不同软件***内核版本边缘设备维护不同版本的软件,因此大大降低了维护软件的复杂程度。
本申请实施例中,将容器技术应用于边缘设备,可以实现在大量的边缘设备上提供统一的容器化运行环境,由于通过上述方法减少了维护软件版本的数量,因此可以减少维护软件的成本,提高服务器对边缘设备中的软件的管理和升级的效率。
在实际应用中,本申请实施例提供的方法可以应用在智能设备中,例如:智能设备可以是一种家庭智能设备,该家庭智能设备中可以设置边缘组件。
服务器可以向该家庭智能设备下发多种应用软件,以使得该家庭智能设备可以实现多种功能,比如,播放视频、存储文件和服务器等功能。
通过本申请实施例提供的方法,可以提高服务器对上述应用软件的管理效率和下发效率。
可选的,上述步骤201、获取待升级软件的最新版本适用的硬件架构信息的具体可实施方式如下:
接收服务器发送的软件升级消息,从软件升级消息中获取待升级软件对应的最新版本适用的硬件架构信息。
其中,当最新版本的待升级软件在服务器中上线时,服务器可以向各边缘设备中的边缘组件发送该最新版本的待升级软件对应的软件升级消息,该软件升级消息包括待升级软件的最新版本适用的硬件架构信息。
当最新版本的待升级软件在服务器上线时,服务器可以向服务器下的边缘设备发送升级消息,以供服务器下的边缘设备进行升级。若服务器在最新版本的待升级软件上线的同时,向服务器下的各边缘设备发送升级消息,则可以实现实时更新的目的。
因此,边缘组件通过上述过程,可以实现在最新版本的待升级软件上线的及时对待升级软件进行升级,保证了边缘组件更新软件的时效性。
本申请实施例中,由于升级消息可以由服务器通过长连接方式,统一下发到服务器下的各边缘设备,因此大大提高了软件资源管理效率。
可选的,在另一种可实施方式中,若上一次升级待升级软件的时刻与当前时刻之间的时长大于或者等于预设时长,则向服务器发送升级请求,并接收服务器发送的升级消息。
升级请求用于请求获取待升级软件的最新版本对应的硬件架构信息,服务器接收到该升级请求后,可以向边缘组件发送升级响应,在本申请实施例中,升级响应可以是上述升级消息,升级消息包括待升级软件的最新版本对应的硬件架构信息。
为了应对边缘组件未接收到服务器主动发送的升级消息的情况,边缘组件可以通过定期向服务器发送升级请求,以保证边缘组件避免遗漏升级的情况发生。
基于上述内容,作为示例,升级消息具体包括以下内容:
所需升级的服务或软件的名称:服务A,
边缘设备的软件***:Linux***,
边缘设备的处理器:arm32位处理器,
服务引擎模块运行的子模块:docker(应用容器引擎)引擎子模块,
镜像文件的下载地址:http://update.XXX.com/agent/,
升级消息中的信息摘要:DZviUYSgmmgqqB+k2SOAxQ==,
边缘组件下载镜像文件的下载方式:超文本传输协议(HyperText TransferProtocol,http)下载方式,
镜像文件的版本信息:682e45c。
可选的,边缘组件建立的下载任务包括下载方式,下载方式可以为对等网络下载方式或超文本传输协议下载方式,边缘组件可以根据升级消息中服务器指定的下载方式确定下载方式。
基于下载方式的不同,上述步骤203、根据下载任务,从服务器下载镜像文件,具体可以包括以下两种下载方式:
方式一、若下载方式为对等网络下载方式,则通过对等网络下载方式,从其他边缘设备下载镜像文件。
其中,对等网络是一种在对等者之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。采用对等网络下载方式,边缘组件可以从其他边缘设备中获取资源,可以提高下载速度、保证下载的成功率并且降低了下载服务器的压力。
方式二、若下载方式信息为超文本传输协议下载方式,则通过超文本传输协议下载方式,从服务器下载镜像文件。
本申请实施例中,边缘组件下载待升级软件的最新版本对应的镜像文件后,可以检测该镜像文件与边缘组件应该下载的镜像文件是否一致。
其中,应该下载的镜像文件为边缘设备建立下载任务时,下载任务对应的镜像文件,由于可能存在下载时发生错误或者下载路径被恶意篡改的情况,因此边缘组件可以在下载完成后,检测下载后的镜像文件与边缘组件应该下载的镜像文件是否一致。
例如,边缘组件下载待升级软件的最新版本对应的镜像文件后,可以确定下载后的镜像文件中的信息摘要,若下载后的镜像文件中的信息摘要与边缘组件应该下载的镜像文件的信息摘要一致,则证明下载后的镜像文件与边缘组件应该下载的镜像文件一致。
若下载后的镜像文件与边缘组件应该下载的镜像文件不一致,则边缘组件可以向服务器进行报错,并重新生成用于下载待升级软件的最新版本对应的镜像文件的下载任务。
其中,信息摘要可以由消息摘要5算法(Message-Digest5 Algorithm,MD5)生成,信息摘要可以用于检测下载后的镜像文件与应该下载的镜像文件是否一致,信息摘要由一串字符组成,该一串字符为镜像文件独有的一串字符,因此信息摘要具有检测一致性的功能。
可选的,在上述步骤201、获取待升级软件的最新版本适用的硬件架构信息之前,若边缘设备的软件***内核版本低于3.10版本,则服务器可以通过升级消息指定边缘组件运行原生引擎子模块。
在实际应用中,仍有小部分边缘设备采用版本低于3.10版本的***内核,因此为保证所有的边缘设备均可以顺利升级,本申请实施例提供了图3所示流程。
如图3所示,边缘组件通过原生引擎子模块升级待升级软件的过程,具体可以包括如下步骤:
步骤301、若当前***版本不支持承载容器化运行环境,则获取待升级软件对应的升级文件的最新版本适用的硬件架构信息和***版本信息。
步骤302、若待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,且***版本信息包括边缘设备的***版本,则生成下载任务。
其中,下载任务用于下载待升级软件对应的升级文件。
步骤303、根据下载任务,从服务器下载待升级软件对应的升级文件。
步骤304、在当前***版本对应的***进程中运行待升级软件对应的升级文件。
其中,图3所示的过程针对于***内核版本低于3.10版本的边缘设备的软件升级过程。
基于相同的技术构思,本申请实施例还提供了一种软件升级的装置,如图4所示,该装置包括:获取模块401、生成模块402、下载模块403和运行模块404;
获取模块401,用于获取待升级软件的最新版本适用的硬件架构信息;
生成模块402,用于若待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,则生成下载任务,下载任务用于下载待升级软件的最新版本对应的镜像文件;
下载模块403,用于根据下载任务,从服务器下载镜像文件;
运行模块404,用于在容器化运行环境中运行镜像文件,以实现待升级软件的升级操作。
可选的,下载任务包括下载方式,下载方式为对等网络下载方式或超文本传输协议下载方式;下载模块403,具体用于:
若下载方式为对等网络下载方式,则通过对等网络下载方式,从其他边缘设备下载镜像文件;
若下载方式信息为超文本传输协议下载方式,则通过超文本传输协议下载方式,从服务器下载镜像文件。
可选的,获取模块401,具体用于:
接收服务器发送的软件升级消息,软件升级消息包括待升级软件的最新版本适用的硬件架构信息;
从软件升级消息中获取待升级软件对应的最新版本适用的硬件架构信息。
可选的,如图5所示,该装置还包括:请求模块405;
请求模块405,用于若上一次升级待升级软件的时刻与当前时刻之间的时长大于或者等于预设时长,则向服务器发送升级请求,升级请求用于向服务器请求获取待升级软件的最新版本适用的硬件架构信息。
可选的,
获取模块401,还用于若当前***版本不支持承载容器化运行环境,则获取待升级软件对应的升级文件的最新版本适用的硬件架构信息和***版本信息;
生成模块402,还用于若待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,且***版本信息包括边缘设备的***版本,则生成下载任务,下载任务用于下载待升级软件对应的升级文件;
下载模块403,还用于根据下载任务,从服务器下载待升级软件对应的升级文件;
运行模块404,还用于在当前***版本对应的***进程中运行待升级软件对应的升级文件。
本申请实施例提供的一种软件升级的装置,本申请实施例中的边缘设备中都设置有边缘组件,相比于现有技术中需要为不同软件***内核版本边缘设备维护不同版本的软件,本申请实施例由于每个边缘组件都承载了容器化运行环境,容器化运行环境可以运行相同版本的软件以及相同的镜像文件,所以在软件升级时,如果待升级软件的最新版本适用的硬件架构信息包括边缘设备的硬件架构信息,就可以生成下载任务,并下载待升级软件对应的镜像文件,即使各边缘设备的***版本不同,各边缘设备也可以通过容器化运行环境运行相同的镜像文件,所以本申请无需为不同软件***内核版本边缘设备维护不同版本的软件,因此大大降低了维护软件的复杂程度。
本申请实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
获取待升级软件的最新版本适用的硬件架构信息;
若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,则生成下载任务,所述下载任务用于下载所述待升级软件的最新版本对应的镜像文件;
根据所述下载任务,从所述服务器下载所述镜像文件;
在所述容器化运行环境中运行所述镜像文件,以实现所述待升级软件的升级操作。
需要说明的是,处理器601,用于执行存储器603上所存放的程序时,还用于实现上述方法实施例中描述的其他步骤,可参考上述方法实施例中的相关描述,此处不再赘述。
上述网络设备提到的通信总线可以是外设部件互连标准(英文:PeripheralComponent Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended IndustryStandard Architecture,简称:EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述网络设备与其他设备之间的通信。
存储器可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括非易失性存储器(英文:Non-Volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述软件升级的方法步骤。
基于相同的技术构思,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述软件升级的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种软件升级的方法,其特征在于,所述方法应用于包括服务器与至少两个边缘设备的***,每个所述边缘设备中设置有边缘组件,所述边缘组件用于承载容器化运行环境,所述方法执行于所述边缘组件,所述方法包括:
获取待升级软件的最新版本适用的硬件架构信息;
若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,则生成下载任务,所述下载任务用于下载所述待升级软件的最新版本对应的镜像文件;
根据所述下载任务,从所述服务器下载所述镜像文件;
在所述容器化运行环境中运行所述镜像文件,以实现所述待升级软件的升级操作。
2.根据权利要求1所述的方法,其特征在于,所述下载任务包括下载方式,所述下载方式为对等网络下载方式或超文本传输协议下载方式;所述根据所述下载任务,从所述服务器下载所述镜像文件,包括:
若所述下载方式为对等网络下载方式,则通过所述对等网络下载方式,从其他边缘设备下载所述镜像文件;
若所述下载方式信息为超文本传输协议下载方式,则通过所述超文本传输协议下载方式,从所述服务器下载所述镜像文件。
3.根据权利要求1所述的方法,其特征在于,所述获取待升级软件的最新版本适用的硬件架构信息,包括:
接收服务器发送的软件升级消息,所述软件升级消息包括所述待升级软件的最新版本适用的硬件架构信息;
从所述软件升级消息中获取所述待升级软件对应的最新版本适用的硬件架构信息。
4.根据权利要求3所述的方法,其特征在于,在所述接收服务器发送的软件升级消息之前,所述方法还包括:
若上一次升级所述待升级软件的时刻与当前时刻之间的时长大于或者等于预设时长,则向所述服务器发送升级请求,所述升级请求用于向所述服务器请求获取所述待升级软件的最新版本适用的硬件架构信息。
5.根据权利要求1所述的方法,其特征在于,在所述获取待升级软件的最新版本适用的硬件架构信息之前,所述方法还包括:
若当前***版本不支持承载容器化运行环境,则获取所述待升级软件对应的升级文件的最新版本适用的硬件架构信息和***版本信息;
若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,且所述***版本信息包括所述边缘设备的***版本,则生成下载任务,所述下载任务用于下载所述待升级软件对应的升级文件;
根据所述下载任务,从所述服务器下载所述待升级软件对应的升级文件;
在当前***版本对应的***进程中运行所述待升级软件对应的升级文件。
6.一种软件升级的装置,其特征在于,所述装置应用于包括服务器与至少两个边缘设备的***,每个所述边缘设备中设置有边缘组件,所述边缘组件用于承载容器化运行环境,所述装置执行于所述边缘组件,所述装置包括:
获取模块,用于获取待升级软件的最新版本适用的硬件架构信息;
生成模块,用于若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,则生成下载任务,所述下载任务用于下载所述待升级软件的最新版本对应的镜像文件;
下载模块,用于根据所述下载任务,从所述服务器下载所述镜像文件;
运行模块,用于在所述容器化运行环境中运行所述镜像文件,以实现所述待升级软件的升级操作。
7.根据权利要求6所述的装置,其特征在于,所述下载任务包括下载方式,所述下载方式为对等网络下载方式或超文本传输协议下载方式;所述下载模块,具体用于:
若所述下载方式为对等网络下载方式,则通过所述对等网络下载方式,从其他边缘设备下载所述镜像文件;
若所述下载方式信息为超文本传输协议下载方式,则通过所述超文本传输协议下载方式,从所述服务器下载所述镜像文件。
8.根据权利要求6所述的装置,其特征在于,所述获取模块,具体用于:
接收服务器发送的软件升级消息,所述软件升级消息包括所述待升级软件的最新版本适用的硬件架构信息;
从所述软件升级消息中获取所述待升级软件对应的最新版本适用的硬件架构信息。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:请求模块;
所述请求模块,用于若上一次升级所述待升级软件的时刻与当前时刻之间的时长大于或者等于预设时长,则向所述服务器发送升级请求,所述升级请求用于向所述服务器请求获取所述待升级软件的最新版本适用的硬件架构信息。
10.根据权利要求6所述的装置,其特征在于,
所述获取模块,还用于若当前***版本不支持承载容器化运行环境,则获取所述待升级软件对应的升级文件的最新版本适用的硬件架构信息和***版本信息;
所述生成模块,还用于若所述待升级软件的最新版本适用的硬件架构信息包括所述边缘设备的硬件架构信息,且所述***版本信息包括所述边缘设备的***版本,则生成下载任务,所述下载任务用于下载所述待升级软件对应的升级文件;
所述下载模块,还用于根据所述下载任务,从所述服务器下载所述待升级软件对应的升级文件;
所述运行模块,还用于在当前***版本对应的***进程中运行所述待升级软件对应的升级文件。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910890350.2A CN110716734B (zh) | 2019-09-20 | 2019-09-20 | 一种软件升级的方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910890350.2A CN110716734B (zh) | 2019-09-20 | 2019-09-20 | 一种软件升级的方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716734A true CN110716734A (zh) | 2020-01-21 |
CN110716734B CN110716734B (zh) | 2024-04-23 |
Family
ID=69209978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910890350.2A Active CN110716734B (zh) | 2019-09-20 | 2019-09-20 | 一种软件升级的方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110716734B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611003A (zh) * | 2020-05-26 | 2020-09-01 | 网神信息技术(北京)股份有限公司 | 离线升级方法、装置、电子设备和计算机可读存储介质 |
CN112653573A (zh) * | 2020-11-26 | 2021-04-13 | 深圳泰首智能技术有限公司 | 一种人脸识别的数据升级方法、装置、及人脸识别*** |
WO2022226703A1 (zh) * | 2021-04-25 | 2022-11-03 | 西门子股份公司 | 软件模块部署方法、装置、计算设备以及存储介质 |
CN116603245A (zh) * | 2023-07-21 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 程序版本调整方法、装置、设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470609A (zh) * | 2007-12-28 | 2009-07-01 | Tcl集团股份有限公司 | 一种软件升级的方法、***及电子设备 |
CN102546207A (zh) * | 2010-12-23 | 2012-07-04 | 中兴通讯股份有限公司 | 一种分布式集中调度升级网元软件版本的方法和*** |
CN102571446A (zh) * | 2012-02-08 | 2012-07-11 | 华为技术有限公司 | 网络设备的升级方法、装置及*** |
WO2014176832A1 (zh) * | 2013-04-28 | 2014-11-06 | 烽火通信科技股份有限公司 | 智能终端管理家庭网关的***及方法 |
CN105099774A (zh) * | 2015-07-08 | 2015-11-25 | 上海斐讯数据通信技术有限公司 | 一种路由器软件升级方法及*** |
CN107621937A (zh) * | 2017-08-16 | 2018-01-23 | 珠海格力电器股份有限公司 | 软件程序升级的方法、装置和*** |
CN108259231A (zh) * | 2017-12-27 | 2018-07-06 | 生迪智慧科技有限公司 | 智能设备的软件升级方法、网关、服务器及*** |
CN109766108A (zh) * | 2018-12-12 | 2019-05-17 | 北京梧桐车联科技有限责任公司 | 车载终端软件升级***、方法及装置 |
-
2019
- 2019-09-20 CN CN201910890350.2A patent/CN110716734B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470609A (zh) * | 2007-12-28 | 2009-07-01 | Tcl集团股份有限公司 | 一种软件升级的方法、***及电子设备 |
CN102546207A (zh) * | 2010-12-23 | 2012-07-04 | 中兴通讯股份有限公司 | 一种分布式集中调度升级网元软件版本的方法和*** |
CN102571446A (zh) * | 2012-02-08 | 2012-07-11 | 华为技术有限公司 | 网络设备的升级方法、装置及*** |
WO2014176832A1 (zh) * | 2013-04-28 | 2014-11-06 | 烽火通信科技股份有限公司 | 智能终端管理家庭网关的***及方法 |
CN105099774A (zh) * | 2015-07-08 | 2015-11-25 | 上海斐讯数据通信技术有限公司 | 一种路由器软件升级方法及*** |
CN107621937A (zh) * | 2017-08-16 | 2018-01-23 | 珠海格力电器股份有限公司 | 软件程序升级的方法、装置和*** |
CN108259231A (zh) * | 2017-12-27 | 2018-07-06 | 生迪智慧科技有限公司 | 智能设备的软件升级方法、网关、服务器及*** |
CN109766108A (zh) * | 2018-12-12 | 2019-05-17 | 北京梧桐车联科技有限责任公司 | 车载终端软件升级***、方法及装置 |
Non-Patent Citations (1)
Title |
---|
李云峰;: "把路由器的"耳朵"叫醒――升级路由器", 电脑爱好者 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611003A (zh) * | 2020-05-26 | 2020-09-01 | 网神信息技术(北京)股份有限公司 | 离线升级方法、装置、电子设备和计算机可读存储介质 |
CN112653573A (zh) * | 2020-11-26 | 2021-04-13 | 深圳泰首智能技术有限公司 | 一种人脸识别的数据升级方法、装置、及人脸识别*** |
WO2022226703A1 (zh) * | 2021-04-25 | 2022-11-03 | 西门子股份公司 | 软件模块部署方法、装置、计算设备以及存储介质 |
CN116603245A (zh) * | 2023-07-21 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 程序版本调整方法、装置、设备及可读存储介质 |
CN116603245B (zh) * | 2023-07-21 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 程序版本调整方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110716734B (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110716734B (zh) | 一种软件升级的方法、装置、电子设备及介质 | |
US11924068B2 (en) | Provisioning a service | |
US10419289B2 (en) | System and method for configuration management service | |
US9485134B2 (en) | Managing configurations of system management agents in a distributed environment | |
CN102413022B (zh) | 一种应用调试方法和*** | |
CN111970315A (zh) | 推送消息的方法、装置及*** | |
JP6859340B2 (ja) | グローバル情報を取得、処理および更新するための装置、システムおよび方法 | |
JP2010508581A (ja) | ウェブベースアプリケーションのオフライン実行 | |
TW200412509A (en) | Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN110855746A (zh) | 中间件管理方法、电子装置及存储介质 | |
CN112702195A (zh) | 网关配置方法、电子设备及计算机可读存储介质 | |
CN112015454B (zh) | ***升级包的生成方法、装置、电子设备及存储介质 | |
CN111897565A (zh) | 基于物联网的数据处理方法、装置和设备 | |
CN108418857B (zh) | 一种Zookeeper集群***及其连接方法和装置 | |
CN113949708B (zh) | 一种支持灰度升级访问流量控制的服务总线设计方法 | |
CN114221996A (zh) | 一种服务调用方法、装置、电子设备、存储介质 | |
CN111506846B (zh) | Web页面生成方法、装置、电子设备及存储介质 | |
CN115686813A (zh) | 一种资源调度方法、装置、电子设备和存储介质 | |
CN113992622A (zh) | 一种基于统一模型的多模板聚合消息通知发送***及方法 | |
JP2021184235A5 (zh) | ||
CN115102854B (zh) | 微服务的远程过程调用路由管理控制方法、***及设备 | |
JP7456507B2 (ja) | 情報流通装置、情報流通方法及びプログラム | |
CN111512612A (zh) | 用于远程管理连接到住宅网关的设备的方法 | |
US11860752B2 (en) | Agentless system and method for discovering and inspecting applications and services in compute environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |