Chương 4: Cấu trúc Source Code & Modules

Dự án Signing Service Tân Cảng được thiết kế theo kiến trúc Maven Multi-Module dựa trên nền tảng Spring Boot. Cách tiếp cận này giúp cô lập rành mạch logic lõi (Core Signing) ra khỏi các giao tiếp bên ngoài (Web API, Desktop API), tối ưu việc tái sử dụng code và dễ dàng bảo trì về sau.

4.1. Module signing-common

Đây là module cơ sở nhất, không chứa logic xử lý phức tạp mà chỉ chứa các định nghĩa (Definitions) được sử dụng chung cho toàn bộ các module khác trong hệ thống.

4.2. Module signing-core

Đây là "trái tim" của hệ thống, nơi thực hiện toàn bộ các nghiệp vụ mật mã học (Cryptography) và can thiệp vật lý vào file PDF.

4.3. Module signing-web-service

Đây là khối ứng dụng Web chính (Main Application) vận hành ở phía Server-side. Module này được đóng gói thành một Docker Container độc lập phục vụ cho ký tập trung.

4.4. Module signing-desktop

Đây là ứng dụng Client-side dành riêng cho máy nhân sự, giúp khắc phục nhược điểm trình duyệt web không thể đọc trực tiếp cổng USB vật lý.

4.5. Module signing-scanner-sdk

Khối này được module hoá để độc lập hóa phần tích hợp ngoại vi nếu dự án mở rộng hỗ trợ nhận dạng chữ ký viết tay/máy quét vật lý).


Sơ đồ Phụ thuộc (Dependency Graph)

Dưới đây là sơ đồ tham chiếu lẫn nhau (<dependency>) trong file cấu hình pom.xml:

image.png

Nhìn vào mô hình, ta thấy Web và Desktop là 2 lớp trên cùng (Tầng Ứng dụng), có thể tái sử dụng chung toàn bộ logic lõi của Core