An open software An open software framework for Web framework for Web Service-based geo- Service-based geo- processes processes Theodor Foerster Theodor Foerster FOSS4G 2006 – Lausanne, Switzerland
Jan 05, 2016
An open software An open software framework for Web framework for Web Service-based geo-Service-based geo-
processesprocessesTheodor FoersterTheodor FoersterFOSS4G 2006 – Lausanne, Switzerland
Theodor Foerster http://www.52north.org 2
Contents
•Motivation•The standard•The architecture•The use case: generalization•Getting involved
Theodor Foerster http://www.52north.org 3
Motivation
•Geospatial data available on the web•Network capacity and computational power available
•Geospatial information is carried out by geo-processes (buffering, generalization,…)
Web-based geo-processes
•Web-based geo-processes should be interoperable
Standard for web-based geo-processes
Theodor Foerster http://www.52north.org 4
Additional benefits
• Interoperable web-based geo-processes- Improve knowledge exchange through the web
Within a communityThrough out domains
- Geo-processes become easily adoptable- Provide high scalability for clients- Web-based geospatial information next step!
Geo-processes become interoperable through Web Services
•OGC web-enables geo-processes through the Web Processing Service (WPS) specification
Theodor Foerster http://www.52north.org 5
Notion of the WPS
•Service communication based on HTTP and XML•No limitations on certain types of processes•No limitations on the data
- Supports raster and vector data- Literal variables (e.g. buffer size)
Theodor Foerster http://www.52north.org 6
WPS operations
•GetCapabilities- Service description- Access description- Brief process descriptions
•DescribeProcess- Full process description
•Execute- Process execution
Theodor Foerster http://www.52north.org 7
<Capabilities version="0.4.0“> <ows:ServiceIdentification>
<ows:Title/> <ows:Abstract/> <ows:Keywords/> …
</ows:ServiceIdentification><ows:ServiceProvider/>
<ows:ServiceContact/> </ows:ServiceProvider> <ows:OperationsMetadata>…<ows:Operation name="Execute“/> </ows:OperationsMetadata> <ProcessOfferings>
<Process><ows:Identifier>Buffer</ows:Identifier></Process>
</ProcessOfferings></Capabilities>
http://geoserver:8080/wps/WebProcessingService?REQUEST=DescribeProcess&Identifier=Buffer&SERVICE=WPS&VERSION=0.4.0
<ExecuteResponse><ows:Identifier>Buffer</ows:Identifier><Status/><DataInputs>…</DataInputs><OutputDefinitions>…</OutputDefinitions><ProcessOutputs><Output><ows:Identifier>BufferResult</ows:Identifier><ComplexValue schema =“schemaNS”>$XML_Geometries</ComplexValue></Output></ProcessOutputs></ExecuteResponse>
<ProcessDescriptions><ProcessDescription <ows:Identifier>Buffer</ows:Identifier> …<DataInputs> <Input> <ows:Identifier>geometry</ows:Identifier> <ComplexData defaultSchema=“schemaNS"/> <MinimumOccurs>1</MinimumOccurs> </Input> <Input> <ows:Identifier>width</ows:Identifier> …<LiteralData> <ows:DataType ows:reference="xs:int"/> …<ProcessOutputs> <Output> <ows:Identifier>BufferResult</ows:Identifier> <ComplexOutput defaultSchema=“schemaNS“/> … </ProcessDescriptions>
http://geoserver:8080/wps/WebProcessingService?REQUEST=GetCapabilities&SERVICE=WPS
<Execute><ows:Identifier>Buffer</ows:Identifier><DataInputs><Input> <ows:Identifier>geometry</ows:Identifier> <ComplexValue schema=“schemaNS”> $XML_Geometries </ComplexValue></Input><Input> <ows:Identifier>width</ows:Identifier> <LiteralValue>100</LiteralValue></Input></DataInputs></Execute>
WPS in action - Buffering
Client WPS
Network
<Execute> request
<Execute> response
<GetCapabilities> request
<GetCapabilities> response
<DescribeProcess> request
<DescribeProcess> response
Inspired by P. Schut’s presentation at the OGC TC Meeting in Huntsville 2006: “WPS RFC responses”
Theodor Foerster http://www.52north.org 8
Additional Features
Supports long-term processes by storing- Handles drawback of HTTP- Avoids recalculation- Status of processes is callable
•Supports chaining (limited)- For data retrieval & processing
•Standardized error messages
Theodor Foerster http://www.52north.org 9
Design goals
•Pluggable•Scalable•Easy to install•Standards compliant
Theodor Foerster http://www.52north.org 10
Framework architecture
Web Processing ServiceWeb Processing Service
WPSGetCapabilities ExecuteDescribeProcess
Algorithms Repository
…
…
Douglas Peucker Algorithm
Data Handler Repository
…
…
GML Data Handler
Communication over the web using HTTP
WPS-clientWPS-client
Theodor Foerster http://www.52north.org 11
Implementation
• Implementation available at 52north under GPL license• Implements all features of the specification
- Storing process results- ComplexReferences
• Fully java-based, running on tomcat• Incorporated APIs:
- Servlet API- Xml-beans- JTS
• Service plus client (JUMP plug-in) available • Basic data handlers• Implementation applied for SWE and generalization
Theodor Foerster http://www.52north.org 12
Use case: generalization
• Geospatial data geospatial information- Scale- User & use
• Model and cartographic generalization• ITC’s generalization research project
- Automated web-based generalization- User-centered generalization- Focus on Dutch topographic data
• First example: simplification- Reduces the number of geometries- Deletes unimportant aspects of data- Important for mobile applications- Mostly not satisfying in cartographic terms
Theodor Foerster http://www.52north.org 13
Example – Simplification
Registering the service and configuring your process…
Theodor Foerster http://www.52north.org 14
Example – Simplification
•…Visualize the result!
original data processed result
Theodor Foerster http://www.52north.org 15
Outlook
• Integration into geoserver/geotools as DataStore
•Adding more data handlers (GML 3.x)• Improving the communication mechanisms
- Asynchronous communication- Incorporating notification mechanisms
•Enabling smart storing- WFS- WCS
•Giving feedback to OGC
Theodor Foerster http://www.52north.org 16
More information
•52n incubator Wiki- Documentation
InstallationExamples
- Binaries and sources- CVS access on sourceforge
•Accessible through the Processing home on the Wiki or directly:
- http://incubator52n.de/twiki/bin/view/Processing/52nWebProcessingService
Theodor Foerster http://www.52north.org 17
Thank youfor your attention!
Watch out for other 52north presentations @Foss4G!
http://www.52north.org
Theodor Foerster
Hengelosestraat 997514 AE EnschedeTel: +31 (0)53 4874373 [email protected]://www.itc.nl