Architecture

Components

Resource List

The core of the software is the resource list, which comprises five components:

NameTypeOwnSince
DatabasePostgreSQLv1.0.0
Psn ServiceSpring Boot App✔️v1.0.0
Depsn ServiceSpring Boot App✔️v4.0.0
Webapp BackendSpring Boot App✔️v1.0.0
Webapp FrontendAngular App✔️v1.0.0

The Psn Service provides REST interfaces for pseudonymization purposes and uses the underlying database for storage. The Depsn Service provides REST interfaces for depseudonymization purposes based on the stored data. The Webapp Frontend provides a graphical user interface including different views on the data. The Webapp Backend provides REST interfaces for the frontend in order to populate its views.

Additional Components

NameTypeOwnSince
Config ServerSpring Boot App✔️v5.1.0
Reverse ProxyApachev1.0.0
Webapp HomeSpring Boot App✔️v5.1.0
InterfaceSpring Boot App✔️v1.0.0
Authentication ServerKeycloakv1.0.0
Monitoring AppSpring Boot App✔️v5.0.0
Monitoring GUIGrafanav5.0.0
Monitoring BackendPrometheusv5.0.0

The Config Server is a Spring Boot App based on Spring Cloud Config Server with the purpose to supply all Spring Boot Apps with configuration parameters on startup. The Reverse Proxy provides a secure (HTTPS) public entry point and handles all incoming requests. The Webapp Home provides a landing page including an overview of available apps and their status information. The interface is responsible for orchestrating HTTP requests while the Authentication Server handles authorization and authentication of clients regarding accessing REST interfaces and underlying ressources. The Monitoring App has access to the database and is responsible for compiling metrics and providing access to them. The Monitoring GUI provides views of the monitoring data which is acquired via the Monitoring Backend from the underlying database.

Dockerization

Figure 1 shows all components and their relationships with each other. All Spring Boot Apps acquire their configuration from the Config Server and specific apps have access to the database. Token exchange for authentication purposes is handled via the Authentication Server.

diagram

Figure 1. Overview of all components and their relationships.