本发明涉及通信领域,具体而言,涉及一种固件程序的升级方法及装置、存储介质。
背景技术
随着数据通信市场的需求不断增长,数据通信设备的规模也在不断增大,设备内的单板数量类型和单板运行的固件程序不断增多,如何对这些固件程序进行高效管理,尤其是可以定制的自动化升级管理,是当前设备管理自动化的一个重要需求。
图1是现有技术中固件批量升级的示意图,如图1所示的技术方案,将要升级的固件程序放到主控制系统中,通过命令依次对设备内的所有单板进行升级,升级流程如图2,升级控制程序中的配置属性和判定条件要事先写好并编译完成放到主控制系统中,由于配置属性的和判定条件的改变,控制流程升级策略改变的话需要重写编写控制程序。
由于数据通信设备越来越复杂,单板数量和类型也在不断的变化,升级控制流程策略也要跟着不断改变,原来这种修改再编译程序的方法缺乏灵活性,对于不同类型的单板,不同版本的升级文件,当原有的升级策略不满足要求时,需要重新修改控制程序并编译发布,浪费了大量的时间和精力。
针对相关技术中,当原有的固件程序的升级策略不满足要求时,需要重新修改控制程序并编译发布进而浪费了大量的时间和精力的问题,尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种固件程序的升级方法及装置、存储介质,以至少解决上述问题。
根据本发明的一个实施例,提供了一种固件程序的升级方法,包括:
根据预设的固件升级需求,在主控制系统中配置与所述固件升级需求对应的可扩展标记语言(extensiblemarkuplanguage,简称为xml)管理文件,其中,所述固件升级需求对应设置有升级条件;
对所述xml管理文件进行解析,在解析结果指示存在固件程序符合所述升级条件时,对满足所述升级条件的固件程序进行升级。
可选地,对所述xml管理文件进行解析之后,所述方法还包括:
对所述xml管理文件进行解析,得到与所述xml管理文件对应的数据结构,并对所述xml管理文件中的指定属性的个数进行统计,其中,所述数据结构通过链表描述。
可选地,至少通过以下方式判定解析结果指示存在固件程序符合所述升级条件:判断出所述指定属性的个数符合所述升级条件。
可选地,所述指定属性包括以下至少之一:board元素属性,profile管理属性。
可选地,对满足所述升级条件的固件程序进行升级之后,所述方法还包括:
接收升级的固件程序反馈的升级结果;
并判断所述升级结果是否符合预设的固件升级需求。
根据本发明的另一个实施例,还提供了一种固件程序的升级装置,包括:配置模块,用于根据预设的固件升级需求,在主控制系统中配置与所述固件升级需求对应的可扩展标记语言xml管理文件,其中,所述固件升级需求对应设置有升级条件;解析模块,用于对所述xml管理文件进行解析;升级模块,用于在解析结果指示存在固件程序符合所述升级条件时,对满足所述升级条件的固件程序进行升级。
可选地,所述装置还包括:处理模块,用于对所述xml管理文件进行解析,得到与所述xml管理文件对应的数据结构,并对所述xml管理文件中的指定属性的个数进行统计,其中,所述数据结构通过链表描述。
可选地,所述处理模块,还用于至少通过以下方式判定解析结果指示存在固件程序符合所述升级条件:判断出所述指定属性的个数符合所述升级条件。
可选地,所述装置还包括:接收模块,用于接收升级的固件程序反馈的升级结果;
判断模块,用于判断所述升级结果是否符合预设的固件升级需求。
根据本发明的另一个实施例,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行以上任意一项所述的固件程序的升级方法。
通过本发明,根据预设的固件升级需求,在主控制系统中配置与所述固件升级需求对应的可扩展标记语言xml管理文件,其中,所述固件升级需求对应设置有升级条件;对所述xml管理文件进行解析,在解析结果指示存在固件程序符合所述升级条件时,对满足所述升级条件的固件程序进行升级,采用上述技术方案,解决了相关技术中,当原有的固件程序的升级策略不满足要求时,需要重新修改控制程序并编译发布进而浪费了大量的时间和精力的问题,进而在原有的固件程序的升级策略不满足要求时,通过xml管理文件进行固件程序的升级,无需编译和发布,大大节省了升级时间。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术中固件批量升级的系统组成示意图;
图2是现有技术中固件批量升级的流程示意图;
图3是根据本发明实施例的固件程序的升级方法的流程图;
图4是根据本发明实施例的固件程序的升级装置的结构框图;
图5是根据本发明实施例的固件程序的升级装置的另一结构框图;
图6是根据本发明实施例的固件程序的升级装置的又一结构框图;
图7为根据本发明优选实施例的固件程序的批量升级的系统结构示意图;
图8为根据本发明优选实施例的固件程序的批量升级的流程示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了更好的理解以下本发明实施例的技术方案,首先对本发明实施例以下出现的术语xml进行解释说明,但不用于限定本发明实施例。
xml是一种用于标记电子文件使其具有结构性的标记语言,在电子计算机中,标记指计算机所能理解的信息符号。它可以用来标记数据、定义数据类型。xml被设计用来传输和存储数据,是各种应用程序之间进行数据传输的最常用的工具,它简单易用,各种平台的应用程序都可以很容易加载并分析xml文件,并以xml格式输出结果。
实施例1
在本实施例中提供了一种固件程序的升级方法,图3是根据本发明实施例的固件程序的升级方法的流程图,如图3所示,该流程包括如下步骤:
步骤s302,根据预设的固件升级需求,在主控制系统中配置与固件升级需求对应的可扩展标记语言xml管理文件,其中,固件升级需求对应设置有升级条件;
步骤s304,对xml管理文件进行解析,在解析结果指示存在固件程序符合升级条件时,对满足升级条件的固件程序进行升级。
通过上述各个步骤,根据预设的固件升级需求,在主控制系统中配置与固件升级需求对应的可扩展标记语言xml管理文件,其中,固件升级需求对应设置有升级条件;对xml管理文件进行解析,在解析结果指示存在固件程序符合升级条件时,对满足升级条件的固件程序进行升级,采用上述技术方案,解决了相关技术中,当原有的固件程序的升级策略不满足要求时,需要重新修改控制程序并编译发布进而浪费了大量的时间和精力的问题,进而在原有的固件程序的升级策略不满足要求时,通过xml管理文件进行固件程序的升级,无需编译和发布,大大节省了升级时间。
在本发明实施例中,在步骤s304中的对xml管理文件进行解析之后,方法还包括:对xml管理文件进行解析,得到与xml管理文件对应的数据结构,并对xml管理文件中的指定属性的个数进行统计,其中,数据结构通过链表描述。
可选地,至少通过以下方式判定解析结果指示存在固件程序符合升级条件:判断出指定属性的个数符合升级条件,其中,上述指定属性包括以下至少之一:board元素属性,profile管理属性。
为了更好的监控到升级结果,对满足升级条件的固件程序进行升级之后,方法还包括:接收升级的固件程序反馈的升级结果;并判断升级结果是否符合预设的固件升级需求。
以下结合一示例对上述升级流程进行解释说明,但用于限定本发明实施例的技术方案。
本发明示例的提供了一种管理固件进行批量升级的方法,使得升级流程更加灵活,从而提高效率,主要包括以下步骤:
第一步:设计xml配置管理文件(相当于上述实施例的xml管理文件)
根据实际的升级策略需求,按照xml的语法结构,设计xml管理文件
第二步:设计主控制系统中的xml配置文件解析程序
该程序解析xml配置管理文件,并生成相应的数据结构。
第三步:设计主控制系统升级管理程序
读取xml配置管理文件的解析结果,对xml配置管理文件中相应的属性标记进行判断,制定不同的升级策略进行固件程序的批量升级。
第四步:进行批量升级应用
针对符合批量升级的固件程序启动批量升级流程,查看升级结果是否符合预期的升级策略需求。
第五步:升级固件程序和管理配置文件的维护
保持升级固件程序和xml管理配置文件内容的一致性。
采用本发明实施例以及本发明示例所采用的技术方案,通过采用xml配置文件的模式,实现了固件程序的配置属性与升级控制程序的分离,并且xml结构清晰,修改和维护方便,与现有技术相比,节省了由于升级策略的修改导致程序需要重新编写和发布,提高了升级效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种固件程序的升级装置,该装置用于实现上述实施例,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的固件程序的升级装置的结构框图,如图4所示,该装置包括:
配置模块40,用于根据预设的固件升级需求,在主控制系统中配置与所述固件升级需求对应的可扩展标记语言xml管理文件,其中,所述固件升级需求对应设置有升级条件;
解析模块42,用于对所述xml管理文件进行解析;
升级模块44,用于在解析结果指示存在固件程序符合所述升级条件时,对满足所述升级条件的固件程序进行升级。
通过上述各个模块的综合作用,根据预设的固件升级需求,在主控制系统中配置与固件升级需求对应的可扩展标记语言xml管理文件,其中,固件升级需求对应设置有升级条件;对xml管理文件进行解析,在解析结果指示存在固件程序符合升级条件时,对满足升级条件的固件程序进行升级,采用上述技术方案,解决了相关技术中,当原有的固件程序的升级策略不满足要求时,需要重新修改控制程序并编译发布进而浪费了大量的时间和精力的问题,进而在原有的固件程序的升级策略不满足要求时,通过xml管理文件进行固件程序的升级,无需编译和发布,大大节省了升级时间。
图5是根据本发明实施例的固件程序的升级装置的另一结构框图,如图5所示,该装置包括:
处理模块46,用于对所述xml管理文件进行解析,得到与所述xml管理文件对应的数据结构,并对所述xml管理文件中的指定属性的个数进行统计,其中,所述数据结构通过链表描述。
可选地,处理模块46,还用于至少通过以下方式判定解析结果指示存在固件程序符合所述升级条件:判断出所述指定属性的个数符合所述升级条件。
图6是根据本发明实施例的固件程序的升级装置的又一结构框图,如图6所示,该装置还包括:
接收模块48,用于接收升级的固件程序反馈的升级结果;
判断模块50,用于判断所述升级结果是否符合预设的固件升级需求。
下面结合优选实施例进行说明,以下优选实施例结合了上述实施例及其优选实施方式。
优选实施例一
本发明优选实施例的管理固件批量升级的方法包括以下步骤:
第一步:设计xml配置管理文件
本发明优选实施例以单板firmware固件升级配置文件为例
其中<firmware></firmware>为最外层标记,里边嵌套了三个子标记<board></board>,也称之为元素,可以根据单板类型要求,扩充多个<board>元素,<board>里的<profilen>是单板的管理属性,可以根据升级管理的需求,增加多个管理属性。
第二步:设计主控制系统中的xml配置文件解析程序
该解析程序要读取主控制系统中的xml配置文件,解析其中的标记结构,在主控制系统的升级管理程序中生成符合xml文件标记的数据结构,可以用链表描述,比较容易体现原来的标记嵌套结构,并且对xml配置文件中board元素以及其中的profilen管理属性的个数进行统计。
第三步:设计主控制系统升级管理控制程序
升级管理控制程序需要根据xml配置文件的解析结果,采取不同的策略来实现批量升级,控制程序首先读取board元素个数判断单板升级数量,读取profilen管理属性个数来判断升级过程中需要判断的管理配置属性个数,然后依次读取每个profilen来与主控制系统所采集到各单板的相关信息进行判断,如果全部都符合,就可以对该单板进行升级,如果不符合,就进行下一个单板的升级流程。xml文件还可以增加更多的管理配置属性标记,升级管理程序也可以对配置进行更多的判断,来实现不同的升级策略。
第四步:进行批量升级应用
图7为根据本发明优选实施例的固件程序的批量升级的系统结构示意图,如图7所示,需要将单板固件升级程序和和升级管理配置xml文件传送到主控制系统中,并启动批量升级流程,检查返回的升级结果是否符合预期的升级策略。
第五步:升级固件程序和管理配置文件的维护
以上文xml文件为例,每个<board>标记下的子元素<profilen>都要与实际的升级固件程序一致,即每次更新了固件程序,<profilen>对应的固件程序的相关信息要一致。xml的标记结构清晰,使用一般的文本编辑器就可以编辑,所以xml管理配置文件的编辑和维护非常简单。
综上所述,在图7中,与现有技术相比,在主控制系统中,增加了xml管理配置文件,如果以后要修改升级策略,只需向主控制系统上传xml配置文件即可,省去了重新修改发布升级控制程序的麻烦。
优选实施例二
图8为根据本发明优选实施例的固件程序的批量升级的流程示意图,如图8所示,包括:
步骤s802,单板n升级开始;
步骤s804,程序读取xml配置文件,确定配置属性和判定条件;
步骤s806,指定条件1(可以预先设置,例如可以是单板类型)是否符合,如果是,则转步骤s808,如果否,则转步骤s812;
步骤s808,指定条件2(可以预先设置,例如可以是升级过程中需要判断的管理配置属性个数)是否符合,如果是,则转步骤s812,如果否,则转步骤s812;
步骤s810,指定条件n(可以是预先设置的其他条件)是否符合,如果是,则转步骤s814,如果否,则转步骤s812;
步骤s812,升级结束;
步骤s814,升级处理。
通过上述步骤,升级控制程序是通过读取xml配置文件来确定配置属性和判断条件的,因此可以灵活定制xml配置文件的内容,实现不同的升级策略。相对于其他的配置文件,xml文件的跨平台性比较好,可以在windows平台下通过文本编辑器或者其他配置程序对xml文件进行配置并输出,然后上传到linux平台下的升级控制程序中进行读取解析,使得xml配置文件的维护更加方便。
综上所述,本发明实施例达到了以下技术效果:灵活地进行修改控制程序,并且不需要编译和发布,控制程序可以根据这种配置对指定单板类型和程序版本进行批量升级流程。
实施例4
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
s1,根据预设的固件升级需求,在主控制系统中配置与所述固件升级需求对应的xml管理文件,其中,所述固件升级需求对应设置有升级条件;
s2,对所述xml管理文件进行解析,在解析结果指示存在固件程序符合所述升级条件时,对满足所述升级条件的固件程序进行升级。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
s1,对所述xml管理文件进行解析,得到与所述xml管理文件对应的数据结构,并对所述xml管理文件中的指定属性的个数进行统计,其中,所述数据结构通过链表描述。
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。