基于SVG/AJAX和REST的WebGIS体系架构的构建与实现

2016-12-21 11:04李心颖李峰
电脑知识与技术 2016年28期

李心颖+李峰

摘要:通过对SVG和Ajax技术在WebGIS中的应用进行分析,同时针对分布式Web应用性能低、时常交互不顺畅、可伸缩性不够的问题,结合REST式的体系风格和面向资源架构ROA,使用Web Services来开发Web分布式应用,建立基于SVG/AJAX和REST的WebGIS体系架构,以实现对基于WebGIS的海南旅游地理信息系统的优化。

关键词:SVG;Ajax;REST;WebGIS

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0083-03

Abstract:Based on SVG and Ajax technology in the application of WebGIS is analyzed, at the same time, in view of the distributed Web application performance is low, often interaction is not smooth, the lack of scalability, combined with restful style of system and resource oriented architecture ROA, use Web Services to develop Web distributed applications, based on SVG/Ajax and REST of WebGIS architecture, to realize the optimization of hainan tourism geographic information system based on WebGIS.

Key words:SVG; Ajax; REST; WebGIS

作为GIS与Internet相结合的产物,WebGIS通过互联网对以图形、图像方式表现的空间数据和其属性数据进行发布、信息检索、空间分析和应用,以实现空间数据的共享和互操作。但传统的Web语言HTML不利于表现空间地理数据,加上网络带宽的限制,基于WebGIS的空间信息发布也并不十分理想。因此WebGIS设计的主要问题是如何能减轻网络传输负载,客户端采用何种图形数据方式进行显示,并加快地图显示速度,同时此平台应具备地图数据量小、传输方便、GIS数据更新快、较强的多媒体信息表现能力等特性。

1 SVG和Ajax技术

SVG是一种开放标准,用来描述网络的基于二维矢量图形的一种图形格式,使用SVG技术能在网页上显示出各种高品质的矢量图形,如图形、文字、色彩、动画、特效等。且SVG使用 XML格式定义图形,其可扩展性很强,SVG图像在放大或改变尺寸的情况下不会破坏其图形质量。

Ajax在XHTML和CSS基础上,使用DOM来实现数据的动态显示和交互,用JavaScript绑定和处理所有数据,利用XML和XSTL语言对数据进行交换与处理,使用XMLHttpReques对象读取异步数据。Ajax提供与服务器异步通信的能力,它在浏览器与Web服务器之间使用异步数据传输(HTTP请求),用户需要的数据可以独立于实际网页,从服务器端取得并且被动态地写入网页中。同时还可以把服务器以前承担的一些工作任务转交给用户端,在客户端闲置时来处理这些工作,以此减轻服务器和带宽的负载,并极大地缩短了用户等待时间,提高工作效率。

2 REST风格的Web服务

REST是一种架构风格或者设计原则,满足这些原则的设计就是RESTful。REST风格架构是为了降低Web应用开发的复杂性、提高系统的可伸缩性而设计的。利用REST,任何Web上的资源都可以被当作URI提供,每个资源对应的资源标识符是唯一的,无论对资源做何种操作都不会改变资源标识符。通过URI客户端应用可以获取资源的表现形式,同一个资源有多种不同的表现形式,在服务器获得这些资源表现状态后,驱动客户端应用程序转变其状态,于是客户端应用程序随着每个资源表现状态的不同而发生状态转移。通过设计REST式的Web服务方法,ROA(Resource-Oriented Architecture,面向资源的体系架构)使URI、HTTP和XML的工作方式跟其他Web应用一样。

REST架构是一种风格明确、简单易用的架构。REST支持直接通过 HTTP 传输数据,使用 REST体系结构构建 Web 服务已经开始替代传统的 Web 服务构建方式。远程过程调用(RPC)式的应用是通过自定义接口的方法来抽象WEB服务,而REST架构采用标准的HTTP方法,可以增强系统与系统之间的整合能力和提高互操作性。对于分布式的应用而言,任意给定两个服务请求可以在任何一台服务器上执行,因为其之间没有存在相互的状态依赖关系,所以无需对其进行相互协同处理,其应用很容易在服务器端支持负载均衡。

3 Ajax与WebGIS

传统Web应用模型的运行过程是客户提交给Web服务器一个HTTP请求,服务器接到这个请求后,把处理结果返回一个HTML页面给客户端。用户若没有得到服务器的响应的时间里一直处于等待状态,浏览器由于页面刷新出现白屏。这个过程不断循环直到用户退出,整个过程是同步的。

Ajax模型与传统模型的不同之处在于服务响应的异步性。这是通过在客户端与服务端之间的Ajax引擎(Ajax Engine)实现的。Ajax引擎将客户端的页面分解为数据层、控制层和表现层。AJAX通过JavaScript的XMLHttpRequestt对象提供客户端同HTTP服务器异步通信的协议,Ajax可以使页面像桌面程序一样同服务器端进行数据层面的交换。不需要每次都刷新页面,每次的数据处理工作也不用都交给服务器来完成,这样既减轻了服务器负担又加快了响应速度,缩短了用户等待的时间。

在WebGIS应用中,客户与服务器端需要即时的交互响应和大量的通信,空间数据以图片形式传输,因此可以使用Ajax技术开发为基础。在基于OGC标准的WMS服务实现地图服务的方法中,采用Ajax技术实现客户端与服务器的异步通信,Ajax引擎按用户需求来获取空间信息,以减少冗余请求和响应对服务端造成的负担,使整个WebGIS的性能得到提高。

4 基于SVG/Ajax/REST的WebGIS体系架构的构建与实现

4.1 基于SVG/Ajax/REST的WebGIS体系架构

从客户端来讲,Ajax可以提供很好的图形用户界面,Ajax将网页的结构与内容分开,用户端设计友好的网页界面,从服务器端获取相应的数据。WebGIS应用中最重要的是数据服务,如地理数据的搜索与查询、浏览等。而REST提出的客户端缓存思想与Ajax 吻合,结合REST的特性,将GIS数据服务建成REST风格的Web服务,REST风格的数据资源可以通过HTTP动作获得,浏览器获取数据与用户操作异步,加快获取地理数据的速度。且SVG的许多特性应用在WebGIS中可以提供高质量的WebGIS服务。

综上所述,结合SVG、Ajax 与REST风格来构建以数据为中心的WebGIS架构是可行的。

基于SVG/Ajax/REST的WebGIS体系架构如图所示,本架构分三层,分别是数据层、服务层和表示层。数据层提供基础数据Web服务,以REST方式提供给用户所需要的数据,客户端通过URL远程使用需要的数据。客户端将网页的框架与数据分开,通过Java Script调用客户端上的Ajax引擎,异步地向服务器发送HTTP请求,地理信息中的栅格数据以XML数据格式从服务器端向客户端发送数据,通过服务器端的URI来识别所需资源(即数据),数据以XML、JSON、SVG等格式传回给客户端 Ajax引擎,再由客户端图像引擎将XML格式数据转换为SVG对象在客户端SVG插件中显示。

4.2 基于SVG/Ajax/REST的WebGIS实现

基于以上服务架构,对基于WebGIS的海南旅游地理信息系统进行优化。客户端实现地图的显示、预览、缩放及查询功能,以Ajax的方式与Web应用服务层进行交互,Web应用服务器响应客户的请求。地图服务器根据应用服务器发送的服务请求调用REST风格的Web服务,处理客户请求和对空间数据进行操作,数据中心用来提供SVG数据,包括地理空间数据和属性数据。

系统优化后所实现的主要功能如下:

1)空间数据可视化与发布

WebGIS中将栅格地图转换为SVG格式,以SVG图形方式显示系统的地理空间数据,并支持XML定义图形,在分辨率变化的情况下图形质量不发生改变,实现数据的可视化。通过XML传输方式,把空间图形及属性数据发送到客户端的浏览器上,客户端通过SVG图像引擎转换为SVG图像供用户使用。

2)空间数据查询检索

通过Ajax实现服务器与浏览器的交互,WebGIS可以实现对图形及属性数据的查询检索,并远程操作这些数据。查询分为两类:属性查询和空间查询。在属性查询中用户可以根据空间对象的文字性属性值快速查出地图中符合条件的空间对象的具体位置,空间查询可以根据空间对象的空间属性值快速的在地图中确定符合条件的目标。

3)空间地图管理

提供给用户浏览的地图操作功能,包括地图的缩放、漫游、点选、区域选择、鹰眼、全景、图层控制等地图操作。通过Ajax/REST模式用户可以更加快捷、方便地操作地图。利用AjaxControls的MapControl(地图控件)、ToolbarControl(工具条控件)、PanToolControl(地图漫游控件)、ViewEntireToolControl(全图显示控件)、QuickZoomOutToolControl(地图快速缩小控件)、QuickZoomInToolControl(地图快速放大控件)等实现对地图的操作。

5 结论

通过对SVG、Ajax技术及REST的研究,REST特性的Web服务更适应于GIS在Web上提供数据服务;把REST与Ajax的优势相结合,使用Ajax调用WCF Web Services一样也可以提高Web用户的体验;SVG是基于可扩展标记语言格式的,便于在网络发布、传输空间数据,同时有跨平台数据量少、传输效率高的优点。因此构建SVG/Ajax/REST的WebGIS体系架构有如下特点:1)访问速度快。由于Ajax的异步通信能力,能实现整个页面不用刷新也能更新页面的效果,从而减少了从服务器端下载数据的数量,提高了响应速度。 2)可伸缩性强。利用当前Web基础设施,多个客户与GIS Web服务交互,不会导致网络负载的明显增加。3)良好的互操作性。基于REST原则构建的WebGIS强调服务间的通信协议,具有松散耦合的特点,因此有助于GIS互操作的实现。4)降低开发成本,提高了WebGIS的运行效率。

参考文献:

[1] 孙鸽.郭朝珍.基于SVG的WebGIS空间分析系统的研究与实现[J].小型微型计算机系统,2012(5).

[2] 李学义,李岩.SVG在线空间自相关分析方法及其应用[J].地理与地理信息科学,2012(5).

[3] 周春峰.基于Flex_REST的WebGIS研究[D].阜新:辽宁工程技术大学,2011.

[4] 夏浩波,徐杏芳.Ajax在WebGIS中的应用研究[J]. 长江大学学报:自科版, 2008(4):307-308.

[5] 毛峰.基于REST风格地理空间信息服务的WebGIS设计与实现[D].杭州:浙江大学,2010.

[6] 陈宏飞.基于SVG与Ajax技术的WebGIS的研究与设计[D].西安:陕西师范大学,2009.