您当前的位置:首页 > 计算机论文>软件开发论文

基于Comet技术的远程环境监测Web平台设计系统开发

2015-07-22 09:59 来源:学术参考网 作者:未知

  0引言
  由于网络技术的飞速发展,采用传统C/S模式下设计的在线监测系统已经暴露出它的缺陷,主要表现在以下几点:①系统维护工作量大,每个客户端都要安装独立的应用程序,一旦需求改动,所有客户端的程序也要随着改变;②硬件成本相对较高,由于客户端既要执行前台界面,又要执行后台业务处理,所以对客户端的配置要求较高;③安全性较差,客户端存储着对服务器中数据的操作程序,用户就有可能破坏数据。而B/S结构的在线监测系统具有良好的开放性和安全性,客户通过移动终端设备就可以访问系统。
  现代环境监测中,Web技术发挥了极大的作用。自 Web2.0诞生之后,Ajax技术虽然可以达到一定的实时性,但是由于网络延时的缘故,以及后台服务器与浏览器之间频繁进行数据通信,引起网络带宽资源的浪费,降低了数据传输效率。因此,一种新的技术——Comet技术被提出。Comet技术可以避免连接被不停地打开和关闭,改善了基于轮询的Ajax模型的缺点,降低了由于频繁连接而带来的性能损耗,将系统的实时性和稳定性有机结合到一起。应用Comet技术,Client与Server之间的数据传输开销很小,甚至可以忽略不计。正是由于这些优势,Comet技术应用于远程环境监测系统可以达到实时的目的。
  1Comet技术介绍
  Comet 是一种用于Web的推送架构。在这种架构中,服务器会在数据发生改变时主动将数据异步传送给客户端,而不需要客户端程序(通常是浏览器)向服务器发出请求,使得客户端能够实时更新用户界面并关注到服务器端数据的变化。Comet在HTTP发送请求时,服务器不会立刻发送响应信息给客户端,而是保持着连接,等待一定情况发生后才把数据发送给客户端。目前Comet技术有两种实现方式:
  (1)HTTP 流(HTTP Streaming):这种情况下,客户端打开一个单一的与服务器端的 HTTP 持久连接。服务器通过此连接把数据发送过来,客户端处理它们。
  (2)HTTP 长轮询(HTTP Long Polling): 这种情况下,由客户端向服务器端发出请求并打开一个连接。这个连接只有在收到服务器端的数据之后才会关闭。服务器端发送完数据之后,就立即关闭连接,客户端则马上再打开一个新的连接,等待下一次的数据。
  2设计与实现
  城市远程环境监测系统是由部署在监测区域内的各类集成化传感器节点,实时感知、监测各种环境或目标对象,通过嵌入式系统对信息进行智能处理,并通过随机自组织无线通信网络以多跳中继方式将所感知的信息传送到用户终端。使用大气监测探测器、城市污染物探测器、城市水资源探测器、物理环境探测器等进行数据的采集,采用标准电子化的实时数据进行记录、监测、传输。远程环境监测系统拓扑结构如图1所示。
  图1远程环境监测系统工程拓扑结构
  2.1总体设计
  远程环境监测Web平台的功能是将采集到的数据利用软件产生动态Web页面,以直观、生动的方式呈现监测数据,并进行数据分析。利用先进的Comet技术优势,设计该系统的3大功能模块,包括Web浏览器模块、Web服务器模块和数据库服务器模块,其结构如图2所示。
  图2基于Comet技术的远程环境监测Web平台系统框架
  Web浏览器模块与Web服务器模块之间是由网络连接的,Web浏览器模块与Web服务器的通信主要是通过Comet引擎,当Web浏览器向Web服务器发送数据请求时,Web服务器收到请求后保持这个连接不关闭。Web服务器从现场采集实时监测数据后,将解析所有收集到的数据,判断采集的数据是否有变化,如果有变化则将数据推送到客户端的浏览器上,并以HTML、JSP以及JFreeChart图表等形式展示给用户。数据库服务器主要负责存放历史数据,Web服务器负责将采集到的实时数据发布到Web页面,再将数据以XML的格式存储在数据库服务器中,以进行后期历史查询和故障检测。
  2.2服务器端设计
  服务器端主要由维持HTTP长连接的Web服务器和数据采集服务器组成。数据库服务器端主要负责的功能是数据采集,它需要将采集到的数据解析后发送到Web服务器,是监测人员得以监测环境状况的核心组成部分,Web服务器从实时数据库中读取数据后,会判断数据是否发生改变,如果改变,则将改变的数据打包成XML格式并由Comet引擎推送到Web页面。因此,服务器端主要由维持HTTP长连接的Web服务器和数据采集服务器组成。
  2.3客户端设计
  远程环境监测Web平台主要采用HTML设计静态页面,JSP设计动态页面,JFreeChart实现图表图形,使用JavaScript实现一个Comet引擎,使用XMLHttpRequest与Web Server交流,接收数据。JSP动态页面设计采用MVC模式,结合目前流行的SSH框架实现远程环境监测系统,主要功能模块包括用户登录、实时监测、监测分布、今日数据、每月分析等。
  2.4功能实现
  远程环境监测Web平台在服务器端采用了Sql Server作为数据库服务器存放数据,Comet引擎调用其数据库中数据实时发布到Web界面,采用Tomcat作为Web服务器,以新城规划展示馆为测试对象,测试环境监测Web平台的功能性、安全性、稳定性、实时性。
  图3“新城规划展示馆”环境监测数据显示
  图4“新城规划展示馆”当月监测数据实时分析
  在客户端使用XMLRequest发送请求到服务器,在服务器端用一个Servlet来接收XMLRequest的请求,当接收到请求时,并不立刻响应客户端,而是把该Servlet线程阻塞,等到一定事件发生后,再响应客户端。当客户端接收到服务器端的响应后,调用自定义的回调函数来处理服务器发送回来的数据,处理完成后,再发送一个XMLRequest请求到服务器端。这样循环下去,就可以实现数据的实时更新,不必在客户端之间不断地轮询。
  利用Comet实现实时效果时,只要在客户端注册事件和写一个处理返回数据的回调函数,然后在服务器端实现EventListener接口,调用Controller.action(eventListener, eventType) 就可以了。 客户端的Javascript代码可以集成在Servlet中,启动Http服务器时,Comet引擎会根据用户的配置,在相应的目录下生成客户端的Javascript代码。服务器端的Servlet初始化时,根据配置文件生成相应的客户端Javascript代码。Servlet的入口由doGet进入,在doGet方法中,需要将事件注册到NameRegister中,注册完成后,Servlet线程调用 wait()方法停止,等到该线程被唤醒后再来使用EventListener接口中的Process(Request,Response)方法来处理客户端的请求。
  3结语
  Comet技术可以避免连接不停地关闭和打开,对于基于轮询的Ajax模型的缺点进行了改善,大大降低了由此带来的性能损耗,使得系统的实时性与稳定性有机地结合到一起。前端采集来的数据经过解析及分发,在Web页面上不仅仅以数值形式展现,还可用图表和图形实时显示,体现了良好的人机交互界面。本系统的开发为城市的环境治理和生态宜居城市建设提供了科学依据。
  参考文献:
  \[1\]成富.实战Comet应用程序开发.[EB/OL].IBM DeveloperWorks 中国. http://www.ibm.com/developerworks/cn/web/walow2fpakcomet/,2008715.
  [2]耿方.基于Web的实时监控系统的研究与实现[J].电信工程技术与标准化,2011(11).

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页