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

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

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

  • Web地图服务器(WMS)

  • Web要素服务器(WFS)

  • Web覆盖服务器(WCS)

2.4.1. 基于Web服务的互操作性

互操作性是让来自不同制造商的软件和数据协同工作。用外行的话说,我可以调用你的数据和函数,你也可以调用我的数据和函数。地理信息系统互操作的实现技术经历了多个阶段,实现互操作的技术主要经历了文件格式转换、直读插件和Web服务标准等阶段。

|----------------------|     |--------------------------|     |---------------------|
|File format conversion| --> |Plugins for direct reading| --> |Standard Web Services|
|----------------------|     |--------------------------|     |---------------------|

早期的互操作性通常涉及数据转换,例如,将一个软件产品的数据转换为另一个软件产品的数据格式,或定义标准文件格式。不同的软件产品需要能够输入和输出这种格式。该插件可用于直接读写其中一个软件插件中的数据,即可用于直接读写另一个软件插件中的数据。近年来,互操作技术已逐渐转向Web服务标准的层面。这种方法不仅避免了数据格式的导出和导入,也避免了在本地安装插件工具的麻烦。不同的制造商可以根据行业的Web服务标准独立开发自己的产品。只要他们产品的Web服务接口符合一定的行业标准,他们软件的数据和功能就可以通过Web服务相互调用,实现互操作性。

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

以OGC的WMS标准为例,由MapServer或Geoserver发布的WMS在线地图服务不仅可供Esri产品使用,还可供支持WMS标准的客户端(如Google Earth、NASA WorldWind、OpenLayers和Gaia)使用。每个客户端都知道应该在请求中发送什么参数,并且可以期待服务器以什么格式响应。

2.4.2. Web服务的标准

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

(1)Web地图服务(WMS)

WMS是OGC为在互联网上制作地图而开发的Web服务规范。WMS生成的地图通常以图像格式表示,如PNG、GIF或JPEG。任何声称符合WMS规范的Web服务都必须支持以下两个必需的请求:

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

GetMap:根据客户端的GetMap请求参数制作地图。GetMap请求中需要的参数包括要显示的层、地图的长度和宽度以及空间坐标系。一些WMS还支持样式化层定义(样式化层描述符,SLD),允许用户在URL请求中动态指定每个数据层的显示符号。返回的结果通常是PNG、GIF和JPEG等栅格格式的图像。

WMS规范还提供了几个可选请求,例如

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

  • GetLegendGraphic:可以根据客户端指定的层制作并返回该层的图例。返回格式通常为PNG、GIF和JPEG图像。

WMS规范被许多组织广泛使用和采用。例如,美国地质调查局(USGS)提供了一系列WMS服务,包括国家大地图WMS服务、国家地图集运输WMS服务、国家水文数据集WMS服务和美国实时火灾(主要指野火)WMS服务。

美国国家航空航天局地球观测系统(NEO,http://neo.sci.gsfc.nasa.gov/Search.html)WMS(http://neowms.sci.gsfc.nasa.gov/wms/wms)等方法动态提供全球气候和环境变化的多时间序列图像,包括海洋表面温度、陆地表面温度、植被指数、降水、一氧化碳浓度、地表覆盖类型以及地表所接收的太阳辐射量等。

(2)Web地图切片服务(WMTS)

WMTS是一种用于发布OGC制定的切片地图的Web服务规范。WMTS不同于WMS,两者相辅相成。

WMS主要是一种动态地图服务,即服务器每次收到客户端请求都会立即生成地图,特别适合数据不断更新的地图服务。WMTS地图是服务器预制的切片。该方法可以提高Web服务的性能和可伸缩性,特别适合数据相对静态、不再频繁更新或更新的数据。

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

  • 获取服务的元数据。

  • GetTile:获得切片。

  • GetFeaturelnfo:可选,获取点击的功能信息。

(3)Web基本服务(WFS)

WFS是由OGC开发的,用于处理互联网上的矢量地理元素和数据。它包括Web服务规范,如检索、插入、更新和删除(OGC,2005)。WFS定义了以下主要操作。

  • 获取服务的数据。

  • DescribeFeatureType:获取WFS支持的要素类型的结构。

  • GetFeature:获取匹配查询条件的地理要素及其属性。

  • LockFeature:请求服务器在事务期间锁定一个或多个地理要素。

  • 事务:请求服务器创建、更新或删除地理要素。

以上操作是必需的和可选的。根据支持的操作,WFS可以分为以下两个主要类别。

  • 基本WFS:只支持GetCapability、DescribeFeatureType、GetFeature操作,只能查询和读取元素,所以也称为只读WFS。

  • 事务性WTFS(TransactionWFS或WFS-T):除了基本WFS支持的操作外,还支持事务操作。它不仅可以支持地理要素的读取,还可以支持对地理要素的在线编辑和处理,也称为读写WFS。

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

(4)Web覆盖服务(WCS)

WCS是由OGC开发的用于发布栅格地理数据的Web服务规范。它返回的栅格数据是原始数据,例如数字高程中的地面高程值和卫星图像中的光谱值。WMS则不同,因为WMS返回的可视化图像已失去其原始值。

WCS和WFS之间的区别在于,WFS用于矢量数据,而WCS用于栅格数据。WCS规范规定了以下操作(OGC,2006b):

  • GetCapables:返回服务的元数据。

  • DescribeCoverage:返回服务中网格数据层的详细描述,如时间信息、覆盖范围、坐标系和支持的输出格式等。

  • GetCoverage:服务器根据客户端指定的数据层、时空范围、坐标系、输出格式、插补方法和数据切割转换进行操作。

国家冰雪数据中心(NSIDC)为极地冰冻圈提供WCS服务。用户可以获得有关结冰区域的数据,包括每月的海洋结冰和集中区域、积雪覆盖率和积雪深度等值线。支持关于极地冰盖融化和气候变化的研究(Maurer,2007)。

(5)Web处理服务(WPS)

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

(六)其他Web服务标准

Web目录服务(CSW):

目录服务是实现地理空间信息共享的重要技术。CSW支持搜索和发布地理空间元数据,允许用户查询元数据以发现他们需要的地理数据和服务,并允许提供商发布和更新元数据。CSW有两种类型:只读CSW和事务型CSW。只读CSW支持GetCapables、DescribeRecord、GetRecords、GetRecordByld、GetDomain等操作,仅支持元数据查询和读取。事务性CSW支持元数据读取和写入,允许用户通过 transactionharvest 操作发布、编辑和删除元数据(OGC,2007b)。ArcGIS Geoportal Server等产品提供了CSW接口。

开放位置服务(OpenLS):

这是OGC为基于位置的服务(LBS;见第5章)提供的一系列Web服务规范,包括黄页搜索、跟踪移动电话用户的位置和导航服务(OGC,2004)。

传感器网络集成框架(SWE):

SWE框架包括一系列Web服务标准:传感器观测服务(SOS)、传感器规划服务(SPS)和传感器警报服务(SAS)。这些标准使用户能够从传感器网络发现和获取传感器数据。

2.4.4. Web服务的优化

本节介绍如何提高Web的服务质量(Qos)。服务质量主要包括以下重要指标。

  • 性能:描述系统的响应效率,通常通过响应时间来衡量

  • 可伸缩性:描述系统能否在用户数量增加的情况下保持高性能,通常以同时支持的用户数量来衡量

  • 可用性:描述系统的可访问性和可操作性,通常以系统运行时间的百分比表示。系统的可用性是 99.99% 则系统每天最多只能停机9秒(包括故障导致的意外停机和系统维护所需的人为停机)

  • 安全:描述系统的机密性和防御能力。

预处理(缓存)

预处理,也称为缓存,是指系统预先生成地图或执行其他任务,并存储结果以供以后使用,而不是在系统运行和接收用户请求时实时生成地图或执行任务。

如图所示,如果有缓存,Web服务器可以快速从缓存中检索结果,而不需要从数据库中读取数据,并实时完成映射等处理。缓存减轻了地理信息系统服务器和数据库服务器的负担,是提高WebGIS服务质量的有效途径。

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

_images/imgvze41.png

Web访问地图切片

地图缓存,也称为地图切片或切片,计划根据一系列比例生成一系列地图切片,以便快速显示。

_images/imgvze42.png

地图切片

进行地图缓存的主要原因是:

  • 提高系统的性能、可扩展性和可用性:缓存减轻了服务器的负担,用户可以快速响应,节省了用户时间。

  • 提高制图质量:可以使用高级符号和复杂的层来生成高质量的地图。

  • 行业惯例:缓存在当前的Web地图应用中被广泛使用,这已经成为行业的普遍做法。它也改变了用户对WebGIS的期望,他们期待所有的WebGIS都能提供更好的用户体验,比如缓存。

在创建缓存之前,需要进行一些规划,例如,使用哪个坐标系以及采用哪个切片方案。平铺方案包括比例级别、每个级别的比例、平铺大小(例如256px x 256px)、平铺起始坐标、平铺区域和图像格式(例如JPEG、PNG 8、PNG 24或PNG 32)。

如果地图将与ArcGIS Online、Google地图或Microsoft Bing地图一起使用,则地图应与它们位于相同的坐标系中,即WGS 84 Web墨卡托,并且切片方案应与它们匹配。

缓存的创建可能需要很长时间才能完成,具体取决于地图和切片方案的复杂性,特别是比例尺系列和比例尺大小。具有最大比例的层通常占用创建缓存的大部分时间。

缓存最适合不经常更改的地图,例如街道地图、图像地图、地形图和其他底层底图。如果数据经常更改,可定期更新缓存以确保切片的当前状态,也可以使用不带切片的动态地图方法。

算法和系统的优化

WebGIS应认真考虑软件算法和软硬件系统的优化,以达到最佳性能。每个GIS任务都有许多不同的实现方法。发现并采用最优算法可以极大地提高系统的性能。例如,当地图缓存不可行或不是最优解决方案时,需要动态绘制地图,但动态生成地图通常速度较慢。地理信息系统数据库调试也是WebGIS的重要组成部分。

一些基本技术包括将地理数据统一到所需的投影中(例如Web墨卡托);创建索引,包括空间和属性索引;维护高效的表空间;清理表空间和服务器驱动器的碎片;将索引甚至数据预加载到内存中;及时更新数据库统计数据(以便数据库在执行查询时可以选择最佳执行路径)。系统的配置计划需要考虑有多少用户,有多少人同时使用系统,他们对系统做了什么,系统的数据量有多大,未来数据量将如何增长,项目要求的响应速度和可用性,根据这些因素配置多少软件和硬件。

故障转移和负载平衡

故障转移和负载均衡是通过冗余配置提高系统可靠性和可用性的两种部署方式。故障转移是指当一台服务器出现故障或需要维护时,系统可以自动或手动将Web用户的请求重定向到另一台服务器。负载平衡是将用户请求分配给两个或多个服务器,允许多个服务器共享系统的工作。大型WebGIS系统应该考虑故障转移和负载平衡。该站点使用Web网关来接受传入的请求,并将这些请求分发到多个GIS服务器,以实现负载平衡。如果一台地理信息系统服务器计算机变得不可用,Web网关可以将请求分配给其余的地理信息系统服务器,从而创建一个“高可用性”架构。

减轻互联网带宽压力

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

  • 利用浏览器端缓存:浏览器端缓存不同于服务器端缓存。服务器端缓存主要用于预先生成地图分片或其他结果。浏览器端缓存主要是指已经下载到浏览器的内容,不再下载。浏览器端的缓存内容通常通过URL来标识,因此REST风格的Web服务使得系统可以很容易地充分利用浏览器端的缓存来提高系统的性能。

  • 使用HTTP压缩:启用Web服务器的压缩选项,将Web服务的请求和结果压缩后再传输,可以减少50%的数据传输量,提高系统的传输效率。

  • 选择合适的数据格式:例如,在许多情况下,JS0N和AMF比XML轻,比XML更容易传输。

Web服务的安全防护

许多地理Web服务是公开和免费的,但一些企业和政府机构发布的Web服务可能包含涉及公司机密、客户隐私或收费的内容,这些Web服务需要受到保护。以下是保护Web服务的一些基本技术。

  • 内网和虚拟专用网的使用:在该方案中,Web服务及其用户位于某单位的内网中,并通过防火墙等方法与外网隔离,使外网用户无法访问。虚拟专用网络(VPN)在Internet上创建安全隧道。通过VPN,即使客户不在单位的办公室,仍然可以登录到内部网,使用内部网上的Web服务。

  • 身份验证:使用用户角色和权限保护Web服务。可以使用轻量级目录访问协议(LDAP)、Windows Active Directory等来管理用户身份。

  • 安全令牌:令牌是包含加密授权信息的加密字符串,令牌通过应用程序或在用户登录时获得。

  • 安全超文本传输协议(HTTPS):HTTPS对Web服务和客户之间传输的数据进行加密,以防止信息被截获和篡改。

  • 反向代理:使用代理服务器接受Internet上的连接请求,将请求转发到内部网络上的服务器,并将从服务器获取的结果返回给客户端。通过这种方式,代理服务器可以将地理信息系统服务器隐藏在内部网中,在地理信息系统服务器和可能的恶意攻击之间提供屏障,提供一层保护。

_images/imgvze43.png

地理空间Web服务保护

Web服务技术是分布式计算和地理信息系统的重要进展,是现代WebGIS的核心。地理空间Web服务是推动地理信息系统应用从封闭系统向开放、松散耦合体系结构转变的驱动力。它是构建地理融合应用组件和为云地理信息系统提供服务的重要形式。它是下一代空间数据基础设施的基础,提供了一种基于地理信息的协作方式。政府和企业可以将其数据和功能作为Web服务提供,并构建Web服务生态系统。在此基础上,可以构思出大量具有新价值的应用。这种相互合作的形式可以最大限度地实现地理空间领域投资的社会效益。