OGC's Web Processing Service (WPS) standard is now (as of late 2007) at version 1.0.0, available from OGC .
Some general notes (from the standard's introduction):
- Processes include any algorithm, calculation or model that
operates on spatially referenced data. A WPS may offer calculations as
simple as subtracting one set of spatially referenced numbers from
another (e.g., determining the difference in influenza cases between
two different seasons), or as complicated as a global climate change
- Data required by the WPS can be delivered across a network,
or available at the server. The specification provides mechanisms to
identify the spatially referenced data required by the calculation,
initiate the calculation, and manage the output from the calculation so
that the client can access it.
- Targeted at processing both vector and raster data.
Similar to other OGC services:
- Provides names and general descriptions of processes
- Provides detailed information about processes (inputs, outputs, formats)
- Clients can ping for status on long-running processes
- Can call other services / processes from within a process (good for chaining)
(Quoted directly from the standard.)
A WPS process is normally an atomic function that performs a
specific geospatial calculation. Chaining of WPS processes facilitates
the creation of repeatable workflows. WPS processes can be incorporated
into service chains in a number of ways:
- A BPEL engine can be used to orchestrate a service chain that includes one or more WPS processes.
- A WPS process can be designed to call a sequence of web
services including other WPS processes, thus acting as the service
- Simple service chains can be encoded as part of the execute
query. Such cascading service chains can be executed even via the GET
Input parameters are described as:
- e.g. XML or imagery. Should be either encoded within an Execute request or made available at a URL
- "with a specified data type, allowable values, default value, and allowable unit of measure indicated."
- using one of the supported coordinate reference systems.
Output parameters are described similarly (e.g. ComplexOutput).
Other parts of process description:
- Indicates if complex data output(s)
from this process can be requested to be stored by the WPS server as
- Indicates if Execute operation response can be returned quickly with status information
- Results wrapped in response document
- Response document containing URLS of results
- If a single output is requested, server can return raw response data (no XML wrapper)
HTTP requests using KVP encoding shall support the chaining
of requests whereby a call to another web service is encoded within the
value for a ComplexData href input. Encoding of the entire request to
the ComplexData href shall ensure that the request is received and
processed unambiguously. WPS instances shall decode
ComplexValueReference values and submit the decoded value to the
network as an HTTP KVP GET request. An example of service chaining via
KVP follows. Consider the following WPS Execute request that provides a
ComplexValueReference called complexFieldName to a process called
pollux currently hosts a WPS server at http://pollux.cs.ucdavis.edu/comet/wps.