The Open Geospatial Consortium, Inc. (OGC), Web Processing Service (WPS) specification is an international specification for serving and executing geospatial processing on the web. You can create a WPS service by enabling the WPS capability when publishing a geoprocessing service.
Why use a WPS service?
WPS services are useful if you want to make your geoprocessing services available in an open, recognized way across different platforms and clients. Any client built to support the WPS 1.0.0 specification can view and work with your service.
Scope and compatibility
Client applications work with a WPS service by appending parameters to the service's URL. WPS services published to ArcGIS Server support the following mandatory operations:
- Requesting metadata about the service (GetCapabilities)
- Requesting detailed information about the processes that can be run on the service (DescribeProcess)
- Requesting to run a process implemented by the WPS service (Execute)
You can learn more about WPS services at the Open Geospatial Consortium website. Esri also maintains a Standards and Interoperability web page detailing its support for OGC services in ArcGIS.
WPS execution modes
WPS services and their accompanying tasks are either synchronous or asynchronous. Synchronous means that client applications will wait while the task executes on the server. Asynchronous means that client applications don't have to wait for the task to finish on the server before moving on to other tasks. For both execution modes, task results can be stored on the server and referenced through a URL, or they can be streamed directly back to clients.
It's up to you to decide whether a WPS service executes synchronously or asynchronously. Only tasks that execute quickly and have small output datasets should be published as synchronous WPS services.
Data types that support WPS services
Only certain data types can be used as input and output parameters for WPS services. These are derived from the supported Esri data types for geoprocessing. Below is a table that lists all supported input and output data types for WPS services and their equivalent subtypes.
Input/Output data type | Subtype |
---|---|
Standard | Long |
Double | |
String | |
Date | |
Boolean | |
Linear unit | |
Feature set | GML 3-SF |
Record set | GML 3-SF |
File | .zip |
Binary | |
XML | |
Plain text | |
Raster | Image/TIFF |
Binary (input only) |
For more information, see Supported input and output data types for geoprocessing services.
Publishing a WPS service
To publish a WPS service, you need to publish a geoprocessing service with the WPS capability enabled. For a detailed walk-through of the process of creating a WPS service, see Tutorial: Publishing a WPS service.
Consuming WPS services
WPS services running on ArcGIS Server can be used in any client that supports WPS.
Types of clients
A web browser is the simplest client of a WPS service. However, there are additional third-party clients available for consuming WPS services. To consume WPS services hosted by ArcGIS Server, the client must support WPS 1.0.0. Visit the following links for more information about third-party clients and libraries capable of consuming WPS services:
URL structure
To consume a WPS service, you'll need to know the URL. The URL follows this pattern:
http://gisserver.domain.com:6080/arcgis/services/folder/service/GPServer/WPSServer?
For example, if you enabled the WPS capability on the geoprocessing service WPSDemoService and published the service in a folder called DemoFolder on server gisserver with the port number 6080, the URL would be as follows:
http://gisserver:6080/arcgis/services/DemoFolder/WPSDemoService/GPServer/WPSServer?
WPS requests for GetCapabilities, DescribeProcess, and Execute operations can be issued through HTTP to this URL. Responses and exceptions to these requests are then returned to the client. For more information about these operations and their parameters, see the OGC WPS 1.0.0 specification.