基于Yang语言模型的状态数据处理方法技术

技术编号:20024747 阅读:25 留言:0更新日期:2019-01-06 04:01
本发明专利技术涉及一种基于Yang语言模型的状态数据处理方法,所述的方法包括如下步骤:(1)根据实际状态数据创建Yang数据模型;(2)通过用户接口请求获取数据;(3)判断用户接口请求获取的数据是单实例模型或多实例模型;如果是单实例模型则继续步骤(4),如果是多实例模型则继续步骤(5);(4)遍历回调单实例模型下所有叶节点的数据;(5)遍历查找多实例模型下所有单个实例,获取各个实例的键值,遍历回调各个实例下所有叶节点的数据。采用该基于Yang语言模型的状态数据处理方法,用统一数据获取接口来获取所有的状态数据,经过对数据抽象,使得数据获取本身不在于任何业务紧耦合,状态数据获取的开发有了统一的规范。

【技术实现步骤摘要】
基于Yang语言模型的状态数据处理方法
本专利技术涉及配置管理系统
,尤其涉及配置管理系统中的状态数据处理
,具体是指一种基于Yang语言模型的状态数据处理方法。
技术介绍
在配置管理系统中,状态数据处理是网络设备状态监控的一个非常重要的功能。状态数据通常不会被数据库存储,而是在运行时通过函数来即时读取。这些状态数据可以是各种资源使用的统计计数,也可以运行时产生的内存数据,还可以是一些业务数据。随着网络的飞速发展,网络规模扩大,网络的异构性和复杂性不断增加,网络设备的种类和数目日益增多,地理位置分布更加广泛,对网络配置管理的要求越来越高。网络设备在人类日常生活中扮演了越来越重要的角色,在提升人类生活质量的同时也对网络配置管理系统带来了各种各样的问题,比如配置模型越来越复杂,数据量越来越大,代码逻辑越来越复杂等问题。近几年,为了应对这些问题,人们提出了各种解决方案,如TLV(type-length-value,一种报文格式)数据封装或根据业务不同进行硬编码,来最大程度的解决状态数据处理问题。在传统的状态数据处理过程,很少会有数据模型的概念,即使有了数据模型的概念,也很少会区别对待配置数据与状态数据。因此准确而严格地区分出状态数据与配置数据,对配置管理而言是一个非常重要的因素,而且配置数据和状态数据掺杂在一起对配置处理流程会产生直接的影响,无法用同一套逻辑来处理这些数据。传统的状态数据处理需要针对不同的用户接口设计不同的数据结构及函数,以最常用的CLI(command-lineinterface,命令行界面)命令行接口为例,传统实现状态数据都是通过show命令来展示的,而针对不同命令行的处理存在着巨大的差异,几乎要针对每一个show命令都要都供一个函数来解析。同样的,如果换成NETCONF接口,那么原先针对命令行解析的show命令,需要全部重新实现一遍来获取对应的状态数据。一旦需要状态数据有变更,那么需要改动每一处状态数据获取代码,由此带来的工作量非常巨大且繁琐,每个不同的接口代码都要分别修改,很容易产生漏改、错改的现象发生。传统的状态数据处理都是与业务模块紧耦合在一起,代码很难复用。每个状态数据获取都是直接访问业务数据结构,由此带来的数据安全隐患非常大,一旦不小心错误的修改到业务数据内存,将很难发现错误。并且传统状态数据过程中很少有严格的数据类型校验,那么给出的状态数据,很可能会出现错误的结果。传统的业务模块很少有对外提供数据模型,一旦需要与第三方交互,没有一个可以参考的标准,也无法让开发者直观的认识到有哪些状态数据需要处理及这些状态数据之间有怎样的层次关系。因此一个统一的状态数据处理模块对配置管理系统而言,是非常重要的。本专利技术专于状态数据处理,通过抽象出一系列基础的回调函数技术,提供一个全新的解决方案去统一处理所有状态数据。
技术实现思路
本专利技术的目的是克服了上述现有技术的缺点,提供了一种能够实现通过统一的数据模型规范状态数据获取的基于Yang语言模型的状态数据处理方法。为了实现上述目的,本专利技术的具有如下构成:该基于Yang语言模型的状态数据处理方法,其特征在于,所述的方法包括如下步骤:(1)根据实际状态数据创建Yang数据模型;(2)通过用户接口请求获取数据;(3)判断用户接口请求获取的数据是单实例模型或多实例模型;如果是单实例模型则继续步骤(4),如果是多实例模型则继续步骤(5);(4)遍历回调单实例模型下所有叶节点的数据;(5)遍历查找多实例模型下所有单个实例,获取各个实例的键值,遍历回调各个实例下所有叶节点的数据。较佳地,所述的步骤(1)包括如下步骤:(1.1)编写Yang数据模型;(1.2)将所有的状态数据抽象为多实例状态数据或单实例状态数据;(1.3)标识出状态模型;(1.4)每个回调点关联一组回调函数。更佳地,所述的标识出状态模型,具体为:在状态模型的container或list内添加Yang扩展标记callpoint。更进一步地,所述的扩展标记callpoint具有名称属性。更佳地,所述的回调函数包括:多实例迭带函数,用以查找每一个存在的键值;元素获取函数,用以获取每一个叶节点数据。较佳地,所述的步骤(2)与步骤(3)之间还存在步骤(2.1):(2.1)创建一个事务,所述的事务用以隔离多用户同时请求状态数据。较佳地,所述的步骤(4)包括如下步骤:(4.1)指明要获取的container;(4.2)配置库根据Yang模型找出container内部第一个叶节点;(4.3)将本次操作中的叶节点的路径传给业务;(4.4)调用元素获取函数;(4.5)所述的业务实现元素获取函数;(4.6)将元素获取函数提供的数据作为本次操作中的叶节点的数据回填给客户;(4.7)所述的配置库遍历出下一个叶节点;(4.8)判断是否存在下一个叶节点,如果是,则继续步骤(4.3),否则结束本次遍历。较佳地,所述的步骤(5)包括如下步骤:(5.1)指明要获取的list;(5.2)配置库根据Yang模型识别出list的键字段,调用多实例迭带函数来获取第一个键值;(5.3)配置库根据键值回传给业务;(5.4)业务根据本次操作中的键值确定第一个叶节点;(5.5)遍历回调本次操作中的所有叶节点的数据;(5.6)调用多实例迭带函数来遍历出下一个键值并判断是否存在下一个键值,如果是,则继续步骤(5.3),否则结束本次遍历。更佳地,所述的步骤(5.5)包括以下步骤:(5.5.1)将本次操作中的叶节点的路径传给业务;(5.5.2)调用元素获取函数;(5.5.3)所述的业务实现元素获取函数;(5.5.4)将元素获取函数提供的数据作为本次操作中的叶节点的数据回填给客户;(5.5.5)所述的配置库遍历出下一个叶节点;(5.5.6)判断是否存在下一个叶节点,如果是,则继续步骤(5.5.1),否则继续步骤(5.6)。较佳地,所述的实例与相应键值一一对应。较佳地,其特征在于,所述的步骤(1)前还包括步骤(0):(0)创建配置库维护表,用于记载回调点名称、Yang模型路径和回调函数组。更佳地,所述的回调函数组包括但不限于元素获取函数和多实例迭带函数。采用了该专利技术中的基于Yang语言模型的状态数据处理方法,用统一的API(ApplicationProgrammingInterface,应用程序编程接口)来获取所有的状态数据,经过对数据抽象,使得数据获取本身不在于任何业务紧耦合,状态数据获取的开发有了统一的规范;为所有不同的用户(如CLI、NETCONF等)接口提供了统一的数据获取接口;状态数据获取流程只依赖于Yang模型,可以任意构造查询层次,具有广泛的应用范围。附图说明图1为本专利技术的基于Yang语言模型的状态数据处理方法的流程图。具体实施方式为了能够更清楚地描述本专利技术的
技术实现思路
,下面结合具体实施例来进行进一步的描述。在一种有效的实施方式中,该基于Yang语言模型的状态数据处理方法,其特征在于,所述的方法包括如下步骤:(1)根据实际状态数据创建Yang数据模型;(2)通过用户接口请求获取数据;(3)判断用户接口请求获取的数据是单实例模型或多实例模型;如果是单实例模型则继续步骤(4),如果是多实例模型则继续步骤(5);(4)遍历回调单实例本文档来自技高网
...

【技术保护点】
1.一种基于Yang语言模型的状态数据处理方法,其特征在于,所述的方法包括如下步骤:(1)根据实际状态数据创建Yang数据模型;(2)通过用户接口请求获取数据;(3)判断用户接口请求获取的数据是单实例模型或多实例模型;如果是单实例模型则继续步骤(4),如果是多实例模型则继续步骤(5);(4)遍历回调单实例模型下所有叶节点的数据;(5)遍历查找多实例模型下所有单个实例,获取各个实例的键值,遍历回调各个实例下所有叶节点的数据。

【技术特征摘要】
1.一种基于Yang语言模型的状态数据处理方法,其特征在于,所述的方法包括如下步骤:(1)根据实际状态数据创建Yang数据模型;(2)通过用户接口请求获取数据;(3)判断用户接口请求获取的数据是单实例模型或多实例模型;如果是单实例模型则继续步骤(4),如果是多实例模型则继续步骤(5);(4)遍历回调单实例模型下所有叶节点的数据;(5)遍历查找多实例模型下所有单个实例,获取各个实例的键值,遍历回调各个实例下所有叶节点的数据。2.根据权利要求1所述的基于Yang语言模型的状态数据处理方法,其特征在于,所述的步骤(1)包括如下步骤:(1.1)编写Yang数据模型;(1.2)将所有的状态数据抽象为多实例状态数据或单实例状态数据;(1.3)标识出状态模型;(1.4)每个回调点关联一组回调函数。3.根据权利要求2所述的基于Yang语言模型的状态数据处理方法,其特征在于,所述的标识出状态模型,具体为:在状态模型的container或list内添加Yang扩展标记callpoint。4.根据权利要求3所述的基于Yang语言模型的状态数据处理方法,其特征在于,所述的扩展标记callpoint具有名称属性。5.根据权利要求2所述的基于Yang语言模型的状态数据处理方法,其特征在于,所述的回调函数包括:多实例迭带函数,用以查找每一个存在的键值;元素获取函数,用以获取每一个叶节点数据。6.根据权利要求1所述的基于Yang语言模型的状态数据处理方法,其特征在于,所述的步骤(2)与步骤(3)之间还存在步骤(2.1):(2.1)创建一个事务,所述的事务用以隔离多用户同时请求状态数据。7.根据权利要求1所述的基于Yang语言模型的状态数据处理方法,其特征在于,所述的步骤(4)包括如下步骤:(4.1)指明要获取的container;(4.2)配置库根据Yang模型找出container内部第一个叶节点;(4.3)将本次操作中的叶节点的路径传给业务;(...

【专利技术属性】
技术研发人员:朱林逯利军钱培专
申请(专利权)人:上海赛特斯信息科技股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1