掌桥专利:专业的专利平台
掌桥专利
首页

一种软件部署方法、系统、存储介质及电子装置

文献发布时间:2024-04-18 20:02:18


一种软件部署方法、系统、存储介质及电子装置

技术领域

本申请实施例涉及通信领域,具体而言,涉及一种软件部署方法、系统、存储介质及电子装置。

背景技术

在现有的网络设备中,软件版本文件类型多样化,硬件单板类型多样化,而且随着业务场景的不同,相同硬件类型的单板上可能还需要部署不同的软件版本文件,这就造成了软件部署具有很大的难度。

现有技术中,比较常用的方法是采用硬编码,在代码中定义不同的硬件单板类型以及在不同业务类型下需要哪些软件版本文件,每个硬件单板在上电后都需要根据代码中的这个描述来决定需要加载哪些软件版本文件。但由于该方法是直接将数据嵌入到硬件单板的程序中,灵活度低,且扩展性能较差。

针对相关技术中采用直接将数据嵌入到硬件单板的程序中的硬编码方式,软件部署的扩展性能差、不易于项目维护、不利于网络设备软件平台化的实现的问题,尚未提出解决方案。

发明内容

本申请实施例提供了一种软件部署方法、系统、存储介质及电子装置,以至少解决相关技术中采用直接将数据嵌入到硬件单板的程序中的硬编码方式,软件部署的扩展性能差、不易于项目维护、不利于网络设备软件平台化的实现的问题。

根据本申请的一个实施例,提供了一种软件部署方法,应用于主控节点的服务端,所述方法包括:

接收硬件单板上电后发送的软件部署请求条件;

根据所述软件部署请求条件从系统软件库中确定目标软件版本文件;

查询所述目标软件版本文件的补充文件信息,并根据所述补充文件信息生成软件版本文件列表;

将所述软件版本文件列表发送给所述硬件单板,以使所述硬件单板根据所述软件版本文件列表下载并运行所述目标软件版本文件。

根据本申请的另一个实施例,提供了一种软件部署方法,应用于每个硬件单板的客户端,所述方法包括:

上电后向服务端发送软件部署请求条件,以使所述服务端根据所述软件部署请求条件从系统软件库中确定目标软件版本文件,并生成所述目标软件版本文件的软件版本文件列表;

接收所述软件版本文件列表;

根据所述软件版本文件列表下载并运行所述目标软件版本文件。

根据本申请的另一个实施例,还提供了一种软件部署系统,所述系统包括:一个服务端和多个客户端,其中,

所述服务端位于主控节点,所述多个客户端位于各个硬件单板中;

所述服务端,用于接收所述客户端在硬件单板上电后发送的软件部署请求条件;根据所述软件部署请求条件从系统软件库中确定目标软件版本文件;查询所述目标软件版本文件的补充文件信息,并根据所述补充文件信息生成软件版本文件列表;将所述软件版本文件列表发送给对应的客户端;

所述客户端,用于根据所述软件版本文件列表下载并运行所述目标软件版本文件。

根据本申请的叉一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器运行时执行上述任一项方法实施例中的步骤。

根据本申请的叉一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

本申请实施例,接收硬件单板上电后发送的软件部署请求条件;根据所述软件部署请求条件从系统软件库中确定目标软件版本文件;查询所述目标软件版本文件的补充文件信息,并根据所述补充文件信息生成软件版本文件列表;将所述软件版本文件列表发送给所述硬件单板,以使所述硬件单板根据所述软件版本文件列表下载并运行所述目标软件版本文件,可以解决相关技术中采用直接将数据嵌入到硬件单板的程序中的硬编码方式,软件部署的扩展性能差、不易于项目维护、不利于网络设备软件平台化的实现的问题,消除了软件部署中不必要的间接性和复杂性,更加灵活易扩展,提升了用户体验。

附图说明

图1是本申请实施例的软件部署方法的硬件单板的硬件结构框图;

图2是根据本申请实施例的软件部署方法的流程图;

图3是根据本申请另一实施例的软件部署方法的流程图;

图4是根据本实施例的软件部署模型示意图;

图5是根据本实施例的一种软件版本文件部署示意图;

图6是根据本实施例的一种软件版本文件打包配置示意图;

图7是根据另一实施例的一种软件版本文件规则匹配示意图;

图8是根据另一实施例的一种软件版本文件灵活部署示意图;

图9是根据本申请实施例的软件部署系统的框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请的实施例。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在硬件单板上为例,图1是本申请实施例的软件部署方法的硬件单板的硬件结构框图,如图1所示,硬件单板可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述硬件单板还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述硬件单板的结构造成限定。例如,硬件单板还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的软件部署方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及软件部署处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于网络设备主控节点的软件部署方法,图2是根据本申请实施例的软件部署方法的流程图,如图2所示,该流程包括如下步骤:

步骤S202,接收硬件单板上电后发送的软件部署请求条件;

步骤S204,根据所述软件部署请求条件从系统软件库中确定目标软件版本文件;

步骤S206,查询所述目标软件版本文件的补充文件信息,并根据所述补充文件信息生成软件版本文件列表;

步骤S208,将所述软件版本文件列表发送给所述硬件单板,以使所述硬件单板根据所述软件版本文件列表下载并运行所述目标软件版本文件。

在本实施例中,上述步骤S204具体可以包括:获取所述系统软件库中所有软件版本文件的软件部署文件,其中,所述软件部署文件包含所述软件版本文件的部署约束条件;根据所述部署约束条件从所述系统软件库中匹配满足所述软件部署请求条件的目标软件版本文件。

在本实施例中,软件部署请求条件和部署约束条件是使用软件部署语言SDL描述的多对关键字和关键字值的集合;在所述部署约束条件的关键字和关键字值与所述软件部署请求条件的关键字和关键字值匹配的情况下,将所述部署约束条件对应的软件版本文件确定为目标软件版本文件。

具体地,软件部署语言SDL是基于领域特定语言(Domain Specific Language,简称为DSL)的思想,为本申请中的软件部署方法专门设计的一种新的软件部署语言(Software Deployment Language,简称为SDL)。

在另一实施例中,软件部署文件中还包含所述软件版本文件的部署策略;根据所述部署策略匹配一个或多个目标软件版本文件。具体地,在所述部署策略为选择策略的情况下,将匹配到的第一个软件版本文件确定为目标软件版本文件;在所述部署策略为合并策略的情况下,将匹配到的全部软件版本文件确定为目标软件版本文件。

具体的,软件部署文件中包含软件版本文件的部署策略和部署约束条件,是采用SDL语言表达的sdl文件。

在一实施例中,上述步骤S206具体可以包括:根据所述目标软件版本文件的名称从补充描述文件中查询所述目标软件版本文件的补充文件信息,其中,所述补充文件信息包括:文件大小、循环冗余校验(Cyclic Redundancy Check,简称为CRC)校验码及路径信息;根据所述目标软件版本文件的名称、文件大小、CRC校验码及路径信息生成所述软件版本文件列表。

具体地,软件部署文件和补充描述文件都是使用SDL语言表达的,系统软件库中的每一个软件版本文件(软件包)都有其对应的软件部署文件(sdl文件)和补充描述文件(fileinfo文件),fileinfo文件是对sdl文件中软件版本文件的补充描述。一个sdl文件或fileinfo文件中可以包含多个软件包的信息。

在一实施例中,所述软件部署请求条件,包括以下至少一项:业务类型,处理器类型,所述硬件单板的编号,所述硬件单板的物料编号,所述硬件单板的制板编号,用户预先配置的条件。

具体的,软件部署请求条件和部署约束条件是使用SDL描述的多对关键字和关键字值的集合,关键字可以根据硬件单板进行设定,也可以是用户自行设定的部署约束,关键字的内容可以包括:业务类型,处理器类型,所述硬件单板的编号,所述硬件单板的物料编号,所述硬件单板的制板编号,用户预先配置的条件等。

通过上述步骤S202至S208,可以解决相关技术中采用直接将数据嵌入到硬件单板的程序中的硬编码方式,软件部署的扩展性能差、不易于项目维护、不利于网络设备软件平台化的实现的问题,通过使用SDL语言表达的软件部署请求条件和部署约束条件,消除了软件部署中不必要的间接性和复杂性,更加灵活易扩展,提升了用户体验。

图3是根据本申请另一实施例的软件部署方法的流程图,应用于硬件单板的客户端,如图3所示,该流程包括如下步骤:

步骤S302,上电后向服务端发送软件部署请求条件,以使所述服务端根据所述软件部署请求条件从系统软件库中确定目标软件版本文件,并生成所述目标软件版本文件的软件版本文件列表;

步骤S304,接收所述软件版本文件列表;

步骤S306,根据所述软件版本文件列表下载并运行所述目标软件版本文件。

在本实施例中,上述步骤S304中的软件版本文件列表具体可以包括:所述目标软件版本文件的名称、文件大小、CRC校验码及路径信息。

在本实施例中,上述步骤S306具体可以包括:根据所述目标软件版本文件的名称、文件大小、CRC校验码及路径信息下载并运行所述目标软件版本文件。可以通过ftp方式下载目标软件版本文件。

在一实施例中,通过软件部署语言SDL进行软件部署,需要使用SDL语言来描述每一个硬件单板的软件部署请求条件以及每一个软件版本文件的部署约束条件,软件部署请求条件和部署约束条件通常为一组(key,value)的集合,其中的关键字key和关键字值value可以根据硬件单板进行设定,也可以由用户自行配置,且本申请对于(key,value)的组合数量不做限定。

在本实施例中,通过SDL语言表达的软件部署请求条件如下:

lu=O&cpu=1&board=2&bom=3&pcb=4

其中,lu表示业务类型,cpu表示处理器类型,board表示硬件单板编号,bom表示硬件单板的物料编号,pcb表示硬件单板的制板编号,符号“&”表示组合关系,该软件部署请求条件表示的是(key=lu,value=0)、(key=cpu,value=1)、(key=board,value=2)、(key=bom,value=3)和(key=pcb,value=4)这样五个(key,value)的组合。

在另一实施例中,通过SDL语言表达的软件版本文件xxx和yyy的部署约束条件如下:

lu=0→xxx

lu=0&cpu=1&board=2→yyy

其中,lu表示业务类型,cpu表示处理器类型,board表示硬件单板编号,符号“&”表示组合关系。具体的,文件xxx的部署约束条件为(key=lu,value=0),文件yyy的部署约束条件为(key=lu,value=0)、(key=cpu,value=1)和(key=board,value=2)三者的组合。

在本实施例中,如果将硬件单板的软件部署请求条件定义为环境,将软件版本文件的部署约束条件定义为条件,则软件部署模型可以定义为根据软件版本文件的部署约束条件为每一组环境匹配软件版本文件的过程。具体的,上述环境lu=0&cpu=1&board=2&bom=3&pcb=4将可以匹配的软件版本文件为:xxx和yyy。

图4是根据本实施例的软件部署模型示意图,如图4所示,

将软件版本文件的部署约束条件使用SDL语言描述,并在系统上电后,将该部署约束条件读入软件部署管理(Software Deployment Management,简称为SDM)模块402,由SDM模块402对SDL格式的部署约束条件进行解析,得到软件部署信息。

在本实施例中,软件部署请求条件与对部署约束条件的软件部署模型类似,在系统中各个硬件单板上电后,由SDM模块402读取单板硬件的软件部署请求条件,并进行解析。

具体地,SDM模块可以分为SDM_CLT(SDM模块的客户端)和SDM_SVR(SDM模块的服务端),客户端位于各个硬件单板上,服务端位于系统主控节点中。

图5是根据本实施例的一种软件版本文件部署示意图,如图5所示,是网络设备中三个软件版本文件的sdl软件部署文件和fileinfo补充描述文件,多个软件版本文件软件部署信息可存储于一个sdl文件中,多个软件版本文件的补充描述信息可存储于一个fileinfo文件中。

在本实施例中,图5中的sdI文件和fileinfo文件都使用了SDL语言。

在本实施例中,fileinfo文件是对软件版本文件的sdl文件的补充描述,具体地,fileinfo文件中包括了软件版本文件的相对路径、名称、文件大小及文件的CRC校验码等补充文件信息,例如,软件版本文件A.pkg对应的补充描述信息如下:

path=bin/x86_64/proc,package=A.pkg,size=1234,crc=12345678

其中,bin/x86_64/proc是该文件的相对路径,A.pkg是该文件的名称,1234是该文件的大小,12345678是该文件的CRC校验码。

图6是根据本实施例的一种软件版本文件打包配置示意图,使用SDL语言进行描述,如图6所示,软件版本文件打包配置包括以下内容:

第1行包括匹配类型和部署策略;具体地,lu为匹配类型,表示该打包配置文件中描述的是针对lu的部署策略;switch为选择策略,表示只需要匹配第一个满足请求条件的软件版本文件;merge为合并策略,表示需要匹配所有满足请求条件的软件版本文件;第2行为匹配条件,相当于硬件单板的软件部署请求条件,用于匹配对应的目标软件版本文件;其余表示与第2行中匹配条件对应的软件版本文件资源。

在本实施例中,不同软件版本文件的请求策略文件可以由不同项目负责编写,产品特定版本文件的请求策略文件可以由产品自行定制,只要硬件单板的请求条件与SDL描述匹配,就可以正确的请求到对应的软件版本文件。

图7是根据另一实施例的一种软件版本文件规则匹配示意图,如图7所示,所述方法具体包括以下步骤:

步骤S701,系统中的各个硬件单板上电后,单板上的SDM_CLT将各自的软件部署请求条件发送给SDM_SVR;

步骤S702,SDM_SVR收到各个单板的软件部署请求条件后,从系统软件包的sdl文件中匹配到对应的软件版本文件,并根据软件版本文件的名称从fileinfo文件中查询到软件版本文件的大小、CRC等信息,生成软件版本文件列表;

步骤S703,SDM_SVR将最终生成的软件版本文件列表发送给各个硬件单板的SDM_CLT;

步骤S704,各个硬件单板的SDM_CLT收到软件版本文件列表后,再通过ftp方式从SDM_CLT中下载软件版本文件到本硬件单板上,并加载运行。

通过上述步骤S701至步骤S704,可以将软件部署策略和软件部署机制分离,提供一种平台化的软件部署方案,且使用的SDL语言天然便于拆分和合并,使该软件部署方案更加灵活易拓展,提升了用户体验。

图8是根据另一实施例的一种软件版本文件灵活部署示意图,如图8所示,所述方法具体包括以下步骤:

步骤S801,用户通过配置来指定硬件单板1支持service S;

步骤S802,各个硬件单板上电后,单板上的SDM_CLT将各自的软件部署请求条件发送给SDM_SVR,与其他单板相比,硬件单板1的软件部署请求条件中增加了service=S条件;

步骤S803,从系统软件包的sdl文件中匹配到对应的软件版本文件,并生成软件版本文件列表;由于只有软件包D.pkg的sdl文件中描述了部署约束service=S,因此只有硬件单板1能匹配到软件包D.pkg的软件版本文件;

步骤S804,SDM_SVR将软件版本文件列表发送给各个硬件单板的SDM_CLT;

步骤S805,通过ftp方式从SDM_CLT中下载软件版本文件到本硬件单板上,并加载运行,具体地,只有硬件单板1最终能够部署软件包D.pkg中的软件版本文件。

通过上述步骤S801至步骤S805,用户可以自行配置各个硬件单板的软件部署请求条件,实现软件版本文件的灵活部署,提升了用户体验。

根据本申请实施例的另一方面,还提供了一种软件部署系统,图9是根据本申请实施例的软件部署系统的框图,如图9所示,软件部署系统包括一个服务端902和多个客户端904:

服务端902位于主控节点,多个客户端904位于各个硬件单板中;

服务端902,用于接收所述客户端904在硬件单板上电后发送的软件部署请求条件;根据所述软件部署请求条件从系统软件库中确定目标软件版本文件;查询所述目标软件版本文件的文件信息,并根据所述目标软件版本文件的文件信息生成软件版本文件列表;将所述软件版本文件列表发送给对应的客户端904;

客户端904,用于根据所述软件版本文件列表下载并运行所述目标软件版本文件。

在一实施例中,所述服务端包括:

第一接收模块,用于接收硬件单板上电后发送的软件部署请求条件;

匹配模块,用于根据所述软件部署请求条件从系统软件库中确定目标软件版本文件;

查询模块,用于查询所述目标软件版本文件的补充文件信息,并根据所述补充文件信息生成软件版本文件列表;

第一发送模块,用于将所述软件版本文件列表发送给所述硬件单板,以使所述硬件单板根据所述软件版本文件列表下载并运行所述目标软件版本文件。

在一实施例中,所述匹配模块包括:

提取子单元,用于获取所述系统软件库中所有软件版本文件的软件部署文件,其中,所述软件部署文件包含所述软件版本文件的部署约束条件;

匹配子单元,用于根据所述部署约束条件从所述系统软件库中匹配满足所述软件部署请求条件的目标软件版本文件。

所述匹配子单元,还用于在所述部署约束条件的关键字和关键字值与所述软件部署请求条件的关键字和关键字值匹配的情况下,将所述部署约束条件对应的软件版本文件确定为目标软件版本文件。

在另一实施例中,所述匹配子单元,还用于在所述部署策略为选择策略的情况下,将匹配到的第一个软件版本文件确定为目标软件版本文件;在所述部署策略为合并策略的情况下,将匹配到的全部软件版本文件确定为目标软件版本文件。

在一实施例中,所述查询模块包括:

查询子单元,用于根据所述目标软件版本文件的名称从补充描述文件中查询所述目标软件版本文件的补充文件信息,其中,所述补充文件信息包括:文件大小、CRC校验码及路径信息;

生成子单元,用于根据所述目标软件版本文件的名称、文件大小、CRC校验码及路径信息生成所述软件版本文件列表。

在一实施例中,所述客户端包括:

第二发送模块,用于在上电后向服务端发送软件部署请求条件,以使所述服务端根据所述软件部署请求条件从系统软件库中确定目标软件版本文件,并生成所述目标软件版本文件的软件版本文件列表;

第二接收模块,用于接收所述软件版本文件列表;

软件部署模块,用于根据所述软件版本文件列表下载并运行所述目标软件版本文件。

本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 储物设备、储物设备控制方法、装置、冷藏设备及系统
  • 储物设备、储物设备控制方法、装置、冷藏设备及系统
  • 储物设备、储物设备控制方法、装置、冷藏设备及系统
  • 储物装置、天线扫描控制方法及装置
  • 用于准许访问储物格设施的储物格的方法和装置
  • 以第一通信方式向储物格设施传送访问信息的方法和设备
技术分类

06120116576302