Architektur

Die GBD WebSuite wird als Docker-Container ausgeliefert und läuft als Server, der auf HTTP(S) hört. Binden Sie QGIS-Projekte ein, kommt ein zweiter Container mit dem QGIS-Server hinzu. Der Container bringt alles Nötige mit; was Sie beisteuern, liegt in zwei eingebundenen Verzeichnissen – /data für Konfiguration und Daten, /gws-var für veränderliche Laufzeitdaten wie Caches und Sitzungen.

Auch wenn die WebSuite als reiner Webserver arbeiten kann, entfaltet sie ihren Nutzen erst im Zusammenspiel mit dem mitgelieferten Client, einer JavaScript-Anwendung, die im Browser eine interaktive Karte darstellt und dazu laufend Anfragen an den Server richtet.

Prozesse

Innerhalb des Containers ist der Server kein einzelner Prozess, sondern ein Verbund: Ein Webserver nimmt die Anfragen entgegen, ein Applikationsserver führt die Logik der WebSuite aus, ein Kartenproxy bindet externe Quellen an und speichert Kacheln zwischen, ein Hintergrunddienst erledigt langlaufende Aufgaben wie den Druck, und eine Überwachung lädt die Konfiguration neu, sobald sich Dateien ändern.

Für die Konfiguration der Inhalte ist dieser Aufbau ohne Belang. Er wird dort wichtig, wo es um den Betrieb geht: Nicht benötigte Prozesse lassen sich abschalten, und Anzahl und Zeitlimits der Arbeitsprozesse bestimmen das Verhalten unter Last.

Konfigurationsbaum

Das gesamte Verhalten der WebSuite ergibt sich aus einer einzigen Konfiguration, die als Baum aus verschachtelten Objekten aufgebaut ist. Das oberste Objekt ist die Applikation; darunter hängen die Projekte und alle weiteren Bausteine wie Layer, Aktionen und Datenbankverbindungen. Wie dieser Baum geschrieben wird, zeigt das Konfigurationsmodell.

Webseiten und Projekte

Auf oberster Ebene trennt die WebSuite zwei Begriffe. Eine Webseite ist ein Hostname mit den zugehörigen Regeln für Auslieferung und Zugriff. Ein Projekt ist eine Karte mit ihren Einstellungen. Beide sind voneinander unabhängig: Dasselbe Projekt kann unter mehreren Webseiten erreichbar sein, und eine Webseite kann Inhalte ausliefern, die zu keinem Projekt gehören.

Daraus ergibt sich die Gliederung jeder Installation in zwei Ebenen – die globale Applikation und die einzelnen Projekte –, die die folgenden Abschnitte beschreiben.

Applikation

Die Applikation ist das oberste Objekt der Konfiguration. Sie bündelt alle serverweiten Einstellungen und enthält die Projekte der Installation.

Auf dieser Ebene legen Sie fest, welche Server-Aktionen zur Verfügung stehen, wie sich Nutzer anmelden und welche Rechte sie erhalten, wie der Client grundsätzlich aussieht und welche Datenbankverbindungen, Sprachen und Metadaten gelten. Vieles davon wirkt als Voreinstellung für alle Projekte und lässt sich dort gezielt überschreiben.

Projekte

Ein Projekt ist die zentrale Anwendungseinheit der GBD WebSuite. Es bündelt eine Karte mit ihren Layern, die Suche, Druckvorlagen und weitere Funktionen zu einer eigenständigen Anwendung. Auf einer Installation können beliebig viele Projekte parallel laufen.

Jedes Projekt hat eine eindeutige Kennung, die in der Adresse der Karte erscheint und deshalb dauerhaft bleiben sollte, sowie einen Titel, der im Client und auf der Startseite angezeigt wird. Damit ein Projekt im Client geöffnet werden kann, muss die zugehörige Aktion aktiv sein; andernfalls bleibt das Projekt für andere Zwecke nutzbar, etwa als OWS-Dienst.

Projekte werden auf verschiedene Weise in die Applikation eingebunden: als ausdrückliche Liste, durch Angabe von Verzeichnissen, aus denen alle gefundenen Projekte geladen werden, oder über einzelne Dateipfade. Diese Wege lassen sich kombinieren.

Viele global definierte Einstellungen kann ein Projekt überschreiben oder ergänzen. So pflegen Sie eine gemeinsame Basis für alle Projekte und beschreiben je Projekt nur die Abweichungen.