Fossgis: SDI architecture with dispersed data - Primin Kalberer
The problem they had was: how to provide a single WMS server with data from
different sources (swiss “kantons” = swiss regions) when the data doens’t all
have the same structure? How do you aggregate that? You want the same symbols
and you want it to be one WMS server, ideally.
- One thing you can do is to collect the data centrally. For that you need a
unified data model… And you need to keep the data fresh. And, big problem,
you’re storing data outside of the organisation (the swiss region) that owns
and manages the data.
- You could use a tile cache that combines the output of the various
regions. Problem: the symbols are probably not the same. And layers can only
be combined limitedly. And you cannot provide data downloads, you only have
the rendered maps.
- Another option: a portal that simply sends you to each region’s own WMS
service. You don’t have an aggregated visual map, only separate ones. And
you still don’t have data downloads.
- You can do the aggregation on the client. You do get an aggregated visual
map. Drawback: the performance is that of the slowest of the region’s
servers… Aggregated downloads aren’t possible.
What they are aiming for with their architecture is a bit of a combination of
the above options, but the basis is the second option (a tile server). But
with the addition of some data aggregation (in so far possible) so that you
can get an aggregated data download.
Some functions of the aggregation server:
- Cascading WMS: WMS server that redirects to regional WMS
services. Including protocol translation if a regional WMS still has an
older protocol version.
- Conversion of EPSG: conversion of projections if needed.
- Depending on the view area, there can be full redirection to the region’s
own WMS server if only that one’s data needs to be displayed.
- Cascading GetFeatureInfo: sending it to the proper region’s WMS
server. Selection happens based on the area, so you need to feed for
instance a shapefile to the aggregation server so that it knows what to do.
- GetFeatureInfo also is harmonised: the character encoding is unified, for
- Cascading again: WFS requests. This one is really tricky to get right, btw.