Architecture
Components
Resource List
The core of the software is the resource list, which comprises five components:
Name | Type | Own | Since |
---|---|---|---|
Database | PostgreSQL | ❌ | v1.0.0 |
Psn Service | Spring Boot App | ✔️ | v1.0.0 |
Depsn Service | Spring Boot App | ✔️ | v4.0.0 |
Webapp Backend | Spring Boot App | ✔️ | v1.0.0 |
Webapp Frontend | Angular 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
Name | Type | Own | Since |
---|---|---|---|
Config Server | Spring Boot App | ✔️ | v5.1.0 |
Reverse Proxy | Apache | ❌ | v1.0.0 |
Webapp Home | Spring Boot App | ✔️ | v5.1.0 |
Interface | Spring Boot App | ✔️ | v1.0.0 |
Authentication Server | Keycloak | ❌ | v1.0.0 |
Monitoring App | Spring Boot App | ✔️ | v5.0.0 |
Monitoring GUI | Grafana | ❌ | v5.0.0 |
Monitoring Backend | Prometheus | ❌ | v5.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.
Figure 1. Overview of all components and their relationships.