Giới thiệu
1. Tóm tắt cấp cao
Nghiên cứu trường hợp này phân tích thiết kế kiến trúc của Hệ thống Ngân hàng trực tuyếncho một tổ chức tài chính giả tưởng, “BigBank”. Mục tiêu của dự án là cung cấp cho khách hàng cá nhân khả năng truy cập an toàn, dễ tiếp cận và đa kênh vào tài khoản của họ (thông qua web và di động) trong khi tích hợp với cơ sở hạ tầng cốt lõi ngân hàng cũ hiện có.
Kiến trúc được ghi chép bằng cách sử dụng Mô hình C4 (Sơ đồ Thùng chứa), giúp trực quan hóa các lựa chọn công nghệ cấp cao và cách các thùng chứa (ứng dụng, cơ sở dữ liệu, v.v.) trong hệ thống tương tác với nhau.

2. Thách thức kinh doanh
-
Tích hợp hệ thống cũ:Ngân hàng sở hữu một hệ thống “Ngân hàng Mainframe” mạnh mẽ nhưng đã cũ, lưu trữ dữ liệu khách hàng cốt lõi. Hệ thống mới cần phải tiết lộ dữ liệu này mà không cần thay thế mainframe ngay lập tức.
-
Truy cập đa kênh:Khách hàng yêu cầu truy cập thông qua cả trình duyệt máy tính để bàn và thiết bị di động.
-
Bảo mật:Xử lý dữ liệu tài chính nhạy cảm đòi hỏi xác thực nghiêm ngặt và các kênh truyền thông an toàn.
3. Giải pháp kiến trúc (Góc nhìn Thùng chứa C4)
Giải pháp được thiết kế như một hệ thống tách biệt, trong đó lớp trình bày được tách biệt khỏi lớp logic kinh doanh và lớp dữ liệu.
A. Lớp giao diện người dùng (Frontends)
Hệ thống hỗ trợ ba điểm vào khác nhau cho Khách hàng ngân hàng cá nhân:
-
Ứng dụng trang đơn (SPA):
-
Công nghệ: JavaScript và Angular.
-
Vai trò: Điều này chạy trong trình duyệt web của khách hàng. Nó cung cấp toàn bộ bộ công cụ chức năng ngân hàng trực tuyến. Đây là giao diện động, phản hồi nhanh, giao tiếp bất đồng bộ với phía máy chủ.
-
-
Ứng dụng Web:
-
Công nghệ: Java và Spring MVC.
-
Vai trò: Điều này đóng vai trò điểm vào cho trải nghiệm web. Nó cung cấp nội dung tĩnh (HTML/CSS/JS) và lưu trữ ứng dụng trang đơn. Nó đóng vai trò là “bộ khởi động” cho ứng dụng Angular.
-
-
Ứng dụng di động:
-
Công nghệ: Xamarin (cho phép phát triển đa nền tảng, có thể là iOS và Android).
-
Vai trò: Cung cấp một “tập hợp con hạn chế” các chức năng được tối ưu hóa cho thiết bị di động. Điều này ngụ ý rằng các tác vụ phức tạp (như thiết lập chuyển tiền quốc tế) có thể bị giới hạn ở giao diện Web/SPA đầy đủ, trong khi các tác vụ thông thường (kiểm tra số dư) thì có sẵn trên di động.
-
B. Lớp logic kinh doanh (phía máy chủ)
-
Ứng dụng API:
-
Công nghệ: Java và Spring MVC.
-
Vai trò: Đây là hệ thần kinh trung ương của kiến trúc. Nó đóng vai trò như một Cổng API hoặc Phía máy chủ cho phía trước (BFF).
-
Chức năng: Nó cung cấp một API JSON/HTTPS cho khách hàng web và di động. Nó xử lý xác thực, ủy quyền và điều phối các yêu cầu dữ liệu.
-
C. Lớp dữ liệu và tích hợp
-
Cơ sở dữ liệu:
-
Công nghệ: Lược đồ cơ sở dữ liệu Oracle.
-
Vai trò: Lưu trữ dữ liệu đặc thù cho ngân hàng trực tuyến. Bao gồm thông tin đăng ký người dùng, dữ liệu xác thực được băm (thực hành tốt về bảo mật) (thực hành tốt về bảo mật), và nhật ký truy cập. Nó không không lưu trữ số dư tài khoản thực tế (những dữ liệu này nằm ở Mainframe).
-
Giao tiếp: Ứng dụng API đọc/ghi dữ liệu vào đây thông qua JDBC.
-
-
Hệ thống ngân hàng Mainframe:
-
Vai trò: Hệ thống lưu trữ chính. Nó lưu trữ thông tin cốt lõi về ngân hàng (khách hàng, tài khoản, giao dịch).
-
Giao tiếp: Ứng dụng API giao tiếp với Mainframe thông qua XML qua HTTPS. Điều này cho thấy Mainframe có thể là một dịch vụ dựa trên SOAP cổ điển hoặc một hệ thống cũ yêu cầu trao đổi dữ liệu XML có cấu trúc.
-
-
Hệ thống thư điện tử:
-
Công nghệ: Microsoft Exchange.
-
Vai trò: Xử lý thông báo.
-
Giao tiếp: Ứng dụng API gửi thư điện tử thông qua SMTP đến máy chủ Exchange, sau đó máy chủ này chuyển chúng đến khách hàng.
-
4. Các luồng dữ liệu chính và hành trình người dùng
Cảnh huống 1: Đăng nhập qua Trình duyệt Web
-
Trình duyệt Khách hàng Ngân hàng Cá nhân đi tới
bigbank.com/ibsử dụng HTTPS. -
Yêu cầu được gửi đến Ứng dụng Web (Java/Spring MVC).
-
Ứng dụng Web cung cấp Ứng dụng Trang Đơn (Angular) đến trình duyệt của khách hàng.
-
Khách hàng nhập thông tin đăng nhập trong SPA.
-
SPA thực hiện lời gọi API (
JSON/HTTPS) đến Ứng dụng API. -
Ứng dụng API xác thực thông tin đăng nhập với Cơ sở dữ liệu (qua JDBC).
-
Sau khi thành công, SPA yêu cầu số dư tài khoản. Ứng dụng API truy xuất dữ liệu này từ Hệ thống Ngân hàng Mainframe (
XML/HTTPS) và trả về cho SPA.
Cảnh huống 2: Thông báo Giao dịch Di động
-
Khách hàng thực hiện thanh toán qua Ứng dụng Di động (Xamarin).
-
Ứng dụng gửi một yêu cầu đến Ứng dụng API.
-
Ứng dụng API xử lý thanh toán với Mainframe.
-
Ứng dụng API kích hoạt email xác nhận bằng cách gửi yêu cầu SMTP đến Hệ thống E-mail (Exchange).
-
Khách hàng nhận được thông báo email.
5. Điểm nổi bật kỹ thuật & Thực hành tốt
-
Tách biệt trách nhiệm: Sơ đồ rõ ràng tách biệt dữ liệu cụ thể cho “Ngân hàng trực tuyến” (Cơ sở dữ liệu Oracle) khỏi dữ liệu “Ngân hàng cốt lõi” (Mainframe). Điều này ngăn web layer truy cập trực tiếp vào sổ kế toán tài chính cốt lõi.
-
Chuyển đổi giao thức: Ứng dụng API đóng vai trò như một bộ dịch. Các giao diện hiện đại sử dụng JSON, nhưng backend cũ sử dụng XML. Ứng dụng API đóng vai trò cầu nối khoảng cách này.
-
Bảo mật: Thông tin đăng nhập được lưu trữ dưới dạng “băm” trong cơ sở dữ liệu, đảm bảo rằng ngay cả khi cơ sở dữ liệu bị xâm nhập, mật khẩu gốc sẽ không bị lộ. Mọi giao tiếp bên ngoài đều sử dụng HTTPS.
-
Khả năng mở rộng: Bằng cách sử dụng Ứng dụng Trang Đơn (Angular) và API tách biệt, phía trước có thể được mở rộng độc lập với logic phía sau.
This post is also available in Deutsch, English, Español, فارسی, Français, English, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, 简体中文 and 繁體中文.













