82 lines
3.0 KiB
Markdown
82 lines
3.0 KiB
Markdown
---
|
||
title: OWS-OGC Web 服务通用标准
|
||
date: 2020-03-25
|
||
author: ac
|
||
tags:
|
||
- OWS
|
||
categories:
|
||
- GIS
|
||
---
|
||
|
||
## OWS规范
|
||
|
||
**OWS(OGC Web Service Common Implementation Specification)**
|
||
|
||
在制定Web服务体系规范时,为了避免在每个规范中重复规定或使用一些操作,因此将这些共有的接口实现规范和标准参考抽离出来制定了OWS([OGC Web Service](http://portal.opengeospatial.org/files/?artifact_id=38867)),然后在每个规范中引用该规范的相关部分。这些标准目前包括:
|
||
|
||
- Web地图服务(WMS)
|
||
- Web要素服务(WFS)
|
||
- Web栅格服务(WCS)
|
||
|
||
这些公共方面主要是操作请求和响应中使用的一些参数和数据结构。当然,每个这样的实现标准都必须指定该接口的其他方面,包括指定所有操作请求和响应所需的所有附加参数和数据结构。例如获取服务中所支持的操作和服务元数据的`Getcapabilities`操作,指定了该操作的`KVP`、`XML`、`SOAP`格式的请求参数规范以及响应的数据格式和异常处理的规则。
|
||
|
||
### 1.HTTP 请求规则
|
||
|
||
OWS可以通过GET和POST两种方式对服务进行请求。而请求的参数编码也有两种:
|
||
|
||
- 键值对(Key-value-pair KVP)
|
||
- XML对象(XML)
|
||
|
||
组合情况如下:
|
||
|
||
| type | get | post |
|
||
| ---- | ------------- | -------------------------------------- |
|
||
| KVP | 非MIME(URL) | MIME:application/x-www-form-urlencoded |
|
||
| XML | 不支持 | MIME:text/xml |
|
||
|
||
### 2.HTTP 响应规则
|
||
|
||
服务处理完请求后,生成结果或异常信息,然后以MIME的方式返回客户端。
|
||
|
||
### 3.SOAP
|
||
|
||
在OWS服务和OWS服务之间可以采用SOAP(Simple object access protocol,简单对象访问协议)消息进行数据交互(POST)。
|
||
|
||
SOAP 消息是符合 SOAP 规范的 XML,通常用于Internet(特别是使用HTTP)上的通信应用程序之间进行消息传输。
|
||
|
||
|
||
|
||
备注:
|
||
简单对象访问协议(SOAP)是用于应用程序之间通信的通信协议。
|
||
它定义了一种格式,用于通过Internet(特别是使用HTTP)在通信应用程序之间发送消息。
|
||
Soap是平台无关的,语言无关的,并且SOAP消息是使用XML编码的。
|
||
这意味着SOAP提供了一种使用不同的技术和编程语言在不同操作系统上运行的应用程序之间进行通信的方法。
|
||
|
||
SOAP消息是包含以下元素的普通XML文档:
|
||
|
||
1. 必需的Envelope元素,用于将XML文档标识为SOAP消息
|
||
2. 包含标题信息的可选Header元素
|
||
3. 必需的Body元素,包含通话和响应信息
|
||
4. 可选的Fault元素,提供有关在处理消息时发生的错误的信息
|
||
|
||
```xml
|
||
<?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>
|
||
```
|
||
|