# Der DVA-Code
# Hier wächst es noch!
Auch aus Kraut und Rüben erwächst Großes! Die Präsentation des Entwicklerbereichs befindet sich noch im Aufbau. Struktur, Inhalt und Gestaltung werden weiter optimiert.
Bis zur Fertigstellung ist dieser Bereich nur zur internen Nutzung vorgesehen. Eine vollständige Überarbeitung ist im Gange.
# Softwarearchitektur
Bereitstellung bei Produktivgang
# Servicekommunikation
# Backend-Webservices:
# Hardwarearchitektur (strukturelle Empfehlung)
Bereitstellung bei Produktivgang
# Deployment, Betrieb und Wartung
# Datenserver
Der Datenbankserver, genannt Data-Server (PU_VM_dva_data), speichert, verwaltet, organisiert und strukturiert die Daten des DVA.
Der Datenserver basiert hauptsächlich auf dem Zusammenspiel folgender Applikationen:
- Geoserver
- Plugin: Geostyler
- PostGIS
Der Data-Server ist erreichbar über:
- geoserver.dva.geo.tu-dresden.de (opens new window)
Zugangsdaten werden über die Zentralablage der Passwortdatenbank unter dem EintragPU_VM_dva_data_Geoserver
verwaltet. - IP (siehe Zentralablage der Passwortdatenbank)
Zugangsdaten für den Datenserver sind unter PU_VM_dva_data_PostGIS_DB
in der Passwortdatenbank hinterlegt. Die Nutzung des Datenservers erfolgt an folgenden Stellen:
Über die DVA-Web-App:
- Frontendseitig über WFS (Einbindung über den Masterportalcode)
ToDo
Link einfügen:
- Zur Dokumentation des FE-Codes an der Stelle, an der die WMS eingefügt werden
- Zugriff auf die WFS über den Geoserver (möglicherweise sinnvoll, hierfür eine eigene Dokumentation zu erstellen)
- Backendseitig für Berechnungen und Simulationen
ToDo
Link einfügen: Zur Dokumentation des BE-Codes und relevanter Schnittstellen zur PostgreSQL-Datenbank
Über weitere Verbindungen:
# Datenbankverbindung über ArcGIS herstellen
Voraussetzung ist die Verfügbarkeit von ArcGIS Pro (opens new window).
- Nach dem Starten von ArcGIS Pro den Bereich Katalog öffnen.
- Mit der rechten Maustaste auf
Datenbanken
klicken und dannNeue Datenbankverbindung
auswählen. - In der Dropdown-Liste unter Datenbankplattform den Eintrag PostgreSQL auswählen.
- Im Textfeld
Instanz
den Namen oder die IP-Adresse des Datenbank-Clusters auf dem Server eingeben, auf dem PostgreSQL installiert ist. - Beim
Authentifizierungstyp
die OptionDatabase authentication
wählen. User Name
undPassword
hinterlegen. Zugangsdaten werden über die Zentralablage der Passwortdatenbank unter dem EintragPU_VM_dva_data_PostGIS_DB
verwaltet.- Je nach Projekt kann die Datenbank variieren. Aktuell besteht nur die Datenbank
dvan
. Sie enthält verschiedene Daten zu Bevölkerung und Infrastruktur für die Bundesrepublik Deutschland. Datenquelle sind OSM-Daten. Es wird damit keine amtlich korrekte Ist-Situation der Infrastrukturen angezeigt.
ToDo
Link einfügen: Zur Doku der Datenbank | Wenn erstellt, kann der zweite Teil von Punkt 7 ggf. entfernt werden.
Abb: Eingaben zur Datebankverbindung in ArcGIS am Beispiel der DVAN DB des DVA Data Servers
Bei Verbindungserfolg sollte sich die Ansicht in etwa so darstellen:
# Datenbankverbindung über PGAdmin
Voraussetzung ist die Verfügbarkeit von PGAdmin (opens new window).
- Nach dem Starten von pgAdmin im Objekt-Explorer mit der rechten Maustaste auf
Servers
klicken. - Im neuen Fenster
Register - Server
unterName
einen Servernamen vergeben. Vorzugsweise sollte dieser DVA lauten. - Im gleichen Fenster zur Registerkarte Connections wechseln.
- Im Textfeld
Host name/address
den Namen oder die IP-Adresse des Servers eingeben, auf dem PostgreSQL installiert ist. UnterPort
den Wert5432
hinterlegen. Username
undPassword
eintragen. Die Zugangsdaten werden über die Zentralablage der Passwortdatenbank unter dem EintragPU_VM_dva_data_PostGIS_DB
verwaltet.- Je nach Präferenz kann die Option
Save password?
entsprechend aktiviert oder deaktiviert werden. - Auf
Speichern
klicken. - Die verwendete Datenbank kann je nach Projekt variieren. Aktuell besteht nur die Datenbank
dvan
. Sie enthält verschiedene Daten zu Bevölkerung und Infrastruktur für die Bundesrepublik Deutschland. Die Datenquelle basiert auf OSM-Daten. Es wird damit keine amtlich korrekte Ist-Situation der Infrastrukturen angezeigt.
Abb: Eingaben zur Datenbankverbindung in PGAdmin am Beispiel der DVAN DB des DVA Data Servers
Bei erfolgreicher Verbindung sollte die Ansicht in etwa wie folgt dargestellt werden:
# Datenbankverbindung über Geoserver herstellen
Voraussetzung ist der Zugriff auf den DVA-Data-Server bzw. auf den DVA-Geoserver (opens new window). Zugangsdaten werden über die Zentralablage der Passwortdatenbank unter dem Eintrag PU_VM_dva_data_Geoserver
verwaltet.
- Nach dem Login im DVA-Geoserver (opens new window) in der linken Navigationsleiste zu
Daten
→Datenspeicher
wechseln. - Auf
Datenspeicher hinzufügen
klicken. - Unter
Vektordatenquellen
die OptionPostGIS
wählen, um eine PostGIS-Datenbank hinzuzufügen. - Im Dropdown-Menü
Arbeitsbereich
z. B.dva_germany
auswählen. - Einen Namen für die Datenquelle festlegen (aktuell dvan).
- Unter
Host
die IP-Adresse des Datenservers sowie unterPort
den Wert5432
für die PostGIS-Datenbank hinterlegen. - Die
Database
lautetdvan
, dasSchema
ist standardmäßigpublic
. User
undPassword
eingeben. Zugangsdaten sind über die Zentralablage der Passwortdatenbank unterPU_VM_dva_data_PostGIS_DB
verfügbar.- Falls erforderlich, zusätzliche Einstellungen vornehmen. Für den initialen Betrieb sind die hinterlegten Standardwerte ausreichend.
Abb: Eingaben zur Datenbankverbindung im Geoserver am Beispiel der DVAN DB des DVA Data Servers
In der linken Navigationsleiste unter Daten
→ Layer
können die Layer des Arbeitsbereichs dva_germany
eingesehen und publiziert werden.
Abb: Bei erfolgreicher Verbindung sollte sich die Ansicht in etwa so darstellen
# Geostyler-Plugin für Geoserver
Um das Geostyler-Plugin zu installieren, muss sichergestellt sein, dass GeoServer korrekt installiert ist und läuft.
- In das Installationsverzeichnis des GeoServers wechseln und zum Pfad
/WEB-INF/lib/
navigieren.- In diesem Ordner werden Plugins verwaltet und installiert.
- In diesem Beispiel erfolgt der Zugriff über WinSCP:
/var/lib/tomcat9/webapps/geoserver/WEB-INF/lib/
Die
.jar
-Datei gs-geostyler (opens new window) herunterladen.Die Datei (z. B. mit WinSCP) in das Verzeichnis aus Schritt 1 kopieren (der tatsächliche Pfad kann abweichen).
Die GeoServer-Instanz neu starten.
# Layer im Geoserver publizieren
Voraussetzung ist der Zugriff auf den DVA-Data-Server bzw. den DVA-Geoserver (opens new window). Zugangsdaten sind über die Zentralablage der Passwortdatenbank unter PU_VM_dva_data_Geoserver
verfügbar.
- Nach dem Login im DVA-Geoserver (opens new window) in der linken Navigationsleiste zu
Daten
→Layer
wechseln. - Auf
Layer hinzufügen
klicken. - Falls noch nicht geschehen, eine neue Datenquelle unter
Vektordatenquellen
→PostGIS
hinzufügen. - Den gewünschten Datenspeicher aus dem Dropdown auswählen, z. B.
dva_germany
. - Eine Liste der enthaltenen Layer wird angezeigt (bei der Datenquelle
dva_germany
handelt es sich um die Verbindung zu den PostGIS-Tabellen). - Den gewünschten Layer auswählen und auf
Publizieren
klicken. - Im Reiter
Daten
:
- Einen
Namen
undTitel
festlegen. - Das Koordinatenreferenzsystem beibehalten, falls keine Änderungen erforderlich sind.
- Begrenzendes Rechteck berechnen:
Aus den Grenzen des Koordinatenreferenzsystems berechnen
klicken.Aus den nativen Grenzen berechnen
klicken.
- Auf
Speichern
klicken.
Der Layer ist nun im GeoServer publiziert.
- Unter
Daten
→Layer
können alle publizierten Layer eingesehen werden. - Unter
Daten
→Layer-Vorschau
können die Layer als OpenLayers-Vorschau betrachtet werden.
Weitere Informationen zum Styling eines Layers sind im Kapitel Layer stylen (mit Geostyler) zu finden.
# Layer stylen (mit Geostyler)
# Styles im Geoserver
# Styles für Einrichtungen:
# DVA-Datenbank, Tabellen, Styles und Services
# Schema Dokumentation
Dieses Sektion bietet einen Überblick über das Datenbankschema, einschließlich Tabellen, Spalten, Datentypen und anderer relevanter Einschränkungen.
# Bevölkerungstabellen
# Table: population_full
Eine Tabelle zur Speicherung von bundesweiten Bevölkerungsdaten mit Geometriedaten und Altersverteilungen in 10er-Jahresscheiben.
Dieses Schema beschreibt die Tabelle population_full
, welche Wohnotbefölkerung auf Grundlage des Zensus 2011 und räumliche Daten (in Form eines Polygons in 100m x 100m Grid-Formates) enthält.
# Table: population_standard
Eine Tabelle zur Speicherung von bundesweiten Bevölkerungsdaten mit Geometriedaten und Altersverteilungen. Sie unterscheidet sich von population_full
, in der Einteilung der Altersklassen, die hier in Lebensbiographischen Altersklassen eingeteilt sind.
Dieses Schema beschreibt die Tabelle population_standard
, welche die Wohnotbevölkerung auf Grundlage des Zensus 2011 und räumliche Daten (in Form eines Polygons in 100m x 100m Grid-Formates) enthält.
# Infrastrukturtabellen
# Table: facilities_[Name]
Tabellen zur Speicherung von bundesweiten Infrastrukrdaten verschiedener Typen mit Geometriedaten (Point) mit Gewichtungsfaktor der Auskunft über die Kapazitätsgrenzen der Infrastruktur gibt. Im Mangel von bendesweiten Aussagen zur Kapazitätsinformationen sind diese Daten simuliert. Je nach Dateneigentümer lassen sie sich durch Echtdaten ersetzen. Datenquelle: OSM-Daten
Folgende Infrastrukttypen werden in diesem Format gespeichert:
Das Tabellenschema ist wie folgt:
# Verwaltungstabellen
# Table: users
Diese Tabelle regelt den Zugriff von externen Personen auf das DVA-Frontend. Ein Zugriff ist erst durch Kontaktaufnahme mit den Verantwortlichen der TU Dresden möglich.
# Services
Dieses Sektion bietet einen Überblick über das Services die im Zuge der Betriebhaltung des DVA in Nutzung sind.
# WMS des Geoservers
# Nützliche Konsolenstatements
# Docker
Docker wird in der DVA-Anwendungslandschaft verwendet um die Services (inkl. Frontend und Datenbanken) bereitzustellen. Für Deployment, Betrieb und Wartung ist es exxentiell Container zu starten und neu zu laden. Häufig genutzte Staments sind hierfür aufgeführt:
# Laufende Container und VM-Auslastung anzeigen:
sudo docker stats
# Laufende Container stoppen:
sudo docker compose stop
# Container starten (im Ordnerverziechnis, in dem auch die Docker-compose.yml abliegt):
sudo docker compose up -d --build
# Logs anzeigen:
sudo docker logs "containername" -f
# Kein Speicher mehr und Docker startet nicht?
Dies zeigt den freien Speicherplatz auf allen Dateisystemen an:
df -h
# Temporäre Dockerdaten auf der VM bereinigen
Docker speichert viele temporäre Daten wie Images, Container, Volumes und Netzwerke. Um Speicherplatz freizugeben können diese Daten bereinigt werden:
sudo docker system prune -a
# Portkonfiguration der laufenden Container anzeigen:
sudo docker container ls --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" -a
# Restart-Optionen der docker-compose.yml
Die Dockercompose-Datei regelt unter anderem das Verhalten, wenn ein Docker-Container gerade nicht aktiv ist. Das kann der Fall sein, wenn Serverwartungen anstehen und die Virtuellen Maschinen neu gestartet werden. Es gibt folgende Alternativen:
# GIT
Der Gesamte Code des DVA wird in mehreren GIT-Repositorys verwaltet. Um Zwischenstände oder neuere Entwicklungen auszuprobieren sind folgende Statements und Hinweise nützlich:
Alle Updates aller Remotes abrufen, ohne sie in lokale Branches zu integrieren:
git fetch --all
Alle Remote-Branches anzeigen:
git branch -r
Alle Remote-Branches und lokalen Branches anzeigen:
git branch -a
Um zwischen verschiedenen lokalen Branches zu wechseln:
git checkout <branch-name>
Beispiel:
git checkout main
Remote-Branch in lokaler Umgebung zur Anzeige bringen (lokalen Branch auschecken):
git checkout -b <lokaler-branch-name> origin/<remote-branch-name>
Beispiel:
git checkout -b feature-branch origin/feature-branch
Alternativ (ab Git V2.23)
git switch <branch-name>