Java技术,在网络管理系统中的应用已经比较普遍。网管软件的分类有很多种,有侧重于业务应用的,有侧重于管理设备的,有侧重于网络的,有侧重于桌面管理的,每种网管软件虽然外在的具体表现形式都不同,但其实内部的技术都大同小异。这其中的设备网管软件就是一个最典型的技术代表,一个全面的设备网管软件基本上要包含网络拓扑图、设备配置、故障管理、性能管理、安全管理、业务管理,也就是FCAPS 这几大块功能。
一、 技术架构的变迁
在网管软件最早的年代,基本上都是从电信管理网的那一套发展起来的,按TMN规范定义的模型来处理,像什么Q接口、F接口、X接口、CORBA、NMS/EMS、FCAPS功能划分,都是这种模型的代表。这种模型对于大型的电信网络来说是必须的,可是对于企业级别的设备网管软件来说,就显得过于笨重,花费的成本是无法接受的。
于是对于设备网管软件的架构,逐步向实用化、工程化发展,也就是轻量级技术的发展。轻量级的技术,沿用了FCAPS的功能模型,也是用户关心的问题。而在内部技术上,突破了TMN的种种限制,好的就借用,不好的就抛弃。在这种轻量级技术的影响下,根据用户的需求,灵活选择JAVA技术、数据库技术、SNMP协议,就是这一技术的代表。
二、 轻量级技术架构
选择C/S,还是B/S?这是首选问题。C/S的客户端功能很强大,界面表现力很好,而且故障的反应能实时处理。B/S在集成网络拓扑图的界面展示上会打折扣,好在报表分析这块上。最好的建议是用Applet+服务端的模式,兼顾两者的优缺点。因为网管软件的网络服务特性、实时处理特性、大量任务监视、事件分发特性,不适合采用J2EE的模型,用普通JAVA做服务端是最恰当的。
三、 模块级技术选择
1.通信协议选择:C/S架构的,可以选择RMI;Applet架构的可选XML-RPC或RMI技术,B/S架构不存在这个问题。
2.数据库技术选择:O-R Mapping是最佳选择,Hibernate是这个领域最成熟的组件,比只用JDBC简便很多。
3.网管客户端:这个是最容易被忽略的问题,真正在网管开发中,界面的复杂度和工作量比服务端大很多,基本上大多数的网管软件界面都是围绕着网络拓扑图来开发的。目前可以用商业的ilong视图组件,功能涉及面比较广,API比较复杂,报表系统做的很多。喜欢轻量级开发的,可以用itopoview网络拓扑图组件,专门针对网管软件,很多网管常用的界面处理都内置了,上手也快,而且只收开发费。两个组件都可以用于apple web环境。
4.WEB客户端:如果选用B/S,可以考虑flex或SGV或ajax技术的web拓扑图,flex更成熟一些,用的人比较多。但是所有WEB 拓扑图都有一个缺点,都不是100% java技术的,这样的话,团队中需要懂其他技术的开发人员。这是我再次推荐用Applet的原因。
5.网管协议:目前运用的最多是SNMP协议,相关的java协议栈也比较多,像SNMP4j就是比较好的JAVA SNMP协议栈。如果对SNMP细节不是很熟悉或是想加快SNMP的开发,可以考虑ObjectSNMP组件,采用O-M Mapping技术(和O/R Mapping类似)。
6.客户端报表分析:毫无疑问,jfreechar肯定能满足需求,而且是免费的(只收文档费用)。还有一个选择,用JRobin,可以快速做出漂亮的流量图,但是JRobin是基于文件的数据存储,与系统的集成度不好,将来做数据分析也不方面,仅限用于救急。
7.故障、事件分发机制:网管的事件分发不是很复杂,用一个JMS的产品如OpenJMS就可以;如果嫌JMS的存储多余,可以考虑JGroup消息广播机制。
8.任务机制:是网管就不可避免的会设计到监控任务、定时任务。如果你对线程和时间处理的很好的,可以用java只带的就可以;否着的话,可以选择Quartz,再复杂的任务都能处理。
其他体会:
不要迷信j2ee,对于设备级网管来说,只会帮倒忙,而且处处别扭;即使是B/S的架构,J2EE在处理任务、故障事件、SNMP服务方面也无能为力。设计一个灵活但简单的界面架构,用户的很多需求都针对界面的。
相关推荐
SNMP网管系统开发、snmp协议介绍、开发流程等
《Windows SNMP 网管软件开发库详解》 SNMP(简单网络管理协议)是网络管理领域中的一个重要协议,主要用于监控和管理网络设备,如路由器、交换机、服务器等。在Windows环境中,开发者通常需要利用特定的开发库来...
NET-SNMP是最出名的SNMP网管系统的开发包,提供了几乎所有SNMP网管开发所需要的资源 1 SNMP API。封装SNMP协议和网络接口细节。提供了方便调用的SNMP操作接口 2 MIB管理。提供了所有的典型MIB库。并可以将MIB库映射...
根据提供的文件信息,本文将详细阐述如何在Linux操作系统上使用C++编程语言实现SNMP网管协议,涵盖从理论基础到实际编程的全过程。 ### 一、总体介绍与背景 SNMP是一种广泛应用于网络管理的协议,它基于TCP/IP协议...
法标记和协议数据单元,在此基础上提出了基于MIB编译的SNMP网管系统开发模式 ;研究了JavaCC语法分析生成器,对基于JavaCC的MIB编译器的词法分析、 语法分析、语义分析、语法树生成、MIB树生成和Java目标代码生成...
SugarNMSTool是“北京智和信通技术有限公司”开发的图形化SNMP工具,可以免费使用。工具只有3M大小左右,便于携带,免安装,无数据库,可在...SugarNMSTool是网管员、SNMP设备开发调试、SNMP诊断的日常必备工具。
本文将深入探讨如何使用Visual C++来开发一个基于SNMP的网络管理软件,并提供相关的编程代码。 SNMP是一个应用层协议,它允许网络管理员与网络设备进行通信,获取或设置设备的状态信息。它主要由三部分构成:管理...
SNMP网管系统的开发通常涉及以下功能: 1. 访问MIB库:通过SNMP代理访问设备的MIB库,获取设备的配置、状态、性能等信息。 2. 读写变量:实现对网络设备配置参数的读取和修改。 3. 故障检测:通过定期轮询和Trap机制...
本书讲述了snmp基础知识和使用visual c++开发...第7章~第13章通过具体实例,讲述开发基于snmp网管软件的方法。. 本书可作为网络管理人员学习snmp、提高网络管理水平的参考资料,也可供网管软件开发人员参考使用。
Dart公司的SNMP组件,.net版本的。控件为最新的V4.4.2.3版本。用这个控件可以解决你SNMP网管开发的问题。
5. **开发工具(Utilities)**:如`snmpconf`和`snmptrapd`,用于配置SNMP代理和处理陷阱事件。它们的源码提供了配置SNMP代理和理解SNMP陷阱处理流程的实例。 深入研究net-snmp源码,我们可以了解SNMP协议的细节,...
主要用于snmp网管开发,支持snmp v1版本,之前用这个开发了一套HFC网络管理系统.现在想用ip*works开发EPON和MOCA网管系统,因为要用到snmp v2版本,但是领导不批准买控件,郁闷!谁有破解版的能发我一份么?邮箱:cssw_1982@...
1.解决多址路由 对mib信息的利用,得到网络中支持SNM P协议的路由器和子网和他们的连接关系 并且保存一个路由的所有ip,用于比较发现的ip是否已经属于一个路由 2.同构网络物理拓扑发现 给出了一个很好的网络拓扑模型...
在信息技术领域,特别是在网络管理和嵌入式系统开发方面,NET-SNMP网管代理在ARM9平台上实现的技术具有重要的研究和应用价值。本技术实现的核心思想是利用开源的NET-SNMP软件包,在ARM9处理器的嵌入式平台上搭建网络...
本书讲述了SNMP基础知识和使用Visual C++...后面几章通过几个实例,讲述开发基于SNMP网管软件的方法和必备的网络知识。 本书是网络管理人员学习SNMP,提高网络管理水平的参考资料,也可供网管软件开发人员参考使用。
进行snmp4J网管开发的基础东东 agent代理端例子: Java代码 import java.util.*; import org.snmp4j.*; import org.snmp4j.smi.*; //agent代理端例子: public class Test2 { public static class Handler...