基于RIA的WEBGIS技术研究及应用进展
2014-10-20宣翠仙颜钰琳
宣翠仙 颜钰琳
摘要:基于RIA的WEBGIS是当前WEBGIS领域的研究热点。文章对当前主流RIA技术、服务端技术及应用现状进行了比较和总结,最后指出了发展趋势。
关键词:RIA; WEBGIS; FLEX; SilverLight; AJAX
中图分类号: TP311 文献标识码: A 文章编号:1009-3044(2014)25-6008-03
Research Progress of WEBGIS Technology Based on RIA
XUAN Cui-xian, YAN Yu-lin
(Jinhua Polytechnic, Jinhua 321013,China)
Abastract: RIA based WEBGIS is research hotspot in the field of WEBGIS. The mainstream technology, RIA technology and its application server are compared and summarized, finally points out the development trend.
Key words: RIA; WEBGIS; FLEX; SilverLight; AJAX
随着互联网技术的发展及人们对GIS信息的需求,WebGIS使得用户可以通过浏览器使用GIS,成为GIS发展的重要方向。但是,传统架构下的WebGIS系统存在一定局限性:由于把表示层建立于HTML页面之上,语义性差,可扩展性不强;同时采用服务器端数据传递的模式,未充分利用客户端优势,使得多数计算集中于服务器,服务器端负担重;此外,传统WEBGIS图形显示与交互能力较弱,已经渐渐不能满足网络浏览者更高、全方位、多媒体化的GIS体验。为解决上述问题,具有更强交互性客户端的RIA技术逐渐被引入WEBGIS系统以让用户在客户端体验快速、流畅的WEBGIS。该文对近些年基于RIA的WEBGIS技术与应用进行研究总结与比较,最后指出了发展趋势。
1 RIA主流技术及应用现状
RIA(RIA Internet Application)是指富互联网应用系统,它将交互技术与WEB应用结合,为用户提供视频、声音、实时通话,使用户体验、交互性和响应性更强。当前比较有代表性的RIA开发技术有Adobe公司的Flex、Microsoft公司的SilverLight、Sun公司的Ajax等。
1) Flex技术。Flex 是2004年由Adobe 公司提出的免费开源框架,可用于构建界面丰富的Web应用程序,这些应用程序利用客户端运行环境Adobe Flash Player和Adobe AIR, 实现跨浏览器、桌面和操作系统。Flex开发模型由 Flash ActionScript3、MXML语言及扩展类库组成,最终由Flex编译器编译成SWF格式,由Flash Player运行。由于Flash Player基于异步客户端-服务器通信模型,可利用客户端计算资源进行计算,将原本服务器上执行的部分简单的计算任务交给它完成,从而减少客户端与服务器的交互,提高系统效率;同时由于Flash Player支持不同系统和平台运行,因此Flex具有良好的跨平台特性。Yahoo、Google、百渡的地图服务系统,大多采用了Flex RIA技术。以雅虎为例,其开发包为Yahoo Maps Flash API。作为GIS行业领军企业的ERSI公司,初期也推出了ArcGIS API for Flex,并成功用于意大利的列车信息查询系统中。
2) SilverLight技术。SilverLight是2006年由Microsoft提出的跨浏览器的、跨平台的插件,为网络带来下一代基于.NET Framework的媒体体验和丰富的交互式应用程序。因此,此技术能与.NET框架实现无缝对接。比较典型的应用系统有:2008年奥运会Silverlight被用来完成互联网上的奥运火炬传递项目;20th Centry Fox、Sony Pictures Television等著名国际公司提供网络电视服务的Maven Networks也把Silverlight带入自己的网络电视平台。在GIS领域,ERSI公司推出了ArcGIS API for SilverLight的WebGIS系统的开发支持。但这些地图系统都只支持基本的地图浏览,不具备地理空间数据分析等高级地理信息系统应用功能。中国地质大学的方坤提出了将构件概念融入SilverLight的WebGIS界面开发中,将部分地图操作功能置于客户端实现,从而提高系统交互功能。SilverLight技术还提供了与AJAX技术的交互,可以将两者结合,提供更好的功能与用户体验。
3) AJAX技术
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种创建异步、局部刷新的交互式网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法。由于AJAX能在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页,因此其最大的优点是在不更新整个页面的前提下维护数据,缺点是可能破坏浏览器的后退功能。与其他RIA技术相比,由于采用的是JavaScript和XML,因此浏览时不需要任何浏览器插件。而Javascript是一种脚本语言,写法自由,这提高了开发难度,且不同浏览器对Javascript解释有差别,因此完成跨平台特性及三维展现等高级应用需要编写大量代码,开发周期长。Google在Google讨论组、Google地图、Google搜索建议、Gmail等应用中都采用了AJAX技术。如在Google Maps中,AJAX允许用户以一种似乎无缝的方式拖拉及滚动地图。
上述三种主流RIA技术,优缺点比较如表1所示。
2 RIA对后台数据的调用
1) SOAP技术
SOAP,即简单对象访问协议,它是一种基于XML的轻量级Web协议。旨在通过XML使得不同应用程序能按照HTTP进行数据交换,缩短Web Server从XML数据库提取数据时的格式化网页页面时间。优点在于良好的可扩展性,独立于平台和操作系统。但由于Soap采用自定义接口方法对Web服务进行抽象,无特定标准,因此容易产生接口不对等问题。基于Soap的消息都是在HTTP POST,在缓存服务器不了解消息语议的情况下,服务器无法知道请求是否需要获取需要请求哪条数据,造成基于Soap的缓存机制相当复杂。比较典型的应用如google的Web Service基本上采用Soap方式。
2) REST技术
REST,即表述性状态转移(Representational State Transfer,简称REST)是Roy Fielding博士于2000年在其博士论文中提出的一种轻量级软件架构风格。它是一套针对网络应用,用来创建Web Service的开发方式:程序可通过选择一个带链接的WEB页面的链接,使另一个Web服务,即程序的下一状态返回到用户,使程序进一步运行,从而降低开发复杂性,提高系统可伸缩性。相对于Soap,可以完全通过HTTP协议出现。比较典型的应用如亚马逊网站提供接近REST风格的Web服务进行图书查找;在WEBGIS方面,ERSI公司开发的支持JavaScript、Flex、SilverLight三种不同RIA技术的组件,都是通过REST模式实现对后台地图数据服务有调用,且为简化开发过程,公司开发了ArcGIS Server REST API。张驰提出了基于REST与AMF协议的C/交互方式。
3 基于RIA的WEBGIS开发框架
在WebGIS开发中,RIA体系主要采用三层开发框架:
1) 表示层。主要负责与用户的交互,为空间与属性数据获取客户终端。
2) 应用逻辑层。主要负责响应客户端请求,通过服务器应答空间和属性数据的查询请求,进行缓冲处理与并发控制,同时与数据服务器进行数据交互以获取属性数据。
3) 数据层。负责空间与属性数据的数据库存取与管理,为前端数据的获取提供数据源。
基于RIA的WebGIS系统开发框架如图1所示。
ESRI公司早期的版本支持SOAP接口,但使用的SOAP的接口非常复杂。首先用户需要从WSDL产生一系列SOAP工具包,然后研究SOAP接口使用方法,最后才进行代码编写。2008年引入的基于REST的Web服务架构,其ArcGIS Server提供了REST接口,陆续推出各类RIA API。用REST开发应用程序相对简单,只需要建立一个对应资源的URL就能实现所需服务,以访问Web Services的方式访问,调用ArcGIS Server的服务资源,不需要SOAP工具包。
4 未来研究的方向
随着用户对网络体验要求的多元化,基于FLEX 与SilverLight RIA的技术相比较Ajax对于开发富含动画、3D场景、视频、音频等多媒体资源立体化更有技术优势,而REST方式相比SOAP更简单明了,因此,FLEX 、SilverLight RIA与REST结合的系统能够为用户呈现更加丰富、体验性更强的用户界面,为WebGIS提供崭新的表现机制。通过云平台提供的强大计算功能,能大大提高图像、图形的传输速度,实现对地理数据的分析与有效管理。基于云服务和网络服务的信息资源共享及标准化是未来GIS发展的趋势。
5 结束语
基于RIA的技术克服了传统WebGIS存在的交互性差、响应速度慢等问题,界面与体验性更丰富,为WebGIS的应用提供了新的表现机制。随着RIA技术和软件架构风格的不断完善,将促进WebGIS应用系统用户体验的不断丰富。
参考文献:
[1] 傅达杰. 基于Flex的RIAWebGIS研究与实现[J].煤炭技术,2013(10).
[2] 基于WEBGIS的分布交互仿真系统体系结构研究[J].计算机研究,2012(4).
[3] 刘洪顺.基于Flex技术的WebGIS开发新模式[J].测绘,2012(5).
[4] 张小勇.基于Flex和REST的WebGIS研究与实现[D].陕西师范大学,2013.