基于简单网络管理协议的网络管理设备和方法

文档序号:7949623阅读:204来源:国知局

专利名称::基于简单网络管理协议的网络管理设备和方法
技术领域
:本发明总体上涉及对网络装置进行管理的设备和方法。更具体地说,本发明涉及利用简单网络管理协议(SimpleNetworkManagementProtocol,SNMP)对通信装置进行管理的设备和方法。
背景技术
:在过去的几年中,由于网络的迅速发展以及不同种类的系统的出现,使得综合网络管理难以进行。随着网络规模的扩大,在许多领域中,网络装置管理正变得日益重要。因此,网络管理器需要用于在各种网络环境中进行综合管理的网络框架。由于这种需要,因特网的主要标准机构,即因特网工程任务组(InternetEngjneeringTaskForce,IETF),已经将与相对简单的协议对应的简单网络管理协议(SNMP),采用为对基于因特网的网络装置进行管理的标准。在传统的SNMP系统中,管理系统被称为管理器,而管理目标被称为代理。用于将管理器连接到代理的信息传输网络基于传输控制协议/网际协议(TransmissionControlProtocol/InternetProtocol,TCP/IP),并且,利用SNMP的通信使用了用于检索管理信息的命令、用于连续检索管理信息的命令、用于改变并写入管理信息的命令以及用于根据管理器与代理之间的管理信息库(managementinformationbase,MIB),报告异常操作的命令。SNMP代理是放置在管理目标装置中的软件模块,并且具有关于MIB的信息。利用SNMP,将这些信息提供给SNMP管理器。要利用SNMP管理的特定信息、资源等被称为对象。对象的集合被称为MIB。MIB的格式被定义为SNMP的一部分,并且利用抽象语法定义1(AbstractSyntaxNotationOne,ASN.1)对对象进行定义。SNMP代理对依据与网络装置功能有关的参数配置的MIB进行管理。SNMP管理器从由SNMP代理提供的MIB中获得特定值,并且,对装置状态进行识别或者修改该值。如上所述,用于利用SNMP对网络进行常规管理的操作表示用于从由管理目标装置提供的MIB中获得特定值、识别装置状态以及改变该值的操作。按照SNMP,可以方便地使用管理方法,并且,可以对使用TCP/IP的各种类型的装置进行开发。通过各种请求注解文档(RequestForComment,RFC),可以方便地对管理范围进行指定或扩大,并且,可以简单地对协议进行配置。在众多的管理协议当中,由于SNMP容易实施,因而被广泛使用。图1示出了在SNMP管理器100与SNMP代理102之间的传统结构以及控制操作。首先,对图1中示出的、在SNMP管理器100与SNMP代理102之间发送/接收的命令进行描述。-GetRequest表示用于读取对象值的请求信号;-GetNextRequest表示用于读取当前对象值之后的下一个对象值的请求信号;-GetResponse表示对请求的响应信号;-SetRequest表示用于写入对象值的信号;并且-Trap表示用于报告陷阱(trap)的信号。图1的SNMP管理器100和SNMP代理102可以利用上述消息进行相互通信。以下将参照图2和图3,对传统的开发方法和传统的、用于与应用程序接口的方法进行描述。图2为示出了用于开发SNMP代理102的传统方法的流程图。在图2的步骤200中,网络管理器对MIB进行定义,以便开发SNMP代理102,并且,网络管理器对用于与相关的应用程序接口的结构进行定义。在步骤202中,根据在步骤200中定义的MIB,生成MIB文件。在步骤204中,网络管理器对生成的MIB文件进行编码和编译,由此生成SNMP代理102。在步骤206中,网络管理器确定MIB或接口是否已经被校正。如果MIB或接口已经被校正,则网络管理器进行到步骤208,以对管理项目进行定义。在步骤210中,网络管理器根据在步骤208中定义的管理项目,生成MIB文件。在步骤212中,网络管理器根据生成的MIB文件,对SNMP代理102进行重新编码和重新编译。图3示出了在管理器100与应用程序304之间的传统接口方法。为了使管理器100与应用程序304接口,代理102必须知道结构和目的地信息。当使用开发SNMP代理102的传统工具时,必须利用在应用程序304中使用的结构,实施与管理项目对应的对象302。在用于开发SNMP代理102的传统方法中,对MIB这样进行设计,使得能够反映装置的特性。经过设计的MIB的内容确定了SNMP代理102的开发范围,用于在装置内执行管理功能的应用程序304的角色以及SNMP代理102与应用程序304之间的接口方法等。传统的工具被用于有效地开发SNMP协议。当SNMP代理102具有需要的数据时,有利于利用该工具对SNMP代理102进行开发。但是,当通过与应用程序304的接口获得MIB对象值时,由于MIB对象具有不同的结构,因此对SNMP代理102的开发是困难并且复杂的。SNMP管理器100通过SNMP代理102,对在装置内的不同应用程序304中管理的管理项目进行访问。这些管理项目由MIB表述并且依照装置特性而不同。在开始进行开发时,不能对这样的MIB进行完善的定义。由于传统上根据上述的MIB对SNMP代理102进行开发,因此必须为装置开发不同的SNMP代理102。在同一个装置中管理的项目可以被频繁改变、添加或删除。当进行改变时,需要对SNMP代理102进行校正。由于在上述环境中,无论何时对MIB进行改变、添加或删除,都必须对SNMP代理102进行校正和重新编译,因此开发需要大量的时间和精力。因此,需要利用简单网络管理协议(SNMP)对通信装置进行管理的、有效且高效的系统和方法。
发明内容为了大致解决了上述和其他问题,并且提供基于简单网络管理协议(SNMP)的、用于在网络管理系统中实时生成管理信息库(MIB)文件和对象标识符信息文件的网络管理设备和方法,提供了本发明的实施例。本发明的实施例提供了简单网络管理协议(SNMP)管理设备和方法,用于对适合于在包括网络管理系统的网络中出现的变化的装置的运行进行控制。本发明的实施例提供了简单网络管理协议(SNMP)管理设备和方法,用于按照标准,对包括网络管理系统的装置进行操作。按照本发明的目的,提供了一种设备,用于生成管理信息库(MIB)文件和对象标识符信息(OIDInfo)文件,其中,管理信息库(MIB)文件用于在编译时,利用简单网络管理协议(SNMP),对通信装置进行管理,而对象标识符信息(OIDInfo)文件用于在SNMP代理与应用程序之间进行通信。该设备包括标题文件存储器,用于存储由应用程序创建的标题文件,以便对SNMP装置进行管理;提取器,用于从标题文件存储器中读取标题文件,并且创建MIB文件和用于在SNMP代理与应用程序之间交换消息的OIDInfo文件;MIB文件存储器,用于存储由提取器创建的MIB文件;以及,OIDInfo文件存储器,用于存储由提取器创建的OIDInfo文件。按照本发明的另一个目的,提供了一种方法,用于生成管理信息库(MIB)文件和对象标识符信息(OIDInfo)文件,其中,管理信息库(MIB)文件用于在编译时,利用简单网络管理协议(SNMP),对通信装置进行管理,而对象标识符信息(OIDInfo)文件用于在SNMP代理与应用程序之间进行通信。该方法包括如下步骤在接收已经改变的管理项目的应用程序中创建SNMP接口标题文件;读取SNMP接口标题文件并且生成MIB文件和OIDInfo文件;并且,存储MIB文件和OIDInfo文件。按照本发明的另一个目的,提供了一种方法,用于执行运行时操作,以便接收来自利用SNMP对通信装置进行管理的管理器的、包括管理项目的简单网络管理协议(SNMP)请求消息,并且形成对管理项目进行处理的结果的响应。该方法包括如下步骤接收来自代理中的管理器的、用于请求对管理项目进行处理的结果的数据的SNMP请求消息;从代理向OIDInfo处理器发送包括在SNMP请求消息中的对象标识符信息(OIDInfo);根据OIDInfo,从OIDInfo处理器向代理发送用于在代理与存储了由管理器请求的管理项目数据的应用程序之间进行通信的信息;根据从OIDInfo处理器接收的通信信息,与代理中的应用程序进行通信,并且从应用程序接收对由管理器请求的管理项目进行处理的结果;并且,从代理向管理器发送接收到的、对管理项目进行处理的结果。按照本发明的另一个目的,提供了一种设备,用于利用简单网络管理协议(SNMP)对通信装置进行管理,以便执行运行时操作,从利用SNMP对通信装置进行管理的管理器,接收包括管理项目的SNMP请求消息,并且形成对管理项目进行处理的结果的响应。该设备包括应用程序,用于执行用于请求管理项目的操作;对象标识符信息(OIDInfo)处理装置,用于在接收被映射到管理项目的预定OIDInfo时,提供用于与应用程序进行通信的信息;以及,代理,用于在接收到来自管理器SNMP的请求消息时,向OIDInfo处理装置发送映射到管理项目的OIDInfo,获得用于与应用程序进行通信的信息,从应用程序接收对管理项目进行处理的结果,并且向管理器发送处理结果。根据以下结合附图进行的详细描述,将对本发明的上述和其他特性和优点理解得更清楚,其中图1示出了在简单网络管理协议(SNMP)管理器与SNMP代理之间的传统结构以及控制操作;图2为示出了用于开发图1的SNMP代理的传统方法的流程图;图3示出了在管理器与应用程序之间的传统接口方法;图4为示出了按照本发明实施例的典型SNMP代理的框图;图5为按照本发明实施例的,示出了在图4中示出的SNMP代理以及包括编译时间和运行时间的典型操作流程的框图;图6为按照本发明实施例的,示出了在图4中示出的SNMP代理的典型编译操作的框图;图7为按照本发明实施例的,示出了在图4中示出的SNMP代理在编译时的典型操作的流程图;图8示出了按照本发明实施例的,用于在运行时,在图4中示出的SNMP代理中,利用在图6的编译时生成的对象标识符信息,形成SNMP响应的典型处理;图9为按照本发明实施例的,示出了在图4中示出的SNMP代理在运行时的典型操作的流程图;图10示出了按照本发明实施例的,用于在代理和应用程序之间进行通信的一般消息服务(generalmessageservice,GMS)协议数据单元(protocoldataunit,PDU)的典型配置;图11示出了按照本发明实施例的,用于从代理向应用程序发送Get/GetNext/GetFirst消息的典型进程以及与响应有关的操作;图12示出了按照本发明实施例的,用于从代理向应用程序发送PreSet/Set消息的典型进程以及与响应有关的操作;图13示出了按照本发明实施例的,用于从代理向应用程序发送GetBulk消息的典型进程以及与响应有关的操作;图14示出了按照本发明实施例的,用于从代理向应用程序发送Notification(Trap)消息的典型进程以及与响应有关的操作;图15A示意性地示出了按照本发明实施例的,包括对象标识符信息文件的典型项目;图15B为示意性地示出了包括图15A中示出的项目的典型信息的表格;图16示出了按照本发明实施例的对象标识符信息存储器的典型结构;图17示出了按照本发明实施例的,用于在对象标识符处理器中检索GMS信息的典型方法;以及图18示出了按照本发明实施例的,当代理接收到来自应用程序的Trap消息时,用于检索通知信息的典型方法。所有附图中,应该将相同的标号理解为相同的部分、部件和结构。具体实施例方式以下将参照附图,对本发明的典型实施例进行详细描述。在以下描述中,为了清楚和简明,对这里引用的、本领域技术人员众所周知的功能和配置不进行详细描述。在本发明的实施例中,简单网络管理协议(SNMP)代理包括四个部分,如图4所示。图4为示出了按照本发明实施例的典型SNMP代理102的框图。SNMP代理102执行用于在网络元素中支持SNMP的功能。SNMP代理102包括代理400,用于对SNMP消息进行处理并且执行与应用程序的接口;以及,对象标识符信息(objectidentifierinformation,OIDInfo)处理器402,用于对与具有用于创建一般消息服务(generalmessageservice,GMS)的信息的资料库对应的OIDInfo进行处理,在应用程序与代理400之间进行通信需要一般信息服务。SNMP代理102还包括提取器404,用于将用于创建GMS消息和管理信息库(MIB)的信息传送到图5的OIDInfo存储器,以及,标题文件存储器406,用于存储SNMP接口标题文件、由图5的应用程序504管理的信息以及GMS信息,其中,SNMP接口标题文件用于与应用程序通信。OIDInfo处理器402提供许多功能。首先,当从代理400输入关于管理项目的OIDInfo时,OIDInfo处理器402从存储OIDInfo数据文件的OIDInfo存储器500中,检索出与用于在代理400与应用程序504之间进行通信的信息对应的GMS信息,并且,将GMS信息提供给代理400。这里,用于通信的信息包括关于端口号、消息格式、通信类型和负荷结构(payloadstructure)等的信息,用于在代理400与应用程序504之间进行通信。在本发明的典型实施例中,假设代理400与应用程序504之间的接口为GMS,但是,本发明不限于此。或者,可以使用其他接口。图5为按照本发明实施例的,示出了在图4中示出的SNMP代理以及包括编译时间和运行时间的总体操作流程的框图。首先,代理400被用于利用管理器100对SNMP协议进行处理,并且,发送/接收用于与应用程序504进行通信的信息,用于对管理项目进行实际维护和管理。当网络管理器发送包括基于各种预置格式的协议数据单元(protocoldataunit,PDU)的SNMP请求消息,请求网络装置的管理项目时,映射到包括在SNMP请求消息中的管理项目上的OID被发送到OIDInfo处理器402,其中,在所述网络装置中,代理102利用管理器100运行。然后,代理400从OIDInfo处理器402接收与关于端口号、格式和负荷结构的信息对应的GMS信息,用于与应用程序504通信。代理400利用GMS信息与应用程序504通信,并且从应用程序504接收对管理项目进行处理的结果。当从应用程序504接收到对管理项目进行处理的结果时,代理400通过SNMP响应消息,将对管理项目进行处理的结果的数据发送到管理器100。其次,代理400还被用于从OIDInfo处理器402获得OIDInfo,并且当接收到来自应用程序504的通知(陷阱(trap)trap)消息时,将陷阱(trap)PDU发送到管理器100。为了访问管理项目,OIDInfo处理器402从OIDInfo存储器500读取存储了向应用程序504发送消息和从应用程序504接收消息所需要的信息的OIDInfo文件。OIDInfo处理器402检索OIDInfo文件,并且将GMS信息提供给代理400。OIDInfo存储器500存储OIDInfo资料库应用程序编程接口(applicationprogramminginterface,API)和OIDInfo数据文件。从提取器404提供OIDInfo资料库API和OIDInfo数据文件。提取器404被用于,根据被定义为应用程序504中的管理项目的SNMP接口标题文件,生成MIB文件,生成OIDInfo处理器402要求的OIDInfo文件,并且将MIB文件和OIDInfo文件存储在OIDInfo存储器500中。SNMP接口标题文件506是这样的文件,其中,对消息标识符(ID)、端口号和消息结构等进行定义,使得代理400能够获得在应用程序504中管理的信息。在应用程序504中定义SNMP接口标题文件506,并且将其存储在标题文件存储器406中。以下将参照图5、6、7,对SNMP代理102在编译时的典型操作进行描述。以下对用于创建具有关于要被发送到应用程序504的GMS消息的信息的OIDInfo数据文件的基本结构,以及用于生成基于提取器404中的结构的OIDInfo数据的处理进行描述。利用上述方法,将提取器404用于根据标题文件存储器406生成数据。代理400通过OIDInfo文件使用能够检索需要的信息的OIDInfo资料库,并且使用关于要被发送到应用程序504的GMS消息的信息。以下将参照图6,对SNMP代理102的编译操作进行更详细的描述。图6按照本发明实施例,示出了用于在编译时,在SNMP代理102的提取器404中生成数据文件的典型处理。首先,SNMP代理102的开发器将对要通过应用程序504管理的信息进行定义的SNMP接口标题文件506存储在标题文件存储器406中。然后,提取器404从具有被管理的信息的标题文件存储器406中读取SNMP接口标题文件506,创建在其中定义了管理项目的MIB文件,并且将创建的MIB文件存储在MIB文件存储器502中。此外,提取器404从标题文件存储器406中读取SNMP接口标题文件506,创建用于生成GMS消息的OIDInfo数据文件,并且将OIDInfo数据文件存储在OIDInfo存储器500中。图7为按照本发明实施例的,示出了SNMP代理102在编译时的典型操作的流程图。当开发器已经在步骤700中请求改变SNMP代理102的管理项目时,操作进行到步骤702,其中,应用程序504根据由开发器输入的信息,创建用于已经改变的管理项目的SNMP接口标题文件506,并且将已经创建的SNMP接口标题文件506存储子标题文件存储器406中。在步骤704中,提取器404读取SNMP接口标题文件并且创建MIB和OIDInfo数据文件。在步骤706中,将在步骤704创建的MIB和OIDInfo数据文件当中的MIB存储在MIB文件存储器502中,并且将已经创建的OIDInfo数据文件存储在OIDInfo存储器500中。图8示出了SNMP代理102在运行时,使用在图6的编译时生成的OIDInfo数据文件的典型处理。在图8的代理400与应用程序504之间的通信使用了GMS(或面向对象的消息服务)接口。图10中示出的GMS消息的负荷1009包括用于支持代理400与应用程序504之间的SNMP通信以及表示在消息负荷1009中重复的结构的数量的EM_Interface_header1002的消息类型。后面将对此进行更详细的描述。首先,当管理器100向代理400发送SNMP请求消息时,代理400向OIDInfo处理器402发送SNMP请求消息内的OIDInfo。代理400向OIDInfo处理器402发送OIDInfo的一个原因是,代理400需要GMS信息,以便与应用程序504通信。OIDInfo处理器402根据接收的OID消息,读取GMS信息,并且将读取的GMS信息发送到代理400。然后,代理400根据GMS信息与应用程序504通信。代理400根据应用程序504的响应的结果,向管理器100发送对SNMP请求的响应。以下将参照图9,对SNMP代理102的部件在运行时的典型操作进行描述。图9为按照本发明实施例的,示出了SNMP代理102在运行时的操作的流程图。在步骤900中,代理400确定是否已经从管理器100接收到SNMP请求。如果在步骤900中已经接收到SNMP请求,则代理400进行到步骤902,以便将包括在从管理器100接收到的SNMP请求中的OID提供给OIDInfo处理器402。在步骤904中,OIDInfo处理器402根据接收的OIDInfo,从OIDInfo存储器500中读取相关的GMS信息,并且将GMS信息提供给代理400。这里,GMS信息包括关于应用程序504的端口号、通信类型和数据结构等的信息,用于在代理400与应用程序504之间进行通信。在步骤906中,接收GMS信息的代理400根据GMS信息,向应用程序504发送对由管理器100请求的管理项目的数据的请求。在步骤908中,应用程序504通过GMS响应消息,发送关于管理项目的数据。在步骤910中,代理400根据与来自应用程序的响应对应的管理项目的数据,向管理器100发送SNMP响应消息。图10示出了用于在代理400和应用程序504之间进行通信的GMSPDU的典型配置。要求GMS标题1000支持在所有软件程序之间利用SNMP进行SNMP通信。GMS负荷1009包括用于特定标题文件的EM_Interface_header1002,以支持在代理400与应用程序504之间进行SNMP通信。EM_Interface_header1002包括四个字段(后面将参照图11对此进行更详细的描述)。EM_Interface_header1002被用于支持在代理400与应用程序504之间进行SNMP通信。负荷结构字段1004包括在进行SNMP通信时需要的负荷的字段值。图11到14示出了按照以下更详细描述的、代理400与应用程序504之间的消息类型的典型的PDU消息配置和配置字段。首先,简要描述各个字段的配置和功能。一组GMS标题(GMSHdr)1000、EM_Interface_header1002和结构字段1004被称为一行1014。如上所述,以下将对包括上述四个字段的EM_Interface_header1002进行更详细的描述。首先,msgType1006表示代理400与应用程序504之间的消息类型,并且,rowCount1008表示在用于支持multiRowTable的表格的Get、Set和Get-Next操作时,在负荷中重复的结构1004的数量。在用于所有表格的Get-Bulk操作时,使用rowCount1008的目的等同于SNMPGet-Bulk的Max-Repeat值的目的。响应1010用于报告出现错误。StructId1012表示在应用程序504内另外使用的消息ID,并且被用作用于可编程加载数据(programmableloadingdata,PLD)的关系ID。此外,应用程序504从自代理400接收的GMS消息的标题1000中复制transactionId1016和bsmId1018,创建响应消息,并且将创建的响应消息提供给代理400,使得代理400按照从应用程序504接收的响应1010正常运行。图11示出了用于从代理400向应用程序504发送Get/GetNext/GetFirst请求消息的典型进程以及与响应有关的操作。代理400对映射到一行的存储器进行分配,将从管理器100接收的索引值插入GMS负荷1009,并且将GMS负荷1009提供给应用程序504。应用程序504将相关表格中的、映射到从代理400接收的索引的行复制到存储器,并且,将响应发送到代理400。此时,MsgId被设置到与预先定义的结构有关的ResponseId。如果已经出现故障,则插入并且发送与EM_Interface_header1002的响应1010有关的错误值。此时,在不进行修改的情况下,重新发送GMS负荷1009。在GetNextRequest的情况下,检索并提供相关行的下一行。图12示出了用于从代理400向应用程序504发送PreSet/SetRequest消息的典型进程以及与响应有关的操作。首先,从代理400向应用程序504发送PreSet/SetRequest消息。PreSetRequest的操作与GetRequest的操作大致相同。当接收到PreSetRequest时,应用程序504将相关行固定。当从应用程序504接收到对PreSetRequest响应时,代理400改变用于执行SetRequest的属性值,并且向应用程序504发送SetRequest。当接收到来自应用程序504的正常响应时,代理400向管理器100发送对Set消息的响应。如果从应用程序504接收到Fail消息,则代理400向管理器100发送该Fail消息。当超时时,代理400舍弃该Set数据包。在SetRequest的情况下,映射到一行的存储器被分配给请求的GMS负荷1009,然后,提供该GMS负荷1009。当应用程序发送响应时,代理400只发送EM_Interface_header1002。图13示出了用于从代理400向应用程序504发送用于读取对象值的数量的GetBulkRequest消息的典型进程以及与响应有关的操作。在GetBulkRequest的情况下,根据相关的行,生成与EM_Interface_header1002的rowCount(Max-Repeat)1008的值对应的若干存储器。例如,如果rowCount值为“0”,则提供全部表格。例如,如果代理400已经向应用程序504发送了rowCount值为“3”的请求,则只根据请求的GMS的负荷1009,对映射到一行的存储器进行分配,用于发送表示开始的索引。然后,应用程序504将上述存储器删除,对与rowCount1008的值对应的若干存储器进行分配,复制信息,并且将复制的信息发送到代理400。由代理400将存储器删除。图14示出了用于从代理400向应用程序504发送Notification(Trap)消息的典型进程以及与响应有关的操作。为了对通知进行处理,必须对预置结构进行定义并且提供单独的消息ID。应用程序504将EM_Interface_header1002的msgType设置到EM_NOTIFICATION,将msgId1400的预置值填入GMS标题1000,将结构信息填入负荷1009,并且将消息发送到代理400。以下将对存储在OIDInfo存储器500中的典型的OIDInfo数据文件进行描述。图15A和图15B示意性地示出这样的表格,其中,将OIDInfo数据文件映射到OIDInfo存储器500中的存储器(没有示出)中。图15A示意性地示出了包括对象标识符信息文件的典型项目。以下将参照图15B,对各个项目进行描述。图15B为示出了包括图15A中示出的项目的典型信息的表格。首先,OID信息标题(OIDInfoHdr)1500表示存储OIDInfo的基本信息的负荷的数据结构。这个结构信息包括OIDInfo的版本和生成日期、默认OID、用于表示起OID树的每个节点的结构信息作用的OIDTreeInfo1502的最高节点的偏移值以及用于表示被用于对通知信息进行检索的NotiInfoHdr1508偏移值。表格1中通过例子示出了对包括OIDInfoHdr1500的字段的详细描述。表格1OIDTreeInfo1502包括树节点信息,并且被用于树搜索。OIDTreeInfo1502用于表述一个组,并且用于表述与标量对象(scalarobject)和表格对象有关的OIDTreeInfo1502的一个节点。这种结构包括表示MIB的OID的ObjectID、节点类型(NodeType)和四个偏移。ObjectID表示MIB的当前节点的OID而不是全部OID。NodeType被用于确定当前节点是否为组对象、标量对象或表格对象。包括在OIDTreeInfo中的偏移包括表示更高的OIDTreeInfo的偏移以及表示具有关于GMS和结构的信息的GMSInfo偏移。在表格2中,通过例子示出了对包括OIDTreeInfo1502的字段的描述。表格2GMS信息(GMSInfo)1504包括GMS标题信息和用于将消息提供给应用程序504的负荷信息。这种结构被划分为字段,字段的含义随structType和公用字段(commonfield)而变化。OID被映射到利用该结构生成的标量或MIB表格的组中,并且,OID包括公用默认OID(或企业OID)。structname表示对结构进行定义时创建的名字。StructType用于表示6种不同的结构类型,并且,payloadType是一个字段,用于表示Set、Get和Get-Next是否可能用于使用该结构的多个行。requestMsgId、responseMsgId和portNumber表示GMS标题信息。numberOfIndex表示结构索引的数量。numberOfField表示全部结构字段的数量,而不是MIB表格的属性的数量。payloadSize表示总的结构大小,用于计算GMS负荷的大小。pldRelationId表示PLD的关系ID,并且,当structType是sub-table时,masterTableOffset为用于表示主表格的偏移。nextGMSInfoOffset为以后使用的保留字段,并且是一个当前没有对它的用途进行定义的字段。最后,firstGMSAttInfoOffset为用于表示第一GMSAttInfo的偏移,第一GMSAttInfo表示结构的字段信息。按照structType,将GMSInfo1504的字段用于不同用途。RequestMsgId、responseMsgId和portNumber通常被用作GMS标题信息。在所有structType字段之间,NextGMSInfoOffset和firstGMSAttInfoOffset大致相同。在表格3中,通过例子对structType和随structType变化的字段的用途进行描述。表格3以下将按照structType,对GMSInfo1504的字段的用途进行描述。首先,当structType为标量时,在表格4中,通过例子示出GMSInfo1504的每个字段的用途。表格4当structType为static-table时,在表格5中,通过例子示出了GMSInfo1504的每个字段的用途。表格5当structType为agent-dynamic-table时,在表格6中,通过例子示出了GMSInfo1504的每个字段的用途。表格6当structType为application-dynamic-table时,在表格7中,通过例子示出了GMSInfo1504的每个字段的用途。表格7当structType为PLD时,在表格8中,通过例子示出了GMSInfo1504的每个字段的用途。表格8当structType为sub-table时,在表格9中,通过例子示出了GMSInfo1504的每个字段的用途。表格9当顺序检索到由firstGMSAttInfoOffset表示的GMSAttInfo时,可以发现插入负荷的字段信息。由于已经对用于GMSInfo1504的字段和结构进行了描述,以下对GMSAttInfo1506的结构进行描述。GMSAttInfo1506表示要被插入GMS负荷中的结构字段信息。表示各个结构字段的GMSAttInfo1506的元素按照偏移相互连接。用于最后的GMSAttInfo的偏移值为“0”。在GMSAttInfo1506的顺序中,表示索引的GMSAttInfo首先出现,并且,当结构包括阵列时,表示阵列的GMSAttInfo最后出现。索引按照OID的顺序排列,并且,值也按照OID的顺序排列。GMSAttInfo的字段的含义按照GMSInfo的structType和GMSAttInfo的fieldType而不同。首先,对确定GMSAttInfo的类型的fieldType进行描述。在表格10中,通过例子示出了按照fieldType而不同的字段的典型用途。表格10在表格11中,通过例子示出了当structType不是子表格并且fieldType为标量值、表格值或表格和索引时的GMSAttInfo1506的字段。表格11在表格12中,通过例子示出了当structType不是子表格并且fieldType为表格和阵列时的GMSAttInfo1506的字段。表格12在表格13中,通过例子示出了当structType不是子表格并且fieldType为阵列和索引时的GMSAttInfo1506的字段。表格13在表格14中,通过例子示出了当structType不是子表格并且fieldType为表格值时的GMSAttInfo1506的字段。表格14图15A和15B的NotiInfoHdr1508是在OIDInfo处理器402内使用的结构信息,用于利用消息ID获得通知信息。用于检索通知信息的方法可以使用一个或两个消息ID。NotiInfoHdr1508包括表示NotiNodeInfo字段1510的数量的字段和表示第一NotiNodeInfo1510的偏移。在表格15中,通过例子示出了对NotiInfoHdr1508的字段的描述。表格15图15的NotiNodeInfo1510包括用于存储消息ID的字段、用于区别NotiNodeInfo的类型的notiNodeType、用于表示子NotiInfoHdr的子NotiInfoHdrOffset,以及用于表示具有通知信息的NotiInfo1512的notiInfoOffset。NotiNodeInfo1510是用于利用消息ID检索相关通知信息的结构信息。NotiNodeInfo1510按照消息ID的顺序排列在OIDInfo数据存储器500中。OIDInfo处理器402可以利用NotiNodeInfo1510和NotiInfoHdr1508检索相关的通知信息。首先,当消息ID被映射到一个通知信息元素时,利用NotiInfoHdr的numberOfNotiNodeInfo和firstNotiInfoOffset进行二进制搜索算法(binarysearchalgorithm)。利用该算法,搜索相关的NotiNodeInfo1510。由于NotiNodeInfo1510按照消息ID的顺序排列,因此这样的搜索是可能的。利用由NotiNodeInfo1510的notiInfoOffset表示的NotiInfo1512创建SNMP通知消息。其次,当两个消息ID被映射到一个通知信息元素时,利用上述方法搜索NotiNodeInfo1510。在这种情况下,NotiNodeInfo1510的notiNodeType为多通知节点。subNotiInfoHdrOffset表示子NotiInfoHdrl508。利用第二消息ID,重复大致相同的算法。利用由NotiNodeInfo1510的notiInfoOffset表示的NotiInfo创建SNMP通知消息。在表格16中,通过例子示出了对上述字段的描述。表格16以下将对NotiInfo1512进行描述。NotiInfo1512包括用于区分通知类型的notiInfoType、用于表示在SNMP接口标题文件中定义的通知结构字段的数量的numberOfNotiField以及消息字段信息的第一偏移。首先,在表格17中,通过例子示出了notiInfoType。表格17在表格18中,通过例子示出了包括NotiInfo1512的字段。表格18以下将对与最后的结构信息对应的NotiAttInfo1514进行描述。NotiAttInfo1514表示通知消息的字段信息。首先,notiAttOID是一个表示用于给出通知的字段的OID的字符串。notiAttOID表示在标量中的全OID,并且表示表格中的、索引已经被排除的值。notiAttName表示在SNMP接口标题文件中定义的字段名的字符串。notiASNType表示在MIB中表述的属性句法的类型。notiASNType确定属性类型。其他字段的用途按照notiASNType变化。notiAttType表示C数据类型的字段。notiAttSize表示字段大小。notiStartOffset是一个偏移值,用于表示从应用程序接收的结构信息中的字段位置。subNotiAttOffset是一个偏移值,用于表示NotiAttInfo,如果当前字段表示该阵列,则NotiAttInfo用于表述一阵列。当类型为利用阵列扩展的NotiAttInfo中的阵列和索引时,notiMaxDimension值表示最大索引值。这意味着阵列的最大值。最后,nextNotiAttInfoOffset为偏移值,用于表示下一个NotiAttInfo1514。在NotiAttInfo1514中,索引被置于头部。如果多个表格包括通知,则索引在一值之后被放置,并且放置下一个索引和值。每个字段的含义按照NotiAttInfo1514的notiFieldType而不同。以下表格中示出了这一点。在表格19中,通过例子示出了notiFieldType为标量值的情况。表格19在表格20中,通过例子示出了notiFieldType为表格和索引的情况。表格20在表格21中,通过例子示出了notiFieldType为表格值的情况。表格21在表格22中,通过例子示出了notiFieldType为表格和阵列的情况。表格22在表格23中,通过例子示出了由NotiAttInfo1514的subNotiAttInfoOffset表示的NotiAttInfo的notiFieldType为阵列和索引的情况。表格23在表格24中,通过例子示出了由NotiAttInfo1514的subNotiAttInfoOffset表示的NotiAttInfo的notiFieldType为表格值的情况。表格24图16示出了OIDInfo存储器500的典型结构。存储器500可以被划分为用于利用OID对树进行搜索的部分和用于利用消息ID获得通知信息的部分。在MIB中表述的一个表格被映射到一个GMS信息元素。在标量的情况下,对组下的元素进行组合,并且将经过组合的元素映射到一个GMS信息元素。还是在标量的情况下,对组下的元素进行组合,并且在一个结构中对经过组合的元素进行定义,在这个结构中不存在索引。按照本发明的实施例,以下将参照图17,对用于检索用于在代理400与应用程序504之间进行通信的GMS信息的方法进行描述。图17示出了按照本发明实施例的,用于检索GMS信息的典型方法。当从管理器100接收到SNMPGet、Get-Next、Get-Bulk或Set请求时,OIDInfo处理器402执行下面的进程,以便利用包括在Get、Get-Next、Get-Bulk或Set消息中的OID,检索相关的GMS信息。从代理400输入的OID字符串被分开并变为整数型的OID。然后,按照OID,利用树搜索算法,顺序搜索OIDTreeInfo1502。然后,OIDInfo存储器500将映射到OID的OIDTreeInfo1502返回,将映射到OID的OIDTreeInfo1502之后的下一个OIDTreeInfo返回。如果搜索到希望的OIDTreeInfo,则OIDInfo处理器402将由OIDTreeInfo表示的GMSInfo1504返回。然后,代理400利用GMSInfo1504创建GMS标题以及负荷。当创建GMS负荷1009时,在负荷之前插入OAM标题,插入OAM标题之后的EM标题,以支持代理400与应用程序504之间的SNMP,插入EM标题之后的结构值。结构字段信息利用GMSAttInfo1506完成GMSPDU。然后,向应用程序504发送消息。按照本发明的实施例,以下将参照图18,对用于在代理400中检索通知信息的方法进行描述。图18示出了按照本发明实施例的,当代理400接收到来自应用程序的Trap消息时,用于检索通知信息的典型方法。当代理400接收到来自应用程序504的、具有预置消息ID的陷阱(trap)消息时,OIDInfo处理器402利用消息ID检索SNMP通知信息。首先,代理400确定接收到的消息的ID是一个还是两个。代理400对EM标题1002的subMsgId字段进行检查。如果被检查的字段的值为非零,则GMS标题1000的消息ID被用作第一消息ID,并且,subMsgId被用作第二消息ID。然后,利用第一消息ID对NotiNodeInfo1510进行检索。利用NotiInfoHdr1508的NotiNodeInfo字段1510的数量和二进制搜索算法,对NotiNodeInfo1510进行检索。当提供了第二消息时,利用由NotiNodeInfo1510的subNotiInfoHdrOffset表示NotiInfoHdr1508的subNotiNodeInfo字段的数量和二进制搜索算法,对NotiNodeInfo1510进行检索。NotiNodeInfo1510的notiInfoOffset表示存储通知信息的NotiInfo1512。利用NotiInfo1512和NotiAttInfo1514创建SNMP通知消息。然后,将创建的通知消息发送到管理器100。按照本发明的实施例,如果提取器仅生成新的OIDInfo文件,则即使当改变管理目标,或者改变、添加或删除管理项目时,SNMP代理也不需要添加功能或者执行新的编码和重新编译操作。即使当改变、添加或删除在SNMP代理与应用程序之间使用的结构时,也能够自动改变与管理项目和OIDInfo文件对应的MIB。因此,可以容易地对SNMP代理进行开发,并且,可以在不进行修改的情况下,将SNMP代理用于其他装置或其他管理目标。尽管已经参照本发明的某些典型实施例,对本发明进行了示出和描述,但是,本领域的技术人员应该理解,可以在不脱离由所附权利要求所限定的本发明的精神和范围的情况下,在形式和细节上进行各种修改。因此,不是由上述实施例,而是由所附的权利要求及其等价物对本发明的范围进行限制。权利要求1.一种设备,用于生成管理信息库(MIB)文件和对象标识符信息(OIDInfo)文件,其中,所述管理信息库(MIB)文件用于在编译时利用简单网络管理协议(SNMP)对通信装置进行管理,而所述对象标识符信息(OIDInfo)文件用于在SNMP代理与应用程序之间进行通信,所述设备包括标题文件存储器,用于存储由所述应用程序创建的标题文件,以便对SNMP装置进行管理;提取器,用于从所述标题文件存储器中读取所述标题文件,并且创建MIB文件和用于在所述SNMP代理与所述应用程序之间交换信息的OIDInfo文件;MIB文件存储器,用于存储由所述提取器创建的所述MIB文件;以及OIDInfo文件存储器,用于存储由所述提取器创建的所述OIDInfo文件。2.如权利要求1所述的设备,其中,所述消息包括一般消息服务(GMS)消息,用于在所述SNMP代理与所述应用程序之间进行通信。3.一种方法,用于生成管理信息库(MIB)文件和对象标识符信息(OIDInfo)文件,其中,所述管理信息库(MIB)文件用于在编译时利用简单网络管理协议(SNMP)对通信装置进行管理,而所述对象标识符信息(OIDInfo)文件用于在SNMP代理与应用程序之间进行通信,所述方法包括如下步骤在接收已经改变的管理项目的应用程序中创建SNMP接口标题文件;读取所述SNMP接口标题文件并且生成MIB文件和OIDInfo文件;并且存储所述MIB文件和所述OIDInfo文件。4.一种方法,用于执行运行时操作,所述运行时操作用于接收来自利用SNMP对通信装置进行管理的管理器的、包括管理项目的简单网络管理协议(SNMP)请求消息,并且形成对所述管理项目进行处理的结果的响应,所述方法包括如下步骤接收来自代理中的所述管理器的、用于请求所述管理项目的数据的所述SNMP请求消息;从所述代理向OIDInfo处理器,发送包括在所述SNMP请求消息中的对象标识符信息(OIDInfo);根据所述OIDInfo,从所述OIDInfo处理器向所述代理,发送用于在所述代理与存储了由所述管理器请求的管理项目数据的应用程序之间进行通信的信息;在所述代理中,根据从所述OIDInfo处理器接收的通信信息,与所述应用程序进行通信,并且从所述应用程序接收对由所述管理器请求的管理项目进行处理的结果;并且从所述代理向所述管理器发送接收到的、对所述管理项目进行处理的结果。5.如权利要求4所述的方法,其中,从所述OIDInfo处理器向所述代理发送所述通信信息的步骤包括如下步骤从映射到所述OIDInfo处理器中的OIDInfo存储器的OIDInfo的OID数据文件中,检索一般消息服务(GSM)信息;并且从所述OIDInfo处理器向所述代理发送所述GMS消息。6.如权利要求5所述的方法,其中,所述GMS信息包括关于端口号、所述应用程序的通信类型以及用于在所述代理与所述应用程序之间进行通信的负荷数据结构中的至少一个的信息。7.一种设备,用于利用简单网络管理协议(SNMP)对通信装置进行管理,以便执行运行时操作,所述运行时操作用于从利用SNMP对所述通信装置进行管理的管理器中接收包括管理项目的SNMP请求消息,并且形成对所述管理项目进行处理的结果的响应,所述设备包括应用程序,用于执行用于获得所述管理项目的操作;对象标识符信息(OIDInfo)处理装置,用于在接收到被映射到所述管理项目的预定OIDInfo时,提供用于与所述应用程序进行通信的信息;以及代理,用于在接收到来自所述管理器的所述SNMP请求消息时,向所述OIDInfo处理装置发送映射到所述管理项目的OIDInfo,获得用于与所述应用程序进行通信的信息,从所述应用程序接收对所述管理项目进行处理的结果,并且向所述管理器发送所述处理结果。8.如权利要求7所述的设备,其中,所述OIDInfo处理装置包括OIDInfo存储器,用于存储OIDInfo数据文件,所述OIDInfo数据文件包括用于在所述代理与所述应用程序之间进行通信的信息;以及OIDInfo处理器,用于从所述OIDInfo存储器的所述OIDInfo数据文件中检索用于在所述代理与所述应用程序之间进行通信的信息,并且向所述代理发送所述通信信息。9.如权利要求7所述的设备,其中,用于在所述代理与所述应用程序之间进行通信的所述信息包括一般消息服务(GMS)信息。10.如权利要求9所述的设备,其中,所述GMS信息包括关于端口号、所述应用程序的通信类型以及用于在所述代理与所述应用程序之间进行通信的负荷数据结构中的至少一个的信息。11.如权利要求8所述的设备,其中,所述OIDInfo存储器被配置为,存储OIDInfo资料库应用程序编程接口(API)和OIDInfo数据文件。全文摘要提供了一种设备和方法,用于利用简单网络管理协议(SNMP)对通信装置进行管理。当开发器在编译时通过应用程序创建SNMP接口标题文件时,提取器根据接口标题文件生成管理信息库(MIB)文件和对象标识符信息(OIDInfo)。当管理器在运行时形成SNMP请求时,代理向OIDInfo处理器发送包括在SNMP请求消息中的OIDInfo。OIDInfo处理器访问OIDInfo存储器,并且给代理提供一般消息服务(GMS)信息。然后,根据GMS信息,在代理与应用程序之间,执行GMS请求/响应处理。文档编号H04L29/06GK101061688SQ200580039481公开日2007年10月24日申请日期2005年11月18日优先权日2004年11月18日发明者宋奉奎,崔胜弼,赵源昌申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1