CN114371851A - 一种基于编译的网络设备自动化实现方法 - Google Patents
一种基于编译的网络设备自动化实现方法 Download PDFInfo
- Publication number
- CN114371851A CN114371851A CN202210019180.2A CN202210019180A CN114371851A CN 114371851 A CN114371851 A CN 114371851A CN 202210019180 A CN202210019180 A CN 202210019180A CN 114371851 A CN114371851 A CN 114371851A
- Authority
- CN
- China
- Prior art keywords
- syntax tree
- tree
- core
- configuration
- command
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于编译的网络设备自动化实现方法,应用于数据中心网络自动化运维中,包括自定义可扩展的语法树:根据网络设备的命令结构设计出的语法树,可以根据实际需求灵活进行扩展,减少开发量并规范开发内容;同时,语法树对每个原子语句定义了其属性规范,包括提示符、报错、输入前检测、输入后检测等标准内容,使原子语句可具备幂等性;语法树由两部分构成:本发明基于网络设备的SSH、Telnet等协议构建,通过语法树构建独立的脚本语法,从而实现;本发明支持不同厂商、版本设备在命令原子化封装后可使用同一脚本下发,免去了不同设备编写不同脚本、通过不同任务批量下发的人力,实现了厂商屏蔽,并可进行自行开发丰富原子操作内容。
Description
技术领域
本发明属于网络自动化技术领域,具体涉及一种基于编译的网络设备自动化实现方法。
背景技术
在网络运维中,基于多种类、多品牌、多版本的网络自动化运维能力是目前所有。本专利旨在通过语言自定义、自组织,解决网络自动化初期开发力度不够、自动化范围不全、无法适配所有设备等问题,使网络自动化功能模块可以最小化到原子操作,即插即用,既保证了网络自动化开发的实效性,又为后续扩展提供了基本基础。现有的技术可参考CN201510577739.3网络服务请求的编译方法、编译装置和控制器;该发明实施例公开了一种网络服务请求的编译方法、编译装置和控制器,用于实现NaaS中用户网络请求的自动化编译,从而为网络自动化部署提供基础。该发明实施例方法包括:接收用户提交的网络服务请求,按照预置分解规则,将该网络服务请求分解为基本服务元组,再对该基本服务元组中的基本服务元进行编译,得到基本网元,然后对该基本服务元组中基本服务元编译的结果进行处理,得到基本网元组;该技术基于Neutron实现,只适配于Openstack及其相关网络,无法应对数据中心及分支机构复杂多变的各类网络设备的自动化需求;仅针对网络服务请求(三元组、五元组)之间的打通进行编译,无法在实际生产中适应其他类型的网络服务,比如办公业务端口开通、终端准入等情况,无法完全适配数据中心实际生产要求。
发明内容
本发明的目的在于提供一种基于编译的网络设备自动化实现方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于编译的网络设备自动化实现方法,应用于数据中心网络自动化运维中,包括自定义可扩展的语法树:根据网络设备的命令结构设计出的语法树,可以根据实际需求灵活进行扩展,减少开发量并规范开发内容;同时,语法树对每个原子语句定义了其属性规范,包括提示符、报错、输入前检测、输入后检测等标准内容,使原子语句可具备幂等性;语法树由两部分构成:核心语法树和拓展语法树;核心语法树采用树形数据结构定义了用户变更脚本可以使用的元语;核心语法树负责将所有厂商不同类型设备的命令规范化,而厂商拓展语法树通过规范将各层级命令实现,从而实现同一套元语可以应用于不同品牌厂商设备的目的,保证灵活性的同时,使同一脚本可作用于多品牌设备的命令下发;
编译器:编译器将原子语句根据其语法树的位置,结合实例设备属性,将其渲染为对应的配置模板,生成下发内容,编译为对应的设备命令;
下发设计:下发设计采用驱动模式,同样通过配置模板渲染的方式完成,支持Telnet、SSH、API等多种形式;若需横向扩展支持模式,只需添加配置模板即可,做到即插即用。
优选的,用户在编写变更脚本时,必须遵循核心语法树的定义,且每一行都必须能够匹配到核心语法树的定义。
优选的,厂商拓展语法树基于核心语法树实现,其为核心语法树的子树;通过对核心语法树上的节点的实例化、命令化,达到将元语转化为配置命令的过程。
优选的,所述编译器的编译过程为:编译过程包括如下核心步骤:1)编译核心语法树;核心语法树校验是它通过遍历主体配置的每一项,生成语法树实体类实例,从而完成树形数据结构的核心语法树的构建;如果静态语法检查成功则生成语法树实体类,否则记录校验报错信息进入下一次循环;整体核心语法树静态校验将对每一个配置项进行校验,将错误信息汇总之后再返回给调用端,所以其需要完成一次性检查出所有静态校验错误信息的收集;
2)拆分清洗用户变更脚本;
3)生成用户变更树;
对用户变更脚本进行预处理,生成树形遍历结构;根据核心语法树的定义的元语编写,变更脚本需要严格按照定义编写,否则会编译失败;
4)递归关联核心语法树;
在核心语法树中递归遍历用户变更脚本生成树,校验是否符合语法规则;
用户变更脚本文件需要用户变更数据文件才能使用,用户变更数据文件提供用户变更脚本中定义的每一个参数的数据;
5)逐项生成厂商具体命令;
通过遍历结果,根据遍历顺序生成带变量参数的命令清单;
6)结合数据生成待下发命令;
通过参数替换,生成最终下发命令。
优选的,下发层定义了适用于各种协议的抽象接口,并实现了协议处理的主要部分即协议基类,厂商扩展包通过子文件夹和子类的方式实现多中协议的支持,每个协议扩展包必须提供继承类从而实现对具体协议的支持;当有新的协议需要实现,需要通过如下步骤实现:
1)下发层实现协议处理基类;
基类设计采用可继承的JSON配置,对协议交互过程中的核心参数进行配置;
2)每个需要的厂商扩展包添加厂商下发配置;
厂商扩展配置继承自基类配置,子配置可以对主配置项进行再定义,配置项会完全覆盖父配置的配置项;厂商扩展配置每个厂商拓展包都需要实现一份。
与现有技术相比,本发明的有益效果是:1、本发明基于语言定义语法树,并通过语法树实例化对每类设备、每种型号、每种软件版本的当前语法树精准定义当前该类设备的自动化能力,并保留后续扩展能力。
2、本发明基于网络设备的SSH、Telnet等协议构建,通过语法树构建独立的脚本语法,从而实现。
3、本发明支持不同厂商、版本设备在命令原子化封装后可使用同一脚本下发,免去了不同设备编写不同脚本、通过不同任务批量下发的人力,实现了厂商屏蔽,并可进行自行开发丰富原子操作内容。
4、本发明针对每个原子操作定义了其基本属性和扩展属性,支持对每个原子操作在操作前和操作后进行校验,可进行报错判断和分析,并判断下发命令的提示符是否符合要求,避免了命令的错误下发。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种技术方案:一种基于编译的网络设备自动化实现方法,应用于数据中心网络自动化运维中,包括自定义可扩展的语法树:根据网络设备的命令结构设计出的语法树,可以根据实际需求灵活进行扩展,减少开发量并规范开发内容;同时,语法树对每个原子语句定义了其属性规范,包括提示符、报错、输入前检测、输入后检测等标准内容,使原子语句可具备幂等性;语法树由两部分构成:核心语法树和拓展语法树;核心语法树采用树形数据结构定义了用户变更脚本可以使用的元语;核心语法树负责将所有厂商不同类型设备的命令规范化,而厂商拓展语法树通过规范将各层级命令实现,从而实现同一套元语可以应用于不同品牌厂商设备的目的,保证灵活性的同时,使同一脚本可作用于多品牌设备的命令下发;
编译器:编译器将原子语句根据其语法树的位置,结合实例设备属性,将其渲染为对应的配置模板,生成下发内容,编译为对应的设备命令;
下发设计:下发设计采用驱动模式,同样通过配置模板渲染的方式完成,支持Telnet、SSH、API等多种形式;若需横向扩展支持模式,只需添加配置模板即可,做到即插即用。
本实施例中,优选的,用户在编写变更脚本时,必须遵循核心语法树的定义,且每一行都必须能够匹配到核心语法树的定义。
本实施例中,优选的,厂商拓展语法树基于核心语法树实现,其为核心语法树的子树;通过对核心语法树上的节点的实例化、命令化,达到将元语转化为配置命令的过程。
本实施例中,优选的,编译的过程为:编译过程包括如下核心步骤:1)编译核心语法树;核心语法树校验是它通过遍历主体配置的每一项,生成语法树实体类实例,从而完成树形数据结构的核心语法树的构建;如果静态语法检查成功则生成语法树实体类,否则记录校验报错信息进入下一次循环;整体核心语法树静态校验将对每一个配置项进行校验,将错误信息汇总之后再返回给调用端,所以其需要完成一次性检查出所有静态校验错误信息的收集;
2)拆分清洗用户变更脚本;
3)生成用户变更树;
对用户变更脚本进行预处理,生成树形遍历结构;根据核心语法树的定义的元语编写,变更脚本需要严格按照定义编写,否则会编译失败;
4)递归关联核心语法树;
在核心语法树中递归遍历用户变更脚本生成树,校验是否符合语法规则;
用户变更脚本文件需要用户变更数据文件才能使用,用户变更数据文件提供用户变更脚本中定义的每一个参数的数据;
5)逐项生成厂商具体命令;
通过遍历结果,根据遍历顺序生成带变量参数的命令清单;
6)结合数据生成待下发命令;
通过参数替换,生成最终下发命令。
本实施例中,优选的,下发层定义了适用于各种协议的抽象接口,并实现了协议处理的主要部分即协议基类,厂商扩展包通过子文件夹和子类的方式实现多中协议的支持,每个协议扩展包必须提供继承类从而实现对具体协议的支持;当有新的协议需要实现,需要通过如下步骤实现:
1)下发层实现协议处理基类;
基类设计采用可继承的JSON配置,对协议交互过程中的核心参数进行配置;
2)每个需要的厂商扩展包添加厂商下发配置;
厂商扩展配置继承自基类配置,子配置可以对主配置项进行再定义,配置项会完全覆盖父配置的配置项;厂商扩展配置每个厂商拓展包都需要实现一份。
实施例一:
实施对象:批量设备配置模板修改
假设条件:网点设备需要调整时钟NTP服务器等配置,需要统一修改,其中包含各厂商不同型号。
具体实施如下:
1.定义自定义脚本。脚本第一行为变量定义,用于替换对应参数。
2.若为已有原子语句,则脚本中直接调用;若需新定义原子语句,则根据实际命令在语法树配置文件中添加相应原子语句。
3.选定设备列表,并定义登录信息,编写登录信息列表。
4.传入脚本和参数,指定对应设备,自动进行命令编译和批量下发。
5.若后续需要调整批量下发内容,仅需修改脚本任务即可,无需进行额外开发。
实施例二:
实施对象:端口开通操作
假设条件:客户需要进行端口开通操作,选择相应开通模式后根据对应的设备端口下发对应的配置完成配置下发。
具体实施如下:
1.客户填写端口开通申请,并在页面中登记。
2.自动识别待操作网络设备和端口。
3.调用对应脚本,自动生成参数,调用编译器生成脚本。
4.脚本调用驱动执行,端口自动开通。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (5)
1.一种基于编译的网络设备自动化实现方法,其特征在于:应用于数据中心网络自动化运维中,包括自定义可扩展的语法树:根据网络设备的命令结构设计出的语法树,可以根据实际需求灵活进行扩展,减少开发量并规范开发内容;同时,语法树对每个原子语句定义了其属性规范,包括提示符、报错、输入前检测、输入后检测等标准内容,使原子语句可具备幂等性;语法树由两部分构成:核心语法树和拓展语法树;核心语法树采用树形数据结构定义了用户变更脚本可以使用的元语;核心语法树负责将所有厂商不同类型设备的命令规范化,而厂商拓展语法树通过规范将各层级命令实现,从而实现同一套元语可以应用于不同品牌厂商设备的目的,保证灵活性的同时,使同一脚本可作用于多品牌设备的命令下发;
编译器:编译器将原子语句根据其语法树的位置,结合实例设备属性,将其渲染为对应的配置模板,生成下发内容,编译为对应的设备命令;
下发设计:下发设计采用驱动模式,同样通过配置模板渲染的方式完成,支持Telnet、SSH、API等多种形式;若需横向扩展支持模式,只需添加配置模板即可,做到即插即用。
2.根据权利要求1所述的一种基于编译的网络设备自动化实现方法,其特征在于:用户在编写变更脚本时,必须遵循核心语法树的定义,且每一行都必须能够匹配到核心语法树的定义。
3.根据权利要求1所述的一种基于编译的网络设备自动化实现方法,其特征在于:厂商拓展语法树基于核心语法树实现,其为核心语法树的子树;通过对核心语法树上的节点的实例化、命令化,达到将元语转化为配置命令的过程。
4.根据权利要求1所述的一种基于编译的网络设备自动化实现方法,其特征在于:所述编译器的编译过程为:编译过程包括如下核心步骤:1)编译核心语法树;核心语法树校验是它通过遍历主体配置的每一项,生成语法树实体类实例,从而完成树形数据结构的核心语法树的构建;如果静态语法检查成功则生成语法树实体类,否则记录校验报错信息进入下一次循环;整体核心语法树静态校验将对每一个配置项进行校验,将错误信息汇总之后再返回给调用端,所以其需要完成一次性检查出所有静态校验错误信息的收集;
2)拆分清洗用户变更脚本;
3)生成用户变更树;
对用户变更脚本进行预处理,生成树形遍历结构;根据核心语法树的定义的元语编写,变更脚本需要严格按照定义编写,否则会编译失败;
4)递归关联核心语法树;
在核心语法树中递归遍历用户变更脚本生成树,校验是否符合语法规则;
用户变更脚本文件需要用户变更数据文件才能使用,用户变更数据文件提供用户变更脚本中定义的每一个参数的数据;
5)逐项生成厂商具体命令;
通过遍历结果,根据遍历顺序生成带变量参数的命令清单;
6)结合数据生成待下发命令;
通过参数替换,生成最终下发命令。
5.根据权利要求1所述的一种基于编译的网络设备自动化实现方法,其特征在于:下发层定义了适用于各种协议的抽象接口,并实现了协议处理的主要部分即协议基类,厂商扩展包通过子文件夹和子类的方式实现多中协议的支持,每个协议扩展包必须提供继承类从而实现对具体协议的支持;当有新的协议需要实现,需要通过如下步骤实现:
1)下发层实现协议处理基类;
基类设计采用可继承的JSON配置,对协议交互过程中的核心参数进行配置;
2)每个需要的厂商扩展包添加厂商下发配置;
厂商扩展配置继承自基类配置,子配置可以对主配置项进行再定义,配置项会完全覆盖父配置的配置项;厂商扩展配置每个厂商拓展包都需要实现一份。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210019180.2A CN114371851A (zh) | 2022-01-07 | 2022-01-07 | 一种基于编译的网络设备自动化实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210019180.2A CN114371851A (zh) | 2022-01-07 | 2022-01-07 | 一种基于编译的网络设备自动化实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114371851A true CN114371851A (zh) | 2022-04-19 |
Family
ID=81143894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210019180.2A Pending CN114371851A (zh) | 2022-01-07 | 2022-01-07 | 一种基于编译的网络设备自动化实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114371851A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114928536A (zh) * | 2022-05-16 | 2022-08-19 | 中国建设银行股份有限公司 | 自动化网络变更方法及装置 |
CN116911240A (zh) * | 2023-09-12 | 2023-10-20 | 深圳鸿芯微纳技术有限公司 | 电子自动化设计软件的命令配置方法、装置、设备及介质 |
-
2022
- 2022-01-07 CN CN202210019180.2A patent/CN114371851A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114928536A (zh) * | 2022-05-16 | 2022-08-19 | 中国建设银行股份有限公司 | 自动化网络变更方法及装置 |
CN114928536B (zh) * | 2022-05-16 | 2024-04-30 | 中国建设银行股份有限公司 | 自动化网络变更方法及装置 |
CN116911240A (zh) * | 2023-09-12 | 2023-10-20 | 深圳鸿芯微纳技术有限公司 | 电子自动化设计软件的命令配置方法、装置、设备及介质 |
CN116911240B (zh) * | 2023-09-12 | 2023-12-19 | 深圳鸿芯微纳技术有限公司 | 电子自动化设计软件的命令配置方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Medved et al. | Opendaylight: Towards a model-driven sdn controller architecture | |
EP3143511B1 (en) | Method and apparatus for affinity-based network configuration | |
CA3050159C (en) | Artificial intelligence (ai) based automatic rule generation | |
CN114371851A (zh) | 一种基于编译的网络设备自动化实现方法 | |
US20120089931A1 (en) | Lightweight operation automation based on gui | |
CN115640045B (zh) | 基于领域驱动设计的低代码开发平台及业务系统创建方法 | |
CN111865662B (zh) | 网络设备配置方法及系统 | |
CN115051927B (zh) | 一种数据网络开发方法和系统 | |
US20130326050A1 (en) | Method of Organic Cloud Discovery and Transformation of Network Assets | |
WO2024169392A1 (zh) | 开发方法、装置、电子设备和存储介质 | |
CN109445384B (zh) | 一种多设备控制系统 | |
Jacoby et al. | FA 3 ST Service–An Open Source Implementation of the Reactive Asset Administration Shell | |
CN113656001A (zh) | 平台组件开发方法、装置、计算机设备及存储介质 | |
US7865880B2 (en) | System and/or method for implementing efficient techniques for testing common information model providers | |
US20050021686A1 (en) | Automated transformation of specifications for devices into executable modules | |
CN106371848A (zh) | 一种web开发框架支持Odata的实现方法 | |
CN100358297C (zh) | 一种实现仿真设备代理的方法 | |
CN103684904A (zh) | 基于ip三网融合网络监控系统 | |
CN115774573A (zh) | 应用集成方法、装置、电子设备和存储介质 | |
CN106844156B (zh) | 智能建筑综合管理平台系统中wcf通信消息拦截方法 | |
Hendriks et al. | A systematic approach for interfacing component-based software with an active automata learning tool | |
US7334015B1 (en) | Integration of legacy mainframe systems through data stream objectification into finite state machines | |
Nicacio et al. | Towards improving architectural diagram consistency using system descriptors | |
Idrus et al. | CSCW: designing abstract scripting language for role transition management | |
US20090106378A1 (en) | Open System for Integrating and managing computer-based components representing a specific functionality of a specific application |
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 |