真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

SNMP4J與ObjectSNMP對比分析之我見-創(chuàng)新互聯(lián)

SNMP4J是一個用Java來實現(xiàn)SNMP(簡單網絡管理協(xié)議)協(xié)議的開源項目.它支持以命令行的形式進行管理與響應。Object SNMP是一個面向對象的SNMP開發(fā)組件,與關系數據庫流行的O-R Mapping技術類似,實現(xiàn)了Object到SNMP MIB的操作映射(簡稱O-M Mapping)。使用SNMP4J與ObjectSNMP開發(fā)類似于使用原生JDBC開發(fā)與Hibernate框架。

網站的建設成都創(chuàng)新互聯(lián)公司專注網站定制,經驗豐富,不做模板,主營網站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設計體驗!已為成都資質代辦等企業(yè)提供專業(yè)服務。

SNMP4J介紹

SNMP4J是一個用Java來實現(xiàn)SNMP(簡單網絡管理協(xié)議)協(xié)議的開源項目.它支持以命令行的形式進行管理與響應。SNMP4J是純面向對象設計與SNMP++(用C++實現(xiàn)SNMPv1/v2c/v3)相類似。

  1. 支持MD5和SHA驗證,DES,3DES,AES128、AES192和AES256加密的SNMPv3。

  2. 支持MPv1,MPv2C和MPv3,帶執(zhí)行的可阻塞的信息處理模塊。

  3. 全部PDU格式。

  4. 可阻塞的傳輸拓撲。支持UPD、TCP、TLS 。

  5. 可阻塞的超時模塊。

  6. 同步和異步請求。

  7. 命令發(fā)生器以及命令應答器的支持。

  8. 基于Apache license的開源免費。

  9. JAVA 1.4.1或更高版本(2.0或更高版本需要jdk1.6及以上的支持)。

  10. 基于LOG4J記錄日志。

  11. 使用GETBULK實現(xiàn)Row-based的有效的異步表格獲取。

  12. 支持多線程。

ObjectSNMP介紹

Object SNMP(Object Simple Network Management Protocol)是一個面向對象的SNMP開發(fā)組件,與關系數據庫流行的O-R Mapping技術類似,實現(xiàn)了Object到SNMP MIB的操作映射(簡稱O-M Mapping),系統(tǒng)提供了Java/SNMP網關、RMI/SNMP網關 、Web Service/SNMP網關服務。開發(fā)者無需理解SNMP協(xié)議和MIB細節(jié),只需要定義普通數據對象,然后將數據對象按添加、刪除、修改、查詢等模式提交給網關即可。Object SNMP網關會自動將數據對象按開發(fā)者的期望發(fā)送到SNMP設備,并返回用戶需要的數據對象。Object SNMP提供諸如分布式代理SNMP網關、 網絡拓撲發(fā)現(xiàn)、物理拓撲發(fā)現(xiàn)、網絡自動搜索發(fā)現(xiàn) 、設備連接關系發(fā)現(xiàn)、設備類型發(fā)現(xiàn)、網絡漫游搜索、以及定義好的可管理各種設備的MIB數據等高級功能。

ObjectSNMP提供四種網關API模型,滿足絕大多數開發(fā)者的需求。所有網關的API保持一致,都提供了基于數據對象添加、刪除、修改、查詢等服務;并可以隨意切換各種網關模式,保持API對用戶不變。

1.O-M Mapping映射框架

參考數據庫領域流行的O-RMapping技術,實現(xiàn)SNMP領域的Object-MIB映射框架,自動翻譯MIB和OID語法、SNMP命令和網絡操作,徹底告別Socket、PDU、UDP、SNMPGet等方式的編程模式,開發(fā)人員僅需定義一個與MIB數據相對應的普通數據對象。然后通過各種網關提交數據對象,即可完成對SNMP的復雜訪問。

2.Java/SNMP網關

使用者的程序和ObjectSNMP在同一個Java進程內,使用者定義普通Java數據對象,然后通過Java API訪問ObjectSNMP網關。

3.Java RMI/SNMP網關

使用者的程序和ObjectSNMP在不同的Java進程內,或在不同的機器上。使用者定義普通Java數據對象,然后通過RMI Java API訪問ObjectSNMP網關。

4.Web Service/SNMP網關

使用者可以為PHP、C++、.NET、Java、Flex、JavaScrip等支持Web Service技術的其他程序,通過在Web環(huán)境中,訪問ObjectSNMP網關。Web Servcie/SNMP網關支持任意兼容servlet的Web容器。

5.Proxy/SNMP透明網關

為私網穿透、分布式部署SNMP網關、SNMP網關負載均衡、主/從兩級SNMP管理 等場景提供了透明的SNMP網關服務。Proxy網關可以采用Java、RMI、Web Service任意模式,并且完全對用戶透明,就如同只有一個網關一樣。

6.一致的API服務

所有的網關的API保持一致,都提供了基于數據對象添加、刪除、修改、查詢等服務;并可以隨意切換各種網關模式,保持API對用戶不變。

7.SNMP Trap接收服務

內置SNMP Trap接收服務器,可以接收公共和私有SNMP Trap消息。并自動將原始Trap PDU包解析成Java Trap消息對象。為了簡化Trap通知模式的編程開發(fā),ObjectSNMP將被動接收的Trap消息機制映射成為主動獲取Java Trap消息對象的普通編程模式。

8.網管集成

ObjectSNMP依托底層O-M框架和網關技術,針對諸如故障管理、性能監(jiān)控管理、故障監(jiān)控、配置管理、業(yè)務管理、網絡安全管理等SNMP網管功能,提供了最為便捷的支持。

9.支持私有MIB文件

產品可以加載各種廠商的私有MIB文件,加載私有MIB文件后,自動解析MIB文件的語法。

10.網絡自動發(fā)現(xiàn)功能

采用全新的技術:即支持單一Cisco、華為網絡,也支持各種廠商設備混合網絡。支持模糊連接定位,在數據不全或設備缺失的情況下,盡可能發(fā)現(xiàn)連接關系??稍谌我獾木W絡環(huán)境中工作,不需要用戶對網絡做任何假設。

11.SNMP數據采集服務

ObjectSNMP提供如下常用數據采集服務,使用者可直接使用:系統(tǒng)類MIB描述、IP網絡類MIB描述、交換機MIB描述、硬件設施類MIB描述、軟件類MIB描述、Java類MIB描述。

12.自動Java代碼生成技術

提供了Java數據對象代碼的自動生成技術,進一步簡化SNMP開發(fā)工作。

13.SNMP MIB數據瀏覽器

可單獨使用,也可集成在程序中使用SNMP數據瀏覽器,便于開發(fā)和調試。

14.優(yōu)秀的性能表現(xiàn)

  • 單線程1萬個SNMP對象(7萬個SNMP OID數據)獲取總時間<=5秒

  • 多線程并發(fā)1萬個SNMP對象獲取總時間<=2秒

  • 連續(xù)30天多線程并發(fā)獲取SNMP數據,內存波動正負0.3M

  • 1千萬次SNMP對象獲取操作,在多線程并發(fā)環(huán)境下,正確率100%

SNMP4J與ObjectSNMP實例對比

(一)獲取snmp簡單基本數據

1.Snmp4j步驟:

1)創(chuàng)建Target(Target代表遠程設備或者遠程實體),包括設備地址,SNMP端口,snmp團體字,SNMP版本,超時時間,重試次數等信息。

2)創(chuàng)建PDU(代表管理端同Target通信的數據),在PDU中增加要獲取的OID值,設置訪問的方式。

3)創(chuàng)建SNMP(代表著管理者,作用是通信的具體實行者)

4)向Agent發(fā)送PDU,并接收Response響應

5)解析Resoponse響應。

// 設置 target
   CommunityTarget target = new CommunityTarget();
   target.setCommunity(new OctetString("public"));
   Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161");
   target.setAddress(targetAddress);//設置目標設備地址、端口
   target.setRetries(2); // 通信不成功時的重試次數
   target.setTimeout(1500);// 超時時間
   target.setVersion(SnmpConstants.version1);//設置版本

   // 創(chuàng)建 PDU
   PDU pdu = new PDU();
   pdu.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 5, 0 })));
   pdu.setType(PDU.GET);// MIB的訪問方式
   
   TransportMapping transport = new DefaultUdpTransportMapping();
   Snmp snmp = new Snmp(transport);
   ResponseEvent respEvnt = snmp.send(pdu, target);// MIB的訪問方式

   // 解析Response
   if (respEvnt != null && respEvnt.getResponse() != null) {
		Vector recVBs = respEvnt.getResponse().getVariableBindings();
          for (int i = 0; i < recVBs.size(); i++) {
                 VariableBinding recVB = recVBs.elementAt(i);
                 System.out.println(recVB.getOid() + " : " + recVB.getVariable());
          }
   }

2.使用ObjectSNMP獲取數據:

1)創(chuàng)建SNMPTarget,包括設備地址,SNMP端口,snmp團體字,SNMP版本,超時時間,重試次數等信息。

2)獲取SNMPAPI,根據OID獲取SNMP數據。

  //封裝Target
   SNMPTarget target = new SNMPTarget();
   target.nodeIP="127.0.0.1";
   target.port=161;
   target.readCommunity="public";
   target.snmpVersion = target.VERSION2C;
   
   //獲取信息
   String result = SNMPFactory.getSNMPAPI().getOIDValue("1, 3, 6, 1, 2, 1, 1, 5, 0",target);

 結論:對于SNMP簡單數據的獲取,即根據單個OID獲取相應信息,ObjectSNMP更為簡單方便。

(二)操作snmp表、組數據

所有的SNMP MIB可以分為兩大類,一類稱之為組如下圖的system組,有查詢、修改操作,

 SNMP4J與ObjectSNMP對比分析之我見   SNMP4J與ObjectSNMP對比分析之我見

與之相映射的JAVA對象分別是:

public class MibSystem implements com.zhtelecom.common.snmp.OMMappingInfo
{
    private String sysDescr;
    private String sysObjectID;
    private long sysUpTime;
    private String sysContact;
    private String sysName;
    private String sysLocation;
    private int sysServices;
		get/set ……..
    public String getMappingOID()  //告訴要映射system組的OID
    {
        return "1.3.6.1.2.1.1";  //system組的OID
    }
}

Public class MibOspfStubAreaEntry implements com.zhtelecom.common.snmp.OMMappingInfo
{
    private String ospfStubAreaId;
    private int ospfStubTOS;
    private int ospfStubMetric;
    private int ospfStubStatus;
    private int ospfStubMetricType;

    public String getMappingOID()
    {
        return "1.3.6.1.2.1.14.3.1"; // ospfStubAreaEntry的OID
    }
}

//獲取MibOspfStubAreaEntry表中所有數據
List list= snmpapi. getAllTableData(MibOspfStubAreaEntry.class, target);
//在MibOspfStubAreaEntry 表中添加一行數據
MibOspfStubAreaEntry ospf = new MibOspfStubAreaEntry();
ospf.setOspfStubTOS(3);
ospf.setOspfStubStatus(SNMPAPI.RowStatusEntryAdd); //設置snmp rowstatus的值為添加。
ospf.setOspfStubMetricType(2);
snmpapi.addTableRow(ospf, target);
//表中刪除一行數據
MibOspfStubAreaEntry ospf = new MibOspfStubAreaEntry();//設置snmp rowstatus的值為刪除語義
ospf.setOspfStubStatus(SNMPAPI.RowStatusEntryDel);
snmpapi.delTableRow(ospf, target);

//修改MibOspfStubAreaEntry mib表中一行數據
MibOspfStubAreaEntry ospf = new MibOspfStubAreaEntry();
ospf.setOspfStubAreaId("192.168.9.0");
ospf.setOspfStubTOS(3);
ospf.setOspfStubStatus(SNMPAPI.RowStatusEntryActive); //設置snmp rowstatus的值為激活語義。
ospf.setOspfStubMetric(3);
ospf.setOspfStubMetricType(3);
snmpapi.update(ospf, target);

可以看出通過ObjectSNMP操作數據極其方便簡單,相比于SNMP4J從易用性和功能性來說得到了很大的提高,而且通過對象的方式對SNMP進行操作,更符合用戶的使用習慣,且屏蔽掉了SNMP4J中的PDU、ScopedPDU類、TransportMapping等,學習成本降低了很多。

(三)基于ObjectSNMP與SNMP開發(fā)對比

項目

使用ObjectSNMP開發(fā)

SNMP4J

軟件架構

底層實現(xiàn)對SNMP協(xié)議的封裝,上層提供基于對象的網關服務和各種高級服務。

實現(xiàn)對SNMP協(xié)議的原始封裝

開發(fā)技能要求

僅需了解SNMP概念即可開發(fā),并提供對象代碼自動生成工具

需要對Socket、SNMP數據類型等有開發(fā)級的掌握。

開發(fā)效率

對象級的上層抽象操作。代碼量僅有傳統(tǒng)模式的10%

大量的SNMP協(xié)議層操作代碼

開發(fā)時間

在SNMP模塊開發(fā)和設備聯(lián)調上花費的時間僅有傳統(tǒng)模式的20%

需要專人負責SNMP模塊的開發(fā)和后期維護

軟件性能

已通過基準性能驗證,新定義的數據對象直接在網關通道上傳遞

需要大量的調優(yōu)、測試、驗證來保證

軟件模式

有統(tǒng)一的對象模式和網關模式,與整體軟件的對象風格保持一致

無,需要開發(fā)人員重新建立

網關功能

同時支持Java、RMI、Web Service、Proxy等多種網關

高級服務

全新技術的網絡拓撲自動發(fā)現(xiàn)和網絡資源發(fā)現(xiàn)

預定義MIB對象

提供多種內置MIB采集服務,如網絡接口、流量、數據包、IP、CPU、磁盤、內存等

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


分享題目:SNMP4J與ObjectSNMP對比分析之我見-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/eiegd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部