Einführung
1. Ausführliche Zusammenfassung
Diese Fallstudie analysiert die architektonische Gestaltung des Internet-Banking-Systemseiner fiktiven Finanzinstitution, „BigBank“. Das Ziel des Projekts war es, persönlichen Bankkunden sicheren, zugänglichen und mehrkanaligen Zugriff auf ihre Konten (über Web und Mobile) zu ermöglichen, während gleichzeitig die bestehende Legacy-Kernbankinfrastruktur integriert wurde.
Die Architektur wird dokumentiert mithilfe des C4-Modell (Container-Diagramm), das die hochrangigen technologischen Entscheidungen visualisiert und zeigt, wie die Container des Systems (Anwendungen, Datenbanken usw.) miteinander interagieren.

2. Geschäftliche Herausforderungen
-
Integration veralteter Systeme:Die Bank verfügt über ein leistungsfähiges, aber altes „Mainframe-Banking-System“, das die zentrale Quelle für Kundendaten darstellt. Das neue System musste diese Daten bereitstellen, ohne den Mainframe sofort zu ersetzen.
-
Mehrkanales Zugriff:Kunden verlangten Zugriff sowohl über Desktop-Browser als auch über mobile Geräte.
-
Sicherheit:Die Verarbeitung sensibler Finanzdaten erfordert strenge Authentifizierung und sichere Kommunikationskanäle.
3. Architektonische Lösung (Die C4-Container-Ansicht)
Die Lösung ist als entkoppeltes System konzipiert, bei dem die Präsentationsschicht von der Geschäftslogik- und Datenebene getrennt ist.
A. Die Benutzeroberflächenschicht (Frontends)
Das System unterstützt drei unterschiedliche Einstiegspunkte für die persönlichen Bankkunden:
-
Einseitenanwendung (SPA):
-
Technologie: JavaScript und Angular.
-
Rolle: Dies wird im Webbrowser des Kunden ausgeführt. Es bietet die vollständige Suite von Internet-Banking-Funktionen. Es handelt sich um eine dynamische, reaktionsfähige Oberfläche, die asynchron mit dem Backend kommuniziert.
-
-
Webanwendung:
-
Technologie: Java und Spring MVC.
-
Rolle: Dies fungiert als Einstiegspunkt für die Web-Erfahrung. Es liefert den statischen Inhalt (HTML/CSS/JS) und hostet die Single-Page-Anwendung. Es dient als „Launcher“ für die Angular-Anwendung.
-
-
Mobile App:
-
Technologie: Xamarin (ermöglicht die plattformübergreifende Entwicklung, wahrscheinlich iOS und Android).
-
Rolle: Bietet eine „eingeschränkte Auswahl“ an Funktionen, die für mobile Geräte optimiert sind. Dies deutet darauf hin, dass komplexe Aufgaben (wie die Einrichtung internationaler Überweisungen) möglicherweise auf die vollständige Web-/SPA-Oberfläche beschränkt sind, während alltägliche Aufgaben (Kontostand prüfen) auf mobilen Geräten verfügbar sind.
-
B. Die Geschäftslogikschicht (Backend)
-
API-Anwendung:
-
Technologie: Java und Spring MVC.
-
Rolle: Dies ist das zentrale Nervensystem der Architektur. Es fungiert als ein API-Gateway oder Backend-for-Frontend (BFF).
-
Funktion: Es stellt eine JSON/HTTPS-API für Web- und Mobile-Clients bereit. Es verwaltet die Authentifizierung, Autorisierung und Orchestrierung von Datenanfragen.
-
C. Die Daten- und Integrations-Schicht
-
Datenbank:
-
Technologie: Oracle-Datenbank-Schema.
-
Rolle: Speichert internet-banking-spezifische Daten. Dazu gehören Benutzerregistrierungsdaten, gehaschte Authentifizierungsdaten (Sicherheitsbest-Praxis), und Zugriffsprotokolle. Es speichert nicht die tatsächlichen Kontostände (die sich im Mainframe befinden).
-
Kommunikation: Die API-Anwendung liest/schreibt über JDBC.
-
-
Mainframe-Banking-System:
-
Rolle: Das System der Wahrheit. Es speichert Kernbankinformationen (Kunden, Konten, Transaktionen).
-
Kommunikation: Die API-Anwendung kommuniziert mit dem Mainframe über XML über HTTPS. Dies deutet darauf hin, dass der Mainframe wahrscheinlich ein veraltetes SOAP-basiertes Dienstprogramm oder ein älteres System ist, das einen strukturierten Austausch von XML-Daten erfordert.
-
-
E-Mail-System:
-
Technologie: Microsoft Exchange.
-
Rolle: Verwaltet Benachrichtigungen.
-
Kommunikation: Die API-Anwendung sendet E-Mails über SMTP an den Exchange-Server, der sie anschließend an den Kunden weiterleitet.
-
4. Schlüssel-Datenflüsse & Nutzerreisen
Szenario 1: Anmelden über Webbrowser
-
Die Privatkundenkunde navigiert zu
bigbank.com/ibunter Verwendung von HTTPS. -
Die Anfrage trifft auf die Webanwendung (Java/Spring MVC).
-
Die Webanwendung liefert die Einseitenanwendung (Angular) an den Browser des Kunden.
-
Der Kunde gibt seine Anmeldedaten in der SPA ein.
-
Die SPA stellt einen API-Aufruf (
JSON/HTTPS) an die API-Anwendung. -
Die API-Anwendung überprüft die Anmeldedaten gegenüber dem Datenbank über JDBC).
-
Bei Erfolg fordert die SPA Kontostände an. Die API-Anwendung holt diese Daten aus dem Mainframe-Bankensystem (
XML/HTTPS) und gibt sie an die SPA zurück.
Szenario 2: Mobile Transaktionsbenachrichtigung
-
Der Kunde tätigt eine Zahlung über die Mobile App (Xamarin).
-
Die App sendet eine Anfrage an die API-Anwendung.
-
Die API-Anwendung verarbeitet die Zahlung mit der Mainframe.
-
Die API-Anwendung löst eine Bestätigungs-E-Mail aus, indem sie eine SMTP-Anfrage an die E-Mail-System (Exchange).
-
Der Kunde erhält eine E-Mail-Benachrichtigung.
5. Technische Highlights & Best Practices
-
Trennung der Verantwortlichkeiten: Das Diagramm trennt die „Internet-Banking“-spezifischen Daten (Oracle DB) klar von den „Core-Banking“-Daten (Mainframe). Dadurch wird verhindert, dass die Web-Ebene direkt auf das zentrale Finanzbuch zugreift.
-
Protokollübersetzung: Die API-Anwendung fungiert als Übersetzer. Moderne Frontends sprechen JSON, aber der veraltete Backend spricht XML. Die API-Anwendung schließt diese Lücke.
-
Sicherheit: Anmeldeinformationen werden im Datenbank als „gehasht“ gespeichert, was sicherstellt, dass selbst bei einem Datenbankverstoß die rohen Passwörter nicht preisgegeben werden. Alle externen Kommunikationen verwenden HTTPS.
-
Skalierbarkeit: Durch die Verwendung einer Single-Page-Anwendung (Angular) und einer entkoppelten API kann die Frontend-Ebene unabhängig von der Backend-Logik skaliert werden.
Der Artikel ist auch in English, Español, فارسی, Français, English, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文 verfügbar.













