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服务方面也无能为力。设计一个灵活但简单的界面架构,用户的很多需求都针对界面的。
分享到:
相关推荐
《Windows SNMP 网管软件开发库详解》 SNMP(简单网络管理协议)是网络管理领域中的一个重要协议,主要用于监控和管理网络设备,如路由器、交换机、服务器等。在Windows环境中,开发者通常需要利用特定的开发库来...
### SNMP协议技术与Java实现详解 #### 一、SNMP管理模型及基础知识 **SNMP**(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于网络管理领域的应用层协议,主要用于收集网络设备信息并对其...
SNMP网管系统开发、snmp协议介绍、开发流程等
SNMP网管软件是利用SNMP协议来实现这些功能的工具,它可以帮助用户有效地监控网络性能、检测故障、配置设备以及收集网络状态信息。 SNMP网管软件的主要组成部分包括: 1. **管理站(Manager)**:这是SNMP网管软件...
在这个“SNMP管理站开发-java实现”的主题中,我们将深入探讨如何使用Java语言来构建一个SNMP管理站,以实现对SNMP代理的远程访问。 首先,要理解SNMP的基本概念。SNMP由三部分组成:管理信息库(MIB)、管理站...
**标题解析:** "java调用snmp协议" 指的是使用Java编程语言来实现对SNMP(简单网络管理协议)的调用。SNMP主要用于监控和管理...通过阅读提供的文档,我们可以深入理解并掌握使用Java进行SNMP通信的具体步骤和技术。
SNMP(简单网络管理协议)是网络管理员用来监控和管理网络设备的标准协议,它允许设备如路由器、交换机、服务器等向管理系统报告状态,并接受来自管理系统的配置更改。在Java中实现SNMP通信,需要理解SNMP协议的基本...
Java SNMP(简单网络管理协议)管理是用于监控和管理网络设备的一种标准协议,它允许管理员远程收集和配置网络设备的状态信息。在Java中实现SNMP管理,开发者可以使用各种库来与SNMP代理进行交互,如JSNMP、 SNMP4J...
它基于TCP/IP协议栈,被设计为一种轻量级的通信协议,用于在互联网上收集和修改网络设备的状态信息。SNMP主要由三个部分构成: 1. **管理信息结构(MIB,Management Information Base)**:MIB是SNMP管理的核心,...
Java SNMP API是Java平台上的一个库,它提供了对SNMP协议的支持,使得开发者能够用Java语言编写SNMP应用程序,从而方便地进行网络设备的监控和管理。 SNMP协议基于TCP/IP协议族,主要由三个部分组成:管理信息结构...
Java中的SNMP编程是网络管理员和服务器监控人员常用的技术之一。SNMP(简单网络管理协议)是一种用于收集和组织关于计算机网络中设备状态信息的协议,它能够帮助网络管理员监测网络性能、发现设备问题、管理网络配置...
在Java中,利用`Snmp4j`库可以方便地实现SNMP的GET操作,用于获取网络设备上特定OID的值。以下是对代码示例的详细解析: 1. **初始化环境** - 定义了版本号、协议类型、端口号等基础参数。 - 引入必要的包,包括`...
4. **Java语言与Java-Applet**:选用Java作为开发语言,因为Java具有跨平台的特性,确保系统能够在任何支持Java运行时环境的浏览器上运行。Java-Applet嵌入到网页中,使得用户可以直接在浏览器中与系统交互,提高了...
设计中运用Java语言,运用Java-Applet技术,其存储在一个运行有Tomcat的服务器上,以接受用户请求,使用户能在任何一个支持Java运行时的浏览器上进行使用。系统在设定设备IP地址及端口号和读写共同体名后能查看相应...
德芯数字设备网管软件是一款专门用于数字前端设备调试与网络管理的专业软件。这款软件的主要功能是让操作人员能够远程监控、配置和管理各种数字设备,确保设备的正常运行并优化其性能。通过使用该软件,用户可以轻松...
在IT行业中,SNMP(简单网络管理协议)是一种广泛用于网络设备管理的标准协议,而SNMP Trap是其一种主动通知机制。当网络设备发生特定事件时,如接口故障、内存溢出等,设备会自动向预设的管理站发送Trap消息,以便...
这个库为Java开发者提供了全面的工具集,让他们能够方便地与支持SNMP的网络设备进行通信,从而获取或管理系统配置、性能数据以及设备状态。SNMP是一种广泛应用于网络管理和监控的标准协议,尤其在IT基础设施自动化、...
Java SNMP(简单网络管理协议)实现是用于网络设备管理和监控的一种常见方法。在这个场景中,我们看到一个关于如何使用Java编程语言实现SNMP协议的项目。这个项目可能包含了一个或多个类,这些类实现了SNMP协议的...
首先,我们要理解Java SNMP开发的基础。在Java中,我们可以使用JSR160(Java Management Extensions - JMX)或开源库如Net-SNMP Java API来实现SNMP功能。这些库提供了与SNMP代理通信的方法,包括发送GET、SET请求,...