教程:发布 WPS 服务
开放地理空间联盟 (OGC) 的网络处理服务 (WPS) 规范是一种用于在 Web 上提供和执行地理空间处理的国际规范。发布具有 WPS 功能的地理处理服务时,可通过任何支持 WPS 的客户端访问数据。如果您不了解 WPS 并且想要在学习本教程之前了解更多信息,请参阅 WPS 服务。
本教程将引导您完成将地理处理服务发布到 WPS 客户端可访问的 ArcGIS Server 的全过程。为此,需要在 ArcGIS for Desktop 中准备工具,运行工具并获得成功的结果,然后发布启用了 WPS 功能的地理处理结果。
开始学习本教程前
如果您刚刚安装了 ArcGIS Server,那么在 ArcMap 中连接到服务器并发布服务之前,需要完成一些准备工作:
- 有关如何配置 ArcGIS Server 站点的详细信息,请参阅本帮助系统的安装后配置入门部分。
- 要了解如何使 GIS 资源所引用的数据对于服务器可用,请参阅主题使数据能被 ArcGIS Server 访问。
在 ArcGIS for Desktop 中准备地理处理工具
地理处理服务包含一个或多个任务。任务与地理处理工具相比,在接受参数和返回结果方面实际上没有区别;任务是 ArcGIS Server 用来描述在服务器上工作并返回结果的例程。例如,您可能创建描绘基于土地利用和高程数据的分水岭的地理处理工具。然后发布启用了 WPS 功能的此工具并且在 Web 上 WPS 兼容的应用程序中用作任务。
主题通过模型构建器制作地理处理任务介绍了创建地理处理工具时应注意的事项。准备好地理处理工具后,进入下一部分。
运行工具
发布前,需要执行工具并在结果 窗口中获得成功的地理处理结果。为此,请执行以下步骤:
- 在目录树中,双击地理处理工具。
- 输入合适的变量并单击确定。
工具成功执行后,将显示结果 窗口。
发布结果
在结果 窗口中获得成功地理处理结果后,现在可将地理处理工具发布为地理处理服务。在此过程中,将启用 WPS 功能,此功能使地理处理服务(和后续任务)兼容 OGC WPS。
- 右键单击地理处理结果,然后选择共享为 > 地理处理服务。
- 在共享为服务 窗口中,选择发布服务。单击下一步。
- 在发布服务对话框中,单击连接到 ArcGIS Server 以创建到服务器的新连接。
- 在添加 ArcGIS Server 窗口中,选择发布 GIS 服务。单击下一步。
- 对于服务器 URL,输入要连接的 ArcGIS Server 站点的 URL。例如,http://myserver:6080/arcgis。
- 在服务器类型下拉列表中选择 ArcGIS Server。
- 在发布过程中,将创建服务定义文件并将其临时存储到本地磁盘上。发布过程完成后,服务定义将上传到服务器并删除本地文件。考虑到本教程的目的,接受默认的过渡文件夹并继续。
- 如果服务器管理员已为您的站点启用了安全功能,请输入用户名和密码。单击完成。
- 还可以在发布服务 窗口中,输入新的服务名称。名称长度不能超过 120 个字符,并且只能包含字母数字字符和下划线。单击下一步。
- 默认情况下,服务会发布到 ArcGIS Server 的根文件夹下。也可将服务组织到根文件夹下的子文件夹中。选择要将服务发布到其中的目标文件夹,或创建一个新文件夹存储服务。单击继续。
- 服务编辑器 随即显示。您将使用服务编辑器 选择用户可对地理处理服务执行的操作,还可对服务器显示地理处理服务的方式进行精细的控制。单击服务能力选项卡。
- 默认情况下,启用地理处理。选择 WPS。
- 在服务编辑器 的左侧窗格中,单击 WPS。使用此窗格可选择如何配置 WPS 服务的属性。通过提供 WPS 服务属性,用户可对服务发布程序有更好的了解。
- URL 字段显示客户端用来访问 WPS 服务的 URL。URL 格式如下:http://<服务器名称>:<端口号>/arcgis/services/<文件夹名称(如果适用)>/<服务名称>/GPServer/WPSServer。注:
复制并保存 WPS 服务 URL。您需要用这个 URL 来执行本教程中的其他步骤。
- 如果要使用系统生成的服务能力文件配置 WPS 服务,则使用默认的在下面输入服务属性选项。“名称”、“标题”和“在线资源”字段会自动填充,不应对其进行修改。也可使用列表中的字段填充其他属性。有关详细信息,请参阅可用的 WPS 服务属性。
- 如果要配置 WPS 服务使用外部能力文件,则选择使用服务能力文件。要使用此选项,您必须已创建 WPS 能力文件。
- 命名空间和前缀是用来区分 WPS 进程与其他 WPS 进程的唯一属性。这些字段自动填充,不应对其进行修改。
- URL 字段显示客户端用来访问 WPS 服务的 URL。URL 格式如下:http://<服务器名称>:<端口号>/arcgis/services/<文件夹名称(如果适用)>/<服务名称>/GPServer/WPSServer。
- 单击分析 。该操作用于对结果进行检查,看其是否能够作为 WPS 服务发布到服务器。提示:
配置 WPS 服务时为获得更多视图区域,请单击服务编辑器 顶部的折叠 按钮。
- 将结果发布为 WPS 服务之前,必须在准备 窗口中修复任何存在的错误 。另外,您还可以修复警告和通知消息,以进一步完善服务的性能和显示。有关解决这些问题的详细信息,请参阅分析 GIS 资源。注:
可将文件夹和地理数据库注册到 ArcGIS Server 站点,从而确保服务器可识别并使用数据。如果继续以下步骤,那么工具所引用来自取消注册 的文件夹或地理数据库的任何数据都将在发布时复制到服务器。这是一种预防性措施,可确保服务器能够访问服务所使用的所有数据。有关将文件夹或地理数据库注册到 ArcGIS Server 站点的完整说明,请参阅使用 ArcGIS for Desktop 将数据注册到 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 示例: http://myserver:6080/arcgis/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 示例: http://myserver:6080/arcgis/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 请求调用执行操作。以下是一个执行请求示例:
<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 服务的支持。