李剑强,邬群勇
(福州大学福建省空间信息工程研究中心,福建福州350002)
基于客户端的REST地理服务聚合方法设计∗
李剑强,邬群勇∗
(福州大学福建省空间信息工程研究中心,福建福州350002)
为提高网络地理信息服务的利用,促进地理信息共享,文章分析REST地图服务特点,服务的发现与获取机制以及基于客户端的服务聚合方法,在此基础上提出了多源REST地图服务的聚合架构,并应用到客家文化专题地图服务的聚合中,实现了客家文化地图服务的在线聚合系统。结果表明,该方法能简单有效实现多源网络地图服务资源在线聚合与协同服务,有利于促进网络地理数据资源的共享。
REST;地理信息服务;服务聚合;客家文化;数据共享
随着用户对网络地图服务需求的多样化,单一的网络地图服务开始难以满足用户的需求[1],用户往往希望能够同时获得多个地图服务,并能够将这些不同来源的地图服务根据需要进行聚合,形成多源服务的协同,以满足用户的需求[2]。如何根据用户的需求来发现不同来源的网络地图服务,并将这些不同的服务集成在同一平台上,是需要解决的问题。
本文讨论如何发现REST风格的网络地图服务并建立有效方便的服务发现获取机制,提出基于REST风格的地图服务的聚合方法和流程框架,实现多源网络地图服务的聚合。并应用于闽西客家文化专题地图服务聚合的实例中,实现多源客家文化数字资源服务的在线聚合与协同服务。
REST即表述性状态传递(Representational State Transfer,简称 REST)是一种软件架构风格[3]。在REST中以资源为核心思想,每个资源有唯一的URI(资源定位符)与之对应,通过该URI就可以访问该资源。同时REST通过制定规范和统一的操作接口来对网络服务进行约束,使得REST成为一种轻量级的 Web Service架构风格[4]。
REST风格的地理信息网络服务,就是按照REST风格约束来创建的地理信息Web服务,在这种风格下的所有地理信息服务被当作资源,每个地理信息服务有相对应的URI和统一的操作接口以及相对应的操作方法。REST风格的地理信息服务使得网络地理信息服务的应用简单化,既能降低开发的复杂性,又能提高系统的可伸缩性[5,6]。这些优点使得REST风格的地理信息服务成为目前地理信息网络共享的主流方式。
要实现多源网络地图服务的聚合,那么首先需要获取分布在网络不同节点中的地图服务,本文将REST风格的服务获取方法分为三种:直接获取法,网络动态查找法和基于服务注册表法。
直接获取法是用户根据已知的服务URI直接获取该服务。该方法简单,但对用户专业素养的要求比较高,且对服务发现的灵活度也不高。网络动态查找法,是通过服务搜索引擎从全局网络中搜索相关的服务,该方法简便灵活,但该方法还并不成熟,缺少完整的理论和技术框架,目前尚无成熟的服务搜索引擎,在实际应用中有较大的限制。基于服务注册表法,用户通过此种方法获取服务的方式是利用搜索功能,根据元数据的匹配,从服务注册中心搜索相关的服务描述信息,将搜索到的服务描述结果返回给客户端,用户根据服务的描述信息再向服务器请求相应的服务,其基本模型如图1所示。该方法相比于直接获取法而言灵活方便,能动态的查询并选择所需的服务。相对于网络动态查找法而言,在实际应用中比较成熟,容易实施。经过对比分析,为提高系统发现和获取服务的方便和灵活性,本文利用注册中心法来发现和获取不同站点中的地图服务。
图1 基于注册中心获取服务法
3.1 基于Ajax的客户端服务聚合方法
Ajax是一种Web客户端技术,利用Ajax技术可以实现客户端与服务器进行异步交互,并且在客户端可以对局部内容进行动态更新[7,8]。在地图服务聚合中,利用Ajax调用REST地图服务并实施聚合时,客户端可以通过Ajax引擎多次向服务器端发送地图服务请求,服务器响应请求并返回相应的服务资源,客户端利用Ajax技术对返回的地图服务可以动态地加载并将之显示在相应的位置,同时不刷新整个页面,从而可以将不同的服务依次聚合到一起。其中某一次地图服务的服务请求与响应过程是:客户端根据获取的服务URI通过Ajax引擎向服务器请求相应的服务,服务器根据请求返回相应的地图服务。返回的服务数据格式可以是JSON数据格式,也可以是XML数据格式或者其他的数据格式。在客户端对获取的不同来源的地图服务进行坐标系统转换,使要聚合的地图服务坐标系统进行统一,并判断该服务的类型,选择正确的服务获取接口,再将这些服务依次添加到服务聚合器中,这样便可完成服务的聚合,其模型如图2所示。
3.2 REST风格地图服务聚合流程结构图
图2 基于Ajax的REST地理信息服务请求与响应
在地理信息服务聚合中,典型的聚合架构包括服务提供者、服务聚合器和Web客户端[9]。服务提供者是地图服务的发布者,服务提供者借助于第三方GIS软件或者自己开发的GIS软件将其地图服务以约定的规范(如:ISO/OGC服务规范)进行服务的发布,供服务的使用者调用。服务聚合器遵循标准的网络服务规范,调用并解析请求的地图数据,将不同的数据源进行聚合构成新的服务;Web客户端,向用户展示服务聚合后的结果,并且用户可以与之进行交互。
根据这一基本架构,本文提出多源网络REST地图服务具体结构流程图,如图3所示。此流程图中服务的发现与获取机制采用注册中心法,服务聚合采用基于Ajax技术的客户端聚合方法。
图3 REST服务聚合流程图
在本结构流程图中具体的实现过程:(1)服务提供者利用GIS软件发布REST风格的地图服务。(2)服务提供者给发布的地图服务进行相关的描述说明,并将服务描述信息注册到服务注册中心。(3)客户端可以通过查找功能在服务注册中心查找其所需的服务描述信息。(4)服务注册中心返回符合条件的REST服务的描述信息,同时向聚合端返回相对应服务的URI。(5)在客户端服务聚合器根据返回服务的URI利用Ajax向服务器请求相应的地图服务,服务器根据客户端的请求返回相应请求的地图服务数据,客户端将返回的地图服务数据进行聚合并显示。
客家文化是中国文化的重要组成部分,随着数字化和信息化技术的发展,使得客家文化数字资源服务的网络共享成为可能。将客家文化内容与GIS技术相结合制作出不同类型的客家文化专题地图(如客家人口分布图、客家人口迁徙图、客家土楼分布图等),专题地图可以以地图服务的形式发布在网络上,分享给用户。由于客家人分布区域不同,文化专题地图的提供者不同,服务发布的站点不同,需要根据用户的需求,发现并调用这些不同来源的服务,同时将这些不同来源的文化资源服务能够在同一平台上聚合,达到多源客家文化资源的协同服务目的。根据前文对REST风格的地图服务、服务的发现机制以及地理信息聚合技术的研究与探讨,按照图3的架构流程,文章将客家文化专题地图发布成REST风格的地图服务,采用服务注册中心法为用户提供服务的查找与获取,在客户端采用Ajax技术实现多源客家文化地图服务的调用与聚合。
4.1 REST风格的客家文化地理信息服务构建
在构建客家文化地理信息服务时,主要包括两个方面:REST地图服务的构建和服务描述信息(服务元数据)的构建。在使用REST风格的地理信息服务时需要构建服务的URI和相关参数来访问和操作对应的资源。其中REST风格的地图服务URI构建及相关的地图操作基本格式:http://<host>[:<port>]/ArcGIS/REST/services/<服务>/<服务类型>/<操作>?<参数>。其中http://<host>[:<port>]/ArcGIS/REST/services/表示服务目录;<服务>表示服务目录中的各个服务的名称,其与服务目录组成REST地图服务的URI;<服务类型>表示当对该地图服务的类型;<操作>?<参数>表示对地图服务进行相关操作及操作参数。如对一个REST地图服务带有参数操作的请求实例:http://localhost: 6080/ArcGIS/REST/services/闽西客家土楼分布图/ MapServer/export?bbox=114.60402736322072% 2C27.401357573956307%2C121.74995563996026% 2C28.05570856441356&f=image。在实例中http:// localhost:6080/ArcGIS/REST/services/闽西客家土楼分布图表示服务URI,MapServer表示服务类型,export表示对该服务的输出操作,bbox表示地图输出的地理范围,f表示地图输出的格式,f=image表示以image格式输出。
服务提供者发布服务后,将相关的服务元数据存储到后台的数据库中,以便客户端发现并获取网络中的服务信息。其中服务的元数据包括地图服务的URI、地图服务所属区域、服务的关键字概述、服务名称等。在后台元数据的存储中采用MySQL数据库作为元数据的存储数据库。数据库的链接采用JDBC实现,实现服务元数据的注册方法为ServiceReg(Service S)。图4为服务注册后的服务描述信息列表。
图4 服务注册列表
4.2 REST风格的客家文化地图服务聚合实现
系统运行在Windows操作系统中,用IE浏览器作为客户端,TomCat作为Web服务器,GIS服务器采用ArcGIS Server,系统开发采用J2EE技术框架实现,元数据的存储采用MySQL数据库。结合HTML、Ajax、Jquery、ArcGIS Server for JavaScript API等技术实现多服务动态查找、聚合与显示。
ArcGISServer for JavaScript API是基于DOJO框架来实现[10]。DOJO对 Ajax进行了封装和扩展,可以实现Web客户端与服务器之间的数据请求以及无刷新的页面更新效果。Web客户端可以利用此API调用服务器端提供REST风格的地图服务,并能够实现多源的地图服务的动态聚合。
在系统中,用户根据查询功能从服务注册中心查找服务元数据findMapService(String sevicename),查询结果以JSON的形式进行封装并返回给客户端。Web客户端通过 JavaScript对JSON数据进行解析,并将解析的服务元数据结果以列表的形式展示,用户通过展示的元数据了解相关的服务内容。客户端再根据解析出的该JSON数据中地图服务定位符(URI),服务的发布类型等数据,通过Ajax引擎向地图服务器发送相关的地图服务请求,并且根据服务的类型的描述确定该地图服务在聚合中使用相应的地图服务接口,如动态地图服务使用ArcGISDynamicMapServiceLayer()接口,影像地图服务使用 ArcGISImageServiceLayer()接口,瓦片地图服务使用ArcGISTield ()接口等。结合HTML、CSS将返回的结果显示在相应的地图展示窗口中。其中对多源地图服务聚合的主要函数如下:
系统实现服务聚合界面如图5所示。系统中用户通过搜索功能从服务注册中心搜索相关的客家文化地图服务描述信息,搜索的结果以列表的方式在界面左边展现给用户,用户可以根据自己需求选择获取一个或多个地图服务,并可以将这些地图服务在地图展示界面中进行聚合。聚合后的地图可以进行基本操作,如地图的平移、放大、缩小、鹰眼等。可以通过图层控制器对聚合后的图层进行显示、隐藏等。图层聚合后可以将不需要的图层从聚合器中移除,可以再次添加所需要的其它地图服务到聚合器中。图中用户选择闽西客家土楼分布图与广东饶平土楼分布图进行聚合,结合两个地区的地图服务同时查看客家土楼分布情况,实现不同来源不同地区的客家土楼地图服务聚合在同一平台上服务于用户。
图5 REST客家文化地图服务聚合
REST以资源为核心思想,统一网络服务约束规范,让开发者不用关心提供服务的底层架构组成,不同服务的接口和方法的差异,开发者只需根据资源定位符(URI)就能获取相应的服务,使得网络地理信息服务的开发得到简化,带来一种新的地理信息服务开发方法。实践证明,利用REST服务的特性,结合基于注册中心的服务发现机制、Ajax客户端技术能够简单快速实现在同一平台上获取多源地图服务供用户调用及聚合,达到多源服务的协同,促进网络地图资源的共享与利用。
[1]陆亚刚,邱知,游先祥,等.基于SilverLight和REST的富网络地理信息系统框架设计[J].地球信息科学学报,2012,14(2): 192-198.
[2]苏会杰.基于REST和SOAP的Mashup平台Web服务研究与实现[D].北京:北京邮电大学,2012.
[3]李久刚,唐新明,汪汇兵,等.REST架构的WebGIS技术研究与实现[J].测绘科学,2011,36(3):85-87.
[4]唐旭华,邹峥嵘.基于 RESTful Web Service的空间数据共享[J].测绘科学,2010,35(4):122-124.
[5]Dias S,Yang C,Stefanidis A,etal.Mashing up Geographic Information for Emergency Response-An Earthquake Prototype[J]. Journal of Geographic Information System,2014,6(5):533-547.
[6]刘茜茜,孙亚琴,吕翔,等.基于WebGIS的气象信息服务系统的设计与实现[J].计算机工程与设计,2014,35(1):322-326.
[7]徐卓揆.基于HTML5、Ajax和Web Service的WebGIS研究[J].测绘科学,2012,37(1):145-147.
[8]苟丽美,朱美正,李艳明.RESTful风格地图瓦片服务的研究[J].计算机工程与设计,2012,33(9):3609-3616.
[9]刘先锋,邬群勇,马亨冰.一种服务器端地图Mashup框架及其应用研究[J].测绘科学,2013,38(3):112-114.
[10]刘光,曾敬文,曾庆丰.Web GIS从基础到开发实践(基于Arc-GISAPI for JavaScript)[M].北京:清华大学出版社,2015:5-20.
(责任编辑:曾 晶)
A Client M ashup M ethod for REST Geographic Service
LIJianqiang,WU Qunyong∗
(Spatial Information Research Center of Fujian Province,Fuzhou University,Fuzhou 350002,China)
In order to improve the utilization of network geographic information service and promot geographic information sharing,the features of RESTfulmap servicewere analyzed.The discovery and accessmechanisms of RESTful map service were analyzed,and themethod of Ajax-based client geographic service aggregation was analyzed.Then the architecture ofmulti-source RESTfulmap services aggregation were put forward.In the end,the aggregation system of Hakka culturemap service online was implemented based on the architecture.The results show that RESTful map service aggregationmethod of Ajax-based client can implementmulti-sourceWeb Map Service resource aggregation online simply and effectively,and promote the sharing of network geographic resources.
REST;geographic information services;service aggregation;Hakka culture;data sharing
TP311
A
1000-5269(2016)04-0080-05
10.15958/j.cnki.gdxbzrb.2016.04.16
2016-04-09
国家科技支撑项目(2013BAH28F00)
李剑强(1989-),男,在读硕士,研究方向:数据服务与网络共享,Email:jianlijianqiang@163.com.
∗通讯作者:邬群勇,Email:qywu@fzu.edu.cn.