基于Granite Data Services的Web监控系统

时间:2022-05-31 01:19:11

基于Granite Data Services的Web监控系统

(1.大连理工大学 城市学院,辽宁 大连 116600;2.大连英科时代科技发展有限公司,辽宁 大连 116600)

摘要:基于Flex[1]、GDS[2]、Spring[3]和Hibernate[4]框架,设计了全新的Web监控系统并应用于供热监控系统,简化了监控系统的开发,提高了项目开发进度。克服了传统Web监控系统的页面刷新难题以及基于AJAX技术的安全难题和浏览器不兼容问题[5]。系统应用表明,该系统运行稳定可靠,实时性好,具有一定的实用性和推广价值。

关键词:Web监控系统;GDS;Flex;Hibernate;Spring

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)28-7943-04

Web Based Monitoring System implemented with granite data services

LV Hai-dong1,GAO Ji-bang2

(1.City Institute Dalian University of Technology, Dalian 116600, China; 2.Dalian Linktimes Co.Ltd, Dalian 116600, China)

Abstract: A new web scada was designed which is based on Flex, GDS and Java EE lightweight framework Spring, Hibernate. The system has been used in Heating Supplying real-time monitoring system. With this new technology lead to simplified development and improve the schedule of project. It has overcome the problem in page refreshing within classic web application and security and incompatible issue of AJAX. The application shows that this system runs stably and good real-time property. This kind system are practical and worthy of using abroad.

Key words: web scada; GDS; flex; hibernate; spring

基于Web的B/S模式监控系统已经取得广泛的应用,逐步取代了C/S模式,成为监控系统新的发展趋势。Web监控系统采用的技术也从初始阶段动态网页技术如JSP、ASP发展到基于异步通讯和局部刷新的AJAX,最终到目前全面运用RIA(Rich Internet Application)技术。

在RIA前端三大主流实现技术Flex,JavaFX,SilverLight中,Flex以其开放、开源、跨越浏览器平台成为最受欢迎的RIA开发技术。而RIA后端基于轻量级的JavaEE,Hibernate和Spring已经成为事实标准,如何实现这些后端框架与Flex前端的透明集成是目前RIA技术应用的关键。本文使用Granite Data Services(GDS)开源数据服务框架结合Flex开发了全新的供热管网Web监控系统,并在生产现场运用,克服了原有系统的不足,满足了用户的需求,实现任何联网计算机均可实现监测系统状况的目标。

1 系统采用框架技术

1.1 GDS框架

GDS是免费开源的,用于扩展和简化Adobe?R LiveCycle?R Data Services(LCDS)的数据服务整合框架,可以与JavaEE的EJB3,开源的Hibernate,Spring等进行无缝集成,将服务器端Java对象向Flex客户端进行远程,快速开发基于Flex的RIA应用。GDS整合了市场主流的JavaEE服务器和业务对象框架技术如EJB3,POJO,Spring,Seam和持久层技术如Hibernate,JPA,TopLink等,极大简化了企业级RIA应用的开发和实施,这也是本系统选用GDS的根本原因。

1.2 Flex框架

Flex是Adobe公司的presentation server(展现服务),它是Java Web Container或者.net server的一个应用,根据.mxml文件(纯粹的xml描述文件和actionscript)产生相应得.swf文件,传送到客户端,由客户端的 Flash Player解释执行,给用户以丰富的客户体验。目前Flex在企业级Web开发中已经普遍应用,在监控领域也逐步启动。

1.3 Hibernate框架

系统采用Spring框架集中管理各层的对象的生命周期,实现了系统各层对象之间的低耦合,有效保证了系统的维护性,其核心IoC(Inverse of Control)容器负责管理所有Java对象的管理和对象间的依赖关系。

1.4 Spring框架

Hibernate已经成为连接数据库,实现持久层业务逻辑的事实标准,本系统采用Hibernate读取基于PLC控制端点实时采集数据库,通过GDS在Flex界面显示实时监控信息。

2 监控系统设计与实现

2.1总体设计

监控系统是在原有的过程监控系统DCS的基础上对上位显示子系统进行了改造和扩展,将原来的C/S模式改造为基于RIA技术的B/S模式 ,系统总体结构如图1所示。

现场监控子系统选用XDC800控制系统,它是新一代适应于工业以太网和现场总线并能利用Internet的全分布的网络化综合自动化控制系统,是体现了第四代分散控制系统特征的高端DCS。其中监控分布式实时数据库实现网络上共享,不需要配置服务器,不会产生服务器配置方式的DCS系统所存在的通讯过程中的瓶颈问题。

读取监控数据使用Hibernate框架,取代底层的Java JDBC,简化了数据库的读写编程,提高项目开发效率和进度。

服务器选用开源的Tomcat6.0.20,全面针对JavaEE5进行的优化,提高了系统的整体性能。

服务器端业务对象和对象间依赖管理采用Spring框架,且由Spring管理Hibernate和业务对象的耦合,实现了服务器端对象的统一管理,并且利用Spring的对象池功能,极大提升系统的性能,满足监控系统实时性要求。

GDS框架负责Flex客户端与服务器端的通讯功能,其核心功能是提供Spring管理的业务对象的Flex服务接口,使得Flex客户端与Spring管理的Java对象进行交互,双向传输监控数据。

Flex客户端负责监控数据的显示,使用Flex SDK的Remote Object组件与GDS通讯,在GUI组件上显示监控数据。

2.2 服务器端业务层设计

2.2.1 配置Spring统一管理Hibernate和监控业务对象

配置Spring整合Hibernate3,位置在文件/WEB-INF/classes/applicationContext.xml中。

java:comp/env/tongliao

com/tongliao/control/value/SiteInfo.hbm.xml

业务对象SiteService使用Hibernate完成对监控数据的读取,与一般的管理类对象编程相同,在此不再赘述。

2.2.2 配置Web自启动Spring框架管理

定义Spring配置文件查找位置:

contextConfigLocation

/WEB-INF/classes/applicationContext.xml

配置Spring监听器,当Web服务器启动后,启动Spring IoC容器,管理业务对象和Hibernate映射:

org.springframework.web.context.ContextLoaderListener

...

2.3 GDS中间层设计

GDS的使用主要通过配置完成,不需要代码的编程。本系统选用最新的GDS2.0.0SP1版本。

2.3.1 引入GDS

在Web应用的/WEB-INF/web.xml中配置监听器和过滤器和将GDS引入Web服务器端。

org.granite.config.GraniteConfigListener

AMFMessageFilter

org.granite.messaging.webapp.AMFMessageFilter

AMFMessageFilter

/graniteamf/*

AMFMessageServlet

org.granite.messaging.webapp.AMFMessageServlet

1

AMFMessageServlet

/graniteamf/*

2.3.2 配置GDS的远程服务对象

在/WEB-INF/flex/service-config.xml文件中,将Spring管理的业务对象POJO为Flex远程服务对象。关键是,客户端使用此id调用服务器端对象方法。site来指定Spring的Bean对象,与对应。

messageTypes="flex.messaging.messages.RemotingMessage">

springFactory

site

uri="{server.name}:{server.port}/{context.root}/graniteamf/amf"

class="flex.messaging.endpoints.AMFEndpoint"/>

通过GDS的SpringServiceFactory将监控点监测业务对象site为远程服务对象。

2.4 Flex客户端设计

Flex客户端使用RemoteObject对象与GDS进行通讯,调用Spring管理的监测业务类SiteService对象的方法,取得最新的供热管网监测数据,并利用DataGrid组件进行显示。

2.4.1定义远程对象服务

配置远程服务对象,id与对应,同时定义回调方法。

2.4.2 定义显示监控数据控件

2.4.3 定义监控绑定数据

定义List类型的监测数据,与DataGrid组件进行实时绑定,当siteList数据变化时,显示数据自动更新,不需要像传统Web页面进行页面刷新,这也是Flex的主要优点之一。

[Bindable]

var siteList:ArrayCollection=null;

2.4.4 编程Flex定时器

在Flex页面启动完成后,开启定时器,间隔指定时间自动调用远程服务对象的取得监测数据方法。

private function initApp():void

{

var timer:Timer=new Timer(5000,0);//添加定时器,设置时间为5s

timer.addEventListener(TimerEvent.TIMER,siteDateGet);//添加定时任务方法

timer.start();//定时器开始工作

}

并配置自动初始化。

2.4.5 编写监控数据读取方法

此方法由定时器每隔5s运行一次,调用远程对象site的业务方法getDataList()取得所有监测点最新的监测数据,远程对象方法运行结束返回结果后,启动result定义的回调方法。

private function siteDateGet ():void

{site.getDataList(); }

2.4.6 编写数据取得回调方法

监测数据结果保存在event.result中,由于是Java List类型,需要转换为Flex ActionScript的ArrayCollection类型,并赋值到绑定对象siteList,进而自动更新显示DataGrid控件。

private function handleResult(event:ResultEvent):void

{

siteList =ArrayCollection(event.result);

}

Flex实现的监控页面参见图2所示。

3 结论

通过RIA的Flex和GDS数据服务框架,整合基于JavaEE的轻量级服务器端Spring,Hibernate框架而实现的全新Web监控实时系统,解决了传统Web监控的页面刷新难题,以及基于AJAX的浏览器不兼容难题,尤其是AJAX依赖JavaScript,当由于安全原因用户关闭JavaScript脚本运行时,导致AJAX无法运行的严重缺陷。而Flex是不依赖JavaScript的,只要安装Flash Player即可运行,目前所有计算机基本都安装了Flash Player,保证了Flex Web监控系统的跨浏览器特性,必将在Web监控系统中广泛应用。

参考文献:

[1] 吕晓鹏.精通Flex3.0-基于ActionScripy3.0实现[M].北京:人民邮电出版社,2008.

[2] Zhang M X.Granite Data Service 1.1.0 Released with new Features and Tools[EB/OL]./news/2008/10/GDS-110-release.

[3] 李刚.Spring2.0宝典[M].北京:电子工业出版社,2006.

[4] 杨少波.J2EE项目实训-Hibernate框架技术[M].北京:清华大学出版社,2008.

[5] 陈群.基于 AJAX新型Web Scada的设计与实现[J].工业控制计算机,2009(6):42-44.

上一篇:粒子群算法在电站锅炉燃烧优化中的应用 下一篇:基于64排CT序列图像的肝脏及其管道的提取算法