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.
This commit is contained in:
@@ -0,0 +1,256 @@
|
||||
# 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]
|
||||
```
|
||||
Reference in New Issue
Block a user