Skip to content

GeoPython conference 2017

Luís de Sousa edited this page Feb 15, 2017 · 1 revision

Title: Advanced features in PyWPS 4.0.0

PyWPS 4.0.0 was released late last year, yielding a complete re-implementation of the Python based WPS server. PyWPS is now a Python library intended to be used from a WSGI application, providing various enhanced features and usage possibilities, that heretofore were not available.

The logging mechanism is no longer based on text files, as in previous versions, now all status meta-data and messages are stored in a database. By default this database is itself kept in memory, but the user can easily switch that to a persistent database. Relying on the SQLAlchemy technology, PyWPS is now able to log its activity into a myriad of different database technologies.

Previous PyWPS versions were highly reliant on the Apache web server, being this the only server used in development. PyWPS 4.0.0 has become server agnostic, with the clear separation between WPS specific functionality and the web application. PyWPS 4.0.0 was originally developed with the minimalistic Flask web server, but has by now been successfully deployed to Apache and nginx.

This abstraction from server technology also facilitates the integration of PyWPS into modern modern container technologies. Particular with Docker, the serialisation of PyWPS instances becomes considerably simpler, not only in terms of rational resource use, but also in what concerns security.

Another important innovation introduced by PyWPS 4.0.0 is a REST interface to its services. This expands the methods of interaction with PyWPS, opening further opportunities for developers of WPS clients and WPS enabled applications.

Other advanced features are in the pipeline as future developments. These include: process sand boxing, automatic deploy of spatial results to CSW, WFS and WCS servers, a web based administration interface and the process execution control requests specified in WPS 2.0.