电信网管中的Java客户端(二)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
前文讲述了用Java开发电信网管界面系统遇到的困难。其中,制作网络拓扑图是我们第一个必须克服的困难。本文概述如何使用和制作网络拓扑图的产品和方法和思路。
网络拓扑图是电信网管客户端的核心。对于电信网络,在使用任何网络拓扑组件时,必须注意电信网络的一些特点:
· 数据量大。一般电信网络的规模都比较大,网络设备数量多,拓扑复杂。网络拓扑图界面必须考虑到能够处理大数据量的网络节点和连接。
· 多层次展示网络。在一个综合电信网络中,各种类型设备往往相互连接、相互承载,运行在不同的网络协议层中。同时,电信设备在逻辑和物理上也可能分布在不同层次上。网络拓扑图必须有能力按层次的来组织各种网络资源。
· 高效率。网络拓扑图必须能高效、迅速的反应网管系统的数据变化。
· 轻量。拓扑图毕竟只是界面系统的一部分,它在开发、部署、运行资源占用上,都不应该太“重”。如果它是一个个头超过10兆、占用数十兆内存的模块,我认为很难接受。
· 简单易用。简单的就是好的。我们不想把开发人员的脑细胞都耗费在组件的使用上,而是网管系统的架构设计上。
开源产品:最让人遗憾的是,目前还没有专门针对电信网管开发的开源的或者免费的Java组件产品可以使用。虽然有JGraph等非常优秀的开源项目,但是如果用它来制作网络拓扑,还需要大量的开发和定制。希望将来能有开源或者免费产品的出现。
商用产品:其实选择也不多,罗列如下:
· ILOG JTGO:这是该领域最著名的一个产品。你可以到google上搜索一下,看看有多少公司的招聘信息都提到这个产品。这是一个老牌电信界面组件产品,占据了绝大多数市场份额,产品功能非常全面、稳定。JTGO是基于ILOG另外一个绘图产品JVIEWS上开发的,所以它在开发和运行时都需要JVIEWS包的支持,因此显得比较庞大(大约11兆)。JTGO提供了地图、设备面板图、树、表格等现成组件,以及大量文档和例程,为开发提供了很大方便。JTGO支持XML数据以及瘦客户端技术,非常适合在web上应用。但是,JTGO的架构设计比较复杂,API繁多,想要彻底精通这个产品的使用还是要费不少力气。
· JLOOX:JLOOX是一套功能很强大的Java2D产品,有专门为电信行业提供而提供的JLOOX Telecom产品包,专门用于电信行业OSS/EMS/NMS界面开发。JLOOX在国内也有少量应用。不过,最近ILOG已经正式从eNGENUITY公司收购了JLOOX产品线。ILOG在网站上声称,鼓励原有JLOOX客户转移到ILOG的JVIEWS产品上来,以获得更好的支持。由于JLOOX产品线和ILOG既有产品线JVIEWS/JTGO有太多的重合,这使得JLOOX的前景非常黯淡。
· SERVA Software TWaver:TWaver是SERVA Software公司的新产品。和上述产品具有完整的Java2D绘图功能不同,TWaver设计的目标非常明确,就是用于电信网管界面的开发。在功能上,它和JTGO有很大相似之处,包括提供的组件、业务对象、API设计、XML数据支持、编辑器程序等。TWaver的最大优点是非常轻量、高效,易于使用。TWaver的发布包不只有1兆左右,却可以承载数千个节点和连接,同时保持良好的响应速度,占用内存大约2.5兆/千节点。
在电信网管界面的设计中,应该遵循MVC的设计原则,分离数据的存储、呈现和控制,便于系统进行扩展。
如果整个NMS系统看成一个MVC框架,GUI部分就算是系统的View了。在GUI这个View内部,再按照MVC的原则,将各种界面呈现元素(对话框、组件包等)看作View,而各种资源、业务对象、运行信息等看作Model。前后端的交互可以通过EJB调用、JMS消息等方式完成。
由于各种网络拓扑组件产品的设计本身都遵循了MVC的设计原则,所以在设计整个GUI架构时可以按照这种“MVC层层嵌套”的模式进行设计,以便系统的扩展。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"><a href="http://blog.csdn.net/images/blog_csdn_net/solo/45544/r_%E7%94%B5%E4%BF%A1%E7%BD%91%E7%AE%A1%E4%B8%AD%E7%9A%84Java%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%88%E4%BA%8C%EF%BC%89_MVC.jpg"><font size="4"><img alt="" hspace="0" src="/images/blog_csdn_net/solo/45544/r_%E7%94%B5%E4%BF%A1%E7%BD%91%E7%AE%A1%E4%B8%AD%E7%9A%84Java%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%88%E4%BA%8C%EF%BC%89_MVC.jpg" align="baseline" border="0"></font></a></lock></shapetype>
下次将使用ILOG的JTGO以及SERVA的TWaver用代码展示制作简单网络拓扑图的方法。