互操作和地理空间Web服务标准

在大型项目或国家级信息平台中经常涉及互操作。互操作就是让不同厂家的软件和数据能一起工作,而实现互操作的主要途径就是制定标准。Web服务的标准实质上就是规定请求和响应的具体格式,例如,请求中包含哪几个参数,每个参数是什么类型,响应的返回信息中包含什么结果等。OGC 定义的 Web 地图服务标准,包括WMS、WMTS、WFS、WCS、WPS、CSW以及与Web服务相关的标准,以及 KML和GeoRSS。

其中最常用的三种地理参考信息模型意义如下:

  • Web Map Server(WMS)
  • Web Feature Server(WFS)
  • Web Coverage Server(WCS)  

基于Web服务的互操作

互操作就是让不同厂家软件和数据能一起工作,通俗点说就是我能调用你的数据和功能,你能调用我的数据和功能。GIS互操作的实现技术已经走过了多个阶段,实行GIS互操作的技术主要经历了文件格式转换、直接读取的插件和Web服务标准等阶段。

|-------------|     |---------------|     |-------------|
| 文件格式转换 | --> | 直接读取的插件 | --> | 标准的Web服务 |
|-------------|     |---------------|     |-------------|

早期的互操作往往涉及数据的转换,例如,把一种软件产品的数据转换成另外一种软件产品的数据格式,或者定义一种标准的文件格式,不同的软件产品都需要能输人和输出这种格式。后来,互操作采用了插件接口的技术,即在一种软件中安装一个插件,利用这个插件可以在一种软件中对其他软件格式的数据能进行直接读写,避免了数据的转出和转入。近些年来,互操作技术逐渐转向到Web服务标准这个层次上来,这种方法既避免了数据格式的转出和转入,又避免了在本地安装插件工具的麻烦。不同的厂家可以根据行业的Web服务标准独立开发自己的产品,只要他们产品的Web服务接口符合一定的业界标准,他们软件的数据和功能就通过Web服务来相互调用,实现互操作(图3.12)。

互操作依赖于标准

关于地理空间Web服务的标准化组织主要有如下几个。

以OGC的WMS标准为例,MapServer或GeoServer 发布的一个WMS在线地图服务,不仅可以被Esri的产品使用,也可以被Google Earth、NASA WorldWind、OpenLayers以及Gaia等支持WMS标准的客户端使用。每一个客户都知道在请求中应该发送什么参数,并能预期服务器的响应结果中有什么格式的结果。

Web服务的标准

本节主要介绍 OGC 的 WMS、WMTS、WFS、WCS、CSW、WPS 以及 OpenLS标准。读者可以访问OGC官方网站(http://www.opengeospatial.org )查阅这些规范的详细文档,查看哪些WebGIS软件经过了OGC认证和支持哪些标准。

(1) Web 地图服务(WMS—Web Map Service)

WMS是OGC制定的一种在互联网上制作地图的Web服务规范,WMS生产的地图一般以图像格式呈现,如PNG、GIF或JPEG。任何一个声称符合WMS规范的Web服务都必须支持下面两个必要的请求:

GetCapabitities:能向客户端返回该Web服务的描述信息。返回结果的格式是XML,它描述该服务的名称、简介、关键词、覆盖范围、包含那些数据层、每层是什么坐标体系、具有哪些属性以及是否能被查询。这个元数据还包括该服务所能产生的地图图片文件格式、能支持的操作每个操作的URL等。

GetMap:能根据客户端的GetMap请求参数来制作一个地图。GetMap请求中需要的参数包括显示哪些图层、地图的长宽像素数和空间坐标体系等。有的WMS还支持风格化图层定义(styled layer descriptor,SLD),允许用户在URL请求中动态地指定各个数据层的显示符号。返回结果一般是PNG、GIF和JPEG等栅格格式的图片。

WMS规范还制定了几个可选请求,例如

  • GetFeaturelnfb:查询地图上某一位置的信息,其典型的应用情况是用户在地图上点击一个点,服务器返回位于该点的地理要素的坐标信息和属性信息。

  • GetLegendGraphic:能根据客户端指定的图层,制作和返回该图层的图例,返回格式一般是PNG、GIF和JPEG等图片。

WMS规范的应用较广,被许多机构采用。例如,美国地质调查局(USGS)就提供了一系列WMS服务,包括国家大地图WMS服务、国家地图集运输WMS服务、国家水文数据集WMS服务以及美国实时火灾(主要是指山林野火)WMS服务。美国国家航空航天局(NASA)对地观测系统(NEO, http://neo.sci.gsfc.nasa.gov/Search.html) WMS ( http://neowms.sci.gsfc.nasa.gov/wms/wms )等方式,动态提供多时间序列的、主要关于全球气候和环境变化的影像,包括海面温度、陆地表面温度、植被指数、降水量、一氧化碳浓度、地表覆被类型以及地表接受的太阳辐射量等。

(2) Web 地图瓦块服务(WMTS—Web Map Tile Service)

WMTS是OGC制定的一种发布瓦块地图的Web服务规范。WMTS不同于WMS,两种相互补充。WMS主要属于动态地图服务,即地图是服务器在每次接到客户请求时立刻生成的,特别适用于数据在不断被更新的地图服务。WMTS的地图是服务器预先制作好的瓦块,这种方法可以提高Web服务的性能和伸缩性,特别适合于数据相对静态、不再更新或更新频率很低的数据。

WMTS规范定义了两个必要操作和一个可选操作。

  • GetCapabilities:获取服务的元数据。
  • GetTile:获取瓦块。
  • GetFeaturelnfo:可选,获取点选的要素信息。

(3) Web 要素服务(WFS—Web Feature Service)

WFS是OGC 制定的一种在互联网上对矢量地理要素及数据进行操作,包括检索、插入、更新和删除等Web服务规范(OGC ,2005)。WFS定义了以下主要操作。

  • GetCapabilities:获取服务的兀数据。
  • DescribeFeatureType:获取WFS支持的要素类型的结构。
  • GetFeature:获取与一个查询条件相匹配的地理要素及其属性。
  • LockFeature:请求服务器在一项事务期间锁定一个或多个地理要素。
  • Transaction:请求服务器创建、更新或删除地理要素。

以上操作有必选的,也有可选的。根据所支持的操作,WFS主要可以分为以下两类。

  • 基本型 WFS(Basic WFS):只支持 GetCapabilities、DescribeFeatureType 和GetFeature操作, 只能进行要素的查询和读取,所以又称为只读型WFS。
  • 事务型WTFS(TransactionWFS或WFS-T):除了基本WFS所支持的操作外,还支持transaction操作。 它不仅能支持地理要素的读取,还支持地理要素的在线编辑和处理,也被称为读写型WFS。

在WFS请求和响应中,地理要素的信息传输主要是采用GML格式。2006年,OGC通过了GML简单要素专用标准(GML Simple Features Profile),以加快WFS请求和响应的速度,简化WFS的实施难度。WFS不仅可以用于制图和查询,而且可以用于地理数据的切割、投影转换和在线下载。例如,美国国家气象局气象研究实验室提供一个国家数字天气预报数据库(NDFD) WFS服务。这个服务允许公众、政府机构和企事业单位获取气温、露点、风、降水概率和降水量等数据。

(4) Web 覆盖服务(WCS_Web Coverage Service)

WCS是OGC 制定的一种发布栅格地理数据的Web服务规范,它所返回的栅格数据是原始数据(raw data),如数字高程中地面的高程值和卫星影像中的光谱值等WCS与WMS不同,因为WMS所返回的是经过视觉化处理的、已经失去原始值的图片。WCS与WFS的不同还在于WFS是针对矢量数据的,而WCS是针对栅格数据的。WCS规范规定了以下操作(OGC,2006b):

  • GetCapabilities:返回该服务的元数据。
  • DescribeCoverage:返回该服务中栅格数据层的详细描述信息, 如时间信息、覆盖范围、坐标体系和所支持的输出格式等。
  • GetCoverage:服务器根据允许客户端所指定的数据层、时空范围、坐标体系、输出格式、内插方式以及对数据进行切割转换等操作, 返回GeoTIFF、HDF-EOS或NIT等格式的数据。

美国国家冰雪数据中心(NSIDC)提供极地冰冻圈的WCS服务,用户可以获取有关结冰区域的数据,包括每月海洋结冰和集中区、积雪覆盖范围及雪水等深线等信息,以支持有关极地冰冠融化和气候变化的研究(Maurer,2007)。

(5) Web 处理服务(WPS—Web Processing Service)

WPS是OGC为在互联网上进行地理分析而提供的一种Web服务规范 (OGC,2007c)。它制定了地理分析服务的输人和输出(即请求和响应)格式,还制定了客户端如何请求地理分析的执行。WPS所需要的地理数据可以通过互联网传输过去,也可以是服务器上已有的数据。WPS定义的主要操作有GetCapabilities、DescribeProcess和 Execute。

(6)其他Web服务标准

  • Web目录服务(CSW—Catalog Service for Web):目录服务是一项共享地理空间信息的重要技术。 CSW支持搜索和发布地理空间元数据,它可以让使用者查询元数据,来发现他们所需要的地理数据和服务,也可以让提供者发布和更新元数据。 CSW有两种类型:只读型CSW和事务型CSW。 只读型 CSW支持 GetCapabilities、DescribeRecord、GetRecords、GetRecordByld以及GetDomain等操作, 仅支持元数据的查询和阅读。 事务型CSW支持元数据的读和写,允许用户通过transactionharvest 操作,来发布、编辑和删除元数据(OGC, 2007b )。 ArcGIS Geoportal Server 等产品就提供了CSW接口。
  • 开放位置服务(OpenLS—Open Location Service):这是OGC 为基于位置的服务(LBS;见第5章)所提供的一系列的Web服务规范, 包括黄页搜索、追踪手机用户的位置和导航服务等(OGC ,2004)。
  • 传感器网络整合框架(SWE—Sensor Web Enablement):SWE框架包括一系列Web服务标准:传感器观测服务(SOS )、 传感器规划服务(SPS)以及传感器报警服务(SAS)。这些标准能够使用户发现和获取传感器网络的传感器数据。

Web服务的相关标准

本节主要介绍KML规范和GeoRSS规范,KML是一种地理数据和地图描述的混合格式,GeoRSS可以认为是一种地理数据格式。虽然它们本身并不是Web服务规范,但是在实际应用中,它们经常被作为一些Web服务返回结果的格式。

(1) KML( Keyhole Markup Language;钥匙孔标记语言)

KML是谷歌公司和OGC 的一个基于XML的描述地理要素及其可视化的文件格式。KML最初由Keyhole公司创建,是其EarthViewer 3D所采用的文件格式。Keyhole公司于2004年被谷歌公司收购,其EarthViewer 3D被改名为 Google Earth。谷歌公司向OGC 申请把KML作为一个标准。经过OGC 成员的论证、修改和批准,KML于2008年正式成为 OGC 的一个官方标准。

一个KML文件可以描述一些地理要素,如点、线、多边形、图像和3D模型等,并可以定义它们的显示符号、相机位置(即观察者所在的地点和高度、视线的方向、俯视或仰视的角度)。KMZ文件是压缩过的KML文件,这样一方面可以减小文件的大小,另一方面可以包含其他类型的文件如KML中符号和链接所需要的图片。下面是一个简单的KML的例子。它首先定义了一个带有特定图标的样式,然后定义了一个地名注记,并用这个图标来显示。

KML经常被用于公共信息发布。例如,美国地质调查局用KML发布接近实时的地震信息,美国国家海洋与大气管理局利用KML发布天气预报,包括恶劣天气警报、雷达影像和传感器观测数据等。

(2) GeoRSS

RSS是简易资讯聚合(Really Simple Syndication)的简称,也被称为丰富站点摘要(Rich Site Summary)或 RDF 站点摘要(Resource Description Framework Site Summary)。它是互联网上发布信息,特别是具有实效性的信息(如新闻和火灾简讯等)的一种主要格式。RSS家族包括RSS和ATOM格式,前者出现于1999年,后者出现于2003年。它们都是简单的XML格式,只有几个为数不多的标签,来描述每一条信息的名称、摘要、全文链接和发布时间等,非常容易理解和使用,得到了广泛应用。订阅者可以将自己感兴趣的多个RSS “聚合”到RSS阅读器软件中,为自己提供方便的“一站式”服务,而不必分别到各个网站上一遍一遍地查看它们是否更新了。

RSS被很多新闻媒体、社交网站以及政府官方网站作为一种发布新消息的方法。例如,CNN(美国有线新闻网)、纽约时报、路透社、《科学》杂志、Twitter(推特,美国一个微博客网站)、Y〇uTube(著名视频网站)均采用这种技术及时发布信息。世界卫生组织(WHO)以RSS格式发布最新的流行病和传染病( http://twitter.com/statuses/user—timeline/14499829.rss );美国政府在其电子政 务门户网站( http://USA.gov )上发布有上千个RSS;利用RSS,联邦紧急管理署发布与突发性事件相关的新闻和图片;美国人口普查局发布如当前人口统计相关的新闻;疾病控制和预防中心发布最新的疾病发病率和死亡率报道。

美国政府在其电子政务门户网站( http://USA.gov )上发布有上千个RSS

随着RSS的流行,人们希望不仅能看到发生了什么,而且希望能看到事件是在哪里发生的。GeoRSS是一个在RSS和其他XML中添加位置信息的标准(OGC,2006c)。GeoRSS 有三种格式:W3C Geo、OGC GeoRSS-Simple 和GeoRSS-GMLO

  • W3C Geo:只能描述点状要素,采用WGS 84经纬度坐标。这一标准虽然还被使用着,但它已经是一种过时的标准,不推荐使用。
  • OGC GeoRSS-Simple:能够描述基本的几何形状(包括点、线、矩形和多边形)及其属性(包括要素类型、要素名称、关系标签、高程以及半径)。名副其实,GeoRSS-Simple的设计简洁明了,其坐标参考系通常是WGS 84经 纬度。
  • OGC GeoRSS-GML:比GeoRSS-Simple支持更多的地理要素。如果不标明坐标参考系,其坐标缺省是WGS84经纬度,但此规范允许定义和采用其他的坐标体系。

GeoRSS通过对RSS的扩展,成为在Web上请求、共享和集成地理信息的一种简洁格式。GeoRSS也普遍用在 Mashup 应用 软件中。下面是一些GeoRSS应用的例子。

  • Twitter提供接近实时的“谁说了什么,发生在哪里”的GeoRSS信息,允许用户在地图上显示这些微博客内容。
  • Flickr在线相册提供了一个REST接口,以GeoRSS的格式返回一个给定区域的照片信息。例如,http://api. flickr. com/services/feeds/geo/United + States/Califomia/Hollywoocl这个URL可以返回美国好莱玛地区的照片信息。
  • 全球灾难警报和协调系统( http://www.gdacs.org )提供一个接近实时的GeoRSS源,及时报告全球正在发生的自然灾难,如地震、热带飓风和洪水。
  • USGS 用 GeoRSS 格式播报地震信息。其中,加利福尼亚州的地震数据几分钟更新一次,全球其他地方每半小时更新一次。
  • GloballncidentMap.com网站提供一系列实时的GeoRSS,内容包括儿童遭绑架的警报、危险品状况、恐怖主义以及其他威胁。

GloballncidentMap.com以GeoRSS的格式提供一系列有关公共安全和恐怖威胁的事件,本例利用ArcGISViewer for Flex来显示这些事件及其位置。(注:情报源较多,不便取得许可,本图为模仿图;致谢:TmnsitSecurityReport.com和美国国家公园管理局)

GloballncidentMap.com以GeoRSS的格式提供一系列有关公共安全和恐怖威胁的事件

标准化机构面临的挑战

GIS产品和应用开发人员希望标准简单易用,但是标准化机构往往需要考虑多种情况,这样制定出来的标准具有较好的包容性,但也往往导致标准太复杂而不易被采用。OGC的Sam Bacharach (2006)曾用如下比喻解释简化GML(地理标记语言)标准的必要性: “你注意过孩子们是如何利用64色蜡笔的吗? 一些孩子仅将红、蓝、绿、黄、黑等几种颜色检出就可以作画了。这几种颜色简单易用,尽管不多,但已经提供了一个可以解决问题的方案,足以描绘一个在后园游泳池里玩耍的小狗的图画。”

这个比喻不仅解释了简化GML的重要性,也解释了标准化机构所面临的一个挑战,即如何把握简单、易用与完整、全面之间的平衡。

另外,业界希望标准化机构能早日制定标准,以供业界采用。而标准化机构有其谨慎的工作流程,从制定方向、邀请提案、项目组或成员递交草案到成员审阅、修改和表决等,需要一定的时间才能制定一个标准。这样往往导致标准的出现滞后。等标准发布时,不同的厂商已经开发出了自己的方案,与标准并不兼容,这些厂商还需要再额外投人,对产品做些修改或编写一些转接程序,以实现对标准的支持。

标准的重要性不容置疑,尤其是政府项目招标工程中,往往要求投标产品对国际标准的支持,以实现系统的开放性和可扩展性。OGC网站上列出了通过其认证的产品厂家、软件名称、所支持的OGC标准的名称和版本(见 http://www.opengeospatial.org/resource/products/compliant )。

Web服务的优化

本节介绍如何提高Web服务质量(quality of service,QoS)。服务质量主要包含如下几个重要指标。

  • 性能:描述系统的反应效率,通常以响应时间来衡量;
  • 伸缩性:描述系统在用户数量增加的情况下,能否保持较高的性能,通常以所能同时支持的用户数量来衡量;
  • 可用性:描述一个系统的可访问和可操作程度,通常以系统运行时间的百分比来衡量。 一个系统的可用性是 99.99% ,那么该系统最多每天只能有9秒的停机时间(包括故障造成意外停机和系统维护所需的人为停机);
  • 安全性:描述系统的保密能力和防御能力。

预处理(缓存)

预处理,又称缓存,是指系统预先生成地图或执行其他任务,把结果存储起来以备后用,而不是在系统运行中接到用户请求时再实时生成地图或执行任务。如图所示,如果有缓存,Web服务器可以从缓存中快速找回结果,而不再需要到数据库中读取数据,实时完成制图和进行其他处理。缓存减少了 GIS服务器和数据库服务器的负担,是提高WebGIS服务质量的一种有效途径。

Web服务器可以从缓存中快速找到结果,迅速响应用户请求,从而减小对GIS服务器和数据库的压力,提高服务的质量缓存技术主要用作生成地图

Web访问地图切片

地图缓存,也称为地图瓦块或切片,是按照一系列的比例尺,预定生成一系列的地图切片(或称瓦块),以便快速显示。

地图切片示意

制作地图缓存的主要原因有: 

  • 提髙系统的性能、伸缩性和可用性:缓存减少了服务器的负担,用户可以获得快速的响应,从而可以节约用户的时间。
  • 提高制图质量:可以使用高级的符号和复杂的图层,预先生成高质量的地图。
  • 行业惯例:在目前的Web地图应用中,基础底图广泛采用了缓存,这已经成了行业的惯例, 也改变用户对WebGIS的期望,他们期望所有的WebGIS都能提供缓存这种较好的用户体验。

在创建缓存之前,需要做一些规划,例如,使用哪种坐标系、采取哪种瓦块方案。瓦块方案包括比例尺级别、每一级的比例尺、瓦块的尺寸(如256像素x256像素)、瓦块的起点坐标、瓦块区域以及图片格式(如JPEG、PNG 8、PNG 24或者 PNG 32)。如果你的地图将与 ArcGIS Online、Google Maps 或者 Microsoft Bing Maps —起使用,那么,你的地图应该采用与它们相同的坐标系,即WGS 84 Web墨卡托,你的瓦块方案也应该与它们相匹配。缓存的创建可能需要很长的时间完成,这取决于地图的复杂程度和瓦块方案,特别是比例尺的级数和比例尺的大小,比例尺最大的几层一般占据制作缓存的绝大部分时间。缓存最适合不经常变化的地图,如街道地图、影像地图、地形图以及其他基础底图。如果你的数据经常变化,可以采用定期更新缓存来保证瓦块的现势性,也可以不采用瓦块,而米用动态地图的方法。

算法和系统的优化

WebGIS应当仔细考虑软件算法和软、硬件系统的优化问题,以到达最佳性能。每一项GIS任务都有多种不同的实现方法,发现和采用最优的算法可以大大提高系统的性能。例如,在地图缓存不可行或者不是最优方案的情况下,动态绘制地图就显得必要,而动态生成地图一般是比较慢的。GIS数据库调试也是WebGIS的一个重要组成部分。一些基本的技术包括把地理数据统一成需要的投影(如Web墨卡托);创建索引,包括空间索引和属性索引;保持高效的表空间;清理表空间和服务器驱动盘的碎片;把索引甚至数据预先加载到内存中;及时更新数据库的统计信息(以便数据库在执行查询时能选择最佳的执行途径)。系统的配置方案需要考虑有多少用户、可能有多少人在同时使用这个系统、他们分别在利用这个系统做什么工作、系统的数据量有多大、数据量将来如何增长、项目要求的响应速度和可用性是多少,根据这些因素配置足够的软件和硬件。

故障转移和负载平衡

故障转移和负载平衡是两种通过冗余配置来提高系统可靠性和可用性的部署方式。故障转移是指当一个服务器发生故障或需要维修时,系统能自动或人工地将Web用户的请求重新指向到另一个服务器。负载平衡是把用户的请求分配给两个或多个服务器,让多个服务器共同分担系统的工作。大型WebGIS系统应当考虑故障转移和负载平衡。站点使用有一个Web网关来接受传人的请求,并把这些请求分配给多个GIS服务器,实现负载平衡。如果一个GIS服务器计算机变得不可用,Web网关可以将请求分配给余下的GIS服务器,这样形成一个“高可用性”的架构。

降低对互联网带宽的压力

Web服务接收客户端的请求并把结果返回给客户端,两者之间的数据传输,特别是地理数据的传输,往往需要相当大的互联网带宽;否则,Web服务的质量将受到影响。以下方法可以降低对互联网带宽的压力,从而可以提高Web服务的质量。

  • 利用浏览器端的缓存:浏览器端与服务器端的缓存不同。服务器端的缓存主要是预先生成地图瓦块或其他结果, 而浏览器端的缓存主要是指对那些已经下载到浏览器中的内容,不要再次下载。 浏览器端的缓存内容往往是以URL为标识的,因而REST风格的Web服务便于系统充分利用浏览器端的缓存来提高系统的性能。
  • 采用HTTP压缩:启用Web服务器的压缩选项,对Web服务的请求和结果进行压缩, 然后再传递,这样可以降低50%数据传输量,提高系统的传输效率。
  • 选择适当的数据格式:例如,在很多情况下,JS0N和AMF比XML更为轻巧,比XML更便于传输。

Web服务的安全保护

很多地理Web服务是公开的和免费的,但一些企业和政府等机构所发布的Web服务可能包含涉及本单位机密、涉及客户隐私或需要收费的内容,这些Web服务需要保护起来。如下是一些保护Web服务安全的基本技术。

  • 使用专网和虚拟专用网:在此方案中,Web服务及其用户共同处于某单位的内网中, 通过防火墙等方法与外网隔绝,外网用户无法访问。虚拟专用网(VPN)在互联网上创建一个安全的通道。 通过VPN,即使客户端不在单位办公室里,依然可以登录内网,使用内网上的Web服务。
  • 身份验证:通过用户角色和权限来保护Web服务。用户身份可以采用轻型目录访问协议(LDAP)、 Windows Active Directory等来管理。
  • 安全令牌(token):—个令牌是一个加密字符串,包含加密的授权信息。令牌通过申请或在用户登录时获得。
  • 安全超文本传输协议(HTTPS):HTTPS对Web服务和客户之间的传输数据加密,避免信息被截获和篡改。
  • 反向代理:以代理服务器来接受互联网上的连接请求,然后将请求转发给内部网络上的服务器, 并将从服务器上得到的结果返回给客户端。 这样,代理服务器就可以把GIS服务器隐藏在内网中,在GIS服务器和可能的恶意攻击之间提供了一道屏障, 提供了一个保护层。

地理空间Web服务保护

Web服务技术是分布式计算和GIS中的重要进展,是现代WebGIS的核心。地理空间Web服务是GIS应用从封闭的系统向开放的、松散耦合的架构转变的推动力,是建立地理聚合应用的组件、云GIS提供服务的一种重要形式,是下一代空间数据基础设施的基础,提供了一种基于地理信息的协同方式。政府和企业等可以把他们的数据和功能提供成Web服务,建设成一个Web服务生态体系,在此基础上可以孕育大量的具有新价值的应用,这种互相协作的形式可以使地理空间领域的投资取得最大化的社会效益。