# 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:

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:

  1. Über die DVA-Web-App:

    • Frontendseitig über WFS (Einbindung über den Masterportalcode)

    ToDo

    Link einfügen:

    1. Zur Dokumentation des FE-Codes an der Stelle, an der die WMS eingefügt werden
    2. 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

  2. Über weitere Verbindungen:

# Datenbankverbindung über ArcGIS herstellen

Voraussetzung ist die Verfügbarkeit von ArcGIS Pro (opens new window).

  1. Nach dem Starten von ArcGIS Pro den Bereich Katalog öffnen.
  2. Mit der rechten Maustaste auf Datenbanken klicken und dann Neue Datenbankverbindung auswählen.
  3. In der Dropdown-Liste unter Datenbankplattform den Eintrag PostgreSQL auswählen.
  4. Im Textfeld Instanz den Namen oder die IP-Adresse des Datenbank-Clusters auf dem Server eingeben, auf dem PostgreSQL installiert ist.
  5. Beim Authentifizierungstyp die Option Database authentication wählen.
  6. User Name und Password hinterlegen. Zugangsdaten werden über die Zentralablage der Passwortdatenbank unter dem Eintrag PU_VM_dva_data_PostGIS_DB verwaltet.
  7. 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.

ArcGIS Pro Database Connetion

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).

  1. Nach dem Starten von pgAdmin im Objekt-Explorer mit der rechten Maustaste auf Servers klicken.
  2. Im neuen Fenster Register - Server unter Name einen Servernamen vergeben. Vorzugsweise sollte dieser DVA lauten.
  3. Im gleichen Fenster zur Registerkarte Connections wechseln.
  4. Im Textfeld Host name/address den Namen oder die IP-Adresse des Servers eingeben, auf dem PostgreSQL installiert ist. Unter Port den Wert 5432 hinterlegen.
  5. Username und Password eintragen. Die Zugangsdaten werden über die Zentralablage der Passwortdatenbank unter dem Eintrag PU_VM_dva_data_PostGIS_DB verwaltet.
  6. Je nach Präferenz kann die Option Save password? entsprechend aktiviert oder deaktiviert werden.
  7. Auf Speichern klicken.
  8. 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.

PGAdmin Connection

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.

  1. Nach dem Login im DVA-Geoserver (opens new window) in der linken Navigationsleiste zu DatenDatenspeicher wechseln.
  2. Auf Datenspeicher hinzufügen klicken.
  3. Unter Vektordatenquellen die Option PostGIS wählen, um eine PostGIS-Datenbank hinzuzufügen.
  4. Im Dropdown-Menü Arbeitsbereich z. B. dva_germany auswählen.
  5. Einen Namen für die Datenquelle festlegen (aktuell dvan).
  6. Unter Host die IP-Adresse des Datenservers sowie unter Port den Wert 5432 für die PostGIS-Datenbank hinterlegen.
  7. Die Database lautet dvan, das Schema ist standardmäßig public.
  8. User und Password eingeben. Zugangsdaten sind über die Zentralablage der Passwortdatenbank unter PU_VM_dva_data_PostGIS_DB verfügbar.
  9. Falls erforderlich, zusätzliche Einstellungen vornehmen. Für den initialen Betrieb sind die hinterlegten Standardwerte ausreichend.

Geoserver Connection

Abb: Eingaben zur Datenbankverbindung im Geoserver am Beispiel der DVAN DB des DVA Data Servers

In der linken Navigationsleiste unter DatenLayer können die Layer des Arbeitsbereichs dva_germany eingesehen und publiziert werden.

Geoserver View

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.

  1. 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/
  1. Die .jar-Datei gs-geostyler (opens new window) herunterladen.

  2. Die Datei (z. B. mit WinSCP) in das Verzeichnis aus Schritt 1 kopieren (der tatsächliche Pfad kann abweichen).

  3. 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.

  1. Nach dem Login im DVA-Geoserver (opens new window) in der linken Navigationsleiste zu DatenLayer wechseln.
  2. Auf Layer hinzufügen klicken.
  3. Falls noch nicht geschehen, eine neue Datenquelle unter VektordatenquellenPostGIS hinzufügen.
  4. Den gewünschten Datenspeicher aus dem Dropdown auswählen, z. B. dva_germany.
  5. Eine Liste der enthaltenen Layer wird angezeigt (bei der Datenquelle dva_germany handelt es sich um die Verbindung zu den PostGIS-Tabellen).
  6. Den gewünschten Layer auswählen und auf Publizieren klicken.
  7. Im Reiter Daten:
  • Einen Namen und Titel 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.
  1. Auf Speichern klicken.

Der Layer ist nun im GeoServer publiziert.

  • Unter DatenLayer können alle publizierten Layer eingesehen werden.
  • Unter DatenLayer-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>
Last Updated: 20.2.2025, 13:51:47