一种网络建模语言解析方法及装置的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,具体涉及一种网络建模语言解析方法及装置。
【背景技术】
[0002] 随着信息技术的不断发展,网络已成为越来越多应用系统的基本组成部分,支持 服务端和客户端之间的各种应用需求。面对复杂的网络技术,为了降低应用开发者描述网 络需求、应用需求、运维网络等方面的难度,目前对网络建模语言的研宄越来越深入。
[0003] 网络建模语言以一种更接近自然语言的网络元语,定义网络资源需求、控制网络 行为、获取网络信息等操作动作,方便应用开发者使用。通常,在网络建模语言的使用过程 中,需要解析并识别应用开发者输入的网络建模语句。举例来说,应用开发者需要配置软件 定义网络(英文:Software Defined Network,简称:SDN)中的转发设备A的转发行为,可 通过网络建模语句来描述该操作动作。对应于此,网络建模语言解析引擎获得应用开发者 输入的网络建模语句,可解析其表示的含义,获得针对转发设备A的解析实例,并对解析实 例进行处理后,通过SDN中的控制器实现对转发设备A转发行为的配置。
[0004] 由上述过程可知,解析引擎的解析效率直接制约着网络响应应用开发者操作的速 度,如果解析效率高,则网络响应操作速度快,反之网络响应操作的速度就慢。
【发明内容】
[0005] 本发明实施例的网络建模语言解析方法及装置,有助于提高网络建模语言解析引 擎的解析效率。
[0006] 为此,本发明实施例提供如下技术方案:
[0007] 第一方面,提供了一种网络建模语言解析方法,所述方法包括:
[0008] 解析引擎获得用户输入的网络建模语句,所述网络建模语句用于表示针对网络的 操作动作;
[0009] 所述解析引擎确定预置数据库中是否保存有第一映射,所述第一映射用于表示所 述网络建模语句与解析实例之间的对应关系;
[0010] 如果预置数据库中保存有第一映射,所述解析引擎从所述第一映射中获取所述解 析实例。
[0011] 结合第一方面,在第一方面的第一种可能的实现方式中,所述解析引擎确定预置 数据库中是否保存有第一映射,包括:
[0012] 所述解析引擎利用所述网络建模语句,计算当前索引值;
[0013] 所述解析引擎确定所述预置数据库中是否保存有所述当前索引值;
[0014] 如果所述预置数据库中保存有所述当前索引值,所述解析引擎获得所述当前索引 值对应的至少一条映射;
[0015] 所述解析引擎利用所述网络建模语句,比对所述至少一条映射,确定所述至少一 条映射中是否包括所述第一映射。
[0016] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,所述计算当前索引值之前,所述方法还包括:所述解析引擎对所述网络建模语句进行预 处理,
[0017] 所述预处理包括:消除所述网络建模语句首尾的空白字符、将所述网络建模语句 中的连续空白字符替换为单个空白字符、将所述网络建模语句中的字符调整为指定顺序、 将所述网络建模语句中的字符修改为指定格式,所述指定格式为大写或小写。
[0018] 结合第一方面或第一方面的第一种或第二种可能的实现方式,在第一方面的第三 种可能的实现方式中,所述解析引擎从所述第一映射中获取所述解析实例之前,所述方法 还包括:
[0019] 所述解析引擎确定所述用户是否具有获得所述解析实例的权限;
[0020] 如果所述用户具有获得所述解析实例的权限,所述解析引擎再执行所述获取解析 实例。
[0021] 结合第一方面或第一方面的第一种至第三种中的任一种可能的实现方式,在第一 方面的第四种可能的实现方式中,如果预置数据库中未保存第一映射,所述方法还包括:
[0022] 所述解析引擎解析所述网络建模语句,获得所述解析实例;
[0023] 所述解析引擎利用所述网络建模语句和所述解析实例,获得所述第一映射;
[0024] 所述解析引擎将所述第一映射保存至所述预置数据库。
[0025] 第二方面,提供了一种网络建模语言解析装置,所述装置包括:
[0026] 获得单元,用于获得用户输入的网络建模语句,所述网络建模语句用于表示针对 网络的操作动作;
[0027] 第一确定单元,用于确定预置数据库中是否保存有第一映射,所述第一映射用于 表示所述网络建模语句与解析实例之间的对应关系;
[0028] 获取单元,用于在所述第一确定单元确定预置数据库中保存有第一映射时,从所 述第一映射中获取所述解析实例。
[0029] 结合第二方面,在第二方面的第一种可能的实现方式中,所述第一确定单元包 括:
[0030] 计算单元,用于利用所述网络建模语句,计算当前索引值;
[0031] 第一确定子单元,用于确定所述预置数据库中是否保存有所述当前索引值;
[0032] 映射获得单元,用于在所述预置数据库中保存有所述当前索引值时,获得所述当 前索引值对应的至少一条映射;
[0033] 第二确定子单元,用于利用所述网络建模语句,比对所述至少一条映射,确定所述 至少一条映射中是否包括所述第一映射。
[0034] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述装置还包括:
[0035] 预处理单元,用于在所述计算单元计算所述当前索引值之前,对所述网络建模语 句进行预处理,
[0036] 所述预处理包括:消除所述网络建模语句首尾的空白字符、将所述网络建模语句 中的连续空白字符替换为单个空白字符、将所述网络建模语句中的字符调整为指定顺序、 将所述网络建模语句中的字符修改为指定格式,所述指定格式为大写或小写。
[0037] 结合第二方面或第二方面的第一种或第二种可能的实现方式,在第二方面的第三 种可能的实现方式中,所述装置还包括:
[0038] 第二确定单元,用于在所述获取单元从所述第一映射中获取所述解析实例之前, 确定所述用户是否具有获得所述解析实例的权限;
[0039] 所述获取单元,具体用于在所述第二确定单元确定所述用户具有获得所述解析实 例的权限时,从所述第一映射中获取所述解析实例。
[0040] 结合第二方面或第二方面的第一种至第三种中的任一种可能的实现方式,在第二 方面的第四种可能的实现方式中,如果预置数据库中未保存第一映射,所述装置还包括:
[0041] 解析单元,用于解析所述网络建模语句,获得所述解析实例;
[0042] 保存单元,用于利用所述网络建模语句和所述解析实例,获得所述第一映射,并将 所述第一映射保存至所述预置数据库。
[0043] 第三方面,提供了一种网络建模语言解析的设备,所述设备包括:处理器和存储 器;
[0044] 所述存储器,用于存储程序指令和数据;
[0045] 所述处理器,用于读取所述存储器中存储的程序指令和数据,执行以下操作:
[0046] 所述处理器获得用户输入的网络建模语句,所述网络建模语句用于表示针对网络 的操作动作;
[0047] 所述处理器确定预置数据库中是否保存有第一映射,所述第一映射用于表示所述 网络建模语句与解析实例之间的对应关系;
[0048] 如果预置数据库中保存有第一映射,所述处理器从所述第一映射中获取所述解析 实例。
[0049] 结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器确定预置数 据库中是否保存有第一映射,包括:
[0050] 所述处理器利用所述网络建模语句,计算当前索引值;
[0051] 所述处理器确定所述预置数据库中是否保存有所述当前索引值;
[0052] 如果所述预置数据库中保存有所述当前索引值,所述处理器获得所述当前索引值 对应的至少一条映射;
[0053] 所述处理器利用所述网络建模语句,比对所述至少一条映射,确定所述至少一条 映射中是否包括所述第一映射。
[0054] 结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式 中,所述计算当前索引值之前,所述处理器还执行以下操作:所述处理器对所述网络建模语 句进行预处理,
[0055] 所述预处理包括:消除所述网络建模语句首尾的空白字符、将所述网络建模语句 中的连续空白字符替换为单个空白字符、将所述网络建模语句中的字符调整为指定顺序、 将所述网络建模语句中的字符修改为指定格式,所述指定格式为大写或小写。
[0056] 结合第三方面或第三方面的第一种或第二种可能的实现方式,在第三方面的第三 种可能的实现方式中,所述处理器从所述第一映射中获取所述解析实例之前,所述处理器 还执行以下操作:
[0057] 所述处理器确定所述用户是否具有获得所述解析实例的权限;
[0058] 如果所述用户具有获得所述解析实例的权限,所述处理器再执行所述获取解析实 例。
[0059] 结合第三方面或第三方面的第一种至第三种中的任一种可能的实现方式,在第三 方面的第四种可能的实现方式中,如果预置数据库中未保存第一映射,所述处理器还执行 以下操作:
[0060] 所述处理器解析所述网络建模语句,获得所述解析实例;