GeoWebCache

Funktionsweise GeoWebCache

Die Bereitstellung von Daten mithilfe eines WMS bedeutet meist, einer variablen Darstellung des Datenbestandes den Vorzug gegenüber einer möglichst schnellen Darstellung zu geben. Da es sich jedoch bei Rasterdaten (und insbesondere in diesem konkreten Anwendungsfall) um statische Bilder handelt, die sich weder in ihrem Stil noch in irgendeiner anderen Art und Weise in ihrer Darstellung ändern, ist eine Bereitstellung mittels WMS nicht unbedingt ideal; für diesen Zweck empfiehlt sich meist die Verwendung eines WMTS.

Die Darstellung dieses Webservices wird allerdings nicht direkt in GeoServer geregelt, dafür ist die Nutzung einer zusätzlichen Caching Software nötig. Die dafür verwendete ist die von der OSGeo-Community entwickelte Applikation GeoWebCache (GWC). Dieser ist ein Tile Server und Caching Proxy, welcher in Java geschrieben wurde und ebenso fest integrierter Bestandteil von GeoServer ist. Demzufolge unterstützt GWC ebenfalls neben weiteren OGC-Standards auch die hier benötigten WMS und WMTS und wird also für WMTS-Abfragen als Proxy zwischen Client und Server geschalten, sodass im besten Fall ein Großteil der Abfragen direkt über den Kachel-Speicher beantwortet werden kann (vgl. Abbildung).

Der Vorgang einer Abfrage läuft dabei wie folgt ab: Mittels eines GetTile-Requests wird eine Kachel angefragt. GeoWebCache prüft nun, ob die gefragte Kachel bereits gerendert vorliegt. Falls dies der Fall sein sollte, kann diese direkt an den Client zurückgegeben werden. Falls aber weder ein vorheriger Abruf der gesuchten Kachel stattfand noch ein Seeding des Layers (Rechnen einer Bildpyramide) stattgefunden hat, so wird die Anfrage entsprechend an den eigentlichen Server weitergeleitet. Dieser erstellt dann mithilfe eines passenden WMS-Requests die gewünschte Bildkachel, die zusätzlich zur eigentlichen Ausgabe im Speicher (BlobStore) abgespeichert wird, sodass die nächste Abfrage derselben Kachel deutlich schneller verläuft.
Die Vorteile gegenüber regulärer WMS liegen auf der Hand: Es wird redundanter Rechenaufwand verhindert und eine schnellere Datenübertragung gewährleistet.