|
|
|

AJAX在Web-GIS中的运用

“Integrating AJAX Approach into GIS Visualization Web Services” Ahmet Sayar1, 2, *, Marlon Pierce1 and Geoffrey Fox 1, 2, 3, 4 1 Community Grids Lab, Indiana University, Bloomington, Indiana, 47404, USA 2Department of Computer Scien...

作者:中文翻译 郑翔来历:本站原创|2006年08月30日

“Integrating xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />AJAX Approach into GIS Visualization Web Services”xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Ahmet Sayar1, 2, *, Marlon Pierce1 and Geoffrey Fox 1, 2, 3, 4

1 Community Grids Lab, Indiana University, Bloomington, Indiana, 47404, USA

2Department of Computer Science, Indiana University

3Department of Physics, Indiana University

4School of Informatics, Indiana University

{asayar, mpierce, gcf}@cs.indiana.edu

 

中文翻译 郑翔

zhengsean916@yahoo.com.cn

本文原文来自互联网

2006-8-29

 

摘要:跟着Web渠道越来越老练,咱们能够发现有越来越多的令人兴奋的技能出现,这些技能使地舆信息体系(GIS)的显现运用达到了一个功用强大且运用广泛的新高度,经过把最新的功用强大的技能整合到GIS体系中去,咱们得到了高功率履行的效果,随之赋予了更多的功用。在现在依据浏览器运用程序的开发技能中,AJAX(Asynchronous JavaScript and XML)无疑是最新的技能。在本文中,咱们介绍了一个通用的,高效的架构,这个架构把AJAX模型整合到了GIS Web Services显现体系中。

1. 扶引

       AJAX是依据Web Applications的浏览器的一种重要的开发模型。它运用了几种技能,这几种技能整合在一起而且彼此合同作业,从而来创立功用强大的新运用。组成AJAX的模型的有XMLJavaScriptHTTPXHTML,这些技能都是被广泛运用和被咱们所了解的。高效的Google Mapping便是运用了这一新的,功用强大的模型。

 

       Web Services是自包含的、自描绘的、而且是有规范组件的,和前期不一样,现在有了更多紧密联系的分布式方针办法(例如CORBA,其他还有Web Services体系支撑的XML音讯中心办法),这使得答应咱们创立低耦合的,高分布式跨安排的体系,一起Web Services也推行了GIS值得期许的特性,比方建立了一些规范,这些规范供给通用的发布、定位和调用Web服务的规范,Web Services一起运用了被广泛运用的和熟知的技能,比方和AJAX相似的XMLHTTP,已然AJAXWeb Services都是依据XML结构的,那么他们彼此之间是能够起到杠杆作用的。

 

       在本文中,首要给出一些咱们在方针架构所用到的Web技能的布景信息,这些技能是依据AJAXWeb ServicesGIS Web Services的。在第三部分咱们将提及一些关于AJAXWeb Services的相关作业;在第四部分咱们先给出一个通用的用来整合Web ServicesAJAX的架构,然后咱们将给出实例来验证这些关于整合的概念,其间之一便是依据GoogleGIS Data Server( WFS )的整合,其他一个是依据GoogleGIS Mapping Server( WMS )的整合;在第五部分是未来的作业,第六部分是定论。

 

2 布景常识

       这儿说到的整合架构是由GIS范畴内的AJAXWeb Services构成的,在这儿咱们将首要解说一下这些技能和理论,还有他们的长处。

2.1 异步JavaScriptXML

       AJAX是一种Web运用的开发风格,它混合运用了当时的Web技能来供给更具交互性体验的Web运用。AJAX并不是一种技能,它只是包含了开发Web运用程序的一组技能罢了,这些技能是JavaScriptHTML、层叠样式表(CSS)、文档方针模型(DOM)XMLXSLT,以及经过XMLHttpRequest来进行通信协议的音讯发送。

 

       构成AJAX这些核心技能现已很老练,而且广泛的运用于Web运用开发范畴;AJAX之所以越来越盛行是因为它对那些依据Web浏览器运用程序开发者来说有许多的长处,它消除了交互进程中的“中止-开端”的缺点,用户在与服务器交互的进程是异步的,从而使页面上的数据不用一次又一次的悉数改写,而且这些“恳求-应对的进程是经过结构化的XML文档——XMLHttpRequest协议完结的。这些特性使开发者能够很简略的把AJAX整合到Web Services中去。

 

       Google开端运用AJAX进行新运用的开发之后,AJAX开端被大众所凝视,Google在去年所开宣布的重要的产品许多都是依据AJAX模型的,例如Google Groups , Google Suggests以及Google Maps。除了Google的产品之外,Amazon公司在他们的搜索引擎的运用中相同运用了AJAX办法。

 

       客户端的Web运用程序中能够运用AJAX,客户端只需求等候用户自己直接调用XMLHttpRequest协议 APIJavaScript代码履行时刻,这样,客户端只需求重视于编写代码和处理不同的Web浏览器。客户端能够运用一些最新开宣布来的库来供给愈加高档的AJAX服务,而且躲藏那些对不同浏览器的处理,这一办法用来替代运用纯AJAX开发一起还要处理不同浏览器的开发办法,这样的库有DWRPrototypeSajaxAJAX.NET

2.2 OGC GIS Web Services

       OGC界说了一系列的包含数据模型、在线服务在内的GIS规范,这些规范现已广泛的运用于GIS范畴,OGC是一个非赢利的国际化规范拟定安排,它领导进行对地舆数据相关的操作和服务规范的拟定。OGC在不同的方面都做出了很大的奉献,不管是在职业范畴仍是在学术界,这些奉献都是为了创立一个敞开的可扩展的GIS软件编写的接口。

 

       GIS有一系列的办法和环境来进行地舆数据的显现、操作和分析,地舆运用软件的特色之一便是需求整合和同享来自不同供给者的空间数据,来处理整合数据的问题,OGC提出了GIS服务的发布规范界说。

 

       这些Web Services技能的出现战胜了传统分布式方针技能的缺点,并供给了在分布式网络环境下的跨渠道跨言语的才能,GIS服务将会在Web Services办法中被更多的施行,空间数据底层架构使得GIS厂商能够同享数据的存储,也使得运用程序能在分布式的环境下运转。GIS从根本上来说,首要触及对来自不同厂商的不同数据源的数据和服务进行整合。Web Services架构建立了一套在服务和客户端之间的彼此连接的规范,这儿说到的客户端能很好的支撑动态的数据整合,这也是创立空数据底层架构的要害。经过Web Services,不同厂商的分布式GIS服务能够经过运用能一起操作的规范通信协议把GIS服务动态的整合到GIS运用程序中。

 

       OGC服务参加到Web Services中将会如下的优点,包含:

l         分布式:更简略的分发地舆数据,使运用程序能够跨渠道,跨操作体系,计算机言语等,具有渠道和言语的中性特征。

 

l         整合性:对运用程序开发者来说,更简略的整合地舆空间功用,更简略的整合数据到用户程序中,也很简略的经过WSDL文件和调用服务功用来创立客户端的程序。

 

l         根底结构:咱们能够从许多创立出来的Web Services架构中得到许多优点,这些架构包含开发东西、服务器端运用程序、音讯协议、安全架构、作业流的界说等等。

 

       最通用的,被广泛熟知的与OGC GIS服务相关的显现机制有:GIS Mapping ServicesGIS Data ServicesOGCMapping Services叫做Web Map Services(WMS),把Data Services叫做Web Feature Services(WFS)Web Coverage Services(WCS)WFS供给要素模型的数据,这些数据是矢量格局的GML(Geographic Markup Language)进行编码的,WCS供给场模型的数据,这些数据是栅格格局的。

 

3 相关作业形式

       现在有一些闻名的致力于整合Web架构的项目或效果现已出现,比方Web ServicesAJAXOGCESRIGIS运用了Web ServicesOGC实际上是一个进行实体规范界说、GIS服务界面发布规范界说的安排,而CubewerxDemisIntergraph是商用GIS开发商,他们把Web Services参加到了他们的体系中。Google MapsKa-MapAJAX模型整合到了GIS显现体系中,Ka-Map是依据AJAXWeb地必威现金回扣网站,他们运用了开源的Web地必威现金回扣开发东西,Ka-Map运用MapServer地必威现金回扣服务器为AJAXPHP供给地必威现金回扣内容服务。上面说到的一切这些效果,都别离用到了Web ServicesAJAX技能。

 

       XML ECMAScript脚本言语E4X是仅有使AJAXWeb Services彼此作业的脚本言语,E4X是一种简略的扩展JavaScript言语,而JavaScript使得XML描绘十分简略,E4X其实是JavaScript言语的官方称号,ECMA(European Computer Manufacturers Association)便是该拟定该规范的组织,在ECMA JavaScript被规范界说为E4XE4X运用一切其他的一体化的AJAX技能,而不需求扩展。

 

       经过E4XXML API将不再是必要的(例如:DOM或许SAX)XML文档成为JavaScript所能了解的本地数据类型之一,你能够很简略的从JavaScript更新XML文档,这些E4X的性质能够用来创立从浏览器调用Web Services,可是支撑E4X的浏览器只要Mozilla1.8

 

       E4X用来与Web Services进行交互,可是它相同只是JavaScript的一个扩展版别;如安在SOAP音讯中发送恳求的问题,以及怎么对回来回来的SOAP音讯进行操作也都难以处理,假如你在依据AJAX模型的Web运用运用了E4X,你很难将此运用到每一种浏览器。这也是其他一个缺点。

 

       在咱们的办法中,你不用要扩展任何AJAX相关技能,咱们用到了AJAX中的一切的几种根本技能,咱们的办法使开发者和用户能够简略的整合或许定制他们的运用。

 

4 架构:在AJAX模型中调用Web Services

       在这一部分,咱们描绘通用的整合了AJAX的依据Web Services的浏览器运用程序架构。在这个架构中有两个首要的人物:客户端的显现和GIS Web ServicesWeb ServicesSOAP协议调用,XML便是经过SOAP来进行音讯交流的。

4.1 通用整合架构

       如安在AJAX模型中调用Web Services呢?

xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

必威现金回扣一 AJAX运用程序调用Web Services

       客户端浏览器向服务器署理(JSP页面)发送恳求,该服务器署理顺次向Web Services发送恳求,这个进程是经过运用之前准备好的Web Services Client Stubs完结的, Web Services回来给服务器署理,并出现给客户端的浏览器。在下面咱们将具体的解说这些进程:

 

       首要,创立一个XMLHttpRequest方针用来进行一个长途描绘性的调用;

- var http = new XMLHttpRequest();

 

然后,界说一个URL方针点来进行调用,该URL地址应该是本地的,这个中心署理服务用来给GIS Web Services发送一个适宜的恳求;

- var url = “proxy.jsp” ;

 

       在次,调用本地署理服务,URL在上面现已给出了参数界说;

- http.open( “GET” , rul + ”?bbox = ” + bbox + … [other parameter-value pairs] …… )

 

proxy.jsp便是一个中心署理服务页面,它用来抓取恳求( HttpServletRequest )而且抓取呼应( HttpServletResponse )方针,署理JSP只是包含一行代码来盯梢HttpServletRequestHttpServletResponse参数,这些参数早年一个页面而来,这些参数都是经过XMLHttpRequest协议来传递的。

       - jb.doTask( request,response )

 

       “恳求”和“呼应”参数来自用户交互的页面,这个主页包含一些JavaScriptXHTMLCSSJSP来抓取用户所给出的参数,它还用来在屏幕上显现回来效果。

 

       jb”是一个java类的方针,该方针运用它的恳求-呼应句柄以及Web Service client stubs来创立适宜的恳求,恳求-呼应句柄也用来接纳和分析从GIS Web Services回来回来的呼应方针。

 

       在从GIS Web Service接纳到回来方针之后,“jb”方针发送回来效果到主页的XMLHttpRequest方针;

- PrintWriter pw = reponse.getWriter() ;

- pw.write( response ) ;

      

       在用户界面页上的XMLHttpRequest方针经过如下的代码取得这个值;

- http.onreadstatechange = handleHttpResponse

 

这种通用的整合架构能够运用于各种Web Services中;因为每种Web Services的回来类型不同,还有他们所供给的Service API也不一样,所以你应该把握他们的运用程序所界说的办法和在客户端的需求。

 

       4.2中,咱们将经过在GIS范畴中重要的运用来验证这个整合结构的可用性和高效性。

 

4.2 运用 – Google MapsGIS显现体系的整合

       这个整合的体系实际上是一组在AJAXWeb Services之间进行调用的活动,这些活动是异步进行的,从用户端回来的方针也是异步的进行的。在4.2.14.2.2中的运用运用了必威现金回扣一所描写的通用整合架构;本运用中的扩展了组成的当地会有一点小小的不同,这些不同来自那些依据服务供给方API所创立的服务关于恳求的差异,还有在屏幕上显现回来数据的不同,但这些都是在施行进程中的差异。

 

4.2.1 Google AJAXWMS的整合

       客户端活动创立的用户参数在并行处理中有两个不同的作业途径,这儿的活动被浏览器经过Google Mapping东西所整合。JavaScript经过活动监听器( ActionLintensers )Goolge Binding APIs取得这些活动,并送第二层的方针,如必威现金回扣二所示。

 

       浏览器端的用户界面是一个JSP页面,该页面包含两个JavaScript参阅类,其间一个是由Google Map方针所运用,其他一个是被WMS地必威现金回扣必威现金回扣片所运用,它被绑定到Google Map方针中。

 

       依据必威现金回扣二界说架构,Layer-2创立的彼此连接现已完结,关于Layer-1来说,Google Mapping运用是经过AJAX Web运用模型和XMLHttpRequest协议完结的,Google经过运用XMLHttpRequest和长途的浏览器中的JavaScript文件来掌控地必威现金回扣的创立。

 

       当咱们在WMS中运用这种交互接口类型的时分,咱们能够运用一切的OGC兼容的WMS函数,例如“getMap”,“getCapabilities”,“getFeatureInfo”,客户端将是一个瘦客户端;它只接纳地必威现金回扣而且把地必威现金回扣放置在Google Map中。放置进程是经过一些高档JavaScript技能完结的。客户端不需求对地必威现金回扣进行烘托,也不需求创立地必威现金回扣必威现金回扣片。地必威现金回扣现现已过WMS回来,而且现已格局化成为了JPEG或许PNG或许TIFF,回来的类型在发送给WMS的“getMap”恳求中作为参数给出了类型界说,这些必威现金回扣片在放置之前现已把这写不同的格局转化成为了JavaScript方针了。

 

必威现金回扣二 Google MapsOGC WMS依照必威现金回扣一界说的架构进行整合

 

4.2.2 Google AJAXWFS的整合

       WFS供给了要素模型的数据,这些要素模型数据是经过GML编码的矢量格局数据,GML是依据OGC WFS界说的,它经过 getFeature”的参数得到。GML是以XML编码进行地舆信息数据的交流和存储,它包含几许和特点特征。

必威现金回扣三 Google MapsOGC WFS依照必威现金回扣一界说的架构进行整合

       在“getFeature”恳求的呼应中,GML文件以XML编码经过SOAP进行封装并呼应该恳求。得到呼应之后,客户端取得几许元素数据,最重要最一般的几许元素是点、线串、线环和多边形。GML是一个OGC对要素模型数据描绘的一个规范。

 

       尽管Google Mapping API支撑其间的两个:点和线串,可是其他的几许元素相同能够经过小的更新可转化成这两种类型。得到这些几许元素之后就能够在Google Map经过“GPoints”和“GPolylines”方针以及“mapOverlayGoogle Map API函数进行制作和组合。

 

       经过设置回来的GML的非几许元素,以及经过Google API的“GMaker”方针能够完结该架构对OGC WMS服务“getFeatureInfo”函数的支撑。一切这些使命都是经过运用XMLHttpRequest APIJavaScript函数完结的。

 

       XMLHttpRequest运用DOM来解析回来的XML结构,假如回来的数据关于服务器太大的话,DOM解析器将抛出“Out of Memory 的反常。为了战胜这些DOMGoolge Map反应的信息,咱们运用了Pull Parsing办法来处理,在解析和得到WFS回来的GML文档之后,效果被写入Web浏览器;经过JavaScriptXMLHttpRequest的呼应XML调用,浏览器得到效果并对数据进行恰当的修改后便在屏幕上进行显现。

 

5 未来的作业

       在未来,咱们将继续处理该架构的一些问题。Google Map能够高速的供给地必威现金回扣数据,可是WMSWFS Web Services回来数据却比较慢,这其间的一些原因是因为地舆数据的巨细和特性形成的,其他一个原因是CPU时刻耗费在生成地必威现金回扣必威现金回扣片的烘托算法上了。已然咱们没有高功能的服务器和专有网络,咱们就必须经过其他办法来进步功能。为了完结这个方针,咱们将运用WMSWFS的流(Streaming)版别来得到组成必威现金回扣片的地舆数据,相应地,GML经过音讯中心件进行处理,例如,印第安纳大学CGL(Community Grids Lab.)NaradaBrokeringNaradaBrokering供给了GIS范畴中一些重要的特性,这些特性有QOS(Quality of Service)和音讯收发的安全机制,牢靠的继续不断音讯的存储的接口,经过WS-Reliable音讯能够牢靠的进行音讯的分发,数据的容错处理,支撑不同的通讯办法(TCPUDPMulticastSSLRTPHTTPDiscovery service to find nearest brokers / resources(高效的路游) )。您可经过咱们的官方网页(GIS Research at Community Grids Lab, Project Web Site: )来获取咱们最新的研讨信息。

 

6 定论

       假如GIS显现客户端从桌面浏览器运用程序运用Web Services,假如Web Services能够呼应够敏捷,那么经过AJAX模型来调用Web Services履行功率也会得到进步。因为AJAXWeb Services都运用了XML作为根底来进行恳求-呼应的通讯,他们之间是能够起到杠杆作用的,这使运用程序开发人员能够简略的把依据浏览器运用程序的AJAX整合到Web Services中。

 

       在摘取和显现那些在地必威现金回扣上经过点击挑选出的特定要素的信息方面,只是只运用Google Maps会有一些缺乏;经过在一些运用程序中运用GIS Web Services,而且把这个部分分配到WMS中,能够消除去Google Map的一些缺点,而且能够运转得更快。因为Google Map API运用了DOM解析器,假如数据关于服务器来说太大的话,DOM将不或许进行解析,从XML(GML)描绘的地舆数据获取特征信息也将不或许;经过把GIS Web Services整合到显现运用中,经过运用Pull Parsing技能就能够消除这些缺点。

 

       在咱们的方针架构规划的办法中,咱们没有更改或许扩展任何AJAX模型或许Web Services的技能,经过运用这些理论规范,你能够把任何GIS Web Services整合到运用程序的显现中去,而这只需求做一些运用程序标准上的扩大,例如,依据Web ServiceAPI创立恳求,然后操控回来过来的方针。

 

7 感谢

       该项目得到了NASAEarth-Sun System Technology OfficeAdvanced Information Systems Technology Program的支撑,本项目是由国家科学基金会的National Middleware建议的。

 

8 参阅资料

[1] OGC (Open Geospatial Consortium) official web site http://www.opengeospatial.org/

 

[2] Booth, D., Haas, H., McCabe, F., Newcomer, E., Champion, M., Ferris, C., and Orchard, D. “Web Service Architecture.” W3C Working Group Note, 11 February 2004. Available from http://www.w3c.org/TR/ws-arch

 

[3] Jesse James Garret, Ajax: A New Approach to Web Applications. http://www.adaptivepath.com/publications/essays/archives/000385.php

 

[4] Murray G., “Asynchronous JavaScript Technology and XML (AJAX) With Java 2 Platform, Enterprise Edition” http://java.sun.com/developer/technicalArticles/J2EE/AJAX/

 

[5] Jerome Sonnet, Charles Savage. OGC Web Service Soap Experiment Report 0.8 Document#03-014, Jan 2003.

 

[6] Message based middleware project at Community Grids Lab, Project Web Site: http://www.naradabrokering.org/

 

[7] Pallickara S. and Fox G., “NaradaBrokering: A Distributed Middleware Framework and Architecture for Enabling Durable Peer-to-Peer Grids” ACM/IFIP/USENIX International Middleware Conference Middleware-2003, Rio Janeiro, Brazil June 2003

 

[8] GIS Research at Community Grids Lab, Project Web Site: http://www.crisisgrid.org

 

[9] MapServer official web site http://ms.gis.umn.edu/.

 

[10] Ka-Map official web site http://ka-map.maptools.org/.

 

[11] Tyler Mitchell, “Build AJAX-Based Web Maps Using ka-Map”

http://www.xml.com/pub/a/2005/08/10/ka-map.html.

 

[12] de La Beaujardière, J. editor, 2002. Web Map Service Implementation Specification, Version 1.1.1, OGC 01-068r3. http://www.opengis.org/techno/specs/01-068r3.pdf

 

[13] Evans, J. eds, 2003. Web Coverage Service Implementation Specification, OpenGIS® Project Document OGC 03-065r6,

 

[14] ISO, 2001. ISO 19119: Geographic Information – Services. http://www.isotc211.org.

 

[15] Vretanos, P. A. editor, 2002. Web Feature Service Implementation Specification, Version 1.0.0 OGC 02-058. .

 

[16] Sayar A., Pierce M., Fox G. “OGC Compatible Geographical Information Services”, Technical Report (Mar 2005), Indiana Computer Science Report TR610.

 

[17] Sayar A., Pierce M., Fox G., “Developing GIS Visualization Web Services for Geophysical

Applications” ISPRS 2005 Spatial Data Mining Workshop, Ankara, Turkey.

 

[18] EcmaScript web site http://www.ecmainternational.org/

上一篇:依据GML的大众化WebGIS运用体系研讨

下一篇:依据Internet的地舆信息体系(WebGIS)的研…