PyWPS is a python framework implementing WPS 1.0.0. The tutorial will show how to install PyWPS, and since PyWPS does not provide major WPS processes the tutorial continues with process install using WPS-GRASS-Bridge that allows for GRASS-GIS processes to be automatically converted into PyWPS processes. In the third part, single atomic WPS processes are the building blocks in Taverna worbench to build fully functional workflows, that later can be posted in social networks like myExperiment. Tutorial will finish with an introduction to integration to WPS into OpenLayers.
PyWPS installation follows the standard python packages install, since web infrastructures tend to be very heterogenic, pywps requires for the user to configure server URL, process folder, CGI folder, WPS metadata content (e.g responsible for service etc). The tutorial will use ubuntu 11.04 and Apache2 as supporting server.
PyWPS follows python's mantra "Batteries not included" therefore it only provides an optimized WPS framework for users to develop and program their own WPS processes, that in turn allows for easy integration/connection to other systems like GRASS-GIS. The project WPS-GRASS-Bridge automatically generates PyWPS processes as wrappers for GRASS 7.0 modules, the wrappers work by interfacing with PyWPS API.
PML has developed an extended WSDL/SOAP support in PyWPS, with objective of porting any WPS into a generic workflow workbench like Taverna, the convertion between WPS and WSDL is automatic and transparent without any need of configurations. The WSDL document contained in the WPS instance is then uploaded into Taverna worbench.
Taverna worbench allows for users to create workflows and run them, the tutorial will only show a simple workflow that adds two geotiff images using r.add process. The process used implementes GRASS's r.mapcalc with the objective of adding any number of images.
The workflow being built in the tutorial can then be uploaded into the myExperiment social network where it can be commented, edited, searched by other scientists that may require the workflow to be integrated into other scientifical works.
PML's user case concludes with a small live demo of WPS working inside OpenLayers map display. The example shown is based on the process v.net.path (working as wrapper for the GRASS module with same name) that will determine the shortest path between nodes in a vector network overlaying major Iberian cities. The example code is avaible for download.