Wprowadzenie
1. Podsumowanie dla zarządu
To studium przypadku analizuje projekt architektury systemusystemu bankowości internetowejdla fikcyjnej instytucji finansowej „BigBank”. Celem projektu było zapewnienie klientom indywidualnym bezpiecznego, dostępnego i wielokanałowego dostępu do ich kont (poprzez internet i urządzenia mobilne), jednocześnie integrując się z istniejącą dziedziczną infrastrukturą jądrowej bankowości.
Architektura została zapisana przy użyciumodelu C4 (Diagram kontenerów), który wizualizuje wybrane technologie na najwyższym poziomie oraz sposób działania kontenerów systemu (aplikacje, bazy danych itp.).

2. Wyzwania biznesowe
-
Integracja z systemami dziedzicznymi:Bank posiada solidny, ale starszy „System bankowy główny”, który zawiera podstawową prawdę o danych klientów. Nowy system musiał ujawniać te dane bez natychmiastowego zastąpienia systemu głównego.
-
Dostęp przez wiele kanałów:Klienci żądali dostępu zarówno przez przeglądarki na komputerach stacjonarnych, jak i urządzenia mobilne.
-
Bezpieczeństwo:Przetwarzanie wrażliwych danych finansowych wymaga ścisłej uwierzytelniania oraz bezpiecznych kanałów komunikacji.
3. Rozwiązanie architektoniczne (Widok kontenerów C4)
Rozwiązanie zostało zaprojektowane jako system rozłączony, w którym warstwa prezentacji jest oddzielona od warstw logiki biznesowej i danych.
A. Warstwa interfejsu użytkownika (Frontendy)
System obsługuje trzy różne punkty wejścia dlaklienta indywidualnego:
-
Aplikacja jednostronicowa (SPA):
-
Technologia: JavaScript i Angular.
-
Rola: Działa w przeglądarce internetowej klienta. Zapewnia pełny kompletny zestaw funkcji bankowości internetowej. Jest to dynamiczny, reagujący interfejs, który komunikuje się asynchronicznie z backendem.
-
-
Aplikacja internetowa:
-
Technologia: Java i Spring MVC.
-
Rola: Działa jako punkt wejścia do doświadczenia internetowego. Dostarcza zawartość statyczną (HTML/CSS/JS) i hostuje aplikację jednostronicową. Służy jako „uruchamiacz” aplikacji Angular.
-
-
Aplikacja mobilna:
-
Technologia: Xamarin (umożliwia rozwój dla wielu platform, prawdopodobnie iOS i Android).
-
Rola: Zapewnia „ograniczony zestaw” funkcji zoptymalizowanych pod urządzenia mobilne. Oznacza to, że złożone zadania (np. ustawianie międzynarodowych przelewów) mogą być ograniczone do pełnej aplikacji internetowej/SPA, podczas gdy typowe zadania (sprawdzanie salda) są dostępne na urządzeniach mobilnych.
-
B. Warstwa logiki biznesowej (backend)
-
Aplikacja API:
-
Technologia: Java i Spring MVC.
-
Rola: To jest centralny układ nerwowy architektury. Działa jako Brama API lub Backend dla frontendu (BFF).
-
Funkcja: Dostarcza interfejs API JSON/HTTPS dla klientów internetowych i mobilnych. Obsługuje uwierzytelnianie, autoryzowanie oraz koordynację żądań danych.
-
C. Warstwa danych i integracji
-
Baza danych:
-
Technologia: Schemat bazy danych Oracle.
-
Rola: Przechowuje dane specyficzne dla internetowego bankowości. Obejmuje informacje o rejestracji użytkownika, zahashowane dane uwierzytelniające (praktyka najlepsza w zakresie bezpieczeństwa), oraz dzienniki dostępu. Nie przechowuje nie rzeczywistych sald bankowych (są one w systemie głównym).
-
Komunikacja: Aplikacja API odczytuje/zapisuje dane do tej poprzez JDBC.
-
-
System bankowy główny:
-
Rola: System źródłowy. Przechowuje podstawowe informacje bankowe (klienci, konta, transakcje).
-
Komunikacja: Aplikacja API komunikuje się z systemem głównym za pomocą XML przez HTTPS. Oznacza to, że system główny prawdopodobnie jest starszym usługą opartą na SOAP lub starszym systemem wymagającym wymiany strukturalnych danych XML.
-
-
System poczty e-mail:
-
Technologia: Microsoft Exchange.
-
Rola: Obsługuje powiadomienia.
-
Komunikacja: Aplikacja API wysyła e-maile poprzez SMTP do serwera Exchange, który następnie dostarcza je do klienta.
-
4. Kluczowe przepływy danych i przebiegi użytkownika
Scenariusz 1: Logowanie za pomocą przeglądarki internetowej
-
The Klient prywatny bankowości przechodzi do
bigbank.com/ibużywając HTTPS. -
Żądanie trafia do Aplikacja internetowa (Java/Spring MVC).
-
Aplikacja internetowa dostarcza Aplikacja jednostronicowa (Angular) do przeglądarki klienta.
-
Klient wprowadza dane logowania w aplikacji jednostronicowej.
-
Aplikacja jednostronicowa wykonuje wywołanie interfejsu API (
JSON/HTTPS) do Aplikacja interfejsu API. -
Aplikacja interfejsu API weryfikuje dane logowania w stosunku do Bazy danych (przez JDBC).
-
Po pomyślnym zalogowaniu aplikacja jednostronicowa żąda sald kont. Aplikacja interfejsu API pobiera te dane z System bankowości główny (
XML/HTTPS) i zwraca je do aplikacji jednostronicowej.
Scenariusz 2: Powiadomienie o transakcji mobilnej
-
Klient dokonuje płatności przez Aplikację mobilną (Xamarin).
-
Aplikacja wysyła żądanie do Aplikacja API.
-
Aplikacja API przetwarza płatność za pomocą Mainframe.
-
Aplikacja API wywołuje e-mail potwierdzający, wysyłając żądanie SMTP do System e-mailowy (Exchange).
-
Klient otrzymuje powiadomienie e-mail.
5. Kluczowe aspekty techniczne i najlepsze praktyki
-
Oddzielenie odpowiedzialności: Diagram jasno oddziela dane specyficzne dla „Internet Banking” (baza danych Oracle) od danych „Bankowości Głównej” (mainframe). Zapobiega to bezpośredniemu dostępowi warstwy internetowej do podstawowego księgowania finansowego.
-
Translacja protokołów: Aplikacja API działa jako tłumaczy. Nowoczesne interfejsy front-endowe używają JSON, ale starszy backend używa XML. Aplikacja API zamyka tę przerwę.
-
Bezpieczeństwo: Dane logowania są przechowywane jako „hashowane” w bazie danych, co zapewnia, że nawet w przypadku naruszenia bazy danych hasła w postaci jawnej nie zostaną ujawnione. Wszystkie komunikacje zewnętrzne używają HTTPS.
-
Skalowalność: Dzięki wykorzystaniu aplikacji jednostronicowej (Angular) i rozdzielonego interfejsu API, front-end może być skalowany niezależnie od logiki backendu.
Ten post dostępny jest również w Deutsch, English, Español, فارسی, Français, English, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文













