WPS - WebValley
Transcript
WPS - WebValley
Web Processing Service Calogero Zarbo [email protected] Introduction OGC Standard since late 2007 (Version 1.0.0) Standardized service interface to publish and perform geospatial processes over the web GetCapabilities WPS Process 1 DescribeProcess Execute Process 2 * * * Process n Example Temperature WPS Botrytis Cinerea Process 1 Precipitation * * * * * Process n Botrytis Cinerea's risk WPS Server 52°North WPS • http://52north.org/ PyWPS • http://pywps.wald.intevation.org/ ZOO • http://www.zoo-project.org/ 52°North WPS General Features and Compliance ➢ ➢ ➢ ➢ ➢ ➢ full java-based open source implementation build up on robust libraries (jts, geotools, xmlbeans) supports all features and operations of WPS 1.0.0 pluggable framework for algorithms and XML data handling supports raw data parsers supports full logging of service activities ✗ supports exception handling according to the specification ✗ storing of execution results on the server 52°North WPS Service Invocation ➢ ➢ ➢ Supports synchronous & asynchronous service invocation HTTP-GET for Execute operation supports SOAP & exposes WSDL document Supported Datatypes ➢ ➢ ➢ GeoTIFF support ArcGrid support GML2 support for ComplexData 52°North WPS Extensions ➢ ➢ ➢ ➢ ➢ Integrate 220+ Sextante processes Distributed and parallel computing ✗ UNICORE middleware ✗ GridGain framework Web-based GUI to maintain the service ArcGIS Server Connector GrassGIS connector Architecture 52°North Process code example pyWPS How it works ➢ ➢ ➢ WPS working as a python module that in turn loads processes as modules Process as an extended class WPSProcess, with method run() that will execute code Assemble factory approach as a functional script: Load Process getInput WPS output run getOutput pyWPS Extension ➢ ➢ ➢ ➢ Basic SOAP support, no authentication structure Apache's mod_python support in version 3.2....meaning no need to run as CGI Running as a Tomcat servlet by the use of Jython interpreter Mapserver response object pyWPS Process code example ZOO - Project How it works ➢ ➢ ➢ ➢ Handling and chaining ZOO Services Parsing metadata file .zcfg (Title, Metadata, Inputs,Output...) Using Service Provider: « Service Shared Object » (SSO) Able to load SSO dynamically, to extract specific functions and to execute them, answering the WPS Execute requests ZOO - Project Supported languages ➢ ➢ ➢ ➢ ➢ ➢ C / C++ Python Fortran PHP Java Javascript Native support Native support (Python interpreter) Optionnal support (F77, F90) Optionnal support (PHP embedded) Optionnal support (Java SDK) Optionnal support (SpiderMonkey)