论文部分内容阅读
摘要:无线终端监控系统主要用于无线通信网络系统对终端的各个属性值进行采集,并进行汇总显示,以便于管理人员对相关设备进行管理。本文主要介绍了无线终端监控系统前后台主要技术,就系统的设计与实现过程遇到的一些问题进行了讨论,并介绍了解决方案。
关键词:无线终端;监控系统;Cairngorm;SNMP
中图分类号:TP277 文献标识码:A文章编号:1007-9599 (2013) 05-0000-02
近年来,随着人们需求的不断提高,计算机网络与移动通信网络发展迅猛。无线接入设备制造商在系统维护上对无线终端监控的要求也越来越高,传统的终端监控仅仅关注终端是否在线,但对于终端的运行状况的监控极少涉及。为了满足无线接入设备制造商对于无线终端监控的需求,针对无线终端监控,我们设计并开发了相关软件。
1无线终端监控简介
对于无线终端的监控,主要有四个主要功能:无线终端监控配置、无线终端数据采集配置、无线终端实时数据显示和无线终端历史数据显示。无线终端监控配置的主要功能是:对需要定时数据采集的设备及相关属性作配置。采集的结果可以在在线用户历史数据中查询。无线终端数据采集配置的主要功能是:对所监控的性能作配置,如“上行流量”、“下行流量”、内存使用情况、CPU使用情况等。无线终端实时数据显示的主要功能是:查询连接在某一设备(如AP)上的所有在线用户的某一属性值,定时刷新。无线终端历史数据显示的主要功能是:根据在线用户监控配置页面所做的配置,定时记录采集值,按条件查询相关记录。
2主要技术介绍
前台采用Flex进行开发,在框架的选取上采用了优化后的Cairngorm。Cairngorm在很大程度上借鉴了Java开发框架,专注于响应用户交互,封装服务器交互逻辑,管理客户端状态和UI状态。Cairngorm本身是一个轻量级的Flex RIA程序开发框架,从而使程序可扩展性、可维护性都大大提高,其本身并不是一个完整的企业应用,它只是提供了一个开发骨架。Cairngorm的优点主要有:网络上范例多,项目风险小;从Java开发框架借鉴而来的成熟实践策略;适合大型的Flex项目;适合团队开发,架构理论出色,支持任务分发机制。缺点主要为:代码冗余;Flex内置事件模型复杂化;框架过于依赖全局单例模式。
Cairngorm主要包括6个部分:Model Locator:存储程序中所有的值对象(数据)并共享变量,即数据池。View:一个或多个Flex组件绑定到一起形成的一个特定的个体,使用Model Locator中的数据,并且针对用户的交互动作产生自定义的Cairngorm Events。Front Controller:接收Cairngorm Events并且将它们映射到Cairngorm Commands。Command:处理业务逻辑,调用Cairngorm Delegates 及其它的Commands,以及更新Model Locator中存储的值对象和变量。Business:定义连接到远程数据库的远程过程调用(HTTP,Web Services等),并包括对数据库的调用。VO(ValueObject):具体定义各个变量,提高vo类的可读性,表示该类是一个ValueObject。减小代码的耦合性。
客户端界面是由View(视图)显示的。View使用Flex的binding(绑定)来显示Model Locator中包含的数据。View根据诸如鼠标点击,按钮按下以及拖拽之类的用户动作产生Event。这些Event被Front Controller“广播”并“监听”,Front Controller会将Event映射到Command。Command包括业务逻辑,创建所需Business 中的Delegate(代理),处理Delegate的相应,以及更新存储在Model Locator中的数据。由于View是绑定到Model Locator中的数据上的,所以当Model Locator中的数据改变的时候View也会自动更新。Delegate调用同样是Business 中的Service并且将结果提交给Command。Service调用远程数据然后将结果提交给Delegate进行代理。
Cairngorm结构比较繁琐,在使用Cairngorm时,视图中的每一个动作都播送一个事件,每个播送出去的事件都需要建立相应的命令代码来处理事件,并且需要在FrontController中对应他们的关系。为了适合本系统的开发,我们对Cairngorm做了改进:去掉FrontController,利用PureMVC中Facade的思想创建Service Facade,用Service Facade处理Command。视图不直接处理事件,而是直接調用Service Facade,而Service Facade则直接调用Business,然后Business处理结果并更新Model Locator,最后Model Locator通过绑定(Binding)更新视窗中的结果。这样做可以去除掉纯结构性的dispatcher,frontcontroller 和command,提高编码效率并且易于调试。但其缺点是:它违犯了解耦的设计规范,使得界面上的动作行为(Action)和动作代理Serivce Facade产生了耦合关系。但这层耦合对于界面系统设计而言影响相对较小。使用去除前转的Cairngorm对系统的界面设计而言利大于弊。
对于终端的各项数据的采集我们使用了简单网络管理(SNMP)协议,SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。终端设备的属性项均用OID来表示,只需向设备发送SNMP GET或SNMP SET消息,指定属性的OID,即可设置或取得设备的相应属性值。我们收集这些信息并记录在管理信息库(MIB)中。MIB有公共的格式,可以实现对不同制造商的产品的融合,这些信息报告设备的特性、数据吞吐量、通信超载和错误等,最终,在界面上呈现给系统管理员。数据采集处理流程如下:
public String get(String ip, String oid) {
根据ip调用getAddress(ip)方法返回address对象
设定PDU的类型为GET
设定get操作的共同体
根据oid调用setVariableBindings(oid+".0")方法产生待发送的数据
调用send()方法发送数据,并会返回response(PDU)
对response对象数据解析,格式化显示数据
返回格式化后的结果
}
我们在无线终端数据采集配置前台对OID节点进行了控制。对于需要采集的OID节点都需要经过相关的验证,首先是判断OID的合法性,然后判断需要采集的是表格数据还是普通数据,根据结果,通过不同的流程将表格数据或普通数据采集出来,并显示到前台。在无线终端历史数据显示部分,如果遇到需要读取的数据较多的情况,一次性读取会由于内存不够造成前台系统崩溃,我们将其分页读取,分页显示。在分页读取时遇到数据较多时,其响应速度也会非常的慢。所以在读取数据时为了防止用户反复触发读取事件加大系统压力,在界面上将相关属性enabled设置为false,将界面锁定,等数据读完再解除锁定。
本系统已经通过了现网测试,运行稳定。
参考文献:
[1]夏志祥.对Flex Cairngorm框架的探究和改进[D].浙江大学硕士学位论文,2008.
[2]王峰.基于Flex的Rich Internet Applications技术的研究和应用[D].上海交通大学硕士学位论文,2008.
[3]范月萍.基于SNMP的网络管理的研究与应用[D].大庆石油学院硕士学位论文,2007.
[4]陈显军,魏祖宽.基于Flex的XML数据通信与应用研究[J].计算机与现代化,2008,03.
[5]曹勇.基于SNMP网络管理技术应用[J].科技信息(科学教研),2008,10.
[作者简介]蒋理(1982.9-),男,江苏南京人,南京信息职业技术学院,教师,讲师,硕士,研究方向:计算机通信;王崟(1981.5-),女,江苏南京人,南京信息职业技术学院,教师,讲师,硕士,研究方向:数据交换;董志勇(1975.9-)男,江苏南京人,南京信息职业技术学院,教师,讲师,硕士,研究方向:计算机软件测试。
关键词:无线终端;监控系统;Cairngorm;SNMP
中图分类号:TP277 文献标识码:A文章编号:1007-9599 (2013) 05-0000-02
近年来,随着人们需求的不断提高,计算机网络与移动通信网络发展迅猛。无线接入设备制造商在系统维护上对无线终端监控的要求也越来越高,传统的终端监控仅仅关注终端是否在线,但对于终端的运行状况的监控极少涉及。为了满足无线接入设备制造商对于无线终端监控的需求,针对无线终端监控,我们设计并开发了相关软件。
1无线终端监控简介
对于无线终端的监控,主要有四个主要功能:无线终端监控配置、无线终端数据采集配置、无线终端实时数据显示和无线终端历史数据显示。无线终端监控配置的主要功能是:对需要定时数据采集的设备及相关属性作配置。采集的结果可以在在线用户历史数据中查询。无线终端数据采集配置的主要功能是:对所监控的性能作配置,如“上行流量”、“下行流量”、内存使用情况、CPU使用情况等。无线终端实时数据显示的主要功能是:查询连接在某一设备(如AP)上的所有在线用户的某一属性值,定时刷新。无线终端历史数据显示的主要功能是:根据在线用户监控配置页面所做的配置,定时记录采集值,按条件查询相关记录。
2主要技术介绍
前台采用Flex进行开发,在框架的选取上采用了优化后的Cairngorm。Cairngorm在很大程度上借鉴了Java开发框架,专注于响应用户交互,封装服务器交互逻辑,管理客户端状态和UI状态。Cairngorm本身是一个轻量级的Flex RIA程序开发框架,从而使程序可扩展性、可维护性都大大提高,其本身并不是一个完整的企业应用,它只是提供了一个开发骨架。Cairngorm的优点主要有:网络上范例多,项目风险小;从Java开发框架借鉴而来的成熟实践策略;适合大型的Flex项目;适合团队开发,架构理论出色,支持任务分发机制。缺点主要为:代码冗余;Flex内置事件模型复杂化;框架过于依赖全局单例模式。
Cairngorm主要包括6个部分:Model Locator:存储程序中所有的值对象(数据)并共享变量,即数据池。View:一个或多个Flex组件绑定到一起形成的一个特定的个体,使用Model Locator中的数据,并且针对用户的交互动作产生自定义的Cairngorm Events。Front Controller:接收Cairngorm Events并且将它们映射到Cairngorm Commands。Command:处理业务逻辑,调用Cairngorm Delegates 及其它的Commands,以及更新Model Locator中存储的值对象和变量。Business:定义连接到远程数据库的远程过程调用(HTTP,Web Services等),并包括对数据库的调用。VO(ValueObject):具体定义各个变量,提高vo类的可读性,表示该类是一个ValueObject。减小代码的耦合性。
客户端界面是由View(视图)显示的。View使用Flex的binding(绑定)来显示Model Locator中包含的数据。View根据诸如鼠标点击,按钮按下以及拖拽之类的用户动作产生Event。这些Event被Front Controller“广播”并“监听”,Front Controller会将Event映射到Command。Command包括业务逻辑,创建所需Business 中的Delegate(代理),处理Delegate的相应,以及更新存储在Model Locator中的数据。由于View是绑定到Model Locator中的数据上的,所以当Model Locator中的数据改变的时候View也会自动更新。Delegate调用同样是Business 中的Service并且将结果提交给Command。Service调用远程数据然后将结果提交给Delegate进行代理。
Cairngorm结构比较繁琐,在使用Cairngorm时,视图中的每一个动作都播送一个事件,每个播送出去的事件都需要建立相应的命令代码来处理事件,并且需要在FrontController中对应他们的关系。为了适合本系统的开发,我们对Cairngorm做了改进:去掉FrontController,利用PureMVC中Facade的思想创建Service Facade,用Service Facade处理Command。视图不直接处理事件,而是直接調用Service Facade,而Service Facade则直接调用Business,然后Business处理结果并更新Model Locator,最后Model Locator通过绑定(Binding)更新视窗中的结果。这样做可以去除掉纯结构性的dispatcher,frontcontroller 和command,提高编码效率并且易于调试。但其缺点是:它违犯了解耦的设计规范,使得界面上的动作行为(Action)和动作代理Serivce Facade产生了耦合关系。但这层耦合对于界面系统设计而言影响相对较小。使用去除前转的Cairngorm对系统的界面设计而言利大于弊。
对于终端的各项数据的采集我们使用了简单网络管理(SNMP)协议,SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。终端设备的属性项均用OID来表示,只需向设备发送SNMP GET或SNMP SET消息,指定属性的OID,即可设置或取得设备的相应属性值。我们收集这些信息并记录在管理信息库(MIB)中。MIB有公共的格式,可以实现对不同制造商的产品的融合,这些信息报告设备的特性、数据吞吐量、通信超载和错误等,最终,在界面上呈现给系统管理员。数据采集处理流程如下:
public String get(String ip, String oid) {
根据ip调用getAddress(ip)方法返回address对象
设定PDU的类型为GET
设定get操作的共同体
根据oid调用setVariableBindings(oid+".0")方法产生待发送的数据
调用send()方法发送数据,并会返回response(PDU)
对response对象数据解析,格式化显示数据
返回格式化后的结果
}
我们在无线终端数据采集配置前台对OID节点进行了控制。对于需要采集的OID节点都需要经过相关的验证,首先是判断OID的合法性,然后判断需要采集的是表格数据还是普通数据,根据结果,通过不同的流程将表格数据或普通数据采集出来,并显示到前台。在无线终端历史数据显示部分,如果遇到需要读取的数据较多的情况,一次性读取会由于内存不够造成前台系统崩溃,我们将其分页读取,分页显示。在分页读取时遇到数据较多时,其响应速度也会非常的慢。所以在读取数据时为了防止用户反复触发读取事件加大系统压力,在界面上将相关属性enabled设置为false,将界面锁定,等数据读完再解除锁定。
本系统已经通过了现网测试,运行稳定。
参考文献:
[1]夏志祥.对Flex Cairngorm框架的探究和改进[D].浙江大学硕士学位论文,2008.
[2]王峰.基于Flex的Rich Internet Applications技术的研究和应用[D].上海交通大学硕士学位论文,2008.
[3]范月萍.基于SNMP的网络管理的研究与应用[D].大庆石油学院硕士学位论文,2007.
[4]陈显军,魏祖宽.基于Flex的XML数据通信与应用研究[J].计算机与现代化,2008,03.
[5]曹勇.基于SNMP网络管理技术应用[J].科技信息(科学教研),2008,10.
[作者简介]蒋理(1982.9-),男,江苏南京人,南京信息职业技术学院,教师,讲师,硕士,研究方向:计算机通信;王崟(1981.5-),女,江苏南京人,南京信息职业技术学院,教师,讲师,硕士,研究方向:数据交换;董志勇(1975.9-)男,江苏南京人,南京信息职业技术学院,教师,讲师,硕士,研究方向:计算机软件测试。