基于BlazeDS消息推送的WebGIS系统设计与实现.doc_第1页
基于BlazeDS消息推送的WebGIS系统设计与实现.doc_第2页
基于BlazeDS消息推送的WebGIS系统设计与实现.doc_第3页
基于BlazeDS消息推送的WebGIS系统设计与实现.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于 BlazeDS 消息推送的 WebGIS 系统设计与实现欣1,2杜震洪1,2丰1,2刘仁义2南1李张刘1 ( 浙江大学浙江省资源与环境重点实验室 浙江 杭州 310028)2 ( 浙江大学地理信息科学研究所 浙江 杭州 310027)摘 要为满足一些 WebGIS 应用对实时性的要求,在分析传统 WebGIS 采用请求 / 响应工作方式的不足的基础上,提出利用开源框架 BlazeDS 的基于 HTTP 协议的消息推送技术,实现 WebGIS 系统服务端地理信息数据的实时推送。通过服务器向客户端主动推送数据以获得更好的实时性,并使用 Flex 作为客户端更好的表达地理信息数据。在分析 BlazeDS 服务器推送技术的原理和基本过 程的基础上,给出 WebGIS 系统体系结构,讨论其核心设计与系统实现,最后通过实例说明系统应用的可行性。关键词BlazeDS服务器推技术WebGIS Flex中图分类号 TP39 P208文献标识码 ADESIGN AND IMPLEMENTATION OF WEBGIS SYSTEM BASED ON BLAZEDSMESSAGE PUSH TECHNOLOGYLi Xin1,2Du Zhenhong1,2 Zhang Feng1,2 Liu Renyi2Liu Nan11 ( Zhejiang Provincial Keylab of GIS,Zhejiang University,Hangzhou 310028,Zhejiang,China)2 ( Department of Geographic Information Science,Zhejiang University,Hangzhou 310027,Zhejiang,China)To meet the demand for real-time requirements of some WebGIS applications,according to the analyses of traditional WebGISAbstracton its deficiency of adopting the work mode of request / response,this paper proposes to achieve the real-time push of geographic informationdata on server side of WebGIS system using HTTP protocol-based information push technology of open source framework BlazeDS,the active data push through server to clients provides a better real-time performance,and the use of Flex as the clients can better express the geographic information data By analysing the principles and basic processes of push technology on BlazeDS server,the architecture of the WebGIS system is presented Then the core design and the implementation of the WebGIS system are discussed,and finally an example is given to illustrate the feasibility of the system applicationKeywordsBlazeDS Server Push WebGIS Flex息数据的实时推送与客户端数据的渲染和显示,并通过应用系统验证系统的实时性。0引言随着互联网进入宽带时代,高度互动性、丰富用户体验以及功能强 大 的 客 户 端 应 用 的 RIA ( Rich Internet Applications) 使WebGIS 应用克服了图形显示及交互功能较弱、用户体验不佳等 的缺陷1,2。但是,与传统 的 Web 系 统 相 同,基 于 RIA 的 Web- GIS 仍然以客户端发出请求、服务器端响应的模式工作,这种模 式并不适合很多现实应用的需求,譬如车辆监控、灾害预警等。 因为在这种模式下,为了得到最新的数据或响应,客户端不得不 连续向服务器端发送请求,过度频繁的刷新对服务器端的压力 是毫无疑问的,而刷新间隔过长,又可能造成客户端响应的不及 时,数据显示缺乏实时性。如果 Web 服务器能够随时主动地向 客户端发送数据,而不是等待客户端发送请求或者刷新页面来 获得更新的数据就能很好地解决这个问题。基于 Flex 的开源框架 BlazeDS,提供了基于标准 HTTP 协议 的实时消息推送 技 术,为 WebGIS 实现地理信息 数 据 的 服 务 器端推送提供了可能3。本文利用 Flex 和 BlazeDS 消息推送技术1BlazeDS 消息推送技术从早期使用 Flash 建立 XML Connectoin,到使用类似 HTTP-Streaming 的方法使服务端保持与浏览器的连接,到后来使用再 到 Gmail 内嵌 Gtalk 的出 现,很 多 Web 系统都应用了服务器推 送技术,比较有名的应用还有 JotLive、Meebo 等。在金融领域方 面,也有诸如实时汇率更新的 Web 系统等等4。近几年非常流行的服务器推技术是 Comet,它基于 HTTP 长 连接而实现,保持原有的 HTTP 协议不变,在服务器端改变处理 方式,使得服务器能够使用浏览器已经打开的 HTTP 连接,主动 收稿日期: 2011 11 15。国家自然科学基金项目 ( 40571123,40271087,41101356) ; 国家高技术研究发展计划项目 ( 2007AA12Z237,2007AA12Z182,2009AA12Z222) ; 浙江省自然科学基金项目( 401006) ; 中国国家博 士后基金项目( 20100481405 ) 。李 欣,硕 士,主 研 领 域: 富 客 户 端 WebGIS 应用。杜震洪,讲师。张丰,副教授。刘仁义,教授。刘南,教授。设计一个 WebGIS 系统,基于 HTTP 长连接实现服务器端地理信据封装并加入到消息队列中,推送到订阅该消息服务的客户端程序。向浏览器发送消息。BlazeDS 是 Adobe 公司开源免费数据服务框架产品,用于简 化 RIA 应用的数据访 问 和 驱 动,并极大提高数据访问性能,其 中最关键是具有实时数据推技术。BlazeDS 的消息推送在底层实现基本上与 Comet 相同,基于 HTTP 长连接,采 用 标 准 的 HTTP 协 议。Flex 客 户 端 通 过 Con- sumer 组件配置的通道发送请求到 BlazeDS 服 务 的 端 点 上。从 端点开始,请求经 过 一 系 列 的 Java 对 象 包括消息传播对象、服 务对象、目标对象以及最终的适配器对 象5,6。图 1 展 示 了 BlazeDS 消息服务体系图。图 2 WebGIS 系统架构设计服务器端消息推送在服务器端应用中,采用 Spring 容器架构消息推送框架,使图 1 BlazeDS 消息服务在客户端,Flex 的 Consumer 组件使用通道和 BlazeDS 服 务 端交互。一 条通道包含多条道路,它们的基础功能 就 是 提 供 Flex 客户端和 BlazeDS 服务端的交流。通道中的道路都是按性 能排序的。Flex 组件会搜寻通道中的道路查看是否已连接上, 如果没有连接就按照顺序尝试进行 连 接。通 道 封 装 了 Flex 组 件和 BlazeDS 服务端之间的连接方式。概 念 上 来 说,通 道 是 Flex 组件下面的 组 件,它们处理组件和 Blazeds 服 务 端 之 间 的 交互。在 BlazeDS 服务端中,端点和通道是相互映射的,保持端点 和通道使用相同的消息格式是很重要的。如 果 通 道 使 用 AMF 消息格式,比如 AMFChannel,端点也必须使 AMF 消息格式与之 匹配,比如 AMFEndpoint。MessageBroker 是为了将消息路由给消息服务,是 Blazeds 在服务端的核心。在端点经过初步的处理请求并且将提炼出来的 消息传递给 MessageBroker。MessageBroker 查看消息 的 目 的 地, 然后将它传递过去。消息服务是消息传递过来的目标,可以将 消息目的地想象成消息服务的实例。适配器是消息处理链中的最后一环。当一个消息抵达正确 的目的地以后,就会被传递给适配器并形成本地的后台系统或 者一个远程服务( JMS) 。当客户端通过通道建立与服务端的连接后,发送请求订 阅某一消息服务,服务器端获得新的数据时,BlazeDS 相 应 的 适 配 器通过通道将数据发布给订阅该消息的客户端。2 2系统层次清晰、便于 维 护。由 于 BlazeDS 服务器端的核心 Mes-sageBroker 基于 Servlet 实 现,运行在应用服务器 上,只 要 在 Spring 中配置 MessageBroker 的 bean 就可以将 BlazeDS 部署到现 有的 Java 应用中,然 后 通 过 在 Spring 中配置消息队列,并 配 置 消息通道和对应的端点,这里采用 AMFStreaming 通道和端点提 供消息推送服务。Spring 的依赖注入技术可以将 BlazeDS 消 息 服务对象注入到业务逻辑类中,以实现在业务逻辑类中使用消 息服务对象提供的消息服务6,7。当监控程序通过监听数据库 或其他途径发现有新的数据时,通过适当封装监测数据,利用消 息服务对象接口提供的方法将其加入对应的消息队列中,就可 以实现实时的消息推送服务。BlazeDS 消息服务会实时监控消息队列的消息,当新消息进 入队列后,BlazeDS 将消息传送给订阅此消息的 Flex 客户端,使 用推技术,将消息中包含数据发送到 Flex 页 面 的 控 件 中,实 时 显示消息中的数据。与 Java Servlet 端点类似,每个客户端连接都需要服务器上 一个单独的线程,因而当同一时间访问的用户数量过多时,就会 超过服务器能有效处理的线程数量。Jetty 6 中提供了一个被称 为 Continuations 的 特 性,它的目的是扩展大量同步连接,使 用 Java 的 nio 技术并使用一个经过优化的输出缓冲架构。通过利 用 Jetty 服务器的 Continuations 特性,扩展 BlazeDS 的端点,可以 解决以往的服务器推送技术因为与客户端连接所需建立很多线 程带来的性能问题,提高服务器引擎的吞吐量和性能。2基于 BlazeDS 服务器推技术的 WebGIS 系统设计2 3服务器与客户端数据传递服务器端推送的地理信息数据封装可以 为 类 XML 的 交 换2 1总体框架设计系统在总体上分为三层架构如图 2 所示。系统采用富客户格式( 如 GML、KML、GeoJson、GeoRSS) ,或者可以是复杂 的 Java对象,只 要 在 Flex 中 编 写 对 应 的 Actionscript 类,利 用Remote- Class标签声明相对应的 Java 类的路径,通过 AMF 协议就可以端 Flex 来渲染地理信息数据,主要负责与用户的交互。用户通过操作订阅服务器端的数据,客户端接收服务器端推送的地理 信息数据并可视化表达。应用层是负责响应客户端请求和数据 推送的核心,一方面通过 ArcGISServer 或 GeoServer 发布地图服 务为 Flex 客户端提供地图 服 务,另 一 方 面 使 用 BlazeDS 中 间 件 提供消息服务队列,结合 Spring 框架实现消息推送的业务逻辑。8。AMF 是 Adobe 开发完成 Flex 对象和 Java 对象之间的转换出来的通信协议,它采用二进制压缩,序列化、反序列化、传输数据,从而为 Flash 播 放 器 提 供 了一种轻量级的、高 效 能 的 通 信方式。由于 AMF 采用二进制编码,这种方式可以高度压缩数据,当数据监听程序监听到数据变化时,通过合理的业务逻辑将数非常适合用来传递大量的资料,因此数据量越大,传输效能就越高,远远超过 Web Service,非常适合用于传输地理信息数据9。BlazeDS 框 架中包含序列化和反序列化 AMF 格 式 数 据 的 Java 类,帮助完成 AMF 请求的反序列化,以及在由消息 队 列 将 数 据 推送到客户端之前序列化为 AMF 格 式,通 过 AMF 协 议 以 二 进 制的形式传递到客户端,再由 Flash 播放器反序列化为 ActionS- cript 对象,这样就可以实现监控数据在 Flex 和服务器端的快速 传递。收到新的 数据时就会触发,并 在地图上实时显示 ( 如 图 4 所示) 。2 4Flex 客户端数据展现客户端利用 Flex 组件和 ArcGIS Server API for F1ex 地图接口共同实现数据的可视化展现,图 3 描述了 Flex 客户端程序总体架构的设计。图 4 海洋站监测数据客户端显示客户端 Flex 运用其组件能够非常出色地展现监测数据,通 过建立客户端的缓存可以很好地实现对海洋站各种数据实时的 模拟。以模拟某一海洋站当天的海水温度数据为例,具体的实 现过程是: 在第一次发送订阅数据请求的时候将海洋站当天的 所有历史数据从数据库中取出来并缓存在客户端,服务器只需 要推送接下来的变化数据,客户端接收新的数据并将其加入到 缓存集合中,通过 Flex 数 据 绑 定 机 制,使 用图表组件实时地展 现当天海水温度数据的变化( 如图 5 所示) 。图 3 Flex 客户端架构设计一方面,利用 ArcGIS Server API for F1ex 地图接口加载地图 服务和显示地图,通过它提供的地图平移、放大、缩小、绘图等组 件实现基本交互功能。另一方面,Consumer 组件负责订阅消息服务和监听消息服 务推送数据事件,接收服务器推送的数据缓存在客户端浏览器, 运用 Flex 数据绑定将数据绑定到 Flex 可视化组件,Flex 组件能 够非常出色地展现数据。通过在地图接口提供的 GraphicsLayer 上使用自定义的地图符号标记和绘图工具将数据在地图上可视 化表达。图 5 某一海洋站当天海水温度数据曲线图由于 BlazeDS 底 层 基 于 Comet 实 现,基 于 Comet 的 Flex 实 时消息推送与 Flex RTMP 框架相比,在消耗大约相同的网络带 宽量下具有良好的实时性 能8。通 过 编 写 Java 程 序 模 拟 客 户 端消息订阅并计算接收的延迟,在局域网下模拟 200 个 用 户 订 阅消息服务,客户端接收最新海洋站数据的平均延时在 50ms 左 右; 而采用传统的请求 / 响应模式时,由于客户端不知道服 务 器 数据何时更新,所以需要定时地发送查询的请求,需要消耗更多 的时间用于建立与服务端的连接、发送请求、服务端查询,测试 通过并发 200 个用户请求查询最新的海洋站数据并计算响应时 间,平均的延时在 200ms 以上。相比之下,实时推送模式比传统 的请求 / 响应模式具有更好的实时性,适合用于实时性要求较高 的 WebGIS 系统。3应用系统为了验证上述框架的可行性,以海洋环境信息服务平台 为基础,实现对海洋站监测数据的实时监控以及台风路径的实时 显示功能。系统的软硬件环境如下:操作系统: Windows 2003 Enterprise硬 件: CPU Intel Core 24GB DDR2800业务数据库: Oracle 10 0 2GIS 数据库: ArcSDE 9 3Web 服务器: Jetty 7 5 0地图服务: ArcGISServer 9 3Java 版本: 1 6 0BlazeDS 版本: 1 3 2Flash 版本: 10 0 1DuoE6550233Hz,内 存4结语地理信息发布的实时性越来越受到人们的关注,本文提出利用服务器端主动推送的方法克服传统的 WebGIS 系统客户端发 送请求、服务器端被动发送回应的工作方式的缺点,并使用 Flex 和 BlazeDS 实时 消 息 推 送 技 术 来 构 建 WebGIS 系 统,不 仅 具 有 RIA 技术的优势,而且基于标准的 HTTP 协议实现了地理信息的 服务器端实时推送,为 WebGIS 应用的开发提供了新的思路。系统在 BlazeDS 中配置了两个消息队列分别用于推送海洋站的监测数据和台风路径数据,以海洋站实时监控为例: 通过另 外一个程序向服务器发送海洋站的模拟数据,服务器上的监控程序接收请求,一方面将数据存入数据库中,另一方面分别创建 Java 对象将各个海洋站的数据封装放入一个 ArrayList 集合,最 后加入到相应的 BlazeDS 消息队列中,由其推送到客户端程序。参 考 文 献1 刘俊,谭建军,邵长高 基于 Flex 的 WebGIS 框架设计与实 现J计算机工程,2010,36( 10) : 242-244( 下转第 33 页)客户端创建 Consumer 对象订阅消息服务并监听消息事件,当接4 + A + A B为了清楚起见,我们将第一个公式改写为 in ( x,cross ( A, B) ) ,第二个公式改写为 plus( 4,A,cross( A,B) ) ,则两个公式 推理过程如图 4 和图 5 所示。因此推测得出第一个公式中叉乘的可能更大。这样能够更加全面解决公式转换中的歧义问题。另外本文提到实验内容中选取数学公式只包含了初等代数中歧义公式,对于高等代数和科技文献中的歧义公式尚未进行测试,该部分内容将作为本文的下一步工作。( ) 为集合 的 笛 卡 尔 积,而第二个公式中的叉乘 ( ) 为 算 术参 考 文 献1 景珂 网络数学搜索中的数学查询语言与索引的研 究D 兰 州 大学,20092 崔林卫,苏伟,郭卫,等 基于 Nutch 的 Web 数 学 公 式 提 取J 广 西师范大学学报,2011,29( 1) 3 Guo Wei,Su Wei,Li Lian,et al MQL: a Mathematical FormulaQuery Language for Mathematics Search C/ / Proceeding of the 14th IEEE International Conference on Computational Science and Engi- neering ( CSE 2011) ,Dalian,China,August 24-26,20114 W3C Math Working Group MathMLS / OL http: / / www w3 org /Math / 5 The OpenMath Society The OpenMath 2 0 StandardS / OL http: / /www openmath org / 6 苏伟 基于 Web 的数学公式输入及可访问性关键问题研 究D兰州大学,20107 La Sobreviela A Reduce-Based Openmath Mathml TranslatorJ ACM SIGSAM Bulletin,2000 34( 2) : 31-32 8 M So Clare,M Watt Stephen On the Conversion between Content Mathml and Openmath C/ /2006 Conference on the Communicating Mathematics in the Digital Era,CMDE 2006 Aveiro,Portugal,A K Peters,20069 Stamerjohanns H,Ginev D,David C,et al Mathml-Aware Article乘法。图 4 in( x,cross( A,B) ) 推理过程图 5 plus( 4,A,cross( A,B) ) 推理过程通过这种方法,能有效地对歧义数学公式进行判断并转换。 该方法只运用了简单的逻辑推理规则,可以由支持 XML 解析的 编程语言( 如 Java) 或 XSL 编 程 实 现。利用形式化模型的形式 简洁、逻辑性强、描述清晰、易于扩展以及实用性强等优点,可以 更高效地设计出完善的转换模型的类型系统,支持更灵活复杂 的类型推测机制。实验3Conversion from Latex C/ / Towards a Digital Mathematics Library,Ontario,Canada,200910 Dr Woodall Latexmathml: A Dynamic Latex Mathematics to Mathml Con- verterCP / OL 2006 ( 2010 07 04) http: / / www maths nottingham ac uk / personal / drw / lm html11 张婷,网络数学公式转换的研究与实现D 兰州大学,200912 张婷,李廉,苏伟,等 基于 MathEdit 的数学公式转换器J 计算 机应用与软件,2010: 27( 1) 13 MathEdit: A Web-based Mathematics Formula EditorCP / OL ht-tp: / / www mathedit org( 上接第 16 页)2 汪林林,胡德华,王佐成,等 基于 Flex 的 RIA WebGIS 研究与实现J 计算机应用,2008,28( 12) : 3257-32603 Natole Tartakovsky Enterprise Development with FlexM OREILLY ASSOC INC,20104 薛真真 基于服务器推送和事件流处理技术的实时 Web 系统研究D 杭州: 浙江大学,20085 Adobe Inc Using Adobe LiveCycle Data Services ES2 version 3 1M / OL 2009 http: / / help adobe com / en _ U

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论