天天看點

SNMP_PP_CHS Charpter 3 - 51.         SNMP++特性 2.         在Microsoft Windows 系列作業系統上使用SNMP++ 3.         在UNIX上使用SNMP++

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的相容。

繼續閱讀