Ajax技术在WebGIS中应用的发展趋势

2011-08-15 00:52赵娜
关键词:服务器端调用浏览器

赵娜

(北京电子科技职业学院,北京100029)

Ajax技术在WebGIS中应用的发展趋势

赵娜

(北京电子科技职业学院,北京100029)

WebGIS即互联网地理信息系统,WebGIS在结合AJAX技术后产生了新的发展趋势和技术变革。通过结合AJAX技术WebGIS由同步变为异步,架构也更加层次清晰,同时还将采用了非实时生成图像、地图切块、服务器端图片缓存、图像拼接、浏览器端缓存、异步请求、动态业务数据叠加等技术,极大提高了WebGIS的性能与用户交互性。这些都将是AJAX技术在WebGIS发展的新趋势新应用。

Ajax;WebGIS;地理信息系统

一、引言

地理信息系统(Geographical Information System,GIS)是一种采集、处理、存贮、管理、分析、输出地理空间数据及其属性信息的计算机信息系统。计算机技术、网络技术、数据库技术等的发展以及应用的不断深化,使得GIS技术的发展呈现出新的特点和趋势,基于互联网的WebGIS就是其中之一。

随着互联网的高速发展和人们对GIS需求的增长,在Web上共享和发布空间数据,并为用户提供空间数据浏览、查询和分析的功能,已经成为GIS发展的必然趋势[1]。WebGIS是一个将地理信息处理和地理信息分布于Web计算平台进行的网络化GIS系统,它是面向对象软件构件技术、信息互操作技术、网络技术发展的产物。在目前基于浏览器应用程序的开发技术中,AJAX(Asynchronous JavaScript and XML)无疑是最新的技术。AJAX是基于Web Applications的浏览器的一种重要的开发模型。它使用了几种技术[2],这几种技术整合在一起并且相互合同工作,从而来创建功能强大的新应用。组成AJAX的模型的有XML、JavaScript、HTTP和XHTML,其中XMLHttpRequest是关键,这些技术都是被大家所熟悉并且广泛应用的。

二、WebGIS的发展阶段与趋势

纵观GIS发展,可以将其分为三个发展阶段,即传统C/S结构阶段、同步B/S结构阶段以及异步B/S结构阶段。目前的最新技术都是第三个发展阶段的产品。

(一)传统C/S结构的GIS

第一阶段的GIS是传统C/S结构的GIS。早期的GIS功能较弱,主要用于电子地图的发布和简单的空间分析与数据编辑,难以实现较为复杂的图形交互应用(如GIS数据的修改和编辑、制图)和复杂的空间分析,以传统的C/S结构的GIS应用为主,C/S结构涉及客户端与服务器端之间大量数据转输。此时的GIS面临需要用户安装客户端,并对用户系统性能要求高,造成仅在科研机构应用,难以大面积推广的局面。

(二)同步B/S结构的WebGIS

随着Internet的发展,基于B/S结构的Web GIS开始逐步成为GIS应用的主流,Web GIS相对于C/S结构而言,具有部署方便、使用简单、对网络带宽要求低的特点,为地理信息服务的发展奠定了基础。通过浏览器调用服务器端的功能,来实现传统C/S结构GIS所具有的功能,最终使B/S结构取代C/S结构的应用,通过GIS应用服务器之间的互操作和协同计算,使亿万网民随时根据需要来查询GIS。第二阶段主要将功能从C/S结构逐步移植到B/S平台,解决了部署客户端困难的问题,同事降低了用户端对硬件系统的性能要求,使得用户受众大大增加。随着访问量的逐步提高、带宽消耗越来越大,性能与交互性成为WebGIS所面临的新问题。服务器需要对每一个用户请求实时生成地图图片,由于是同步操作,用户移动地图后需要等待整张图片返回后才能看到页面更新,在等待的时候只能面对一大块屏幕空白无法操作,造成WebGIS在用户交互时等待时间长、后台服务器端CPU压力大。且系统架构中各层次无法缓存GIS数据,造成网络带宽资源消耗过多。

(三)异步B/S结构的WebGIS

第三阶段即异步B/S结构WebGIS的阶段。目前GIS正朝着一个可运行的、分布式的、开放的、网络化的全球GIS发展。随着AJAX技术的出现和普及,WebGIS从同步发展到了异步。通过利用AJAX技术,使得浏览器端可以异步加载多张图片,于是WebGIS将返回用户的一张大图片切分成多个小图片。通过利用AJAX技术可以利用浏览器对图片数据的自动缓存技术,WebGIS将切割的小图片大小标准化、命名统一化、内容层次化、切割坐标规则化,使得服务器端不需要重复生成图片,只需要一次性的将所有比例尺的图片生成好即可。通过利用AJAX技术的异步加载使得用户不需要漫长的等待,多张小图片异步加载速度大大优于单张大图片的同步加载速度,并且在图片加载过程中可以依据比例尺先加载低精度的图片然后加载高精度的图片,在加载的过程中用户无需等待还可进行其他操作。通过利用AJAX对页面HTML代码的动态控制,使得地图显示部分可以纵向分成多个层次,将基础地图和应用地图数据分开,做到基础地图后台一次性生成,行业应用地图数据动态获取叠加显示。通过利用AJAX的异步功能,使得用户交互越来越人性化,地图的平移、放缩、结果的交互显示效果越来越绚丽逼真。第三阶段结合AJAX技术的异步WebGIS是发展的大趋势,不仅降低了服务器端的成本、将数据层与应用层分开、极大扩展了用户的数量、降低了行业应用的门槛、提高了用户体验。新的结合AJAX技术的异步WebGIS将是未来应用的发展的主流。

三、AJAX结合WebGIS的应用趋势

(一)AJAX带来架构、性能与交互性方面的变革

AJAX技术结合WebGIS,深刻推动了WebGIS的发展,在技术上带来了质的飞跃,通过以下技术手段解决了同步WebGIS面临的问题。

1.地图切块技术

运用Ajax技术,客户端与服务器可以进行异步多线程数据交互,这样在地图服务中可以切块传输地图[3]。

开发一个静态地图生成器,固定地图的多级显示比例尺,一次性由服务器端提前把所有级别比例尺的地图图片生成好,同时支持矢量格式GIS数据与遥感格式GIS数据,将生成的图片按照一定规则命名,根据比例尺不同存储到不同目录中。用户请求时服务器端,服务器端不需要重复生成图片,生成的静态图片容易缓存,可以充分利用各种成熟的服务器端静态化缓存方案。

2.服务器端图片缓存技术

利用反向代理技术,将地图图片根据区域或者比例尺切分分别存储到多台服务器上,并且每一类图片都可以做负载均衡,这样用户访问量再大致需要增加服务器的数量就可以支持更高的并发访问量。利用内存缓存技术可以极大减少硬盘读写,响应时间提高一个数量级,并且降低硬盘频繁读写带来的物理损伤。

3.图像拼接技术

用户浏览器端将请求返回的多张小图片动态拼接成整幅地图,在平移或者放缩的时候由浏览器端的程序判断需要从服务器端下载哪些图片,这样极大地减少了图片的传输,加快了传输的速度。

4.浏览器端缓存技术

通过在用户的浏览器端增加一层缓存,在浏览器端加载图片时由程序判断是否已缓存该图片,如果缓存则直接从缓存中读取图片,不需要从服务器端请求图片,缓存中储存的是经常使用的图片,这样可以节省大量带宽。同时还利用了浏览器自动支持异步多线程图片加载的功能,大大提高了用户的响应速度。

5.浏览器端动态业务数据绘制技术将具体行业的业务数据与地图基本数据分开,查询返回的业务数据通过浏览器端AJAX技术动态叠加到地图上,并支持气泡提示,大大增强用户交互性。在前台采用JS绘图,由于JS绘图的速度比后台程序要慢100倍左右,性能就成了至关重要的因素,利用点、线、面抽稀和截取算法化简前台绘制的图形,使性能满足响应要求。

6.异步请求技术

利用AJAX的XMLHttpRequest请求消除了交互过程中的“停止-开始”的弱点,用户在与服务器交互的过程变为异步,从而使页面上的数据不必一次又一次的全部刷新。利用这个技术可以大大增强交互效果。可以用XMLHttpRequest来实现各种GIS国际标准接口的服务调用。交互采用XML形式收发请求,这样前后台就可以消除语言依赖,调用的接口统一,具体技术实现不同。

(二)国际标准兼容方面的变革

GIS互操作性的欠缺一直是WebGIS业界亟待解决的一大难题。不同GIS间的互操作性已经成为一个至关重要的问题,制订地理信息的互操作标准、规范是解决问题的关键[4]。 GIS互操作的实现还需要从技术上制定共同遵循的标准与规范。这里,互操作是指各种功能单元之间的通讯、执行程序或转换数据的能力,即便用户不了解各功能单元独立特征或对其知之甚少。因此,解决GIS国际标准的支持问题可以使WebGIS的互操作性大大提高。通过支持一系列国际GIS标准,在数据层可以支持各种不同格式的GIS数据共享与相互转换,在服务层可以对外提供各种复合国际标准的GIS服务调用接口,系统间交互采用XML格式,可以支持异构系统间的数据交换和服务调用,可以将GIS数据提供商与GIS内容提供商区分开来,更加清晰的划分彼此的角色。

制定标准并不是一个公司或一个单位单独可以完成的,它包括收集现有互操作信息,发布标准,推广可以接受的标准,以及按照反馈进行更新等繁杂的任务。现有两个国际化组织进行了业界广泛认可的标准化工作:一个是国际化标准组织ISO(International Standard Organization),另一个是开放地理信息系统协会OGC。ISO的TC211小组(简称ISO/TC211)定义了与GIS Web服务有关的框架与规范,OGC作为全球最大的空间信息互操作规范的制订者和倡议者,在参照ISO/ TC211标准的基础上制订了相应的地理信息服务规范。

可见ISO/TC211主要侧重于定义数据格式和相应规范。OGC则侧重于共享方式的定义。

(三)二次开发方面的变革

通过实现国际GIS标准,系统可对外提供XML级服务调用接口和JavaScript级的页面脚本调用接口。通过对具体操作的抽象,为开发人员提供了灵活的调用方式,极大降低了GIS的应用门槛,不需要学习部署、关注底层的细节,开发人员只需要将精力集中在具体业务层即可,也大大提高了开发的速度。JavaScript二次开发接口将AJAX的XMLHttpRequest请求包装起来,用户就像调用JavaScript函数一样调用即可,自动支持异步请求和局部刷新,也降低了AJAX的使用门槛。

四、结语

地理信息系统从上世纪60年代发展到本世纪初,空间分析等GIS功能已经发展成熟,不再是推动GIS进步的主要动力。当前信息化的浪潮给GIS带来了进一步腾飞的契机。通过结合AJAX技术解决性能、用户交互、标准化问题,并积极拓展应用模式,GIS将走向社会化和网络化,为人民大众服务,真正成为数字地球的支撑技术。我们对结合AJAX技术的异步WebGIS的发展趋势进行了研究,然而,现今国内外的Ajax技术应用在WebGIS的时候,最复杂的就是要考虑到GIS的算法,否则JavaScript的性能比java差100倍以上,尤其在用Ajax方式绘图的时候,这需要做许多算法上的优化。另外也是Ajax技术在WebGIS应用中,特别是在GIS国际标准的实现问题上的一个重要缺陷。这也是我们今后研究的方向。

[1]Sebillo M.A WebGIS for promoting Archaeologieal Assets[J].In: ICHIM.Parigi.France,2003.56-74.

[2]Garrett,J.J.,Ajax:A New Approach to Web Applications[EB/OL].http:// www.adaptivepath.com/ideas/essays/archives/000385.php,2005.

[3]Geoffrey andeson,Rafael Moreno-Sanchez.Building Web-Based Spatial Information Solutions around Open Specifications and Open Source Software[J].Transactions in GIS,2003,7(4):448-458.

[4]鲍虎军,等.我国GIS技术与应用的现状和对策[EB/OL].http://www. spatialdata.org/xzdc.htm 2009.

猜你喜欢
服务器端调用浏览器
Linux环境下基于Socket的数据传输软件设计
核电项目物项调用管理的应用研究
反浏览器指纹追踪
LabWindows/CVI下基于ActiveX技术的Excel调用
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
基于系统调用的恶意软件检测技术研究
环球浏览器
利用RFC技术实现SAP系统接口通信
网页防篡改中分布式文件同步复制系统