2.6. OWS-OGC Web 服务通用标准¶
2.6.1. 概述¶
OWS(OGC Web Service Common Implementation Specification)当前版本是 2.0.0 。 OWS 描述了 Web 服务通用的一些接口规范,包括请求和响应的内容、请求的参数和编码等。 目前,OWS 包括 WFS、WMS、WCS,因此, 后续的 WFS-要素 Web 服务 、 WMS-地图 Web 服务 、 WCS-栅格 Web 服务 都和本章节有关系。
2.6.2. 服务涉及的基本元素¶
1. HTTP 请求规则¶
OWS 可以通过 GET 和 POST 两种方式对服务进行请求。 而请求的参数编码也有两种:一种是键值对应(KVP (Key-Value Pair) [1] )、另一种是XML 对象(XML)。它们的组合情况如下:
因此,比如某 OWS 服务的 GetCapabilities 操作,可能会有以下 [2] 种请求方式, 当然,不同种类的服务并不一定实现所有的这些组合:
2. HTTP 响应规则¶
服务处理完请求后,生成结果或异常信息,然后以 MIME 的方式返回客户端。
3. SOAP¶
在OWS服务和OWS服务之间可以采用SOAP消息进行数据交互(POST)。 SOAP 消息是符合 SOAP 规范的 XML,它需要包括 SOAP 信封、SOAP 消息头、SOAP 消息体等组成部分:
<?xml version="1.0"?>
<soap:Envelope xmlns:soap=http://www.w3.org/2003/05/soap-envelope
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Header>
...
...
</soap:Header>
<soap:Body>
...
...
<soap:Fault>...</soap:Fault>
</soap:Body>
</soap:Envelope>
2.6.3. GetCapabilities 操作¶
每个 OWS 服务都包括 GetCapabilities 操作,这个操作返回这个服务的元数据信息。 GetCapabilities 包括 2 个必须的参数和若干可选参数,这些参数的取值见下表:
参数 |
是否必须 |
取值(示例) |
SERVICE |
是 |
WFS 或 WMS 或 WCS |
REQUEST |
是 |
GetCapabilities |
ACCEPTVERSIONS |
1.1.0,1.0.0 |
|
SECTIONS |
Contents |
|
UPDATESEQUENCE |
||
ACCEPTFORMATS |
text/xml |
|
ACCEPTLANGUAGES |
en-US,zh-CN |
以下是一个 WFS 使用 KVP 格式的 GetCapabilities 操作:
http://www.someserver.com/wfs?
SERVICE=WFS&
REQUEST=GetCapabilities
以下是一个 WCS 使用 KVP 格式的 GetCapabilities 操作:
http://hostname:port/path?
SERVICE=WCS&
REQUEST=GetCapabilities&
ACCEPTVERSIONS=1.0.0 0.8.3&
SECTIONS=Contents&
UPDATESEQUENCE=XYZ123&
ACCEPTFORMATS=text/xml&
ACCEPTLANGUAGES=en-CA fr-CA
以下是一个 WCS 使用 XML 格式的 GetCapabilities 操作:
<?xml version="1.0" encoding="UTF-8"?>
<GetCapabilities xmlns="http://www.opengis.net/ows/2.0"
xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/ows/2.0 fragmentGetCapabilitiesRequest.xsd"
service="WCS" updateSequence="XYZ123" >
<AcceptVersions>
<Version>1.0.0</Version>
<Version>0.8.3</Version>
</AcceptVersions>
<Sections>
<Section>Contents</Section>
</Sections>
<AcceptFormats>
<OutputFormat>text/xml</OutputFormat>
</AcceptFormats>
<AcceptLanguages>
<Language>en-CA</Language>
<Language>fr-CA</Language>
</AcceptLanguages>
</GetCapabilities>
2.6.4. 其它一般操作¶
除了 GetCapabilities,不同的 OWS还包括其它不同操作以实现各自的功能,这些操作都包括以下 3 个必选参数和其它可选参数。当然,不同的操作还包括自身功能有关的其它必选参数和可选参数。
参数 |
是否必须 |
取值(示例) |
SERVICE |
是 |
WFS 或 WMS 或 WCS |
REQUEST |
是 |
GetMap |
VERSION |
是 |
1.3.0 |
ACCEPTLANGUAGES |
en-US,zh-CN |
以下是一个 WCS 使用 KVP
格式的 GetCoverage
操作:
http://hostname:port/path?
SERVICE=WCS&
REQUEST=GetCoverage&
VERSION=1.0.0&
AcceptLanguages=en fr
Footnotes