WPS-简介¶
介绍¶
OGC Web处理服务(WPS)接口标准指定了一个标准接口,该接口提供了对预定义进程的访问,并提供了可以实例化、控制和监视处理作业的作业控制操作。在这种情况下,术语过程指的是生成新数据或将某些输入数据转换为输出数据的任何算法、计算或模型。WPS支持执行计算过程,这些过程通常结合栅格、矢量和/或覆盖数据来生成新的栅格、矢量和/或覆盖数据。WPS提供的输入、处理和输出也可以是非空间的。
背景¶
- 历史
WPS版本1.0.0于2007年6月发布。版本2.0.1于2015年1月发布。
- 版本
2.0.1是当前最新版本
- 测试套件
- 测试套件可用于:
`WPS 1.0.0<https://github.com/opengeospatial/ets-wps10>
- 启动位置
实现可以在OGC数据库中找到。这里<http://www.opengeospatial.org/resource/products/byspec>
使用¶
WPS标准使算法、计算或计算模型能够通过可配置的接口提供。该标准允许短时间运行的进程被同步调用,而长时间运行的进程可以选择性地异步调用。这意味着对于短时间运行的进程,WPS客户机可以等待WPS完成一个进程并返回结果。但是,对于长时间运行的进程,客户机可以选择在以后的某个时间点返回到WPS来检查作业是否完成,如果作业完成,则客户机可以检索结果。
WPS服务可以用作独立的处理引擎,也可以用作包含两个或多个WPS服务的服务链的一部分。它们也可以作为工作流的一部分使用,工作流可能包括非WPS和非ogcweb服务组件。该标准并没有限制WPS可以用于哪些应用程序,也没有限制它可以绑定到什么应用程序。因此,WPS已经成功地与业务流程建模技术进行了很好的集成,如下图所示(图片来源:OGC文档09-053r5)。

上图显示了在OGC测试床系列的第5阶段中使用业务流程执行语言(BPEL)和WPS实现的工作流。工作流包括用于数据融合和质量评估的组件。最近使用的业务流程模型(bpm)和其他业务流程表示法(bpm)也有使用。
与其他OGC标准的关系¶
OGC Web功能服务接口标准(WFS):WFS可以用来提供特性数据,作为WPS提供的进程的输入。
OGC Web Coverage服务接口标准(WCS):WCS可用于提供覆盖数据,如栅格图像,作为WPS提供的进程的输入。
OGC地理标记语言(GML)编码标准:GML可以用于编码作为输入提供给WPS的数据,也可以用于编码作为WPS输出的数据。
WPS操作概述¶
WPS指定了许多不同的操作,所有服务器都需要支持这些操作:
- GetCapabilities
返回列出WPS服务提供的进程的服务元数据。
- DescribeProcess
返回由WPS提供的进程的详细描述,包括输入和输出的描述。
- 执行
运行由服务器实现的指定进程,使用提供的输入参数值并返回生成的输出值。
此外,如果服务器提供异步处理功能,它还可以选择提供以下操作:
- GetStatus
返回异步执行的作业的状态。
- GetResult
返回异步调用的已完成处理作业的结果。
- 解除
允许客户端终止异步处理作业。
例子¶
WPS演示服务器 提供多个过程,包括缓冲、凸包计算和坐标变换。
下面显示了功能文档的摘录。请注意,ProcessSummary元素包含一个标题和标识符,用于标识流程。在这种情况下,将通告一个特性缓冲操作。特征缓冲计算距离要素指定距离的区域。提供此过程摘要是为了让用户和软件客户端都知道单个进程提供了什么功能。
<wps:ProcessSummary processVersion="1.1.0" jobControlOptions="sync-execute async-execute" outputTransmission="value reference">
<ows:Title>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Title>
<ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
<ows:Metadata xlin:role="Process description" xlin:href="http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService?service=WPS&request=DescribeProcess&version=2.0.0&identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm"/>
</wps:ProcessSummary>
客户端使用¶
客户机需要知道端点,即WPS服务的位置,以便能够与服务器交互。用于向发送请求的端点可以从GetCapabilities响应获取。
The link to the GetCapabilities request
一旦收到GetCapabilities响应,客户机就可以检索其中一个进程的详细描述。对于上述示例服务器,可以使用以下请求检索缓冲操作的详细描述:
DescribeProcess响应包含有关进程期望的输入和输出类型的详细信息。客户机使用此信息创建可用于调用功能缓冲进程的执行请求。然后可以将执行请求发送到<http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService>通过HTTP Post方法。
<wps:Execute xmlns:wps="http://www.opengis.net/wps/2.0"
xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wps/2.0 ../wps.xsd" service="WPS"
version="2.0.0" response="document" mode="sync">
<ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
<wps:Input id="data">
<wps:Reference schema="http://schemas.opengis.net/gml/3.1.1/base/feature.xsd" xlink:href="http://geoprocessing.demo.52north.org:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=topp:tasmania_roads&SRS=EPSG:4326&OUTPUTFORMAT=GML3"/>
</wps:Input>
<wps:Input id="width">
<wps:Data><wps:LiteralValue>0.05</wps:LiteralValue></wps:Data>
</wps:Input>
<wps:Output id="result" transmission="value"/>
</wps:Execute>
Execute请求包含子元素,这些子元素标识要调用的流程、提供的输入(以及它们的值)和要生成的输出。进程的响应返回的数据可以由桌面地理信息系统(GIS)呈现,也可以转发到另一个ogcwps进行进一步处理。