Web Processing Service

The OGC Web Processing Service (WPS) is designed to standardize the way that GIS calculations are made available to the Internet. WPS can describe any calculation (i.e. process) including all of its inputs and outputs, and trigger its execution as a Web Service. WPS supports simultaneous exposure of processes via GET, POST, and SOAP, thus allowing the client to choose the most appropriate interface mechanism. The specific processes served up by a WPS implementation are defined by the owner of that implementation. Although WPS was designed to work with spatially referenced data, it can be used with any kind of data.

WPS makes it possible to publish, find, and bind to processes in a standardized and thus interoperable fashion. Theoretically it is transport/platform neutral (like SOAP), but in practice it has only been specified for HTTP. It is best described as a non-REST-ful RPC type service although it does comply with most of the REST principles.

WPS defines three operations:
 * 1) GetCapabilities returns service-level metadata
 * 2) DescribeProcess returns a description of a process including its inputs and outputs
 * 3) Execute returns the output(s) of a process

WPS operations can be invoked using a standard web browser by submitting requests in the form of Uniform Resource Locators (URLs) via HTTP GET, or XML documents via HTTP POST. The content of such URLs or XML documents depends on which operation is requested. For example, when requesting an Execute operation the HTTP request identifies the inputs, the name of process to be executed, and the form of output to be provided.

WPS has the following properties:
 * 1) Inputs can be web-accessible URLs or embedded in the request.
 * 2) Outputs can be stored as web-accessible URLs or embedded in the response.
 * 3) For a single output such as a GIF image, WPS can return the output directly, without any XML wrapper.
 * 4) It supports multiple input and output formats.
 * 5) It supports long-running processes.
 * 6) It supports SOAP and WSDL.

A WPS is usually not invoked directly. More often, it is invoked by a client application that provides the user with interactive controls. This client application may or may not be web-based.

WPS version 1.0.0 was released to the public in June 2007. Version 0.4.0 was released as an OGC Request for Public Comment in 2005 and implemented by several early adopters.