一种基于MIB的结构化查询方法及装置与流程

文档序号:16628405发布日期:2019-01-16 06:20阅读:248来源:国知局
一种基于MIB的结构化查询方法及装置与流程

本申请涉及网络数据管理技术领域,尤其涉及一种基于mib的结构化查询方法及装置。



背景技术:

随着在因特网的网管框架中被管对象越来越多,管理程序必须越来越频繁地读取和设置被管对象的参数及状态信息存储器,即管理信息库(managementinformationbase,mib),以帮助用户快速掌握当前网络状况及配置相关参数信息。

底层管理软件与被管对象之间使用简单网络管理协议(simplenetworkmanagementprotocol,snmp)进行通信,目前对于管理程序开发者来说,开发都是基于socket或者封装过的snmp软件单元,通过get、getnext、set、walk等snmp请求来执行交互动作,开发者需要熟悉snmp协议及相关请求业务逻辑,不宜于快速开发且无法与被管对象的管理信息库mib进行联动。



技术实现要素:

为解决上述技术问题,本申请提供一种基于mib的结构化查询方法及装置,开发者只需在mib中编写简单的结构化查询语言,即可通过mib与snmp的联动,快速与被管理对象通信交互,提高了管理程序开发效率。

第一方面,本申请提供一种基于mib的结构化查询方法,包括:

步骤s100,在被管理对象的mib中编写结构化查询语言;所述结构化查询语言包括mib的表名称、字段名称和过滤条件语句;

步骤s200,解析所述结构化查询语言,生成相应的snmp请求,并筛选出满足所述过滤条件的查询结果;

步骤s300,将所述查询结果反馈至网管系统。

可选地,所述结构化查询语言包括查询语法和更新语法。

在第一方面第一种可能的实现方式中,当所述结构化查询语言为查询语言时,所述步骤s200包括:

根据所述结构化查询语言,确定当前被管理对象的mib表以及各字段的oid;

根据被管理对象ip以及各字段的oid,生成snmpgetnext请求;

响应所述snmpgetnext请求,获取所有字段的值,滤除不满足所述过滤条件的值,从而筛选出满足所述过滤条件的查询结果。

在第一方面第二种可能的实现方式中,当所述结构化查询语法为更新语言时,所述结构化查询语言还包括更新值,所述过滤条件包括替换值,则所述步骤s200包括:

根据所述结构化查询语言,确定当前被管理对象的mib表以及各字段的oid;

根据被管理对象ip以及各字段的oid,生成snmpgetnext请求;

响应所述snmpgetnext请求,获取目标字段对应的索引,所述目标字段等于所述替换值;

根据目标字段对应的索引、被管理对象ip以及更新值,生成snmpset请求;

响应所述snmpset请求,将所述目标字段修改为所述更新值,得到更新后的查询结果。

可选地,所述查询语言的结构为:

select[字段名称]from[mib的表名称]where[过滤条件语句]。

可选地,所述更新语言的结构为:

update[mib的表名称]set[目标字段]=更新值where[目标字段]=替换值。

第二方面,本申请实施例还提供一种基于mib的结构化查询装置,其特征在于,包括:

编写单元,用于在被管理对象的mib中编写结构化查询语言;所述结构化查询语言包括mib的表名称、字段名称和过滤条件语句;

查询单元,用于解析所述结构化查询语言,生成相应的snmp请求,并筛选出满足所述过滤条件的查询结果;

输出单元,用于将所述查询结果反馈至网管系统。

在第二方面第一种可能的实现方式中,当所述结构化查询语言为查询语言时,所述查询单元还用于:

根据所述结构化查询语言,确定当前被管理对象的mib表以及各字段的oid;

根据被管理对象ip以及各字段的oid,生成snmpgetnext请求;

响应所述snmpgetnext请求,获取所有字段的值,滤除不满足所述过滤条件的值,从而筛选出满足所述过滤条件的查询结果。

在第二方面第二种可能的实现方式中,当所述结构化查询语法为更新语言时,所述结构化查询语言还包括更新值,所述过滤条件包括替换值,则所述查询单元还用于:

根据所述结构化查询语言,确定当前被管理对象的mib表以及各字段的oid;

根据被管理对象ip以及各字段的oid,生成snmpgetnext请求;

响应所述snmpgetnext请求,获取目标字段对应的索引,所述目标字段等于所述替换值;

根据目标字段对应的索引、被管理对象ip以及更新值,生成snmpset请求;

响应所述snmpset请求,将所述目标字段修改为所述更新值,得到更新后的查询结果。

本申请具备如下有益的技术效果:本方案涉及mib和snmp协议,通过在被管理对象的mib中编写结构化查询语言,并在结构化查询语言解析后生成对应的snmp请求,实现数据的过滤查询,从而将管理信息库mib及snmp请求操作串联起来,其中被管理对象的mib用于提供结构化查询语言中所需的表名称及字段名称等信息,然后通过解析来执行相应的snmp请求,比如getnext或者set请求,以实现快速与被管理对象通信交互,显著提高了管理程序的开发效率。

附图说明

图1为本申请实施例一示出一种基于mib的结构化查询方法流程图;

图2为本申请实施例一示出的当结构化查询语言为查询语言时的基于mib的结构化查询方法流程图;

图3为本申请实施例一示出的当结构化查询语言为更新语言时的基于mib的结构化查询方法流程图;

图4为本申请实施例二示出的基于mib的结构化查询装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。

如图1所示,为本申请实施例一提供一种基于mib的结构化查询方法,该方法包括如下程序步骤:

步骤s100,在被管理对象的mib中编写结构化查询语言;所述结构化查询语言包括mib的表名称、字段名称和过滤条件语句。

mib为被管理对象的管理信息库,是tcp/ip网络管理协议标准框架的内容之一,mib定义了受管设备必须保存的数据项、允许对每个数据项进行的操作及其含义,即网管系统可访问的被管理对象的控制和状态信息等数据变量都保存在mib中。本实施例中所述的被管理对象是具备mib,同时支持snmp协议的网络设备,包括但不限于路由器、交换机等。

步骤s200,解析所述结构化查询语言,生成相应的snmp请求,并筛选出满足所述过滤条件的查询结果。

本实施例中,结构化查询语言包括查询语言和更新语言。查询语言,用于根据过滤条件筛选目标信息,同时过滤掉无用的信息;更新语言,用于根据过滤条件,对mib表中的特定目标字段进行替换,实现信息的更新。无论是查询语言还是更新语言,其本质都是实现对目标信息的筛选和查询,因此统属结构化查询语言。

以查询语言为例,其语法结构为:

select[字段名称]from[mib的表名称]where[过滤条件语句]。

mib中的信息以表的形式进行存储,表中包含若干字段,表名称用于识别对应的mib表,字段名称用于识别不同字段。更具体地,比如,selectltbfmslotindexfromltbfmslotentrywhereltbfmslotindex=1,就是指基于生成的snmp请求,从表ltbfmslotentry中,过滤掉不等于1的值,从而得到值为1的字段ltbfmslotindex。如下表1所示,本实施例列举了集中过滤条件语句,实际应用时可根据需要进行设定和编辑。

表1

步骤s300,将所述查询结果反馈至网管系统。

如图2所示,当所述结构化查询语言为查询语言时,所述步骤s200包括:

步骤s201,根据所述结构化查询语言,确定当前被管理对象的mib表以及各字段的oid。

查询语言的语法结构为:select[字段名称]from[mib的表名称]where[过滤条件语句]。通过表名称可以定位到被管理对象的mib表,过滤条件限定了所要查询信息满足的条件,并确定表中各字段的oid(objectidentifier,对象标识符又称为物联网域名),oid与字段相关联,用来无歧义地标识字段的全局唯一的值,可保证字段在通信或信息处理中正确地定位和管理。

步骤s202,根据被管理对象ip以及各字段的oid,生成snmpgetnext请求。

步骤s203,响应所述snmpgetnext请求,获取所有字段的值,滤除不满足所述过滤条件的值,从而筛选出满足所述过滤条件的查询结果。

通过snmpgetnext请求,可以实现对全表的遍历,基于过滤条件,滤除表中所有不满足条件的值,最终筛选出满足过滤条件的值,并向网管系统输出查询结果。

如图3所示,当所述结构化查询语法为更新语言时,所述结构化查询语言还包括更新值,所述过滤条件包括替换值,则所述步骤s200包括:

步骤s201,根据所述结构化查询语言,确定当前被管理对象的mib表以及各字段的oid。

步骤s202,根据被管理对象ip以及各字段的oid,生成snmpgetnext请求。

步骤s204,响应所述snmpgetnext请求,获取目标字段对应的索引,所述目标字段等于所述替换值。

根据snmpgetnext请求,对全表进行遍历,从全局上搜索等于替换值的字段,作为目标字段,并获取该目标字段对应的索引,替换值是旧值,是需要待更新的值。索引是依赖于表建立的,它提供了mib中编排表中数据的内部方法,一个表的存储是由两部分组成的,一部分用于存放表的数据页面,另一部分是存放索引页面,索引就存放在索引页面上,实现了表中数据的逻辑排序,通过索引,可以加快数据的查询速度并减少系统的响应时间,从而快速定位和查找到目标字段,提高查询效率。

步骤s205,根据目标字段对应的索引、被管理对象ip以及更新值,生成snmpset请求。

步骤s206,响应所述snmpset请求,将所述目标字段修改为所述更新值,得到更新后的查询结果。

更新语言的语法结构为:update[mib的表名称]set[目标字段]=更新值where[目标字段]=替换值。更新值是新值,用于取代替换值,从而实现信息的更新,输出更新后的查询数据。snmpset请求用于设置目标字段的值,通过索引定位到目标字段后,将目标字段的值由替换值修改为更新值,当mib全表中所有目标字段的值全部更新后,即可将查询结果反馈至网管系统。

比如,以语法结构updateltbfmslotentrysetltbfmslotindex=1whereltbfmslotindex=2为例,就是将表ltbfmslotentry中,所有目标字段ltbfmslotindex的值由原来的2更新为1,从而得到更新后的表ltbfmslotentry。

如图4所示,本申请实施例二提供一种基于mib的结构化查询装置,所述装置包括:

编写单元400,用于在被管理对象的mib700中编写结构化查询语言;所述结构化查询语言包括mib的表名称、字段名称和过滤条件语句。

查询单元500,用于解析所述结构化查询语言,生成相应的snmp请求,并筛选出满足所述过滤条件的查询结果。

输出单元600,用于将所述查询结果反馈至网管系统800。

所述结构化查询语言包括查询语法和更新语法。

进一步地,当所述结构化查询语言为查询语言时,所述查询单元500还用于:

根据所述结构化查询语言,确定当前被管理对象的mib表以及各字段的oid;

根据被管理对象ip以及各字段的oid,生成snmpgetnext请求;

响应所述snmpgetnext请求,获取所有字段的值,滤除不满足所述过滤条件的值,从而筛选出满足所述过滤条件的查询结果。

或者,当所述结构化查询语法为更新语言时,所述结构化查询语言还包括更新值,所述过滤条件包括替换值,则所述查询单元500还用于:

根据所述结构化查询语言,确定当前被管理对象的mib表以及各字段的oid;

根据被管理对象ip以及各字段的oid,生成snmpgetnext请求;

响应所述snmpgetnext请求,获取目标字段对应的索引,所述目标字段等于所述替换值;

根据目标字段对应的索引、被管理对象ip以及更新值,生成snmpset请求;

响应所述snmpset请求,将所述目标字段修改为所述更新值,得到更新后的查询结果。

其中,所述查询语言的结构为:

select[字段名称]from[mib的表名称]where[过滤条件语句];

所述更新语言的结构为:

update[mib的表名称]set[目标字段]=更新值where[目标字段]=替换值。

由以上技术方案可知,本申请涉及mib和snmp协议,通过在被管理对象的mib中编写结构化查询语言,并在结构化查询语言解析后生成对应的snmp请求,实现数据的过滤查询,从而将管理信息库mib及snmp请求操作串联起来,其中被管理对象的mib用于提供结构化查询语言中所需的表名称及字段名称等信息,然后通过解析来执行相应的snmp请求,比如getnext或者set请求,以实现快速与被管理对象通信交互,显著提高了管理程序的开发效率。

本领域的技术人员可以清楚地了解到本申请各实施例中的技术可借助软件和某些硬件设备来实现。具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的基于mib的结构化查询方法及装置的各实施例中的全部或部分步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本说明书中各个实施例之间相同相似的部分互相参照即可。

以上所述的本申请具体实施方式并不构成对本发明保护范围的限定。

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