WPS Architecture Section
In this section you can find description of the 52°North WPS Architecture.
The 52°North WPS supports a set of input formats, processes and output formats. The architecture is held pluggable to enable the extension of already supported formats and processes. In detail, the parsers (green arrows) transform external data formats (such as GML, SHP, etc.) into internal dataformats. The internal dataformat is consumed by the process itself. The process also outputs a specific internal data format. That internal dataformat is transformed back to the requested external output format via so called "Generators".
The following diagrams provide a detailed overview of the architecture.
Server module
All processes have to implement IAlgorithm or is one of its implementing abstract classes. The AbstractSelfDescribingAlgorithm class offers convenient methods to automatically create a ProcessDescription document. For a tutorial follow this
link.
All processes are organized in so called "Algorithm Repositories", which have to implement
IAlgorithmRepository. Each Algorithm Repository decides independently on how to load a process. All backends such as GRASS and ArcGIS Server implement their own Algorithm Repository. The LocalAlgorithmRepository is for locally available Java classes that implement IAlgorithm and the UploadedAlgorithmRepository for processes uploaded via the web interface (see the bottom of this
tutorial).
IO module
The internal datastructures (such as Geotools FeatureCollection and so on) are wrapped by the datastructures seen above. They all have to implement the IData interface. It is distinguished between literal and complex data according to the WPS specification. The following table gives you an overview of the available complex datatypes.
Parsers package
Parser have to implement the IParser interface. It is distinguished between XML and binary parsers as toplevel abstract classes. Parser may also implement the
IStreamableParser interface if they support streaming. There are currently the following parsers:
All parser have to be registered either directly in the wps_config.xml file in the config folder or via the webAdmin configuration GUI.
Generators package
Generators have to implement the IGenerator interface. It is distinguished between XML and binary generators as toplevel abstract classes. Generators may also implement the
IStreamableGenerator interface if they support streaming. There are currently the following generators:
There are also three specialized Generators for storing the result directly in a WMS/WFS/WCS and retrieving a reference to the service with the corresponding stored georesource (layer/FeatureType).
In these cases the mimetype has to be set to application/WMS or application/WFS or application/WCS
A sample response looks like this
<ns:ComplexData encoding="UTF-8" mimeType="application/WMS">
<OWSResponse type="WMS">
<ResourceID>N52:tempFile1284329891171</ResourceID>
<GetCapabilitiesLink>
http://localhost:8080/geoserver/ows?Service=WMS&Request=GetCapabilities&Version=1.1.0
</GetCapabilitiesLink>
</OWSResponse>
</ns:ComplexData>
All generators have to be registered either directly in the wps_config.xml file in the config folder or via the webAdmin configuration GUI.
GetCapabilities sequence diagram
DescribeProcess sequence diagram
Execute sequence diagram