Auftraggeber

Die Deutsche Bahn AG ist ein internationaler Anbieter von Mobilitäts- und Logistikdienstleistungen. Mit Hauptsitz in Berlin ist die Deutsche Bahn eines der führenden Transportunternehmen weltweit und der größte Eisenbahnbetreiber in Europa.
Die Deutsche Bahn AG beschäftigt rund 325.000 Mitarbeiter weltweit. Sie ist nicht nur für ihre Eisenbahninfrastruktur bekannt, sondern auch für ihre Bemühungen in der Digitalisierung. Die Bahn investiert stark in digitale Technologien, um die Effizienz zu steigern, das Kundenerlebnis zu verbessern und neue Geschäftsmodelle zu entwickeln. Zu den digitalen Initiativen zählen unter anderem die Entwicklung von Apps für Tickets und Kundenservice, der Einsatz von Künstlicher Intelligenz und Machine Learning zur Verbesserung von Betriebsabläufen und Kundenservice sowie die Implementierung von IoT (Internet of Things) zur Wartung von Zügen und Schienen. Unsere Arbeit an der Schnittstelle zur Weiterverarbeitung eines Soll-Fahrplans passt in die fortlaufende Digitalisierungsstrategie der Deutschen Bahn, indem wir dazu beitragen, die Planung und Verteilung von Fahrplänen effizienter und genauer zu gestalten.

Projekt-Zusammenfassung

Unser Projekt zielte auf die Entwicklung einer Schnittstelle zur Weiterverarbeitung eines Soll-Fahrplans ab, um eine verbesserte Reisendeninformation bereitzustellen. Unsere Hauptaufgabe bestand darin, den Saisonfahrplan aus dem Europäischen Fahrplanzentrum (EFZ) in Planfahrten umzuwandeln und diese für diverse Abnehmer bereitzustellen. Der Prozess begann mit der Entnahme von Eingangsdaten in Dateiform aus dem EFZ. Diese Daten wurden dann in einen Kafka Stream transformiert, was eine effektive Verarbeitung und Weiterverteilung der Fahrplandaten ermöglichte. Die so transformierten Daten führten zu einer verbesserten und effizienteren Reisendeninformation, was im Kontext der fortschreitenden Digitalisierung der Verkehrsinformationen eine wichtige Rolle spielte.

Herausforderungen

    Eine der Haupt-Herausforderungen bestand in der Implementierung einer robusten Batch-Architektur, die den Fahrplan-Import verarbeiten konnte. Dabei mussten wir die Rohdaten in Textdateien entgegennehmen und eine komplexe Daten-Aggregation und -Transformation für den Fahrplan-Import implementieren. Zusätzlich war es notwendig, ein Rechtekonzept zu implementieren, das den Zugriff auf die Fahrplan-Datenbank kontrollierte, die von mehreren Services verwendet wurde. Besonders herausfordernd war das komplexe Thema der Durchbindungen und Vereinigungen im Schienenverkehr, für das bisher keine effektive Lösung gefunden worden war.

    Lösungen / Vorgehensweise

    Zur Bewältigung dieser Herausforderungen haben wir eine Batch-Architektur basierend auf Argo-Workflows, Spring Batch und Aurora PostgreSQL entwickelt. Die komplexen Datenaggregationen und Transformationen wurden mittels Neuentwicklung einer graph-basierten Berechnung von Durchbindungen und Vereinigungen im Schienenverkehr/ÖPNV umgesetzt. Diese innovative Methode hat uns ermöglicht, dieses komplexe Problem effizient zu behandeln. Die Business-Logik wurde als hochverfügbare Kafka Streams Microservices auf Kubernetes und AWS implementiert. Zudem haben wir die CI/CD-Prozesse in GitLab weiterentwickelt und Renovate für automatisierte Versionsupgrades eingeführt. Die Arbeit wurde im Scrum Modell nach agilen Entwicklungsmethoden durchgeführt.

    Ergebnisse

    Das Ergebnis war eine sehr effektive Lösung, die es uns ermöglichte, Fahrplan-Daten effizient zu verarbeiten, zu validieren und in eine Datenbank zu transformieren. Die aufbereiteten Daten konnten dann an weitere Verarbeitungssysteme versandt werden. Zudem haben wir durch die Weiterentwicklung der CI/CD-Prozesse und die Einführung von Renovate unsere Software-Entwicklungsprozesse optimiert.

    Technologiestack

    • Microservice Architektur
    • Java 8/17
    • Spring Boot
    • AWS
    • Apache Kafka
    • RabbitMQ
    • PostgreSQL
    • Flyway
    • Kubernetes
    • Prometheus
    • Grafana
    • Argo
    • Sonarqube