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服务方面也无能为力。设计一个灵活但简单的界面架构,用户的很多需求都针对界面的。

引用:http://www.oschina.net/question/11134_435

轻量级java snmp设备网管软件开发技术相关推荐

  1. 全Java网管软件开发平台SugarNMS

    一. SugarNMS平台介绍 智和网管软件开发平台(SugarNMS Platform)是北京智和信通技术有限公司专为期望快速搭建可靠网管软件的企业而准备,开发平台充分利用智和网管软件已有的软件功能 ...

  2. 基于JAVA技术的WEB网管软件开发方案

    2019独角兽企业重金招聘Python工程师标准>>> 随着Web/Java技术的成熟及其在Internet上的广泛应用,网络管理技术和模式迎来了又一次革命.在网络管理领域,通过We ...

  3. Java 建模: 子整体软件开发,第二部分

    Java 建模: 子整体软件开发,第二部分 英文原文 内容: 软件不可见性 恰当过程的选择 软件需求规范 用例 功能特性 用户情景 结论 参考资料 关于作者 对本文的评价 相关内容: Java 建模系 ...

  4. Java 建模:子整体软件开发

    Java 建模:子整体软件开发 英文原文 内容: 灵活软件开发 过程是第一位吗? 子整体(holon) 子整体软件 开发 培训模型 没有安全网的软件开发 过程?什么过程? 结论 参考资料 关于作者 对 ...

  5. 软件开发技术常用术语英中对照

    软件开发技术常用术语英中对照 A.I. 人工智能 A2A integration A2A整合 abstract 抽象的 abstract base class (ABC)抽象基类 abstract c ...

  6. 2020年度总结 | 葡萄城软件开发技术回顾

    本文由葡萄城技术团队原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 2020年是不平凡的一年,虽然疫情为整个社会都带来了巨大的冲击,但IT技术人 ...

  7. 2021年度总结 | 葡萄城软件开发技术回顾(下)

    2021年度总结 | 葡萄城软件开发技术回顾(下) 在上节中,我们介绍了在过去一年中葡萄城在控件领域中的一些新探索,新尝试. (详细内容:https://www.cnblogs.com/powerto ...

  8. 软件开发技术顾问_成为成功的软件开发顾问的5个关键

    软件开发技术顾问 为什么我成为顾问 当我在2007年离开首席信息官(CIO)职位时,我想回到纯粹的软件开发领域. 软件开发工作(编程)是我的挚爱,在担任CIO几年后,我开始讨厌预算和更多预算以及捍卫预 ...

  9. 盘点直播直播平台软件开发技术中的编解码、直播协议、网络传输与简单实现

    盘点直播直播平台软件开发技术中的编解码.直播协议.网络传输与简单实现 编解码 视频封装格式就是我们通常所说的 .mp4,.flv,.ogv,.webm 等,它其实就是一个盒子,用来将实际的视频流以一定 ...

最新文章

  1. BaseModelOutputWithPoolingAndCrossAttentions的API
  2. 搜索引擎:文本分类——TF/IDF算法
  3. MySQL 故障集锦
  4. mariadb-10实现半同步复制及SSL安全复制
  5. MySQL CPU 使用率高的原因和解决方法
  6. 用Hystrix保护您的应用程序
  7. 重磅发布:阿里云云安全中心一键防勒索功能上线!
  8. 【华为云技术分享】Python 中的异常和错误
  9. matlab 模糊pid mimo 对应,双关节机械手的模糊PID控制系统设计.doc
  10. 基于SSM的Java Web应用开发原理初探
  11. 《大型数据库技术》MySQL的进阶开发技巧
  12. vCenter上解决”此主机当前没有管理网络冗余“的警告
  13. java调用企业微信接口给微信发消息
  14. PCL库实时显示点云流
  15. MHL技术剖析,比HDMI更强【转】
  16. 购物系统 java代码_java购物系统源代码
  17. Makefile eval函数
  18. Love for music
  19. 芝加哥面孔数据库(CFD)的人脸模板
  20. 深度学习-感知器(感知机)

热门文章

  1. JS逆向实战1——某省阳光采购服务平台
  2. 信息学奥赛一本通 1081:分苹果 | OpenJudge NOI 小学奥数 7826:分苹果
  3. nyist737 石子合并
  4. 警告:计算出的值未被使用warning: value computed is not used [-Wunused-value]
  5. Java - 反射机制
  6. 深低温冷冻保存干细胞要注意哪些
  7. JAVA订餐系统的心得体会
  8. Android常见的错误及解决
  9. LED照明各国认证及标准发展趋势
  10. 从性格色彩认知了解自己