一种基于SNMP接口的数据传输方法和装置与流程

文档序号:11147502阅读:648来源:国知局
一种基于SNMP接口的数据传输方法和装置与制造工艺

本申请涉及通信技术领域,特别是涉及一种基于SNMP接口的数据传输方法和一种基于SNMP接口的数据传输装置。



背景技术:

随着网络技术的快速发展,网络中的设备越来越多,网络也越来越复杂,对网络中设备的管理要求也越来越高。目前,对网络中的设备的管理主要是基于SNMP(Simple Network Management Protocol,简单网络管理协议)协议,通过集成网管代理功能来进行的。SNMP是基于TCP/IP协议族的网络管理标准,是一种在IP网络中管理网络节点(如服务器、工作站、路由器、交换机等)的标准协议。

目前,集成网管代理功能的实现,是接收上层网管通过SNMP接口下发到集成网管代理中的命令和数据,将这些命令和数据经过解析转换和封包后,再次使用SNMP接口下发到网元,从而实现上层网管对网元的管理。在这一过程中,集成网管代理在转发上层网管下发给网元的的命令和数据时,首先是在字段的构造函数中创建该字段独有的SNMP发送接收对象,在当前字段的操作函数和获取函数中,针对不同类型的数据,分别封包,而对于oid后缀和索引的处理则是放在当前字段的SNMP发送接收对象中进行处理。由于对数据的处理是分解在字段的构造函数、获取函数和操作函数中分别进行,使得对同一个功能的操作过于分散,而且针对每一个字段,在处理时都需要在内存中创建SNMP的发送接收对象,同时需要对每一个创建了SNMP的发送接收对象进行管理,造成过多的系统资源被占用,凭空增加了数据处理的复杂性。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于SNMP接口的数据传输方法和相应的一 种基于SNMP接口的数据传输装置。

为了解决上述问题,本申请实施例公开了一种基于SNMP接口的数据传输方法,所述数据包括标量数据和矢量数据,所述方法包括:

接收上层网管针对所述数据的操作指令,所述操作指令包括从下层网元获取所述数据的指令,和/或,将所述数据发送至下层网元的指令;

针对所述操作指令,将所述数据传入预先生成的SNMP接口模板,其中,所述SNMP接口模板由一个或多个SNMP接口封装而成;

采用所述SNMP接口模板传输所述数据。

优选地,当所述数据为标量数据时,在所述采用所述SNMP接口模板传输所述数据的步骤前,还包括:

将所述数据封装成数据包;

获取所述数据的字段oid。

优选地,当所述数据为矢量数据时,在所述采用所述SNMP接口模板传输所述数据的步骤前,还包括:

将所述数据封装成数据包;

获取所述数据的oid前缀;

根据所述数据的oid前缀,获取所述数据的字段索引值;

根据所述数据的字段索引值,获取所述数据的当前字段的oid。

优选地,当所述操作指令为从下层网元获取所述数据的指令时,所述采用所述SNMP接口模板传输所述数据的步骤包括:

调用所述SNMP接口模板中的获取接口;

通过所述获取接口获取所述数据;

将所述数据传输给上层网管。

优选地,当所述操作指令为将所述数据发送至下层网元的指令时,所述采用所述SNMP接口模板传输所述数据的步骤包括:

调用所述SNMP接口模板中的发送接口;

通过所述发送接口,向下层网元的指定字段发送所述数据。

为了解决上述问题,本申请实施例公开了一种基于SNMP接口的数据传输装置,所述数据包括标量数据和矢量数据,所述装置包括:

操作指令接收模块,用于接收上层网管针对所述数据的操作指令,所述操作指令包括从下层网元获取所述数据的指令,和/或,将所述数据发送至下层网元的指令;

数据传入模块,用于针对所述操作指令,将所述数据传入预先生成的SNMP接口模板;其中,所述SNMP接口模板由一个或多个SNMP接口封装而成;

数据传输模块,用于采用所述SNMP接口模板传输所述数据。

优选地,所述装置还包括:

第一数据封装模块,用于将所述标量数据封装成数据包;

第一字段oid获取模块,用于获取所述标量数据的字段oid。

优选地,所述装置还包括:

第二数据封装模块,用于将所述矢量数据封装成数据包;

oid前缀获取模块,用于获取所述矢量数据的oid前缀;

字段索引值获取模块,用于根据所述矢量数据的oid前缀,获取所述矢量数据的字段索引值;

第二字段oid获取模块,用于根据所述矢量数据的字段索引值,获取所述矢量数据的当前字段的oid。

优选地,所述数据传输模块包括:

获取接口调用子模块,用于调用所述SNMP接口模板中的获取接口;

数据获取子模块,用于通过所述获取接口获取所述数据;

第一数据传输子模块,用于将所述数据传输给上层网管。

优选地,所述数据传输模块包括:

发送接口调用子模块,用于调用所述SNMP接口模板中的发送接口;

第二数据传输子模块,用于通过所述发送接口,向下层网元的指定字段发送所述数据。

与背景技术相比,本申请实施例包括以下优点:

在本申请的实施例中,通过预先将一个或多个SNMP接口进行封装,生成SNMP接口模板,使上层网管与下层网元间的数据交互由所述SNMP接口模板完成,实现了只需将数据传入所述SNMP接口模板,就可以对数据进行发送和接收,使得对同一个功能的操作集中处理,无需每次都创建发送和接收对象,提高了数据传输的效率,减少了系统资源的消耗。

其次,在本申请的实施例中,通过区分标量数据和矢量数据,对不同类型的数据分别进行处理,有效避免了数据处理的复杂性。

附图说明

图1是本申请的一种基于SNMP接口的数据传输方法实施例一的步骤流程图;

图2是本申请的一种基于SNMP接口的数据传输方法实施例二的步骤流程图;

图3是本申请的一种基于SNMP接口的数据传输方法实施例三的步骤流程图;

图4是本申请的一种基于SNMP接口的数据传输装置实施例的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,示出了本申请的一种基于SNMP接口的数据传输方法实施例一的步骤流程图,具体可以包括如下步骤:

步骤101,接收上层网管针对所述数据的操作指令;

在本申请的实施例中,所述操作指令包括从下层网元获取所述数据的指令,和/或,将所述数据发送至下层网元的指令。

通常,上层网管对下层网元的管理,主要是通过SNMP接口发送或获取数据来进行的。上层网管可以将数据发送至下层网元,也可以从下层网元获取数据。因此,在本申请的实施例中,接收上层网管针对所述数据的操作指令可以包括上层网管从下层网元获取所述数据的指令,和/或,上层网管将所述数据发送至下层网元的指令。

步骤102,针对所述操作指令,将所述数据传入预先生成的SNMP接口模板;

在具体实现中,当上层网管需要向下层网元发送数据,或者从下层网元获取数据时,可以将所述数据传入预先生成的SNMP接口模板中,所述SNMP接口模板由一个或多个SNMP接口封装而成。

集成网管代理使用一套开源的源码来构建与上层网管和下层网元交互所使用的SNMP协议,该开源的源码是一套专注于网络管理的开放技术,是SNMP协议原理和面向对象结合的产物。该开源的源码不仅是可扩充的,而且很容易扩充,它囊括了对新的操作系统、网络系统、网络管理平台、网络协议、SNMPv2及其新特性等各领域的支持,通过派生的类,用户可以根据自己的喜好继承或重载该开源的SNMP源码。因此,在本申请的实施例中,可以使用该开源的SNMP源码提供的既有接口,结合模板技术,预先生成SNMP接口模板,通过使用重新封装的SNMP接口模板来处理上层网管和下层网元之间的数据交互。

步骤103,采用所述SNMP接口模板传输所述数据。

在将所述数据传入预先生成的SNMP接口模板中后,即可按照上层网管针对所述数据的操作指令,采用该SNMP接口模板,从下层网元的数据传输至上层网管,和/或,将数据从上层网管发送至下层网元,从而实现上层网管对下层网元的管理。

在本申请的实施例中,通过预先将一个或多个SNMP接口进行封装,生成SNMP接口模板,使上层网管与下层网元间的数据交互由所述SNMP接口模板完成,实现了只需将数据传入该SNMP接口模板,就可以对数据进行发送和接收,使得对同一个功能的操作集中处理,无需每次都创建发送和接 收对象,提高了数据传输的效率,减少了系统资源的消耗。

参照图2,示出了本申请的一种基于SNMP接口的数据传输方法实施例二的步骤流程图,具体可以包括如下步骤:

步骤201,接收上层网管获取下层网元数据的操作指令,

在本申请的实施例中,当上层网管在获取下层网元数据时,可以接收到上层网管针对所述数据的相应的操作指令。

步骤202,针对所述操作指令,将所述数据传入预先生成的SNMP接口模板;

在本申请的实施例中,当接收到上层网管获取下层网元数据的操作指令时,可以针对该操作指令,将所述数据传入预先生成的SNMP接口模板中,所述SNMP接口模板由一个或多个SNMP接口封装而成。

本步骤与实施例一中的步骤102类似,本实施例对此不再赘述。

在本申请的实施例中,可以根据包含的数据表的数量多少,将所述数据分为标量数据和矢量数据。其中,标量数据是只有一条记录的数据表,矢量数据是包括多条记录的数据表。

因此,在将所述数据传入预先生成的SNMP接口模板中后,可以根据数据类型的不同,分别对所述数据进行处理。

在本申请的一种优选实施例中,当所述数据为标量数据时,可以按照如下步骤对所述标量数据进行预处理:

步骤S211,将所述数据封装成数据包;

步骤S212,获取所述数据的字段oid。

在具体实现中,当上层网管从下层网元获取的数据为标量数据时,在将该标量数据传入预先生成的SNMP接口模板中后,可以将该标量数据封装成数据包,然后获取到该标量数据的字段oid。一般情况下,可以通过字段名称直接映射出字段oid,字段oid用于标示出该标量数据中的一个具体字段,上层网管可以通过对该字段的处理,来具体实现对下层网元的管理。

在本申请的另一种优选实施例中,当所述数据为矢量数据时,可以按照 如下步骤对所述矢量数据进行预处理:

步骤S221,将所述数据封装成数据包;

在具体实现中,当上层网管从下层网元获取的数据为矢量数据时,在将该矢量数据传入预先生成的SNMP接口模板中后,可以将该矢量数据封装成数据包。

步骤S222,获取所述数据的oid前缀;

步骤S223,根据所述数据的oid前缀,获取所述数据的字段索引值;

由于矢量数据是包括多条记录的数据表,因此矢量数据包含相应的字段索引值,字段索引值可以用于区分不同的字段。

在具体实现中,可以首先截取出所述数据的oid前缀,然后根据该oid前缀,获得所述数据的字段索引值。

步骤S224,根据所述数据的字段索引值,获取所述数据的当前字段的oid。

在具体实现中,当已经获得所述数据的字段索引值后,即可根据该字段索引值,组合出所述数据的当前字段的oid,上层网管可以通过对该字段的处理,来具体实现对下层网元的管理。

步骤203,调用所述SNMP接口模板中的获取接口;

在具体实现中,当所述数据被传入预先生成的SNMP接口模板,并经过上述预处理后,便可以调用所述SNMP接口模板中的获取接口。

对于标量数据,其获取接口可描述为:

template<typename T>

GetValue(string strName,T&curValue)

对于矢量数据,其获取接口可描述为:

template<typename T>

Get_Value_A(Oidx&oid,string strName,T&curValue,int iIndexLength)

步骤204,通过所述获取接口获取所述数据;

步骤205,将所述数据传输给上层网管。

在具体实现中,获取接口可以接收所有在开源的SNMP源码中已定义的 所有数据类型,如INTEGER(整形)、IpAddress(描述ip地址的数据类型)、OCTET STRING(字符串)等等。因此,可以通过所述获取接口获取到数据,然后将所述数据传输给上层网管。

在本申请的实施例中,通过区分标量数据和矢量数据,对不同类型的数据分别进行处理,然后调用预先生成的SNMP接口模板中的获取接口获取数据,使得上层网管能够快速地获得下层网元的数据,提高了数据传输的效率;同时,由于区分了标量数据和矢量数据的处理,有效避免了数据处理的复杂性。

参照图3,示出了本申请的一种基于SNMP接口的数据传输方法实施例三的步骤流程图,具体可以包括如下步骤:

步骤301,接收上层网管将所述数据发送至下层网元的操作指令;

在本申请的实施例中,当上层网管在将数据发送至下层网元时,可以接收到上层网管针对所述数据的相应的操作指令。

步骤302,针对所述操作指令,将所述数据传入预先生成的SNMP接口模板;

在本申请的实施例中,当接收到上层网管发送数据至下层网元的操作指令时,可以针对该操作指令,将所述数据传入预先生成的SNMP接口模板中,所述SNMP接口模板由一个或多个SNMP接口封装而成。

本步骤与实施例一中的步骤102类似,本实施例对此不再赘述。

在本申请的一种优选实施例中,当所述数据为标量数据时,可以按照如下步骤对所述标量数据进行预处理:

步骤S311,将所述数据封装成数据包;

步骤S312,获取所述数据的字段oid。

由于步骤S311-S312与实施例二中的步骤S211-S212类似,本实施例对此不再赘述。

在本申请的一种优选实施例中,当所述数据为矢量数据时,可以按照如下步骤对所述矢量数据进行预处理:

步骤S321,将所述数据封装成数据包;

步骤S322,获取所述数据的oid前缀;

步骤S323,根据所述数据的oid前缀,获取所述数据的字段索引值;

步骤S324,根据所述数据的字段索引值,获取所述数据的当前字段的oid。

由于步骤S321-S324与实施例二中的步骤S221-S224类似,本实施例对此不再赘述。

步骤303,调用所述SNMP接口模板中的发送接口;

在具体实现中,当所述数据被传入预先生成的SNMP接口模板,并经过上述预处理后,便可以调用所述SNMP接口模板中的发送接口。

对于标量数据,其发送接口可描述为:

template<typename T>

SetValue(string strName,T octIn)

对于矢量数据,其发送接口可描述为:

template<typename T>

SetValue_A(Oidx&oid,string strName,T octIn,int iIndexLength)

在具体实现中,发送接口可以接收所有在开源的SNMP源码中已定义的所有数据类型,如INTEGER(整形)、IpAddress(描述ip地址的数据类型)、OCTET STRING(字符串)等等。

步骤304,通过所述发送接口,向下层网元的指定字段发送所述数据。

在具体实现中,可以通过所述发送接口向下层网元的指定字段发送所述数据,上层网管可以通过对该指定字段的处理,来实现对下层网元的具体管理。

在本申请的实施例中,通过区分标量数据和矢量数据,对不同类型的数据分别进行处理,然后调用预先生成的SNMP接口模板中的发送接口发送数据,使得上层网管能够快速地将所述数据发送至下层网元的指定字段,提高了数据传输的效率;同时,由于区分了标量数据和矢量数据的处理,有效避免了数据处理的复杂性。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图4,示出了本申请的一种基于SNMP接口的数据传输装置实施例的结构框图,具体可以包括如下模块:

操作指令接收模块401,用于接收上层网管针对所述数据的操作指令,所述操作指令包括从下层网元获取所述数据的指令,和/或,将所述数据发送至下层网元的指令;其中,所述数据包括标量数据和矢量数据;

数据传入模块402,用于针对所述操作指令,将所述数据传入预先生成的SNMP接口模板;其中,所述SNMP接口模板由一个或多个SNMP接口封装而成;

数据传输模块403,用于采用所述SNMP接口模板传输所述数据。

在本申请的一种实施例中,所述装置还可以包括如下模块:

第一数据封装模块404,用于将所述标量数据封装成数据包;

第一字段oid获取模块405,用于获取所述标量数据的字段oid。

在本申请的另一种实施例中,所述装置还可以包括如下模块:

第二数据封装模块406,用于将所述矢量数据封装成数据包;

oid前缀获取模块407,用于获取所述矢量数据的oid前缀;

字段索引值获取模块408,用于根据所述矢量数据的oid前缀,获取所述矢量数据的字段索引值;

第二字段oid获取模块409,用于根据所述矢量数据的字段索引值,获取所述矢量数据的当前字段的oid。

在本申请的一种优选实施例中,所述数据传输模块403可以包括如下子模块:

获取接口调用子模块4031,用于调用所述SNMP接口模板中的获取接口;

数据获取子模块4032,用于通过所述获取接口获取所述数据;

第一数据传输子模块4033,用于将所述数据传输给上层网管。

在本申请的另一种优选实施例中,所述数据传输模块403还可以包括如下子模块:

发送接口调用子模块4034,用于调用所述SNMP接口模板中的发送接口;

第二数据传输子模块4035,用于通过所述发送接口,向下层网元的指定字段发送所述数据。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生 一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种基于SNMP接口的数据传输方法和一种基于SNMP接口的数据传输装置,进行了详细介绍,本文中应用了具体个例对 本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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