CN114237740A - 一种基于标签化语言的白盒化配置方法及装置 - Google Patents
一种基于标签化语言的白盒化配置方法及装置 Download PDFInfo
- Publication number
- CN114237740A CN114237740A CN202111492791.0A CN202111492791A CN114237740A CN 114237740 A CN114237740 A CN 114237740A CN 202111492791 A CN202111492791 A CN 202111492791A CN 114237740 A CN114237740 A CN 114237740A
- Authority
- CN
- China
- Prior art keywords
- tagged
- template
- language
- white
- parsing
- 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.)
- Pending
Links
Images
Classifications
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种基于标签化语言的白盒化配置方法及装置,其中,该方法包括:在需要配置的NETCONF的XML文件或CLI指令中嵌入标签化语言,生成标签化模板;解析引擎加载标签化模板,并通过传入的归一化后的参数,动态生成下发设备模板。该方法及装置通过标签化语言能力可以使原有的比较静态的CLI或者NETCONF下发的报文实现动态的变化,快速满足用户的要求,并且可以快速的配置下发的能力。
Description
技术领域
本发明涉及指标配置领域,尤其是一种基于标签化语言的白盒化配置方法及装置。
背景技术
针对实时变化的命令或者需求,原有的技术每次都需要针对代码进行修改代码。
发明内容
为了解决现有技术存在的上述问题,本发明提供一种基于标签化语言的白盒化配置方法及装置,通过标签化语言能力可以使原有的比较静态的CLI或者NETCONF下发的报文实现动态的变化,快速满足用户的要求,并且可以快速的配置下发的能力。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种基于标签化语言的白盒化配置方法,该方法包括:
在需要配置的NETCONF的XML文件或CLI指令中嵌入标签化语言,生成标签化模板;
解析引擎加载标签化模板,并通过传入的归一化后的参数,动态生成下发设备模板。
进一步地,标签化语言满足的逻辑包括判断、转义、计算、函数和循环,通过语法扩展还满足各种特殊逻辑。
进一步地,标签化模板是具备逻辑化动态可变能力的CLI指令或NETCONF的XML文件形式的模板,通过解析引擎加载并呈现在页面上,供参数配置。
进一步地,解析引擎包括参数解析、模板解析和标签语言解析,实现模板的动态转换,生成相应的下发设备模板。
在本发明一实施例中,还提出了一种基于标签化语言的白盒化配置装置,该装置包括:
标签化模板生成模块,用于在需要配置的NETCONF的XML文件或CLI指令中嵌入标签化语言,生成标签化模板;
解析引擎模块,用于加载标签化模板,并通过传入的归一化后的参数,动态生成下发设备模板。
进一步地,标签化语言满足的逻辑包括判断、转义、计算、函数和循环,通过语法扩展还满足各种特殊逻辑。
进一步地,标签化模板是具备逻辑化动态可变能力的CLI指令或NETCONF的XML文件形式的模板,通过解析引擎加载并呈现在页面上,供参数配置。
进一步地,解析引擎模块包括参数解析、模板解析和标签语言解析,实现模板的动态转换,生成相应的下发设备模板。
在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述基于标签化语言的白盒化配置方法。
在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行基于标签化语言的白盒化配置方法的计算机程序。
有益效果:
1、本发明将标签化语言嵌入需要配置的NETCONF的XML文件或CLI指令中,可以使下发的NETCONF的XML文件或CLI指令形成具备逻辑化动态可变的能力,通过传入的参数实现模板的动态生成。
2、本发明将设备或者服务的基础能力全部在页面上展示,使NETCONF的XML文件或CLI指令可以在页面上进行配置,实现参数可配置化能力,即白盒化配置能力。
附图说明
图1是本发明基于标签化语言的白盒化配置方法流程示意图;
图2是本发明基于标签化语言的白盒化配置装置结构示意图;
图3是本发明计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于标签化语言的白盒化配置方法及装置,通过标签化语言能力可以使原有的比较静态的CLI(command-line interface,命令行界面)或者NETCONF(基于XML的网络配置(NETCONF)协议)下发的报文实现动态的变化,快速满足用户的要求,并且可以快速的配置下发的能力。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
标签化语言是开发的一种特殊化的语言,通过嵌入需要配置的NETCONF的XML文件或CLI指令中,可以使下发的NETCONF的XML文件或CLI指令形成具备逻辑化动态可变的能力,通过传入的参数实现模板的动态生成。
白盒化配置能力是将设备或者服务的基础能力全部在页面上展示,使NETCONF的XML文件或CLI指令可以在页面上进行配置,实现参数可配置化能力。
图1是本发明基于标签化语言的白盒化配置方法流程示意图。如图1所示,该方法包括:
在需要配置的NETCONF的XML文件或CLI指令中嵌入标签化语言,生成标签化模板;
标签化语言满足的逻辑包括判断、转义、计算、函数和循环,通过语法扩展还满足各种特殊逻辑;
标签化模板是具备逻辑化动态可变能力的CLI指令或NETCONF的XML文件形式的模板,可以通过解析引擎加载并呈现在页面上,供参数配置。
解析引擎包括参数解析、模板解析和标签语言解析,解析引擎加载标签化模板,并通过北向接口调用归一化后的参数,通过模板解析和标签语言解析,解析出标签化模板中的标签化语言,通过参数解析,解析出参数,根据解析出的参数和标签化模板中的标签化语言,实现模板的动态转换,生成相应的下发设备模板。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述基于标签化语言的白盒化配置方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
1、标签化语言主要满足几种相关逻辑如:判断,转义,计算,函数和循环的逻辑,还可以进行语法扩展实现相关各种特殊逻辑,通过抽样可以实现相关逻辑,就可以实现配置命令下发。下面举例几个通用的标签化语言:
(1)判断:
<#if(POLICY_OUT)??&&POLICY_OUT!="">
<Application>
<IfIndex>${IFNAME}</IfIndex>
<Direction>1</Direction>
<PolicyName>${POLICY_OUT}</PolicyName>
</Application>
</#if>
带“#”的字段就是标签化语言的内容,是标识POLICY_OUT不存在或者为空的时候这段内容不会执行,模板生成的时候这段内容不会生成。
(2)循环:
<#assign behaviorTypeList=BEHAVIOR_TYPE?split(",")>
<#list OPCODE?split(",")as opcode>
<b:sid>
<b:opcode>${opcode}</b:opcode>
<#assign behavior_type=behaviorTypeList[opcode_index]>
<#if behavior_type=="End.DT2M">
<b:end-behavior-type>End.DT2M</b:end-behavior-type>
<b:end-dt2m>
<b:vsi-name>${EVPN_NAME}</b:vsi-name>
</b:end-dt2m>
</#if>
<#if behavior_type=="End.DT2U">
<b:end-behavior-type>End.DT2U</b:end-behavior-type>
<b:end-dt2u>
<b:vsi-name>${EVPN_NAME}</b:vsi-name>
</b:end-dt2u>
</#if>
</b:sid>
</#list>
带“#”的字段就是标签化语言的内容,其中list是循环能力<#list OPCODE?split(",")as opcode>,是用OPCODE参数里面的逗号分割然后做循环到</#list>。
2、下面是标签化语言的相关能力:
(1)判断
<#if(CVLAN)??&&CVLAN!="">
control-vid${ControlVid}qinq-termination
qinq termination pe-vid${VLAN}ce-vid${CVLAN}
<#else>
(2)单循环-----将1,2,3进行变成数组进行相关循环
<#list OPCODE?split(",")as opcode>
</#if>
(3)多循环-----多个字段1,2,3和a,b,c进行组合使用循环能力
<#assign behaviorTypeList=BEHAVIOR_TYPE?split(",")>---behaviorTypeList定义传入的BEHAVIOR_TYPE是以传入的循环参数
<#list OPCODE?split(",")asopcode>---OPCODE定义是用分割的循环参数
<b:sid>
<b:opcode>${opcode}</b:opcode>
<#assign behavior_type=behaviorTypeList[opcode_index]>----根据opcode的参数进行循环下面的报文
<#if behavior_type=="End.DT2M">----判断当BEHAVIOR_TYPE为End.DT2M时候实现下面的报文到</#if>
<b:end-behavior-type>End.DT2M</b:end-behavior-type>
<b:end-dt2m>
<b:vsi-name>${EVPN_NAME}</b:vsi-name>
</b:end-dt2m>
</#if>
<#if behavior_type=="End.DT2U">-----判断当BEHAVIOR_TYPE为End.DT2U时候实现下面的报文到</#if>
<b:end-behavior-type>End.DT2U</b:end-behavior-type>
<b:end-dt2u>
<b:vsi-name>${EVPN_NAME}</b:vsi-name>
</b:end-dt2u>
</#if>
</b:sid>
</#list>
(4)掩码位转掩码,掩码转掩码位
_ipmaskstrtoint4-----IP mask转int
callFunc("_ipmaskstrtoint4","${mask}")
_ipmaskinttostr4----IP mask int转str
callFunc("_ipmaskinttostr4","${masklen}")
(5)snmp查询端口的接入号,空闲子接口(依赖于采集提供的服务)
getUnusedSubifNoByIf-----查询空闲子接口
callFunc("getUnusedSubifNoByIf","devid","${DEV}","intf","${intf}")
getIfByIpAddr-----根据IP查询子接口
callFunc("getIfByIpAddr","devid","${DEV}","ipaddr","${ipaddr}")
getIfByIfAlias-----根据接口描述查询子接口
callFunc("getIfByIfAlias","devid","${DEV}","ifalias","${ifalias}")
(6)赋值
<#assign subNum=callFunc("GetUnusedSubInterfaceNum","${DEV}","${AC_INTERFACE}")>-----根据函数赋值
(7)字符截取
192.168.0.1/24
${ip?substring(0,ip?index_of('/'))}-----截取ip作为内容的IP
${ip?substring(ip?index_of('/')+1)}-----截取ip作为内容的掩码位
3、标签化语言***实现
(1)可以在***的cfg中增加NETCONF的XML文件报文并且在中间加入标签化语言,其中带“#”的字段均为标签化语言,标签化语言是有函数和判断两大功能,其中<#assignret1=callFunc("_setredis","ftto:svlan:${DEV}:${username}","${svlan}")>为根据参数svlan获取redis的相关值,<#if(TASKTYPE)??&&TASKTYPE=="cfgdeploy">为判断TASKTYPE存在或者TASKTYPE为cfgdeploy执行相关内容。
(2)可以在***的cfg中增加CLI指令报文并且在中间加入标签化语言,其中带“#”的字段均为标签化语言,标签化语言是有判断两大功能,其中<#if(import_rt_ipv6)??&&import_rt_ipv6!="">为判断import_rt_ipv6存在或者import_rt_ipv6为非空执行相关内容。
基于同一发明构思,本发明还提出一种基于标签化语言的白盒化配置装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是本发明基于标签化语言的白盒化配置装置结构示意图。如图2所示,该装置包括:
标签化模板生成模块101,用于在需要配置的NETCONF的XML文件或CLI指令中嵌入标签化语言,生成标签化模板;
标签化语言满足的逻辑包括判断、转义、计算、函数和循环,通过语法扩展还满足各种特殊逻辑;
标签化模板是具备逻辑化动态可变能力的CLI指令或NETCONF的XML文件形式的模板,通过解析引擎加载并呈现在页面上,供参数配置。
解析引擎模块102,用于加载标签化模板,并通过传入的归一化后的参数,动态生成下发设备模板;
解析引擎模块102包括参数解析、模板解析和标签语言解析,实现模板的动态转换,生成相应的下发设备模板。
应当注意,尽管在上文详细描述中提及了基于标签化语言的白盒化配置装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图3所示,本发明还提出一种计算机设备200,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序230,处理器220执行计算机程序230时实现前述基于标签化语言的白盒化配置方法。
基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述基于标签化语言的白盒化配置方法的计算机程序。
本发明提出的基于标签化语言的白盒化配置方法及装置,将标签化语言嵌入需要配置的NETCONF的XML文件或CLI指令中,可以使下发的NETCONF的XML文件或CLI指令形成具备逻辑化动态可变的能力,通过传入的参数实现模板的动态生成;将设备或者服务的基础能力全部在页面上展示,使NETCONF的XML文件或CLI指令可以在页面上进行配置,实现参数可配置化能力,即白盒化配置能力。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种基于标签化语言的白盒化配置方法,其特征在于,该方法包括:
在需要配置的NETCONF的XML文件或CLI指令中嵌入标签化语言,生成标签化模板;
解析引擎加载标签化模板,并通过传入的归一化后的参数,动态生成下发设备模板。
2.根据权利要求1所述的基于标签化语言的白盒化配置方法,其特征在于,所述标签化语言满足的逻辑包括判断、转义、计算、函数和循环,通过语法扩展还满足各种特殊逻辑。
3.根据权利要求1所述的基于标签化语言的白盒化配置方法,其特征在于,所述标签化模板是具备逻辑化动态可变能力的CLI指令或NETCONF的XML文件形式的模板,通过解析引擎加载并呈现在页面上,供参数配置。
4.根据权利要求1所述的基于标签化语言的白盒化配置方法,其特征在于,所述解析引擎包括参数解析、模板解析和标签语言解析,实现模板的动态转换,生成相应的下发设备模板。
5.一种基于标签化语言的白盒化配置装置,其特征在于,该装置包括:
标签化模板生成模块,用于在需要配置的NETCONF的XML文件或CLI指令中嵌入标签化语言,生成标签化模板;
解析引擎模块,用于加载标签化模板,并通过传入的归一化后的参数,动态生成下发设备模板。
6.根据权利要求5所述的基于标签化语言的白盒化配置装置,其特征在于,所述标签化语言满足的逻辑包括判断、转义、计算、函数和循环,通过语法扩展还满足各种特殊逻辑。
7.根据权利要求5所述的基于标签化语言的白盒化配置装置,其特征在于,所述标签化模板是具备逻辑化动态可变能力的CLI指令或NETCONF的XML文件形式的模板,通过解析引擎加载并呈现在页面上,供参数配置。
8.根据权利要求5所述的基于标签化语言的白盒化配置装置,其特征在于,所述解析引擎模块包括参数解析、模板解析和标签语言解析,实现模板的动态转换,生成相应的下发设备模板。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-4任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-4任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111492791.0A CN114237740A (zh) | 2021-12-08 | 2021-12-08 | 一种基于标签化语言的白盒化配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111492791.0A CN114237740A (zh) | 2021-12-08 | 2021-12-08 | 一种基于标签化语言的白盒化配置方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114237740A true CN114237740A (zh) | 2022-03-25 |
Family
ID=80754064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111492791.0A Pending CN114237740A (zh) | 2021-12-08 | 2021-12-08 | 一种基于标签化语言的白盒化配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237740A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122899A (zh) * | 2007-09-18 | 2008-02-13 | 杭州华三通信技术有限公司 | 报表的生成方法和设备 |
CN102609505A (zh) * | 2012-02-03 | 2012-07-25 | 姚振刚 | 基于数据操作语言的动态网页方法 |
CN105426172A (zh) * | 2015-10-30 | 2016-03-23 | 北京金海明天软件技术有限公司 | 基于xml解析技术和模板语言的动态web页面生成方法 |
CN105824944A (zh) * | 2016-03-21 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种基于脚本语言的xml配置数据维护方法及*** |
CN109933752A (zh) * | 2017-12-15 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种导出电子文档的方法和装置 |
CN111274760A (zh) * | 2020-01-09 | 2020-06-12 | 北京字节跳动网络技术有限公司 | 富文本数据处理方法、装置、电子设备及计算机存储介质 |
CN112764831A (zh) * | 2021-01-19 | 2021-05-07 | 中盈优创资讯科技有限公司 | 基于自定义可扩展标记语言的配置文件解析方法及装置 |
CN113031940A (zh) * | 2021-04-29 | 2021-06-25 | 武汉夜莺科技有限公司 | 前端框架开发方法、装置及终端设备 |
-
2021
- 2021-12-08 CN CN202111492791.0A patent/CN114237740A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122899A (zh) * | 2007-09-18 | 2008-02-13 | 杭州华三通信技术有限公司 | 报表的生成方法和设备 |
CN102609505A (zh) * | 2012-02-03 | 2012-07-25 | 姚振刚 | 基于数据操作语言的动态网页方法 |
CN105426172A (zh) * | 2015-10-30 | 2016-03-23 | 北京金海明天软件技术有限公司 | 基于xml解析技术和模板语言的动态web页面生成方法 |
CN105824944A (zh) * | 2016-03-21 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种基于脚本语言的xml配置数据维护方法及*** |
CN109933752A (zh) * | 2017-12-15 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种导出电子文档的方法和装置 |
CN111274760A (zh) * | 2020-01-09 | 2020-06-12 | 北京字节跳动网络技术有限公司 | 富文本数据处理方法、装置、电子设备及计算机存储介质 |
CN112764831A (zh) * | 2021-01-19 | 2021-05-07 | 中盈优创资讯科技有限公司 | 基于自定义可扩展标记语言的配置文件解析方法及装置 |
CN113031940A (zh) * | 2021-04-29 | 2021-06-25 | 武汉夜莺科技有限公司 | 前端框架开发方法、装置及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628635B (zh) | 获取参数名和局部变量名的方法、装置、设备及存储介质 | |
CN107241221B (zh) | 支持不同网管协议的网管协议数据统一处理***及方法 | |
US20050278693A1 (en) | Distribution adaptor for network management application development | |
EP1779593A2 (en) | Method and apparatus for converting network management protocol to markup language | |
CN101841546A (zh) | 一种规则匹配方法、装置及*** | |
CN101996132A (zh) | 公用对象请求代理程序体系结构接口自动测试方法和装置 | |
CN111211931B (zh) | 一种基于可重构技术的报文转发*** | |
CN107643889A (zh) | 基于模板引擎的页面渲染方法和装置 | |
US20010011215A1 (en) | Network device simulation system and method | |
CN111666572A (zh) | 一种自动化渗透测试框架 | |
WO2012051844A1 (zh) | 智能网平台、业务执行方法和分析业务异常的方法 | |
US12001960B2 (en) | NGraph-based GPU backend distributed training method and system | |
CN114237740A (zh) | 一种基于标签化语言的白盒化配置方法及装置 | |
CN112003827B (zh) | 一种基于并行计算的可配置的Redfish服务解析方法及*** | |
CN105260179A (zh) | 一种实现flex与servlet交互的方法 | |
US20150032789A1 (en) | Dynamic object oriented remote instantiation | |
TWI651947B (zh) | 設備與服務監測之可程式化模板監管方法 | |
Rodero et al. | How the JSDL can Exploit the Parallelism? | |
Mitschele-Thiel et al. | Design and optimization of High-Performance Protocols with the DO-IT Toolbox | |
Chen et al. | Study and implementation of model-driven testing method for network management interface | |
CN109302398A (zh) | 对于IPv6网络UDP数据包的接收解析与存储方法 | |
Galis et al. | Active network approach to grid management | |
Wang et al. | From model to implementation: a network algorithm programming language | |
CN113949438B (zh) | 一种无人机通讯方法、装置、设备及存储介质 | |
Lu et al. | Running P4 Programs on General Programmable Network Interconnection Chips |
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 |