基于BlazeDS的烟草移动服务综合监控系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BlazeDS的烟草移动服务综合监控系统
杨逸文
【摘要】由于烟草商业一线员工流动性大、任务具有弹性、工作成果难以直接衡量,对他们的监控和管理是运行中的难点和重点.BlazeDS 提供了客户端和应用服务中间件之间的数据同步方法,简化了RIA 应用的数据访问和驱动,并极大提高数据访问性能,实时、可靠、效果好.在明确采用BlazeDS技术对一线移动服务监控的必要性的基础上,进行了系统设计,并对实时监控、服务轨迹回放等系统详细设
计.%Since the frontline employees in tobacco trade has big mobility, their tasks are flexible and difficult to directly measure the outcomes, therefore the monitoring and management on them is the difficulty ami emphasis in business operation. BlazePS provides the data synchronisation approach between the service middleware and the Flex client application, simplifies the R1A application data access and driver properties, and improves the achievements of data access greatly, it has the advantage of real-time, reliability and good effect. On the basis of expounding the necessity to monitor the frontline mobile service based on BlazeDS technology ? The overall system design is made, and the core subsystems such as the real-time monitoring, service orbit playback are designed in detail.
【期刊名称】《计算机应用与软件》
【年(卷),期】2012(029)005
【总页数】5页(P224-227,266)
【关键词】BlazeDS;烟草;移动;服务;监控;系统
【作者】杨逸文
【作者单位】江苏省常州市烟草专卖局(公司) 江苏常州 213001
【正文语种】中文
【中图分类】TP311.52
0 引言
烟草商业的服务成效直接取决于其一线的客户经理、稽查员等一线员工的工作成效,但是,一线员工由于流动性大,工作弹性大,工作成效难以衡量,对移动员工的管理成为烟草商业管理的难点之一。
本文通过一种其于BlazeDS的服务监控系统的
设计和实现,为以上困难找到了一种可供参考的破解之道。
1 基于BlazeDS的系统体系结构设计
1.1 系统架构的设计
烟草移动服务监控系统是一个由移动终端、信道、内网及服务器相结合的信息系统。
因此,移动服务监控系统可分为三大部分:移动设备、接入层、内网。
移动服务监
控系统网络结构如图1所示。
图1 烟草移动服务监控系统网络结构图
本系统采用BlazeDS、Flex等RIA(富互联网应用)技术与ArcGIS相结合的B/S方式,以方便操作使用,为了使后台服务层取得比较好的显示效果,采用Flex技术,使得在B/S方式下能取得丰富的图型和展示效果。
1.2 BlazeDS的中间件的选择
BlazeDS是开源的、用于数据访问的中间层技术,是LCDS(Adobe LiveCycle
Data Services)的一个子集。
它允许开发者容易地连接到分布在后端的数据和实时地向AdobeFlex或Adobe AIR应用程序推送数据,此项数据访问能力对于提供更好的RIA体验非常关键。
完整的BlazeDS应用一般包含前端Flex应用程序和后端服务器应用,而BlazeDS则是连接前后端的纽带。
Flex应用程序可以通过BlazeDS获取服务器数据,后端服务器应用也可以借助BlazeDS提供功能,主动向前端Flex应用端推送数据[1]。
其架构如图2所示。
图2 BlazeDS架构图
在本系统的构成如图3所示,WS服务器、J2EE应用服务器、ArcGIS服务器、Flex客户端应用和BlazeDS每一个部分都有其特殊的作用,相互补充,共同组成一个有机的整体。
但是,BlazeDS处于重要地位,承前启后。
图3 基于BlazeDS的移动服务监控系统架构图
1)BlazeDS中间件保证了服务监控层与服务端的高效通信,实现业务数据、GIS数据和实时监控数据的传输和处理。
也就是,实时监控使用BlazeDS作为中间件,通过JavaAdapter适配器联接到SSH框架,通过SSH框架获取企业数据库服务器中最新实时监控信息;GIS展现通过Flex Viewer实现与ArcGISAPI的封装,通过客户端Flex Viewer将实时监控信息渲染在电子地图上;Flash应用又需要业务展示,这依赖Flex中Web Services组件,通过此组件加载Web Services服务器中的业务数据,以Flash饼图、柱状图等形式渲染。
2)BlazeDS承前启后,满足了RIA应用的需要。
客户端采用Flex技术在客户端设计极具视觉体验的、动态人机交互的图形用户界面,Flex弥补了许多传统Web应用缺乏的元素,减少了与服务器之间通信的次数,更为详细地展示数据的细节,最适用的应用程序包括:解决多步处理、客户端验证、控制可视数据,使桌面应用和Web应用结合在一起,表现出强大的表现力[2]。
为了处理复杂的地理数据类型,更加方便快捷地传输大数据量的地理信息,采用一种独有的方式使Flex与服
务器间可以来回传送数据,提高数据的传输速度对于提高Flex客户端的客户体验显得尤为重要。
于是AMF在众多的传输协议中脱颖而出,成为Flex和服务端通信的首选通讯协议[3]。
3)BlazeDS提供了Flex与服务端稳定联接的办法。
与消息服务相比,定时取数是采用二进制压缩、序列化来实现通信,通过Flex客户端将值对象(VO)序列化为服务器端DTO(数据传输对象),比较稳定,当每次传输数据结束后就释放联接,并发连接数少,对防火墙的部署也没有特殊要求。
因此,只要在J2EE程序中将一线移动服务的监控数据传送到实时监控数据库中,就可以实现移动服务监控系统的设计和开发。
4)BlazeDS运行效率高,是联结客户端和服务端的理想的中间件。
如上所述,为了提升数据运算、传输和展现效率,采用业务、监控和GIS分开处理,Flex采用AMF无论在客户端内存消耗、对数据带宽要求、还是计算、传输和渲染时间总和等方面相比,都有其非常突出的优势。
各项指标如图4所示[4]。
图4 AMF与其他传输方式性能对比图
2 移动服务信息采集系统设计
2.1 嵌入式应用程序
该系统是在服务监控的对象移动服务员工的手持3G终端的WM6环境下,采用.NET CF创建mobile类。
在此类中创建程序 Login.cs和 Main.cs,在系统运行后,首先启动 Login.cs,进行用户名及口令的验证,并根据输入人员的角色,在随后调用Main.cs主程序时,由Main.cs来判断与该人员身份相对应的功能模块,并显示图标。
稽查员、客户经理登录后系统会在活动标签、信息标签上显示的功能模块,在系统标签上会有更换密码等系统功能。
2.2 手机GPS实时监控信息的上传
采用Web Services来实现智能手机通过GPS模块采集到卡号、经度、纬度、速
度发等信息进行数据的上传。
手机终端系统将采集到的现场数据组织成XML文件格式,访问Web Services应用服务器的WS服务,由Web Services应用服务器来解析该XML文件,并转换成对象格式进行存储。
所以手机终端访问Web Services应用服务器的WS服务,Web Services应用服务器对手机终端的请求进行解析,将程序执行后的数据组织成XML文件上传并返回值给手机终端。
WebServcie服务器使用Axis组件作为服务提供者,关键的配置文件是server-config.wsdd文件。
一般新增服务只需在server-config.wsdd配置文件增加相应配置,例如:即可将MS_TER_Gps文件转换为服务文件,只要在Web Services应用服务开启的条件下,手机客户端就可以发送请求,Web Services应用服务器匹配请求中的接口名称及参数,其服务地址为 http://地址:端口//trade/services/MS_TER_Gps.jws,该服务通过MS_TER_Gps.wsdl进行服务描述。
2.3 Web Services业务数据传输的设计
Web服务,可通过http方式调用的方法和类库的集合。
Web Services的传输基于SOAP,以XML方式传输;能穿过防火墙,易于系统集成也是它的主要优势。
为了实现业务系统与烟草移动服务监控系统的移动终端层、后台服务层之间的数据传输,通过Web Services应用服务器用于处理智能手机终端系统、GIS服务器的请求,组织从企业数据库中取到的特定条件的数据,还可以进行必要的业务逻辑计算后,返回给各系统,并对智能手机终端系统采集到的各种现场业务数据进行存储,为应用服务器、GIS服务器提供数据支持,是应用服务器、GIS服务器与企业数据库之间数据交互的中转站。
当服务监控系统客户端需要读取后台数据时,通过对Web Services应用服务器发出请求,由Web Services应用服务器组织从企业数据库中取到的、特定条件的数据,并返回给GIS服务器。
采用Flex Viewer实现
与ArcGISAPI封装,用于和地理信息服务器进行数据交互。
3 基于BlazeDS的实时监控系统设计
GPS坐标数据同时通过符合CDMA标准的无线MODEM,利用数据/短信的形式将车辆的位置、状态、速度、报警器和传感器输入等信息发送至CDMA公网,CDMA公网将接收到的车辆和手机相关信息通过通信接收/发送设备传送至监控中心,经过计算机处理后发送至服务监控系统。
监控系统接收到数据后在电子地图上显示监控对象轨迹、当前坐标、监控对象的各种状态包括速度、运行和满足设定条件的报警。
3.1 实时监控系统组成
工作过程的实时监控系统,一般由服务器系统、定位系统、手机终端系统和客户端组成。
在本系统中,服务器系统由企业数据库服务器、GIS服务器、应用服务器、Web Services应用服务器组成,定位系统为带有GPS定位功能、应用服务的智
能手机终端,客户端由客户和计算机组成。
客户端计算机是用来加载企业数据查询分析的监控终端,即Flash应用,通过Flash展现监控内容情况。
GIS服务器为Flash应用提供电子地图和几何计算服务,应用服务器主要用于逻辑计算,从企业数据库服务器上获取实时数据,经过逻辑加工,传递给Flash应用,为其提供数据支持;Web Services服务器主要组织业务数据,为Flash业务展现提供数据;企业数据库服务器用于存储智能手机终端的定位
信息,以及存储依据定位信息产生的报警内容,存储人员,产品等基础数据,以及人员发起的各项活动数据,并为其他应用系统提供各种数据运行的统一平台,为其他各系统之间数据交互的枢纽,企业数据库服务器是整个系统中最主要、最核心、最集中的数据中心。
3.2 实时监控展现过程
监控终端通过浏览器加载Flash应用,即:实时监控界面,Flash应用通过ArcGIS
的组件通过Flex展现提供地图服务,展现当前全局地图信息,然后启动Flash定时器,定时(一般数秒至几分钟,可设定)通过AMF通道向BlazeDS服务端加载应用服务器中SSH框架下的持久对象的最新定位信息缓存;通过Java线程,全天候获取企业数据库服务器中的工作人员实时定位信息,经过逻辑计算,将定位信息和定期逻辑运算后得到的是否越界、过长过短停留等信息(一般数秒至几分钟,可设定)缓存在应用服务器上。
Flex RemoteObject得到来自应用服务器的信息后,再通过Flex的Viewer组件调用ArcGISAPI for Flex后的返回值将定位信息渲染在全局地图上,并实时绘画出当前轨迹信息,以及当前人员的工作时间、行驶里程、工作情况和报警信息。
Flex通过ActionScript计算判断由BlazeDS服务端RemotingService发过来的数据是否更新,如果已经更新,则更新显示;如果当前位置没有更新,只是时间变化,则也要更新显示;如果时间和位置都没有变化,则显示不作任何处理。
其实现时序如图5所示。
图5 实时监控应用调用时序图
如果此工作人员有报警信息,通过Flex的自定义方法在此报警人员上渲染报警,以示区别。
其中实时轨迹为了体现当前轨迹是否符合规定,通过线形(绿色线条)和点形(方形红点和圆形黄点),加以区别。
线形为正常行驶的轨迹,当在工作时间内有超范围报警,就以方形红点渲染;当在非工作时间有超范围报警,就以圆形黄点渲染,这样能够清晰展示工作路线是否合理有效。
当需要查询当前工作业务数据时,Flash应用通过Flex下的Web Services组件,请求Web Services服务器中的业务数据,通过Flexl图形控件加以展现。
3.3 BlazeDS客户端设计
客户端主要是通过Flex实现与BlazeDS服务端的配置,并通过Flex来进行程序设计。
1)Flex客户端配置
本系统在Flex客户端需要对取数周期、区域网格边界加宽幅度、Url和MAP跨域访问、应用服务器、GIS服务器地图服务、GIS服务器几何服务、Web Service服务器及相关服务描述文件的URL在lmsMonitorConfig.xml文件中配置。
2)客户端展现程序设计
监控客户端的程序设计如下:
(1)配置和加载Flex Viewer。
Flex通过组件Flex Viewer实现与ArcGIS服务器API for Flex的封装,即采用Flex Viewer来实现地图的展现,在监控运行时由flash播放器加载Flex Viewer应用。
Flex Viewer通过config.Xml文件进行配置,配置内容包括:菜单、地图服务器、地图显示区域、配置与实时监控、轨迹回放、网格分析等每一个功能菜单相对应的Flash文件和快捷操作方式。
这些配置在Flash播放器打开时加载。
(2)监控客户操作界面的设计。
监控客户端通过Flash图型菜单来确定功能,日期图型控件来选择时间段,用树型结构来展示、选择部门和人员,当监控人员选定日期、功能菜单(如网格绩效分析)和部门、人员后,并将其注入Spring框架,获得框架配置信息,根据框架配置信息获得监控业务对象BO,并判断Flex端的地图是否加载,如果没有加载地图,则重新加载地图;如果加载了,通过BO调用业务逻辑层人员ID和要查询的相关信息属性。
(3)展示地图和相关监控数据。
根据config.xml配置文件,Flex Viewer从地图服务器上加载相对应的地图服务,客户端应用程序调用服务端的业务对象BO或到远程数据访问对象层(DAO)的SQLMAP查到相应的SQL语句最终获取监控或业务信息赋予组件。
例如将业务数据提供给Flex的Chart组件,将这些chart组件显示在地图上,只须将chart组件作为symbol渲染graphic即可。
(4)计算整理网格数据并渲染网格。
根据SQL返回的xml数据,请求网格数据,返回结果制定由网格图层函数CB_Get-PolygonPointsHandler对网格多边型点数
据处理并取得网格数据后,将坐标点的xml集合,转换成actionscript中的MapPoint对象列表然后将列表集合填充到一个数据对象中,再用Graphic对象
包裹,并制定Graphic对象的渲染属性symbol为simplefillsymbol,并地图上
新建图层,最后添加到已经加载到地图图层中即可,并通过坐标计算将网格图层居中。
3)客户端Flex调用过程
首先获取配置信息,获取监控信息的应用服务器的URL,并把应用服务器的URL
的/messagebroker/amf目录作为获得AMF传输协议的url、创建远程对象,并
从配置文件中获得ENDPoint出口,这样就建立了AMF信道。
然后即可以发出监控信息请求,通过前述过程确定的通道获得监控信息,通过创建监听事件指定回调函数,最后,通过调用结果处理函数展示信息。
3.4 BlazeDS服务端的配置
BlazeDS中间件服务端的配置是整个应用核心,是联接前后端各方的中心环节,
是实现服务监控的关键所在。
1)启动、服务和通道的配置
在WEB-INF目录下的web.xml部署描述符文件在应用服务器启动后首先被加载,配置项<servlet>中,配置项<listener>用于将HttpFlexSession作为监听器注册到web.xml,系统就可以检测到J2EE应用程序HttpSession属性和代理属性
的变化,并告知FlexSession属性和已经绑定的监听者作相应处理。
由MessageBrokerServlet引导 messagebroker,并加载 services-config.xml服
务配置文件。
services-config.xml包含BlazeDS引用的服务文件、安全设置、系统参数和通道定义、Spring工厂的注册、配置启用的服务和通道,其中服务包括远程、代理和
消息服务三种;通道定义包括 AMF、AMF加密、AMF轮询、HTTP、HTTPS等通
道对应的协议、类、Endpoint和 Url。
2)目的地和适配器的配置
Flex应用程序使用远程服务调用的一个Java类,则这个Java类必须配置为BlazeDS配置文件中的一个目标,远程服务目的地定义在BlazeDS的 web-
inf/flex文件夹的 remoting-config.xml中。
通过remoting-config.xml文件对BlazeDS所使用的目的地和适配器进行配置,<adapters>用于设置适配器的ID 和对应的类,这里选用Java适配器;<destination>设置服务目的地,source对应的Bean的ID及控制反转(IOC)注入部分在其中声明。
VMProxy是客户端组件RemoteObject的目的地,通过配置Java适配器使VMproxy.java对象可以作为远程对象(remoteObject)的目的地而被Flex调用,允许Flex直接访问VMproxy.java对象的内部方法函数,例如GetpersonTree。
<source>表示是远程对象;用<default-channels>指定默认的AMF信息通道,这里的<channel >的ref属性引用了my-amf,它已经在前面的services-config.xml文件中定义过了。
3)spring的配置
Spring通过配置文件applicationContext.xml管理各种bean或业务逻辑。
4)Hibernate配置
在BlazeDS端的配置:如上所述,需在services-config.xml完成通道和服务的配置;在Hibernate端配置:一是Hibernate.cfg.xml文件包含的普通的数据库联接设置,并在my-class.hbm.xml文件的<hibernate-mapping>标签内Java应用程序类被映射到SQL数据库。
二是在hibernate端的data-management-config.xml为应用程序类声明目的地,在目的地标签给目的地指定一个识别号,这个识别号在Flex应用中要用到。
Hibernate在spring里面的配置,Hibernate也是通过spring进行管理,同样通
过注入的形式,将sqlMap注入到GPSMonitor-ViewDAO中来实现。
5)服务器端的实现
一般的BlazeDS服务端实现采用DAO、Service、Facade三层设计,在本系统中因没有事务操作,不涉及跨表操作,采用Flash而不用JSP来作页面,因此,本系统没有定义Service、Facade,只用了DAO和BO,BO层的主要作用是把业务逻辑封装为一个Java对象,这个对象可以包括一个或多个其它的对象,处理业务逻辑时,就可以针对BO去处理,通过调用DAO的方法,结合值对象和持久对象进行业务操作。
以下是实时监控数据BO层处理代码。
由于BlazeDS架构不能通过spring管理,但是BlazeDS又需要运用spring管理的bean,这里通过java代码方式直接获取spring框架下的bean对象,这样BlazeDS架构下的java适配器VMproxy.java文件,就可以直接访问BO层业务对象。
下面是通过Java代码获得业务对象的实例。
在DAO层,包含了各种数据库的操作方法。
主要功能是通过由BO传递过来的信息由sqlMap查询获得功能菜单需要查询的相关信息并返回给客户端值对象用。
这里, sqlMap 就是存放sql 的地方,通过sqlmap. xml 来获取相应的sql 语句。
参考文献
[1]兰天,曲鹏东,孙高飞,等. Flex 企业应用开发实战[M].机械工业出版社,2010.
[2]周炳喜,周坚华,王珂.基于ArcGIS Flex API 的电网企业信息可视化系统研究[J].测绘与空间地理信息,2010(2) : 124.
[3]高炎,张芬.面向ArcGIS 的Flex 应用程序的数据传输方案[J].科技
资讯,2010(3) : 11.
[4] James Ward.BlazeBench: Why you want AMF and BlazeDS [EB/OL].2007.http: / /www.jamesward.com/2007 /12 /12 /blazebench - why -you - want - amf - and - blazeds /.。