您的位置:首页 > 其它

SNMP_PP_CHS Charpter 3 - 5

2006-03-26 23:56 295 查看

1. SNMP++特性

1.1. 完整的一套SNMP C++类

SNMP++是以一套C++类作为基石的。这些类是:对象描述符(Oid)类、变量绑定(Vb)类、协议数据单元(Pdu)类、Snmp类。并且,其他各种用抽象语法表示(ASN.1)来描述的管理信息结构(SMI),也被抽象成了简单的、面向对象的类型。

1.2. SNMP内存的自动管理

当SNMP++的对象被实例化或销毁的时候, (其相关的)类可以自动管理着各种各样的SNMP结构和资源。(这就使得)应用的开发者不用再担心数据结构和资源的卸载,不然就得为防止内存的崩溃或者泄漏提供有效的保护措施。SNMP++的对象的实例化可以是静态的,也可以是动态的。静态的实例化可以在对象脱离它的作用域时卸载掉;动态分配则需要使用C++的new和delete。在SNMP++内部,有许多被隐藏和保护在公用接口后面的SMI结构。所有的SMI结构都是在内部管理的,程序员不需要定义或管理SMI的结构和它的值。因为在SNMP++内绝大部分地方是不存在C的指针的。

1.3. 简单易用的

由于隐藏并管理了所有SMI结构和它们的值,SNMP++的类使用起来即简单又安全。(外部)程序员无法破坏到隐藏和保护在作用域后面的东东。

1.4. 强大灵活的

SNMP++提供了强大灵活的功能,降低了管理和执行的复杂性。每个SNMP++对象都通过建立一个会话来和一个代理端联系。(也即)由一个SNMP++的对话类的实例,(就能)处理所有与特定代理端的连接。(另外)自动重发和超时控制的机制,为每个SNMP++对象都带来了可靠性。一个应用可能会包含许多SNMP++的对象的实例,每个实例都可能与相同或不同的代理端通话。有了这个功能强大的特性,网络管理程序就可以为每个管理单元建立起不同的会话。另一方面,(就算)单一的SNMP会话也可以解决问题。例如:一个应用可以通过一个SNMP++对象来处理图形统计,另一个SNMP++对象监控trap,也许还有第三个SNMP++对象用以浏览SNMP。SNMP++自动并行处理了同一时刻来自不同SNMP++实例的请求。

1.5. 可移植对象的

SNMP++的主体是可以移植的C++代码。(其中)只有Snmp类(译注:后面将要讲到)的实现与不同的目标操作系统有关。如果你的程序中包含了SNMP++的代码,那么导出这部分代码的时候,就可以不做(任何)修改。

1.6. 自动超时和重发机制

SNMP++提供了自动超时和重发机制,程序员不用去实现超时或重发机制的代码。重发机制是在SnmpTarget类里面定义的,这就使得每一个目标(Target)都具有了它自己的超时/重发机制。

1.7. 阻塞模式

SNMP++提供了阻塞方式。MS-Windows上的阻塞方式可以并发的阻塞从每个SNMP类的实例发出的请求。

1.8. 异步的非阻塞模式

SNMP++还为应答提供了异步的非阻塞的方式。超时和重发机制同时支持阻塞和异步两种模式。

1.9. Notification、Trap的收发

SNMP++允许在多种传输层上(包括IP和IPX)收发trap。(而且)SNMP++还允许使用非标准的IP端口和IPX套接口来收发trap。

1.10. 通过双效的API支持SNMPv1和SNMPv2

SNMP++的设计可同时支持SNMPv1和SNMPv2的使用。所有API的操作都被设计成了双效的,(也即)操作是SNMP版本无关的。通过使用SnmpTarget类,与SNMP的版本相关的操作被抽象出来了。

1.11. 支持SNMP的Get, Get Next, Get Bulk, Set, Inform和Trap的操作

SNMP++完整的支持SNMP的6种操作(译注:后面将要讲到)。这6个SNMP++的成员函数使用相同的参数表,也都支持阻塞和非阻塞(异步)方式。

1.12. 通过继承实现重定义

SNMP++是用C++实现的,所以允许程序员重载或重定义那些不适合他们的操作。举个例子:如果一个应用需要特定的Oid对象(译注:后面将要讲到),那就需要建立一个Oid类的子类,用以继承所有Oid类的属性和操作,同时在派生类种加入新的属性和操作。

2. 在Microsoft Windows 系列操作系统上使用SNMP++

SNMP++已经在MS-Windows 3.1, MS-Windows For Work Groups 3.11, MS-Windows NT 3.51, and MS-Windows ’95上实现了。

2.1. WinSNMP Version 1.1的使用

在MS-Windows上可以用WinSNMP Version 1.1来运行SNMP++。这就使得其他用WinSNMP代码直接写的SNMP应用可以与SNMP++的应用兼容。注意,目前HP的MS-Windows设备使用WinSNMP,其他设备不需要使用WinSNMP来进行ANS.1的编码和解码。但那些没有使用WinSNMP的设备也需要与WinSNMP的应用兼容,才能和SNMP++的应用兼容。

2.2. 对IP和IPX的支持

(可以)通过一个WinSock compliant stack,来实现对IP的操作。同时为了在IPX协议上运行,还需要兼容Novell网络的客户程序和驱动 。(目前)SNMP++已经通过了在广泛多样的协议栈下的运行测试,这些协议栈包括:FTP,Netmanage,LanWorkPlace,MS-WFWG 3.11,以及Windows NT。

2.3. 对Notification、Trap收发的支持

SNMP++ 包含了对WinSNMP trap机制的支持。这(同时)包括了trap的发送和收取。在接收trap的时候,还提供了过滤trap的功能。

2.4. 与HP OpenView for Windows 兼容

已经有大量使用SNMP++创建的应用,实现了HP OpenView for Windows的兼容。

3. 在UNIX上使用SNMP++

3.1. 统一的类的接口

用在UNIX设备上的SNMP++类的接口和MS-Windows是一样的。

3.2. Windows到UNIX的仿真与移植

通过编译、连接对应的SNMP++类,SNMP++就可以实现在UNIX上运行。SNMP++/UNIX的设计决定了它可以同时运行在原始的UNIX字符模式、X-Window模式,或者Windows-to-UNIX的仿真工具上。

3.3. 与HP OpenView for UNIX 兼容

已经有大量使用SNMP++创建的应用,实现了与HP OpenView for UNIX的兼容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: