orbisgis / orbiswps

Open-source Web Processing Service (WPS) libraries.
GNU General Public License v3.0
4 stars 3 forks source link
geoprocessing ogc standard wps

OrbisWPS : Open-source Web Processing Service (WPS) libraries. Build Status

OrbisWPS contains a set of OSGI libraries to build a Web Processing Service (WPS) compliant with the 2.0 specification. OrbisWPS is developed by the GIS team of the Lab-STICC laboratory, located in Vannes. It has been supported by research projects:

As part of the OrbisGIS platform, OrbisWPS is funded and maintained by personal resources of the Lab-STICC GIS team.

Groovy API

API for the Groovy language to write WPS scripts. This module contains the declaration of annotations based on the WPS 2.0 standard. The script writing is done in two parts : the input/output declarations and the process itself.

The input and output declaration is done by annotated all the variable with @...Input or @...Output, with ... replaced by the data type. As example :

@EnumerationInput( title = "title", values = ["round", "flat", "butt", "square"])
String[] enumeration

@LiteralDataInput(title = "title)
String string

@LiteralDataOutput(title = "title)
Long number

The available data type are :

The process itself is written inside a method called processing() (the name can't be changed) annotated @Process.

Scripts

This module contains basic WPS scripts and are loaded in the WPS server by the class WpsScriptPlugin thanks to the OSGI mechanism.

Server module

This module contains the whole WPS mechanism which can be divided into two part : the script parsing and the WPS request execution. The WPS service can be customized by instantiating the WpsServerImpl class with a customized version of the properties file

Script parsing

The script parsing is done in 3 steps :

WPS request execution

The process execution is done by the WpsServerImpl.callOperation() method which receive an InputStream object containing the WPS 2.0 request.

The request is then parsed and executed. In the case of the Execute request, an instance of the java class of the desired script is instantiated and configured with the input. Then the method processing() is executed. Once the execution end reached, the output data a retrieved.

Client

API interface and classes for the creation of a WPS client compatible with the server.