[PyWPS-dev] GSoC - Database Output Storage for PyWPS - Final Report

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[PyWPS-dev] GSoC - Database Output Storage for PyWPS - Final Report

Jan Pišl
Hi everyone,

This is the final report of my GSoC project. 

Database Output Storage for PyWPS

PyWPS allows to publish and use processes (as defined by the OGC WPS standard). 
Results can be either embedded in the XML response or, if they are more complex, they can be stored
as a file on a server. In such case, the response includes a URL link to the file. In this project,
an extension has been developed that adds another option. Output data can be stored in a database
(PostgreSQL aor SQLite) and the client is given a string that points to a particular database, schema
and table where the data is stored.

The state  of the art before GSoC:
Output data could be either included in the response directly or it was stored as a file on a server
and a link to the file was returned to the client. Using the link, the client could download the file.

The addition that my project brought to PyWPS:
There is now another option for storing output data that uses databases.
Databases have several major advantages over the traditional system where data
is stored in files. Unlike the file management system, there can be more users
accessing the same data concurrently without corrupting the data. Indexing speeds
up the data retrieval operations. There is a standardized database language to use
for queries. There are mechanisms such as data normalization that can be used to
avoid duplicity of data and save storage space.

Future Work:
 Currently, when using database output storage, the client is given a reference consisting of 
 the name of the database, schema and table. However, the client needs to access the data themselves.
 One possible solution is to use MapServer or GeoServer and serve the client the data as a WMS, WFS or
 WCS services. I have started working on this but was not able to finish by the end of GSoC.


Forked PyWPS repository:

Link to a branch of the repository with all work related to database output storage:

The following two charts show the state of the art before GSoC - output can be either included
in the XML response or stored as files on a server:

This chart shows the third option that my project adds to the existing two - storing output in a database:

pywps-dev mailing list
[hidden email]