APP下载

基于AJAX技术的WebGIS系统设计

2011-07-18赵辽英俞伟斌

关键词:空间信息引擎客户端

黄 浩,赵辽英,苏 程,俞伟斌

(1.杭州电子科技大学计算机应用技术研究所,浙江杭州310018;2.浙江大学空间信息研究所,浙江杭州310027)

0 引 言

地理信息系统是一种为了获取、存储、检索、分析和显示空间数据而建立的空间数据库管理系统。随着Internet的普及以及Web技术的快速发展,基于Web的分布式计算技术与GIS相结合产生了Web-GIS。采用异步JavaScript和XML(Asynchronous JavaScript And XML,AJAX)技术改进的WebGIS应用具有无需插件、响应速度快等特点,尤其是涉及属性、空间数据等大数据量时减少了网络数据量,同时减轻了提交请求时的白屏现象,改善了用户体验[1]。基于Web Service技术的SOA架构遵循“软件即是服务,服务即是软件”的开发理念,按需连接软件资源,通过服务的组合装配、服务的扩展完成应用系统的构建和维护升级[2]。本文探索了基于AJAX和Web Service的WebGIS系统框架,并通过文成县地质灾害信息在线发布系统的开发,对其进行验证。

1 AJAX和Web Service技术

1.1 AJAX

AJAX是一种快速创建互联网应用程序的方法,它不是指一种单一的技术,而是有机地结合网页开发相关7项技术[3-5]。传统的Web交互方式中,由用户触发一个HTTP请求,服务器对其进行处理后再返回一个新的网页到客户端,每当服务器处理客户端提交的请求时,客户只能空闲等待。即使从服务器端得到很简单的一个数据,都要返回一个完整的网页,而用户每次要浪费时间和带宽去重新读取整个页面,从而降低了Web应用的执行速度。如图1所示是基于AJAX引擎的网页的执行过程。

图1 基于AJAX引擎的网页的执行过程

而在Web开发中使用了AJAX技术之后,这些存在的问题将得到有效地解决。AJAX的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化。这个中间层被称作AJAX引擎,它实际上是一个比较复杂的JavaScript应用程序,既用来渲染用户界面又用来处理用户请求与服务器之间的通讯。它允许用户和应用程序之间的交互异步发生,用户在提交相应的操作后,无须等待页面刷新,可以继续作其他操作,AJAX引擎负责后台的异步处理。另外,也并不是所有的用户请求都提交给服务器,像一些数据验证和数据处理等都交给AJAX引擎自己来做,只有确定需要从服务器读取新数据时才由AJAX引擎代为向服务器提交请求。

1.2 Web Service

Web Service是建立可互操作的分布式应用程序的新平台。Web Service平台是一套标准,定义了应用程序如何在Web上实现互操作性。可以用任何语言,在任何平台上开发Web Service,通过Web Service标准就可以对这些服务进行查询和访问。Web Service的体系架构模型,如图2所示。Web Service主要采用了简单对象访问协议(Simple Object Access Protocol,SOAP),可扩展标记语言(eXtensible Markup Language,XML),网络服务描述语言(Web Services Description Language,WSDL)技术。其突出优点为[6]:(1)互操作性。任何的Web Service都可以与其他Web Service进行交互。由于有了SOAP这个所有主要供应商都支持的新标准协议,因而避免了在各种相关协议之间转换的麻烦。还因为可以使用任何语言来编写Web Service,因此开发者无须更改其开发环境,就可生产和使用Web Service;(2)普遍性。Web Service使用HTTP和XML进行通信。因此,任何支持这些技术的设备都可以拥有和访问Web Service;(3)易于使用。众多的免费开发工具可让开发者快速创建和部署Web Service。此外,其中某些开发工具还可以让已有的COM组件和JavaBean方便地成为Web Service。

图2 Web Service体系架构

2 WebGIS系统设计

2.1 系统框架

系统采用B/S架构,分为4层架框体系,即数据层、逻辑层、网络层及表现层,其总体架构如图3所示。

表现层基于Internet/Intranet,通过浏览器以2D的形式显示、查询和分析空间信息。通过AJAX引擎调用Web服务组件动态获取地图数据,利用JavaScript脚本语言操纵DOM树进行页面的更新。网络层主要是接收客户端发送的XML请求,根据预先制定的规范对XML进行解译,然后根据解译结果动态的调用逻辑层中Web服务的具体服务。当请求经过处理计算完毕后,网络层负责将计算结果以XML形式进行打包,然后返回给对应的客户端。逻辑层主要是负责分布式网络环境下各类空间数据的获取。服务的主要内容是依据公认标准的服务规范来构建的服务组件库,主要有基于OGC、KML和GeoRSS开放标准提供的WMS服务组件、WFS服务组件、WCS服务组件、KML服务组件和GeoRSS服务组件等,服务都是通过以Web Service的形式进行封装。而GIS服务器仅是通过http协议为这些Web服务提供地图图片,这样就减轻了GIS服务器的负担。数据层主要是存储在MS-SQLSEVER数据库的空间数据以及属性数据,其中,栅格数据由于数据量庞大,还需要使用瓦片金字塔技术进行构建,然后将根据图片的性质进行压缩,存储到数据库。

图3 系统架构图

2.2 客户端

本文采用B/S结构,因此客户端实际上就是Web浏览器。主流的浏览器有IE、Chrome和Firefox等。针对客户端的开发实际上就是利用JavaScript开发AJAX引擎,构建AJAX化的客户端。功能上来说,客户端是用户的交互界面,主要完成地图的显示、响应用户的操作、向服务器发送查询请求并将请求结果的显现。AJAX引擎的XmlHttpRequest对象所具有的方法和属性能够改进程序与服务器的通信方式,实现异步请求。用户在客户端的操作都可以转化为一定的参数,通过XmlHttpRequest对象传给逻辑层,服务器获取参数进行处理后,再通过XmlHttpRequest对象将数据返回,这样就能有效地减少网络通信开销,大大提高了用户操作的响应速度。然后,只需要通过XmlHttpRequest对象将新的地图比例尺传递给后台,而后台重新将新比例尺对应的小图片返回即可。

2.3 传输协议

基于AJAX的空间信息在线发布技术中,所有的请求都是通过以XML的形式进行传输。XML是一种可扩展的基于文本的标记语言。它以与系统无关的方式表示数据,将数据和表达形式分离,可以在相似或不同的应用程序环境间操作。XML的优点包括:纯文本,便于创建和编辑;易操作、易分析、层次结构清晰;提供了一种描述结构数据的格式,具有样式多样性、内在可重用性、可移植性、可链接性等特点。由于XML是可阅读的和基于文本的,所以用作传输松耦合的Web服务十分理想。使用XML作为表示数据的标准,能够让异构平台上不同系统相互通信和共享数据。系统将各类用户的功能请求操作,用XML的规范进行描述,然后通过HTTP发送到服务端,服务器端接收到请求后,进行解析,然后调用相关的Web Service处理计算,最后将结果同样以XML的形式进行包装后,返回到客户端。

2.4 服务器端

服务器端主要包括Web服务和GIS服务器,Web服务主要是对运行于Web服务器上Web Service的编写。这些Web Service主要是完成从数据库服务器中检索相关的属性数据,进行简单的组织和分析等功能,主要包括属性查询、数据处理等。Web服务负责将复杂GIS功能转交GIS服务器处理,并且将GIS服务器处理后输出切片的URL返回给客户端。GIS服务器实现客户端复杂的GIS分析功能,主要有:(1)实现不同比例下矢量地图到栅格地图切片的预生成;(2)将矢量地图中地物的属性数据转入数据库中存储;(3)解析用户的复杂查询请求,并针对用户的请求进行GIS空间操作请求,将结果返回给客户端,实现GIS桌面平台的部分功能。

3 应用实例

减轻地质灾害已成为我国当前面临的最紧迫的任务之一。WebGIS技术在我国地质灾害防治工程建设中的应用还处于起步阶段,还有许多工作要做。其中建立一个高效、快捷的地质灾害信息网络发布、共享平台是其基础。本系统采用Visual Studio2008.NET进行开发,使用IIS作为Web服务器,以浙江省文成县地质灾害数据为研究对象,基于AJAX和Web Service技术,设计和开发了文成县地质灾害信息在线发布系统。系统功能主要有以下几个:(1)基本地图操作功能;(2)查询功能;(3)自定义图层显示功能。

4 结束语

本文主要介绍了基于AJAX和Web Service的空间信息发布机制,并以此方法设计实现了文成县地质灾害信息在线发布系统。通过引进AJAX技术,可以提高系统的性能和响应速度,带来良好的用户体验。同时以基于XML Web Service技术实现WebGIS服务器端,屏蔽了数据格式、软硬件环境以及所在位置的差异,实现了分布式网络环境下空间信息的高效在线发布。可以相信,随着AJAX技术和Web Service技术的发展与成熟,其必将推动界面更丰富、功能更全面的WebGIS系统的开发与应用,地理信息资源也会像其他网络资源一样,为普通大众所广泛使用,从而创造更多的社会和经济价值。

[1] 范阿南,朱教君,张忠辉.基于AJAX的WebGIS应用[J].辽宁工程技术大学学报(自然科学版),2010,29(3):494-497.

[2] 刘奎恩,王青,淮晓永.一种基于VNC的智能应用服务系统的设计和实现[J].计算机工程与应用,2006,40(9):131-134.

[3] Ryan Asleson,Nathaniel T.Schutta.Ajax基础教程[M].北京:人民邮电出版社,2006:68-72.

[4] 周牧,谈晓军,左翔,等.基于AJAX和XML的WebGIS系统研究[J].计算机工程,2009,35(3):271-273.

[5] 赵娜.基于AJAX技术的WebGIS系统应用研究与实现[D].上海:华东师范大学,2009.

[6] 徐泽丰,王志坚,许峰,等.基于Web Service技术的数据库中间件[J].微机发展,2004,14(3):64-66.

猜你喜欢

空间信息引擎客户端
结合多层特征及空间信息蒸馏的医学影像分割
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
蓝谷: “涉蓝”新引擎
基于作战环的空间信息时效网关键节点分析模型
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
关于地理空间信息标准体系
客户端空间数据缓存策略