一种在YANG模型中定义数据关系的方法、装置及系统与流程

文档序号:16331632发布日期:2018-12-19 06:14阅读:406来源:国知局
一种在YANG模型中定义数据关系的方法、装置及系统与流程

本发明涉及通信技术领域中的网络管理技术,特别涉及一种在yang模型中定义数据关系的方法、装置及系统。

背景技术

yang是一种数据建模语言,用来建模由netconf协议、netconf远端过程调用(rpcs)、和netconf通知(notification)操作的配置数据和状态数据。yang模型是一种树形结构的建模语言,具有良好的可读性和可扩展性,它具有自己的语法格式,可以无差地转化为xml格式,同时通过yangtoolsplugin可以自动生成相应的java接口、类及方法等,为使用者处理编程提供了很大的便利,因此用yang语言来建模业务模型已经渐渐地广泛应用于现有网络管理。

然而在工程上,网管或第三方app在下发netconf请求时,需要知道数据项之间的关系,比如:数据项间依赖、互斥等关系,然后根据此关系去下发合适的报文,以完成工程上的应用需要,比如有依赖的实体双方,在创建实体时须保证被依赖的实体存在,否则会导致创建失败。netconf数据模型语言yang本身虽然提供了丰富的语法来表征数据项之间的关系,比如通过模块内父子节点的定义,能达到模块内的依赖;choicecase能保证各个case间是互斥的,但是在工程上这些手段仍然不足以将数据项之间的关系表达完整,比如无法定义模块间(即存在于不同yang文件的数据项之间)的依赖/互斥关系等。因此有必要扩展出相应的功能将数据项之间的关系完整表达,在网管/app和网元之间达成一致的认识,保证网管/app能根据数据定义模型正确地下发报文。



技术实现要素:

根据本发明实施例提供的一种在yang模型中定义数据关系的方法、装置及系统,解决实体间关系表达不完整导致无法保证正确下发报文的问题。

根据本发明实施例提供的一种在yang模型中定义数据关系的方法,包括:

网管侧获取来自网元的表征yang模型的yang文件;

当所述网管侧需要对业务实体进行操作时,根据所述yang文件,确定待操作的所述业务实体是否存在具有数据关系的模块间实体;

所述网管侧根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作。

优选地,所述数据关系包括模块间业务实体的依赖或互斥或关联关系,根据所述yang文件,确定待操作的所述业务实体是否存在具有数据关系的模块间实体包括:

所述网管侧解析所述yang文件,获得所述业务实体的描述信息;

若所述业务实体的描述信息中,存在用于描述模块间业务实体的依赖或互斥或关联关系的yang扩展语句,则确定所述业务实体存在具有数据关系的模块间实体。

优选地,在确定所述业务实体存在具有数据关系的模块间实体的同时,所述网管侧进一步从所述yang扩展语句中获取所述数据关系的用户策略。

优选地,所述操作是创建操作,所述网管侧根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作包括:

当所述网管侧确定所述业务实体存在依赖的模块间实体时,查询所述网元中是否存在所述依赖的模块间实体;

若查询到所述网元中存在所述依赖的模块间实体,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体;

若未查询到所述网元中存在所述依赖的模块间实体,则生成用于先创建所述依赖的模块间实体再创建所述业务实体的请求,并发送至所述网元,以便所述网元在创建所述依赖的模块间实体后创建所述业务实体

优选地,所述操作是创建操作,所述网管侧根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作包括:

当所述网管侧确定所述业务实体存在互斥的模块间实体时,确定所述互斥关系的用户策略;

若确定所述用户策略是配置优先策略,或确定所述用户策略是存在优先策略且未查询到所述网元中存在所述互斥的模块间实体,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体;

若确定所述用户策略是存在优先策略且查询到所述网元中存在所述互斥的模块间实体,则生成用于先删除所述互斥的模块间实体再创建所述业务实体的请求,并发送至所述网元,以便所述网元在删除所述互斥的模块间实体后创建所述业务实体。

优选地,所述操作是创建操作,所述操作是创建操作,所述网管侧根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作包括:

当所述网管侧确定所述业务实体存在关联的模块间实体时,若确定所述关联的模块间实体满足创建所述业务实体的约束条件,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体。

优选地,所述操作是删除操作,所述网管侧根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作包括:

当所述网管侧确定所述业务实体存在被依赖的模块间实体时,确定所述依赖关系的用户策略;

若确定所述用户策略是配置优先策略,或确定所述用户策略是存在优先策略且未查询到所述网元中存在所述被依赖的模块间实体,则生成用于删除所述业务实体的请求,并发送至所述网元,以便所述网元删除所述业务实体;

若确定所述用户策略是存在优先策略且查询到所述网元中存在所述被依赖的模块间实体,则生成用于先删除所述被依赖的模块间实体再删除所述业务实体的请求,并发送至所述网元,以便所述网元在删除所述被依赖的模块间实体后删除所述业务实体。

根据本发明实施例提供的存储介质,其存储用于实现上述在yang模型中定义数据关系的方法的程序。

根据本发明实施例提供的一种在yang模型中定义数据关系的装置,包括:

文件获得模块,用于获取来自网元的表征yang模型的yang文件;

关系确定模块,用于当所述网管侧需要对业务实体进行操作时,根据所述yang文件,确定待操作的所述业务实体是否存在具有数据关系的模块间实体;

实体操作模块,用于根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作。

优选地,所述数据关系包括模块间业务实体的依赖或互斥或关联关系,所述关系确定模块解析所述yang文件,获得所述业务实体的描述信息,若所述业务实体的描述信息中,存在用于描述模块间业务实体的依赖或互斥或关联关系的yang扩展语句,则确定所述业务实体存在具有数据关系的模块间实体。

根据本发明实施例提供的一种在yang模型中定义数据关系的系统,包括:

网元侧设备,用于生成表征yang模型的yang文件;

网管侧设备,用于获取所述yang文件,并当需要对业务实体进行操作时,根据所述yang文件,确定待操作的所述业务实体是否存在具有数据关系的模块间实体,并根据确定结果,控制所述网元侧设备执行相应操作,实现对所述业务实体的操作。

本发明实施例提供的技术方案具有如下有益效果:

通过本发明,在yang模型上能够更丰富的表现出业务模型数据项之间的关系,即可以在yang业务模型上定义出模块间数据项的依赖、互斥关系,能够保证正确下发报文,减少模型无法完整表述数据项间的关系带来的维护、操作等不便,减少沟通和开发成本,提高模型定义的完整性。

附图说明

图1是本发明实施例提供的在yang模型中定义数据关系的方法流程图;

图2是本发明实施例提供的在yang模型中定义数据关系的装置框图;

图3是归纳的数据项之间的关系图,以及此关系引起的行为约束举例示意图;

图4是网管侧针对依赖关系在创建实体时的处理流程;

图5是网管侧针对依赖关系在删除被依赖实体时的处理流程图;

图6是网管侧针对互斥关系在创建实体时的处理流程图;

图7是本发明实施例提供的网元侧设备的结构示意图;

图8是本发明实施例提供的网管侧设备的结构示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是本发明实施例提供的在yang模型中定义数据关系的方法流程图,如图1所示,步骤包括:

步骤s101:网管侧获取来自网元的表征yang模型的yang文件。

步骤s102:当所述网管侧需要对业务实体进行操作时,根据所述yang文件,确定待操作的所述业务实体是否存在具有数据关系的模块间实体。其中,所述操作包括创建操作和删除操作。所述数据关系包括模块间业务实体的依赖或互斥或关联关系。

步骤s102包括:所述网管侧解析所述yang文件,获得所述业务实体的描述信息,若所述业务实体的描述信息中,存在用于描述模块间业务实体的依赖或互斥或关联关系的yang扩展语句,则确定所述业务实体存在具有数据关系的模块间实体。进一步地,所述网管侧从所述yang扩展语句中获取所述数据关系的用户策略。

步骤s103:所述网管侧根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作。

具体包括以下场景:

1.创建的业务实体有依赖的实体。

当所述网管侧根据所述数据关系确定待创建的所述业务实体存在依赖的模块间实体时,查询所述网元中是否存在所述依赖的模块间实体;若所述网管侧查询到所述网元中存在所述依赖的模块间实体,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体;若所述网管侧未查询到所述网元中存在所述依赖的模块间实体,则生成用于先创建所述依赖的模块间实体再创建所述业务实体的请求,并发送至所述网元,以便所述网元在创建所述依赖的模块间实体后创建所述业务实体。

2、创建的业务实体有互斥的实体。

当所述网管侧根据所述数据关系确定待创建的所述业务实体存在互斥的模块间实体时,确定所述互斥数据关系的用户策略;若所述网管侧确定所述用户策略是配置优先策略,或所述网管侧确定所述用户策略是存在优先策略,且未查询到所述网元中存在所述互斥的模块间实体,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体;若所述网管侧确定所述用户策略是存在优先策略,且查询到所述网元中存在所述互斥的模块间实体,则生成用于先删除所述互斥的模块间实体再创建所述业务实体的请求,并发送至所述网元,以便所述网元在删除所述互斥的模块间实体后创建所述业务实体。

3、创建的业务实体有关联的实体。

当所述网管侧根据所述数据关系确定待创建的所述业务实体存在关联的模块间实体时,所述网管侧确定所述关联的模块间实体是否满足创建所述业务实体的约束条件,若所述网管侧确定所述关联的实体满足创建所述业务实体的约束条件,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体。

4、删除的业务实体有被依赖的实体。

当所述网管侧根据所述数据关系确定待删除的所述业务实体存在被依赖的模块间实体时,确定所述依赖数据关系的用户策略;若所述网管侧确定所述用户策略是配置优先策略,或所述网管侧确定所述用户策略是存在优先策略,且未查询到所述网元中存在所述被依赖的模块间实体,则生成用于删除所述业务实体的请求,并发送至所述网元,以便所述网元删除所述业务实体;若所述网管侧确定所述用户策略是存在优先策略,且查询到所述网元中存在所述被依赖的模块间实体,则生成用于先删除所述被依赖的模块间实体再删除所述业务实体的请求,并发送至所述网元,以便所述网元在删除所述被依赖的模块间实体后删除所述业务实体。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,包括步骤s101至步骤s103。进一步说,本发明还可以提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时至少实现以下步骤:根据来自网元的yang文件,获得模块间业务实体的数据关系;当所述网管侧需要对业务实体进行操作时,根据所述模块间业务实体的数据关系,确定待操作的所述业务实体是否存在依赖或互斥或关联的实体;根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作。其中,所述的存储介质可以包括rom/ram、磁碟、光盘、u盘。

图2是本发明实施例提供的在yang模型中定义数据关系的装置框图,如图2所示,包括:文件获得模块10、关系确定模块20和实体操作模块30。

文件获得模块10,用于获取来自网元的表征yang模型的yang文件。

关系确定模块20,用于当所述网管侧需要对业务实体进行操作时,根据所述yang文件,确定待操作的所述业务实体是否存在具有数据关系的模块间实体。所述数据关系包括模块间业务实体的依赖或互斥或关联关系,具体地说,关系确定模块20解析所述yang文件,获得所述业务实体的描述信息,若所述业务实体的描述信息中,存在用于描述模块间业务实体的依赖或互斥或关联关系的yang扩展语句,则确定所述业务实体存在具有数据关系的模块间实体,进一步地,所述网管侧从所述yang扩展语句中获取所述数据关系的用户策略。

实体操作模块30,用于根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作。

具体地说,当创建的业务实体有依赖的模块间实体时,所述实体操作模块30查询所述网元中是否存在所述依赖的模块间实体,若查询到所述网元中存在所述依赖的模块间实体,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体,若未查询到所述网元中存在所述依赖的模块间实体,则生成用于先创建所述依赖的模块间实体再创建所述业务实体的请求,并发送至所述网元,以便所述网元在创建所述依赖的模块间实体后创建所述业务实体。当创建的业务实体有互斥的模块间实体时,所述实体操作模块30确定所述互斥数据关系的用户策略,若所述用户策略是配置优先策略,或所述网管侧确定所述用户策略是存在优先策略,且未查询到所述网元中存在所述互斥的模块间实体,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体,若所述用户策略是存在优先策略,且查询到所述网元中存在所述互斥的模块间实体,则生成用于先删除所述互斥的模块间实体再创建所述业务实体的请求,并发送至所述网元,以便所述网元在删除所述互斥的模块间实体后创建所述业务实体。当创建的业务实体有关联的模块间实体时,所述实体操作模块30确定所述关联的模块间实体是否满足创建所述业务实体的约束条件,若所述关联的模块间实体满足创建所述业务实体的约束条件,则生成用于创建所述业务实体的请求,并发送至所述网元,以便所述网元创建所述业务实体。当删除的业务实体有被依赖的模块间实体时,所述实体操作模块30确定所述依赖数据关系的用户策略,若所述用户策略是配置优先策略,或所述网管侧确定所述用户策略是存在优先策略,且未查询到所述网元中存在所述被依赖的模块间实体,则生成用于删除所述业务实体的请求,并发送至所述网元,以便所述网元删除所述业务实体,若所述用户策略是存在优先策略,且查询到所述网元中存在所述被依赖的模块间实体,则生成用于先删除所述被依赖的模块间实体再删除所述业务实体的请求,并发送至所述网元,以便所述网元在删除所述被依赖的模块间实体后删除所述业务实体。

本实施例提供一种在yang模型中定义数据关系的装置,包括:

处理器,用于侧获取来自网元的表征yang模型的yang文件,当所述网管侧需要对业务实体进行操作时,根据所述yang文件,确定待操作的所述业务实体是否存在具有数据关系的模块间实体,并根据确定结果,控制所述网元执行相应操作,实现对所述业务实体的操作;

存储器,与所述处理器耦接,其上存储供所述处理器执行的程序。

本发明实施例在现有yang语法的基础上通过扩展语法定义来表示数据项(即实体、数据实体、业务实体)之间的依赖、互斥关系,以及由数据项之间的关系导致的对其进行不同的操作而产生的行为。

图3是归纳的数据项之间的关系图,以及此关系引起的行为约束举例示意图,如图3所示,数据实体之间的关系理论上可以归纳为:依赖、互斥和关联。而对数据实体的增删改查(crud)操作也会因数据实体的关系不同而产生不同的操作结果。下面逐个分析数据项之间的关系以及对其进行不同的操作而产生的不同行为。

依赖关系是指某一实体的存在需要依赖另一个或者一些实体的存在。在理论上,如果实体a依赖于实体b,在数据上实体a不能脱离实体b而单独存在。所以在实体a创建时需要实体b必须存在。体现在行为上就是,如果实体a依赖于实体b,则实体a创建时,实体b如果不存在,则会创建失败;删除实体b时,根据业务实现的策略不同可能有不同的行为体现,比如删除实体b时,如果实体a存在,则实体b删除不成功,这属于存在优先的策略。如果删除实体b时,实体a存在,则实体a会被关联删除,这属于配置优先的策略。这些数据关系和行为关系最好都需要在模型定义上体现出来,以便网管侧操作时能根据模型定义下发正确的操作请求。

互斥关系是指某一实体与另一或一些实体间存在互斥的关系,不能同时存在。如果实体a和实体b互斥,则实体a和实体b的数据不得在同一时间共存。体现在行为上就是,如果实体a和实体b互斥,根据不同的策略,也有不同的行为。比如创建实体a时,实体b已存在,则实体a创建失败,这属于存在优先的策略;如果创建实体a时,实体b已存在,则自动删除实体b,实体a创建成功,这属于配置优先的策略。

关联关系是指实体之间存在某种约束关系,这种约束关系可能发生在依赖的双方或多方,也有可能发生在无依赖的双方或多方之间。比较常见的关联关系就是实体间的值约束关系,比如当实体a存在时,实体b的取值和实体c的取值必须满足一定的关系。关联关系与依赖和互斥不同,必须遵循存在优先的原则,如果对实体的改变将会导致关联关系不满足,则该实体的改变将会失败。关联关系对某些实体的改变不能自动地调整其他实体的值或实体本身。

图4是网管侧针对依赖关系在创建实体时的处理流程,如图4所述,包括:

步骤s201:网管侧要获取到网元定义的模型yang文件,并对这些yang文件进行解析,整理出模块间实体的依赖关系。

本实施例提供了在网元侧定义模块间实体的依赖关系的方法,通过yang扩展语法的方式在yang文件中体现出模块间实体的依赖关系,举例如下:

上述例子的yang文件定义片段中,实体a依赖于定义在另一个模块中的实体b,ncd:depend就是本实施例提出的yang扩展语法,用于定义实体间的依赖关系。depend语句的参数是一个路径,指明依赖的对象。depend语句可以存在于任何yang数据定义节点上。任何yang数据定义节点都可以拥有1条或多条depend语句,当然也可以没有depend语句。depend语句包括policy和description子语句,policy子语句用来定义依赖关系的用户策略,有两种取值:配置优先(user-priority)和存在优先(system-priority);description子语句用来添加描述信息。

步骤s202:网管在创建实体a的时候,需要先根据模型定义信息判断实体a是否有依赖的实体,如果有进入步骤s203;如果实体a没有依赖的实体,则进入步骤s205。

步骤s203:网管去网元查询实体a依赖的实体b是否存在,如果存在进入步骤s205;否则进入步骤s204。

步骤s204:网管根据模型定义生成先创建实体b再创建实体a的请求,并下发网元执行。

步骤s205:网管根据模型定义生成创建实体a的请求,并下发网元执行。

图5是网管侧针对依赖关系在删除被依赖实体时的处理流程图,如图5所示,包括:

步骤s301:同步骤s201,网管侧先解析所有的yang文件,整理出模块间实体的依赖关系。

步骤s302:通过模型的解析结果,判断是否有依赖于待删实体b的业务实体,如果存在(假设存在实体a依赖实体b),进入步骤s303;如果不存在,进入步骤s305。

步骤s303:判断模型定义上实体a对实体b的依赖是配置优先策略还是存在优先策略。如果是配置优先策略,进入步骤s305;如果是存在优先策略,进入步骤s304。

步骤s304:网管去网元查询依赖于实体b的实体a配置是否存在,如果存在进入步骤s306;如果不存在进入步骤s305。

步骤s305:网管根据模型定义生成删除实体b的请求并下发网元处理。

步骤s306:网管根据模型定义生成先删除实体a再删除实体b的请求并下发网元处理。

图6是网管侧针对互斥关系在创建实体时的处理流程图,如图6所示,包括:

步骤s401:同步骤s201,网管侧先解析所有的yang文件,整理出模块间实体的依赖关系。

本实施例提供了在网元侧定义模块间实体的互斥关系的方法,通过yang扩展语法的方式在yang文件中体现出模块间实体的互斥关系,举例如下:

上述例子的yang文件定义片段中定义了实体c与定义在另一个模块中实体d之间存在互斥关系,ncd:exclude就是本实施例提出的yang扩展语法,用于定义模块间实体的互斥关系。exclude语句的参数是一个路径,指明互斥的对象。exclude语句可以存在于任何yang数据定义节点上。任何yang数据定义节点都可以拥有1条或多条exclude语句,当然也可以没有exclude语句。exclude语句包括policy和description子语句,policy子语句用来定义互斥关系的用户策略,是配置优先(user-priority)还是存在优先(system-priority);description子语句用来添加描述信息。

本实施例以创建实体a为例,实体a与实体b互斥。

步骤s402:创建实体a之前,先通过模型解析结果判断是否存在与实体a互斥的业务实体,如果存在,进入步骤s403;如果不存在进入步骤s405。

步骤s403:判断实体a与实体b的互斥是依循的存在优先策略还是配置优先策略;如果是存在优先策略,则进入步骤s404;如果是配置优先策略,则进入步骤s405。

步骤s404:网管去网元查询互斥的实体b配置是否存在,如果存在进入步骤s406;如果不存在,进入步骤s405。

步骤s405:网管根据模型定义,生成创建实体a的请求并下发网元处理。

步骤s406:网管根据模型定义,生成先删除实体b再创建实体a的请求并下发网元处理。

图7是本发明实施例提供的网元侧设备的结构示意图,如图7所示,该设备包括:模块间数据关系定义机制模块501和业务模型yang文件定义模块502。

模块间数据关系定义机制模块501,该模块提供了用于定义模块间数据(依赖、互斥)关系的机制,通过yang扩展语法,为模型上体现模块间数据关系提供了可能。

业务模型yang文件定义模块502,该模块主要是进行业务模型的定义,最终生成业务模型的yang文件。

图8是本发明实施例提供的网管侧设备的结构示意图,如图8所示,该设备包括:业务yang模型文件解析模块601和根据模块间数据关系生成请求报文处理模块602。

业务yang模型文件解析模块601(实现图2的关系获得模块的功能),该模块主要提供解析网元侧定义的yang文件模型,针对扩展的yang语法(用于支持模块间实体依赖depend、互斥exclude的定义)要支持对其进行合适的解析,并对模块间实体的这些依赖互斥关系进行维护。

根据模块间数据关系生成请求报文处理模块602(实现图2的关系确定模块和实体操作模块的功能),在对网元进行配置操作时,要根据模块601解析出来的实体间关系,生成合理的请求报文。

进一步地,本发明实施例还提供了一种在yang模型中定义数据关系的系统,包括:

网元侧设备(实现图7各模块功能),用于定义用于表征业务实体的数据关系的yang扩展语法,根据所述yang扩展语法,定义yang模型中模块间业务实体的数据关系,并根据所述yang模型中模块间业务实体的数据关系,生成所述yang模型的yang文件;

网管侧设备(实现图8各模块功能),用于根据来自所述网元侧设备的yang文件,获得模块间业务实体的数据关系,当需要对业务实体进行操作时,根据所述模块间业务实体的数据关系,确定待操作的所述业务实体是否存在依赖或互斥或关联的实体,并根据确定结果,控制所述网元侧设备执行相应操作,实现对所述业务实体的操作。

本发明实施例基于yang语法的业务模型定义机制,当前这些yang业务模型广泛应用于netconf协议网管与网元之间的通信以及sdn控制器北向接口定义。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1