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

Jan Pišl janjanpisl at gmail.com
Mon Aug 13 15:49:24 PDT 2018


 Hi everyone,

This is the final report of my GSoC project.


*Title:*

Database Output Storage for PyWPS

*Abstract:*

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.



*Links:*

Wiki:
*https://wiki.osgeo.org/wiki/Database_Output_Storage_for_PyWPS
<https://wiki.osgeo.org/wiki/Database_Output_Storage_for_PyWPS>*

Link to pull request:
*https://github.com/geopython/pywps/pull/371
<https://github.com/geopython/pywps/pull/371>*

Forked PyWPS repository:
*https://github.com/janpisl/pywps <https://github.com/janpisl/pywps>*

Link to a branch of the repository with all work related to database output
storage:
*https://github.com/janpisl/pywps/tree/db
<https://github.com/janpisl/pywps/tree/db>*

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:
https://wiki.osgeo.org/images/7/79/IncludedInResponse.png
*https://wiki.osgeo.org/images/0/01/Reference.png
<https://wiki.osgeo.org/images/0/01/Reference.png>*

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

*https://wiki.osgeo.org/images/c/cf/DatabaseStorage.png
<https://wiki.osgeo.org/images/c/cf/DatabaseStorage.png>*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/soc/attachments/20180814/738a29bb/attachment.html>


More information about the SoC mailing list