WMS-Q Server Facade
The WMS-Q Server Facade is implemented as a development help for the WMS-Q Web Client
Greenland developed within the project
GeoViQua. It allows to annotate the capabilities document of any
WMS server with keywords according to the WMS-Q specification, effectively telling a user/client software which layer contains which information, for example data values, standard deviation, or variance.
The server facade is intended for testing and development. Therefore it did not undergo testing of stability or any user studies and should be seen as software in an "alpha" state.
License: The 52°North WMS-Q Server Facade is published under Apache 2.0 license.
Use Case
A user has a running
WMS server (e.g. Geoserver, ncWMS) and wants to publish quality annotated raster data (e.g. simulation results) using the existing infrastructure. He published the analysis results as seperate WMS layers and now wonders how to tell the user which layer contains which information. Simple names and tags work for himself, but he cannot make sure the semantics of the names are understood by external users. He learns about the WMS-Q specification and the 52°North WMS-Q Facade Server - this should solve his problems!
After installation the user logs into the configuration backend and enters the URL of his WMS. The facade loads the capabilities file and lists all available layers. The user then connects the layers with a list of available semantic annotations. A preview rendering of the capabilities file is automatically updated after each change for inspection by the user. After saving the configuration, he is given the URL of the "new" GetCapabilities request and the server endpoint to be used in client applications. User very happy.
Features
- No request forwarding neccessary since URLs in annotated capabilities document point to original data source
Live Demo/Example Requests
Explore current configuration:
http://geoviqua.dev.52north.org/WMSQAdapter/config
Example for WMS-Q Capabilities:
Raw Capabilities for this example:
http://geoviqua.dev.52north.org/ncWMS/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
Development
Architecture
Software components
- Jersey 1.10
- Servlet Api 2.5
- Java 1.5
Software architecture and configuration
TBD (what packages are there, where are the configuration files stored, ...)
Source Code
https://github.com/GeoViQua/wms-q-facade
Tasks
- Indicate WMS-Q by special keyword
- No longer add
GetMetadata
Endpoint to capabilities
- Explicit content negotiation
- Welcome page with https://wiki.52north.org/bin/view/Intranet/WebsiteTemplateDocumentation
- Add missing content on this page.
- Implement and test handling of GetCapabilities-requests for WMS 1.1.1 and 1.3.0
- Facade works independent of the requested version
- Public landing page with list of all mappings (original URL and annotated URL) and a short (optional) description text
- The current configuration of the facade may be studied using the /config endpoint
Later Tasks and Ideas (unsorted)
- backend completely in Javascript, only rules and documents are stored on the server.
- Configuration backend user interface
- Login with webapp container (e.g. Tomcat) user credentials
- Adding/Changing/Deleting of server mappings, description field
- Definition of mapping rules (from layer name to quality annotation)
- Uploading of static capabilities documents (validation on server)
Developers