基于Pushlet的CDMA 1x EVDO网络实时监测模型的设计

2013-09-15 01:58雒江涛
中国新技术新产品 2013年4期
关键词:流程图浏览器客户端

陈 式 雒江涛

(重庆邮电大学 通信网与测试技术重点实验室,重庆 400065)

1 概述

近年来,随着移动互联网的飞速发展,网络性能的稳定性与可靠性显得尤为重要。网络性能的实时监测作为网络性能管理的重要组成部分,它完成对系统中各用户信令动态数据的实时跟踪,为运营商及时了解网络的性能及运行状况提供了可靠的依据。

目前基于Web的网络信令监测系统由于其平台无关性、使用方便等诸多优点使其代表了网络监测系统的一种潮流。本文介绍一种基于Pushlet技术的网络性能实时监测设计方案,它适用于所有支持浏览器的环境中,而且与传统的实时监测方案相比,其实时性很高。

2 Pushlet技术

Pushlet是一种基于 Servlet技术的comet实现。在Servlet机制下,数据从server端的Java对象直接推送(push)到(动态)HTML页面,而无需任何Java applet或者插件的帮助。它使server端可以周期性地更新client的web页面,这与传统的request/response方式相悖。浏览器client为兼容JavaScript1.4版本以上的浏览器(如 Internet Explorer、FireFox),并使用JavaScript/Dynamic HTML特性。而底层实现使用一个servlet通过Http连接到JavaScript所在的浏览器,并将数据推送到后者。Pushlet有许多明显的优点,比如标准的瘦客户、平台无关、方便地扩展具体的应用以及容易穿越防火墙的通道等。它主要用于监控动态的数据源,比如证券交易所、天气、投票和一些其他的实时系统,另外Pushlet还支持客户端主动上载事件。

Pushlet的设计架构图(见图1):

Pushlet的基本思想是将持续连接框架frame1设置为隐藏,并使frame1保持HTTP连接,由Frame1接收来自服务器端的javascript,利用javascript代码来更新frame2的内容,即可实现动态向客户端推送数据。

图1 Pushlet框架

图2 发出监视命令流程

Pushlet框架允许client订阅在server端的主题(subject),而server则接收订阅,然后在server端的订阅主题所对应的数据变化时推送数据到client。此框架的基本设计模型是发布/订阅(Publish/Subscrib),也被称为观察者(Observer)。它由server和client两部分组建而成。各个模块的功能如下:

(1)Pushlet:Pushlet 是 一 个 servlet,通过doGet/doPost方法被调用。多个client可以同时调用同一个Pushlet,Pushlet接受客户端的请求,并创建订阅者(PushletSubscriber对象),由该订阅者保持客户请求,返回内容。

(2)PushletSubscriber:是一个实现 Subscriber接口的对象,与每个客户端对应的订阅者,首先根据客户端的请求生成客户端适配器ClientAdapter并通过join()方法向Publisher类进行注册并将自身添加到Publisher的内部事件列表,每个事件对应一个主题。如果有事件入队列,则PushletSubscriber被唤醒,同时调用 ClientAdapter向客户端推送数据。

(3)ClientAdapter:屏蔽了不同的客户端协议的差异,将PushletSubscriber获取的事件转换成javascript格式,并将它推送到客户端浏览器,因此实现了适用于所有类型的浏览器。

(4)Publisher:维护着一组者的列表,提供静态接口给其他类订阅/发布消息,当有事件到来时,通过比较事件的主题和订阅者的主题,将事件放入相对应的事件队列,并唤醒所有在此事件队列上等待的客户端订阅者(PushletSubscriber)。

(5)EventSource:事件源,产生 Pushlet,并调用Publisher发布事件。

3 实时监测模型设计

CDMA2000 1x EVDO网络用户数据量大,涉及到的协议较多,为了对网络的整体性能均能及时、全面地进行监测,其实时监测模块的性能需求大致如下:可以选择指定协议、指定用户或全部用户进行实时跟踪,跟踪到的动态数据周期性地推送到客户端浏览器,并能将业务实现流程如实记录并通过流程图反应出来。

本文的实时监测模型基于重庆电信CDMA2000 1x EVDO信令监测系统项目下的一个子模块,该系统采用四层B/S Web模型思想进行系统的架构,采用JSP页面开发语言,Apache服务器,Oracle数据库,SUN Solaris服务器搭建的实验环境作为开发环境。在任意的web浏览器作为客户端,让用户可以在任何地方实时监控网络运营状况、实时跟踪业务实现流程。这样,以流程、业务为主导,贴近运营商,为运营商的网络优化方案、系统升级、及时作出各种决策提供有效的依据。

3.1 方案的选择

传统的实时监测实现方案是在浏览器客户端设置一个定时器,在该模型中假定其周期为30秒,启动实时监测后,客户端每隔30秒向服务器发起一个http连接,服务器启动后台程序查询数据库并将查询结果返回客户端浏览器。

该方案实现比较简单,但是缺点却很明显。启动实时监测后每隔30秒客户端浏览器都会进行刷新,用户体验较差;其次,数据量较大时,每次刷新页面的延迟感很强,实时性较差。基于以上原因,选择了基于Pushlet的实时监测模型方案。

3.2 基于Pushlet的实时监测模型整体架构设计

图2对应的是客户端发出监视命令的流程图,具体流程如下:

首先,用户启动或停止实时业务监测,客户端代理接收用户事件,根据监视命令创建监视任务,创建一个与客户端对应的订阅者(PushletSubscriber),创建成功后会向客户端代理返回一个成功响应。

其次, PushletSubscriber创建客户端适配器,将与该客户端对应的订阅者(PushletSubscriber)注册到事件发布管理器上,周期性调用后台查询方法,并将数据主动推送到客户端浏览器。

再次,根据客户端的监视命令,创建相应的客户端查看任务,对其中的监视类型和监视对象进行缓存,缓存是为了能够综合各个客户端的命令,当有多个客户端同时监控一个对象时,只需建立一个监控对象的缓存状态信息。

图3 推送数据流程

图4 业务追踪实时监测结果图

最后,任务管理器根据缓存状态,向服务器返回监视命令的响应,准备推送数据。

图3为推送数据的过程,它显示了如何产生事件并将其分发到客户端浏览器。网元适配器把数据发送给事件源管理器,事件源管理器与订阅者进行主题匹配,确定要发送的客户端。若有匹配的订阅者,则发布事件,把事件推送到客户端适配器,将数据以JavaScript的形式发送到客户端代理,实现了数据的实时推送。

3.3 业务流程图的设计与实现

随着手机上网业务的发展,手机上网业务类型繁多,新业务也层出不穷。用户的手机上网过程,涉及到多个信令的流程,为了方便运营商对某用户的所有业务流程有一个直观的了解与判断,本模块设计了业务流程图功能:通过匹配某用户的grekey值,统计出该用户在某时间段内的所有信令过程,并绘制出业务流程图,具体步骤如下:

第一步,点击某条用户记录的超链接,获取该用户的grekey;

第二步,依次用该grekey值分别与A11注册记录、PPP建立连接、PPP终止连接、A12建立连接、WAP连接过程、WAP业务过程、MMS发送过程、MMS接收过程、AAA认证过程、AAA计费过程等数据库相应的CDR表中在该时间段内所有用户记录的GREKEY字段匹配,判断其是否相等:①若匹配的grekey值相等,说明是该用户的一条业务记录,则绘制一条流程线,同时判断该业务过程是否成功,若成功,则该线绘制成蓝色;若失败,则绘制成灰色;②依次对上述所有的业务过程重复上个步骤;③循环结束,则业务流程图绘制完成。

4 结果显示及分析

图5 业务流程结果图

结果显示模块采用Java编程语言,利用JSP+Hibernate+Spring技术完成用户界面的设计,供用户查询行为分析结果。CDMA2000 1x EVDO网络由于用户业务较多,这里提供了按不同业务进行实时监测的选择。图5是2012年3月1日在重庆电信机房的监测结果,对用户号码18983699099发送彩信实时监测功能验证,跟踪结果正常。启动实时业务跟踪后,客户端浏览器不会刷新,每隔周期T(可自由设置周期,本文中设置为30秒)服务器主动向客户端推送数据,数据动态在界面上周期性累加,不会出现刷新和页面停顿的感觉,实时性高,用户体验良好。

业务流程图能追踪到某具体用户从开始监测时刻T1到查点击查看业务流程图时刻T2之间所有业务的具体流程,方便运营商对某用户的所有业务流程有一个直观的了解与判断。如图所示,显示的是2012年3月30日10时开始某时段内的某用户所有业务流程。蓝色表示成功记录,灰色表示失败记录。

维护人员可以通过CDRID的超级链接,打开该CDR记录的关联流程图,如下图所示。通过流程图的直观展示,维护人员可以了解用户操作的完整流程。对于失败记录,可以一目了然的发现失败的环节,便于问题跟踪定位。

结语

本文研究内容来自重庆电信CDMA2000 1x EVDO信令监测系统项目,从实时性、良好用户体验的角度出发,基于Pushlet技术设计了一种普遍适用的用户业务实时监测模型,该模型能够自动完成实时数据从服务器端推送到客户端,并且不会出现延迟感和页面刷新,有着良好的用户体验。同时,用户业务流程图可对具体用户在某时间段内的业务流程通过图形形象、直观地体现出来,便于运营商的监测。该模型可广泛用于网络监控和维护,了解网络的即时运行状况,为运营商为运营商的网络优化方案、系统升级、及时作出各种决策提供有效的依据。

[1]景慎艳,基于Pushlet服务器推技术的研究与应用.现代计算机,2009(10).

[2]尤淑辉,基于Pushlet的网络性能实时监控系统.计算机应用,2003(12).

猜你喜欢
流程图浏览器客户端
反浏览器指纹追踪
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
专利申请审批流程图
专利申请审批流程图
环球浏览器
宁海县村级权力清单36条
客户端空间数据缓存策略
《天津医药》稿件处理流程图