开放地理空间联盟 (OGC) 的网络处理服务 (WPS) 规范是一种用于在 Web 上提供和执行地理空间处理的国际规范。发布具有 WPS 功能的地理处理服务时,可通过任何支持 WPS 的客户端访问数据。如果您不了解 WPS 并且想要在学习本教程之前了解更多信息,请参阅 WPS 服务。
本教程将引导您完成将地理处理服务发布到 WPS 客户端可访问的 ArcGIS Server 的全过程。为此,必须在 ArcGIS Desktop 中准备工具,运行工具并获得成功的结果,然后发布启用了 WPS 功能的地理处理结果。
开始学习本教程前
使用 ArcGIS Server 10.8.1 或更高版本可以从 ArcGIS Pro 或 ArcGIS Desktop 发布 Web 工具或地理处理服务。如果您的 ArcGIS Server 版本是 10.8 或更早版本,则只能从 ArcGIS Desktop 发布启用了 WPS 的地理处理服务::
- 有关如何配置 ArcGIS Server 站点的详细信息,请参阅配置单机部署。
- 要了解如何使 GIS 资源中引用的数据对该服务器可用,请参阅使数据可供 ArcGIS Server 访问。
从 ArcGIS Pro 发布 WPS 服务
在配置 WPS 服务之前,必须将分析发布到 ArcGIS Server。如果服务器是联合服务器,则将您的分析发布为 Web 工具。如果服务器是单机部署,则将其发布为地理处理服务。要发布为 Web 工具,请参阅创作和共享 Web 工具快速浏览。要发布为地理处理服务,请参阅创作和共享地理处理服务快速浏览。发布 Web 工具或地理处理服务后,请使用以下步骤配置 WPS 服务:
- 登录到 ArcGIS Server Manager
- 在默认服务选项卡上,找到并单击已发布服务的链接。
- 在功能选项卡上,选中 WPS 复选框。
选中 WPS 选项后,您将看到 WPS 服务的属性。可以配置名称、摘要和标题等属性。
在 ArcGIS Desktop 中发布 WPS 服务
与从 ArcGIS Pro 发布不同,您只能通过服务器连接将分析发布为 Web 工具或地理处理服务。但是,除了可以在发布后在 ArcGIS Server Manager 中配置 WPS 服务外,还可以在发布过程中配置该服务。详细的发布步骤如下所述:
在 ArcGIS Desktop 中准备地理处理工具
地理处理服务包含一个或多个任务。任务与地理处理工具在接受参数和返回结果方面较为相似;任务是 ArcGIS Server 的客户端用来描述在服务器上工作并返回结果的例程的术语。例如,您可以创建描绘基于土地利用和高程数据的分水岭的地理处理工具。然后发布启用了 WPS 功能的此工具并且在 Web 上 WPS 兼容的应用程序中用作任务。
主题通过 ModelBuilder 创作地理处理任务可指导您完成创建地理处理工具时应注意的事项。
运行此工具
发布此工具前,请先执行此工具并在结果窗口中获取成功的地理处理结果。为此,请使用以下步骤:
- 在目录树中,双击地理处理工具。
- 输入相应的参数值并单击确定运行工具。
工具成功执行后,将显示结果窗口。
发布结果
工具成功执行后,可以将地理处理工具发布为地理处理服务。在此过程中,将启用 WPS 功能,此功能使地理处理服务(和后续任务)兼容 OGC WPS。
- 右键单击地理处理结果,然后选择共享为 > 地理处理服务。
- 在共享为服务窗口中,选择发布服务。单击下一步。
- 在发布服务对话框中,单击连接到 ArcGIS Server 复选框 以创建一个到服务器的连接。
- 在添加 ArcGIS Server 窗口中,选择发布 GIS 服务。单击下一步。
- 对于服务器 URL,输入要连接的 ArcGIS Server 站点的 URL,例如 http://gisserver.domain.com:6080/arcgis。
- 在服务器类型下拉列表中选择 ArcGIS Server。
在发布过程中,将创建服务定义文件并将其临时存储到本地磁盘上。发布过程完成后,服务定义将上传到服务器并删除本地文件。考虑到本教程的目的,接受默认的过渡文件夹并继续。
- 输入用户名和密码。单击完成。
- 在发布服务窗口中,输入新的服务名称。名称长度不能超过 120 个字符,并且只能包含字母数字字符和下划线。单击下一步。
默认情况下,服务会发布到 ArcGIS Server 的根文件夹 (root)。也可将服务组织到根文件夹下的子文件夹中。
选择要将服务发布到其中的文件夹,或创建一个包含服务的文件夹。单击继续。 - 将打开服务编辑器对话框。您将使用服务编辑器 选择用户可对地理处理服务执行的操作,还可对服务器显示地理处理服务的方式进行精细的控制。单击功能选项卡。
- 默认情况下,启用地理处理。选择 WPS。
- 在服务编辑器 的左侧窗格中,单击 WPS。使用此窗格可选择如何配置 WPS 服务的属性。通过提供 WPS 服务属性,用户可对服务发布程序有更好的了解。
- URL 字段显示客户端用来访问 WPS 服务的 URL。URL 格式如下:http://gisserver.domain.com:6080/arcgis/services/folder/service/GPServer/WPSServer。
注:
复制并保存 WPS 服务 URL。您需要用这个 URL 来执行本教程中的其他步骤。
- 要使用系统生成的服务功能文件配置 WPS 服务,请使用默认的在下面输入服务属性选项。名称、标题和在线资源字段会自动填充,不应对其进行修改。也可使用列表中的字段填充其他属性。有关详细信息,请参阅可用的 WPS 服务属性。
- 要配置 WPS 服务以使用外部功能文件,则需选择使用外部功能文件。要使用此选项,您必须已创建 WPS 功能文件。
- 命名空间和前缀是用来区分 WPS 进程与其他 WPS 进程的唯一属性。这些字段自动填充,不应对其进行修改。
提示:
有关如何使用服务编辑器设置地理处理服务属性的提示和最佳做法,请参阅地理处理服务设置:常规。有关如何以最佳方式配置服务以进行部署的信息,请参阅调整和配置服务。
- URL 字段显示客户端用来访问 WPS 服务的 URL。URL 格式如下:http://gisserver.domain.com:6080/arcgis/services/folder/service/GPServer/WPSServer。
- 单击分析按钮 。该操作将对结果进行检查,看其是否能够作为 WPS 服务发布到服务器。
提示:
要在配置 WPS 服务时获得更大的查看区域,可单击服务编辑器顶部的折叠按钮 。
- 在准备窗口的错误部分 中修复所有错误。必须先完成此操作,然后才能将结果发布为 WPS 服务。另外,您还可以修复警告和通知消息,以进一步完善服务的性能和显示。有关解决这些问题的详细信息,请参阅分析 GIS 资源。
注:
可将文件夹和地理数据库注册到 ArcGIS Server 站点,从而确保服务器可识别并使用数据。如果继续以下步骤,那么工具所引用来自取消注册 的文件夹或地理数据库的任何数据都将在发布时复制到服务器。这是一种预防性措施,可确保服务器能够访问服务所使用的所有数据。有关将文件夹或地理数据库注册到 ArcGIS Server 站点的详细说明,请参阅使用 ArcGIS Desktop 或 ArcGIS Pro 将数据注册到 ArcGIS Server。
- 还可以在服务编辑器中单击预览。这样您便可以预览在 Web 上查看数据时工具对话框的外观。
- 修复了地理处理模型中的错误后,请单击发布 。
获取并描述 WPS 服务
发布 WPS 服务后,便可以在任何支持 WPS 1.0.0 的客户端中使用它。Web 浏览器是 WPS 服务最简单的客户端之一。您可以通过 HTTP 请求信息,响应或者异常会通过浏览器返回。
请按照以下步骤通过 Web 浏览器访问 WPS 服务:
- 打开 Web 浏览器。
- 执行 GetCapabilities 和 DescribeProcess 请求,如以下部分中所示。
GetCapabilities
此请求以 GML 格式通过服务返回所有元数据并处理可用数据。要使用 GetCapabilities 操作,请复制 WPS 服务 URL 并将其粘贴到地址栏中,然后在 URL 末尾添加 ?SERVICE=WPS&VERSION=1.0.0&REQUEST=GetCapabilities。
URL 示例:https://gisserver.domain.com:6443/arcgis/services/my_wps/GPServer/WPSServer?SERVICE=WPS&VERSION=1.0.0&REQUEST=GetCapabilities
URL 示例:https://gisserver.domain.com/webadaptor//services/my_wps/GPServer/WPSServer?Service=WPS&Version=1.0.0&Request=GetCapabilities
DescribeProcess
对 DescribeProcess 请求的响应包含提供的特定过程详细信息,其基本描述了过程的唯一标识符和标识符、类型以及过程的每个强制或可选输入/输出参数的方案。WPS 客户端需要此信息来发布后续执行请求以进行实际的地理空间处理。要使用 DescribeProcess 操作,请复制 WPS 服务 URL 并将其粘贴到地址栏中,然后在 URL 末尾添加 ?SERVICE=WPS&VERSION=1.0.0&REQUEST=DescribeProcess。
URL 示例:https://gisserver.domain.com:6443/arcgis/services/my_wps/GPServer/WPSServer?SERVICE=WPS&VERSION=1.0.0&REQUEST=DescribeProcess&Identifier=output_feature_layer
URL 示例:https://gisserver.domain.com/webadaptor/services/my_wps/GPServer/WPSServer?Service=WPS&Version=1.0.0&Request=DescribeProcess&Identifier=output_feature_layer
执行 WPS 服务处理
要在 Web 上执行地理空间处理,可通过 WPS 客户端发送执行请求到 WPS 服务。执行请求通常载有 WPS 进程的每个输入和输出参数的值或参考,也可指定 WPS 服务应如何发回进程的结果。对执行请求的响应包含空间处理的嵌入式结果,可配置为返回最近的空间处理作业的结果。
通常可在 WPS 客户端中通过 HTTP POST 请求调用执行操作。以下是发送到 URL 示例:https://gisserver.domain.com:6443/arcgis/services/my_wps/GPServer/WPSServer(或等效 URL 示例:https://gisserver.domain.com/webadaptor/services/my_wps/GPServer/WPSServer?Service=WPS&Version=1.0.0&Request=Execute&Identifier=SampleProcessId)的执行请求示例:
<wps:Execute xmlns:wps="http://www.opengis.net/wps/1.0.0" service="WPS" version="1.0.0" language="en-US">
<ows:Identifier xmlns:ows="http://www.opengis.net/ows/1.1">SampleProcessId</ows:Identifier>
<wps:DataInputs>
<wps:Input>
<ows:Identifier xmlns:ows="http://www.opengis.net/ows/1.1">Input_String</ows:Identifier>
<wps:Data>
<wps:LiteralData dataType="xs:string">abcdefg</wps:LiteralData>
</wps:Data>
</wps:Input>
</wps:DataInputs>
<wps:ResponseForm>
<wps:ResponseDocument storeExecuteResponse="true" lineage="true" status="false">
<wps:Output schema="http://www.w3.org/TR/xmlschema-2/#string" asReference="false">
<ows:Identifier xmlns:ows="http://www.opengis.net/ows/1.1">Output_String</ows:Identifier>
</wps:Output>
</wps:ResponseDocument>
</wps:ResponseForm>
</wps:Execute>
有关 WPS 请求操作及其参数的详细信息,请参阅 OGC WPS 1.0.0 规范。Esri 还提供了开放标准网页,详细介绍了 ArcGIS 中对 OGC 服务的支持。