TWaver - 专注UI技术

http://twaver.servasoft.com/
posts - 171, comments - 191, trackbacks - 0, articles - 2
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

电信网管中的Java客户端(四)

Posted on 2010-09-01 13:52 TWaver 阅读(1409) 评论(0)  编辑  收藏

1.问题概述
在电信网管系统的五大模块FCAPS中,性能管理(Performance Management)是非常重要的部分。性能管理是对电信网络的有效监控手段,是实现网络“提前预警”或“主动式告警”的基础。
性能管理一般分为历史性能数据和实时数据采集两类。历史性能数据一般需要网管后台系统的任务调度模块按照预定义的系统配置参数启动数据采集任务,并将数据采集结果存储到数据库中,以供用户进行统计、分析之用。实时性能数据一般由用户主动发起和终止,系统按照当前任务参数进行实时的数据采集,并将数据呈现。实时性能数据可选择存库,也可选择不存库,只作为瞬态数据进行呈现。实时性能数据也可挂接业务判断规则,以便生成告警或者各种动作。
本文将针对电信网管中的实时数据的采集、呈现、自动触发动作等开发做一个初步的探讨。

2.客户端策略
一般而言,实时性能数据采集的发起者是客户端。用户通过客户端指定感兴趣的网络设备或者管理对象,并选择感兴趣的具体参数、采集周期等信息,最终形成一个采集任务。启动后,客户端将通过服务器对指定数据进行采集,并将结果返回到客户端进行呈现。
由于本文只关注客户端的呈现部分,所以只讨论如何将要采集的数据和网络管理对象进行关联和管理,及其呈现。

3.数据建模
我们在创建网络管理对象的数据模型过程中,需要对网络数据进行相关的建模。我们可用创建新的类并继承自TWaver的预定义节点对象,例如:

 1public class MyEquipment extends twaver.Node {
 2
 3    public MyEquipment() {
 4    }

 5
 6    public MyEquipment(Object id) {
 7        super(id);
 8    }

 9
10    public void setParameter1(Object param1) {
11    }

12
13    public Object getParameter1() {
14        return param1;
15    }

16}

通过以上代码,我们创建了一个简单的节点管理对象,并增加了新的属性parameter1。但是我们很快发现,对于一个实际应用中的网络设备或管理对象,其性能参数是数量庞大的,而且种类多样。我们如果通过java beans的方式进行编码,代码将非常罗嗦烦杂,而且也无法处理一些动态的数据。幸运的是TWaver为我们提供了一种“动态属性”机制。我们可以在运行期间动态的对数据进行添加、删除和访问:

1Node myNode = new Node();
2//设置采集数据
3myNode.putClientProperty("oper_status""up");
4//访问采集数据
5myNode.getClientProperty("oper_status");

通过以上方法,我们就可以让管理对象方便的携带任意数量和类型的性能数据,而无需预先定义。

4.数据监控
当一个管理对象的数据被性能采集轮询模块不断的更新的时候,我们在客户端如何用最简单、可靠、有效的方法进行监控其变化呢?这个很简单,在TWaver中,我们可以使用一个网络元素属性监听器(Element Property Listener)来完成。
TWaver是通过一个数据箱(DataBox)容器来装载所有的网络对象的。一旦对象放入数据箱后,数据箱将对每一个对象进行监控,包括其属性的变化,甚至动态属性(即通过putClientProperty方法放入的数据)的变化。我们可以在数据箱上面加装一个属性监听器,即可对每一个网络对象进行属性监听:

 1TDataBox box = new TDataBox();
 2box.addElement(new Node());
 3box.addElementPropertyChangeListener(new PropertyChangeListener() {
 4
 5    public void propertyChange(PropertyChangeEvent e) {
 6        //获得事件发生源,也就是管理对象
 7        Element element = (Element) e.getSource();
 8        //获得变化的属性名称
 9        String propertyName = e.getPropertyName();
10        //获得属性old值
11        Object oldValue = e.getOldValue();
12        //获得属性new值
13        Object newValue = e.getNewValue();
14        //然后就可以显示chart图了
15    }

16}
);

可见,TWaver通过标准的java.beans包定义的PropertyChangeListener和PropertyChangeEvent来通知网络管理对象的属性变化,使用起来非常简单和容易理解。并且在结构上也更加的MVC,容易扩展。当然我们也可以加装多个监听器分别对不同的对象进行监听,并作出不同的相应动作。

5.数据呈现
我们使用TWaver Java提供的Chart模块来呈现运行状态下网络管理对象性能数据的变化,例如通过曲线图、棒图、饼图等方式呈现数据的动态变化。

下图展示了TWaver Java的图表呈现能力。


只有注册用户登录后才能发表评论。


网站导航: