Files
ankn a5f8fb49ab Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
      Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
      Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)

Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
2026-06-30 20:39:52 +02:00

257 lines
8.9 KiB
Markdown

# Architektur-Diagramme pathOS
> Stand: 2026-04-22 | Basis: GitLab-Inventar + Confluence-Analyse
---
## 1. Systemkontext (C4 Level 1)
Zeigt pathOS im Kontext seiner Nutzer und externen Systeme.
```mermaid
C4Context
title pathOS - Systemkontext
Person(evu, "EVU-Sachbearbeiter", "Bestellt Trassen ueber Web-Portal oder API")
Person(kb, "DB Kundenbetreuer", "Bearbeitet Bestellungen im Auftrag von EVU")
Person(fbf, "Fachliche Betriebsfuehrung", "Konfiguration und Monitoring")
Person(at, "Aufgabentraeger", "Lesender Zugriff auf Bestellungen")
System(pathos, "pathOS", "Plattform zur Trassenbestellung")
System_Ext(tpn, "TPN", "Trassenportal Netz (Altsystem)")
System_Ext(badifa, "BaDiFa", "Fahrplankonstruktion & Kapazitaetsmanagement")
System_Ext(ac, "AC Trasse", "AbrechnungsCockpit: Preise, Abrechnung, Belege")
System_Ext(im, "Infrastruktur-Manager (M15)", "Stammdaten: Betriebsstellen, Strecken, Tfz")
System_Ext(kdv, "KDV", "Kundendatenverwaltung (CRM)")
System_Ext(nur, "NuR / eBRS-AD", "Nutzer- und Rechteverwaltung")
System_Ext(rne, "RNE / CRD", "Europaeische Referenzdaten")
System_Ext(geo, "GeoServer", "Kartendarstellung")
System_Ext(nemo, "Netzmonitor / SAPBINe", "Auftragsdaten-Konsument")
System_Ext(cr, "Click&Ride", "Vereinfachte Bestellung")
System_Ext(sp, "Stationsportal", "Vertragsdaten-Konsument")
Rel(evu, pathos, "Bestellt Trassen", "HTTPS / TAF-TAP TSI")
Rel(kb, pathos, "Bearbeitet Bestellungen", "HTTPS")
Rel(fbf, pathos, "Konfiguriert", "HTTPS")
Rel(at, pathos, "Liest Bestellungen", "HTTPS")
Rel(pathos, tpn, "Datensynchronisation", "Kafka / API")
Rel(pathos, badifa, "Fahrplanauftraege", "API")
Rel(pathos, ac, "Preisanfragen, Abrechnung", "API")
Rel(pathos, im, "Stammdaten", "API")
Rel(pathos, kdv, "Kundendaten", "API")
Rel(pathos, nur, "Authentifizierung", "OIDC / API")
Rel(pathos, rne, "Referenzdaten", "Internet / API")
Rel(pathos, geo, "Karten / Routen", "WMS / WFS")
Rel(pathos, nemo, "Auftragsdaten", "API")
Rel(pathos, cr, "Bestellungen", "API")
Rel(pathos, sp, "Vertragsdaten", "API")
```
---
## 2. Container-Diagramm (C4 Level 2)
Zeigt die internen Komponenten von pathOS.
```mermaid
C4Container
title pathOS - Container-Diagramm
Person(user, "EVU / Kundenbetreuer")
Container_Boundary(pathos, "pathOS") {
Container(ui, "Portal UI", "TypeScript, Angular", "Benutzeroberflaeche fuer Trassenbestellung")
Container(pmw, "Portal Middleware", "Java, Spring Boot", "Backend fuer Portal UI, API-Gateway")
Container(sv, "Steuerung Vertrieb", "Java, Camunda 8", "Workflow-Engine: Orchestriert den Bestellprozess")
Container(avt, "Auftrags-Verwaltung Trasse", "Java, Spring Boot", "CRUD fuer Trassenbestellungen und Auftraege")
Container(as, "Auftrag-Service", "Java, Spring Boot", "Auftragsverarbeitung und Kafka-Events")
Container(ci, "Common Interface", "Java, Spring Boot", "TAF/TAP TSI Schnittstelle fuer EVU-Systeme")
Container(ifp, "IFP-Connector", "Java, Spring Boot", "Anbindung Integrierte Fahrplanbearbeitung")
Container(tadef, "TADEF-Connector", "Java, Spring Boot", "TAF/TAP Definition Connector")
Container(kdb, "Kundendaten-Bereitstellung", "Java, Spring Boot", "Adapter fuer Kundendaten")
Container(sdb, "Stammdaten-Bereitstellung", "Java, Spring Boot", "Adapter fuer Stammdaten")
Container(rnb, "Rabattnummern-Bereitstellung", "Java, Spring Boot", "Rabattnummern-Service")
Container(vdv, "Vertragsdaten-Verteiler", "Java, Spring Boot", "Verteilt Vertragsdaten an Drittsysteme")
Container(arch, "Archivierungsservice", "Java, Spring Boot", "Archiviert Nachrichten und Prozessdaten")
Container(tbv, "TBV-Absicherung-Konverter", "Java, Spring Boot", "Tunnelbegegnungsverbot-Pruefung")
Container(ttk, "TAF/TAP-TDM-Konverter", "Java, Spring Boot", "Konvertiert zwischen TDM und TAF/TAP")
Container(kc, "Keycloak", "Keycloak", "Identity & Access Management")
ContainerDb(db, "PostgreSQL", "PostgreSQL", "Auftrags- und Stammdaten")
ContainerQueue(kafka, "Apache Kafka", "AWS MSK", "Event-Streaming zwischen Services")
}
Rel(user, ui, "HTTPS")
Rel(ui, pmw, "REST API")
Rel(pmw, sv, "REST / Kafka")
Rel(sv, avt, "REST / Kafka")
Rel(sv, ci, "REST / Kafka")
Rel(sv, as, "Kafka")
Rel(avt, db, "JDBC")
Rel(as, kafka, "Produce/Consume")
Rel(ci, kafka, "Produce/Consume")
Rel(arch, kafka, "Consume")
Rel(kdb, kafka, "Produce")
Rel(sdb, kafka, "Produce")
Rel(user, kc, "OIDC Login")
```
---
## 3. Deployment-Diagramm
```mermaid
C4Deployment
title pathOS - Deployment (AWS EKS)
Deployment_Node(aws, "AWS Cloud") {
Deployment_Node(eks, "EKS Kubernetes Cluster") {
Deployment_Node(ns_app, "Namespace: pathOS-Apps") {
Container(c_ui, "portal-ui", "Container")
Container(c_pmw, "portal-middleware", "Container")
Container(c_sv, "steuerung-vertrieb", "Container")
Container(c_avt, "auftrags-verwaltung-trasse", "Container")
Container(c_as, "auftrag-service", "Container")
Container(c_ci, "common-interface", "Container")
Container(c_ifp, "ifp-connector", "Container")
Container(c_kdb, "kundendaten-bereitstellung", "Container")
Container(c_sdb, "stammdaten-bereitstellung", "Container")
Container(c_vdv, "vertragsdaten-verteiler", "Container")
Container(c_arch, "archivierungsservice", "Container")
Container(c_tbv, "tbv-absicherung-konverter", "Container")
Container(c_ttk, "taftap-tdm-konverter", "Container")
Container(c_rnb, "rabattnummern-bereitstellung", "Container")
Container(c_tadef, "tadef-connector", "Container")
}
Deployment_Node(ns_infra, "Namespace: pathOS-Infra") {
Container(c_kc, "Keycloak", "Container")
Container(c_cam, "Camunda 8", "Container")
}
}
Deployment_Node(rds, "AWS RDS") {
ContainerDb(c_db, "PostgreSQL", "Managed DB")
}
Deployment_Node(msk, "AWS MSK") {
ContainerQueue(c_kafka, "Apache Kafka", "Managed Kafka")
}
}
```
---
## 4. Datenfluss: Trassenbestellung (vereinfacht)
```mermaid
sequenceDiagram
participant EVU as EVU-Kunde
participant UI as Portal UI
participant PMW as Portal Middleware
participant SV as Steuerung Vertrieb
participant AVT as Auftrags-Verwaltung
participant CI as Common Interface
participant BEP as BEP (KonBel-K)
participant BaDiFa as BaDiFa
participant AC as AC Trasse
EVU->>UI: Trassenanmeldung erstellen
UI->>PMW: POST /anmeldung
PMW->>SV: Starte Bestellprozess
SV->>AVT: Erstelle Train + PathRequest
AVT-->>SV: Auftrag erstellt
SV->>CI: Sende PathRequestMessage
CI->>BEP: FahrlagePruefen
BEP-->>CI: Pruefergebnis
SV->>BaDiFa: erteileFahrplanKonstruktionsAuftrag
BaDiFa-->>SV: PathDetailsMessage (Path-Objekt)
SV->>AC: ermittleTrassenPreis
AC-->>SV: Preisinformation
SV->>AVT: Erstelle VertragsAngebot
SV->>PMW: Angebot bereit
PMW->>UI: Zeige Angebot
UI->>EVU: Angebot zur Pruefung
EVU->>UI: Angebot annehmen
UI->>PMW: Annahme
PMW->>SV: Vertragsschluss
SV->>AVT: Erstelle ProduktVertrag
SV->>AC: abrechneVertragsAenderung
```
---
## 5. Projektstruktur-Uebersicht (vereinfacht)
```mermaid
mindmap
root((pathOS))
APIs (37)
Trassenanmeldung
Auftraege
Stammdaten
Kundendaten
Abrechnung
TAF/TAP
Portal
Apps (19)
Portal UI
Portal Middleware
Steuerung Vertrieb
Auftrags-Verwaltung
Common Interface
Connectors
Infra (47)
Helm Charts
Keycloak 5+
CI/CD Pipelines
Monitoring
Deployment
Database Setup
Libraries (7)
Core Components
Logging
Signatures
Mocks (11)
IFP Mock
IM Mock
KDV Mock
BEP Mock
QA (15)
System Tests
Integration Tests
Performance Tests
Security Scans
Tools (10)
Camunda Client
Kafka Replay
Migration Tools
```
---
## 6. Problemzonen-Heatmap
```mermaid
quadrantChart
title Problemzonen: Aufwand vs. Kritikalitaet
x-axis "Geringer Aufwand" --> "Hoher Aufwand"
y-axis "Geringe Kritikalitaet" --> "Hohe Kritikalitaet"
"Spring Boot 4 Upgrade": [0.6, 0.95]
"Deployment-Vereinfachung": [0.85, 0.9]
"Secret-Rotation": [0.5, 0.85]
"AppMesh-Abloesung": [0.7, 0.8]
"Monitoring-Konzept": [0.6, 0.8]
"Disaster Recovery": [0.75, 0.85]
"DB Full-Table-Scans": [0.4, 0.7]
"Repo-Beschreibungen": [0.15, 0.3]
"Archivierte Repos aufraeumen": [0.1, 0.15]
"Keycloak-Konsolidierung": [0.5, 0.4]
"API-Versionierung": [0.6, 0.5]
"GitLab-Restrukturierung": [0.65, 0.35]
```