Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh chuyển đổi số, nhu cầu tham gia và tổ chức các sự kiện văn hóa, thể thao, biểu diễn nghệ thuật tại Việt Nam gia tăng mạnh mẽ. Sau giai đoạn đại dịch COVID-19 với khoảng 80% doanh nghiệp sự kiện từng phải tạm dừng hoạt động, nền kinh tế phục hồi rõ rệt với mức tăng trưởng GDP năm 2024 đạt trên 7%. Tại TP. Hồ Chí Minh, quy mô thị trường sự kiện đạt gần 2.000 tỷ đồng vào năm 2019 và ước tính tăng gấp đôi vào năm 2024, trong đó phân khúc vé âm nhạc và thể thao chiếm 65% tổng doanh thu. Đến năm 2024, khoảng 95% vé thể thao và hòa nhạc đã được phân phối qua các kênh trực tuyến.

Tuy nhiên, thực tiễn vận hành bán vé sự kiện vẫn đối mặt với nhiều bất cập:

  • Quy trình bán vé thủ công gây khó khăn trong việc kiểm soát số lượng người tham dự, phát sinh tình trạng gian lận vé và kéo dài thời gian xếp hàng tại cổng kiểm soát.
  • Các hệ thống bán vé trực tuyến hiện hữu thường xuyên gặp sự cố quá tải hoặc "sập" đường truyền khi mở bán các sự kiện có lượng truy cập đột biến (điển hình như sự cố của hệ thống VFF năm 2018 và nền tảng OneU năm 2024). Nguyên nhân xuất phát từ kiến trúc đơn khối (monolithic) tập trung thiếu khả năng mở rộng ngang, thiếu cơ chế tự động mở rộng tài nguyên đám mây (auto-scaling) và chưa tối ưu hóa bộ nhớ đệm (caching).
  • Các nhà tổ chức sự kiện vừa và nhỏ thiếu các công cụ quản lý chuyên nghiệp, minh bạch để theo dõi doanh thu, phân tích dữ liệu khán giả và kiểm soát vé vào cổng bằng công nghệ hiện đại.

Trước thực trạng đó, khóa luận tốt nghiệp kỹ sư ngành Công nghệ Thông tin của tác giả Huỳnh Nam Duy (Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) tập trung giải quyết bài toán: "Xây dựng hệ thống sàn mua bán vé sự kiện trực tuyến".

Mục tiêu chính của đề tài là xây dựng một nền tảng phần mềm toàn diện hỗ trợ người dùng tìm kiếm, đặt vé, thanh toán trực tuyến thuận tiện; tích hợp giải pháp check-in vé bằng mã QR nhằm rút ngắn thời gian kiểm soát; đồng thời cung cấp giao diện quản trị giúp ban tổ chức kiểm soát sự kiện, quản lý suất diễn, thống kê doanh thu và hỗ trợ quản trị viên kiểm duyệt nội dung.

Nhiệm vụ nghiên cứu được xác định qua 5 giai đoạn:

  1. Tìm hiểu và phân tích các yêu cầu cơ sở: Xác định công nghệ, kiến trúc và các yêu cầu thiết kế hệ thống mua bán vé sự kiện trực tuyến.
  2. Tìm hiểu và thiết kế nghiệp vụ: Nghiên cứu nghiệp vụ bán vé thực tế trên thị trường, xác định danh mục tính năng cơ sở và xây dựng mô hình nghiệp vụ dưới dạng các lược đồ kỹ thuật.
  3. Phát triển sản phẩm: Ứng dụng các công nghệ đã lựa chọn để lập trình hệ thống theo các thiết kế nghiệp vụ, tối ưu hóa hiệu năng và xây dựng giao diện người dùng.
  4. Triển khai sản phẩm: Thiết lập môi trường và triển khai hệ thống phần mềm lên máy chủ ảo thông qua quy trình CI/CD tự động.
  5. Đánh giá và tài liệu hoá sản phẩm: Đánh giá ưu điểm, hạn chế của ứng dụng, đề xuất định hướng phát triển và hoàn thiện tài liệu kỹ thuật của đề tài.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng sử dụng: Người dùng cuối (khách vãng lai, người mua vé, cá nhân/đơn vị tổ chức sự kiện) và Quản trị viên hệ thống (Administrator).
  • Phạm vi chức năng: Quản lý tài khoản, quản lý thông tin sự kiện, thiết lập suất diễn và hạng vé, tìm kiếm vé, quy trình đặt mua vé và thanh toán, soát vé check-in bằng mã QR, quản lý người dùng, kiểm duyệt sự kiện và thống kê báo cáo.
  • Phạm vi thời gian thực hiện: Từ ngày 06/01/2025 đến ngày 13/06/2025.
  • Phạm vi hạ tầng: Triển khai thử nghiệm trên môi trường Docker cục bộ và máy chủ ảo VPS.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp các nền tảng lý luận kiến trúc phần mềm hiện đại và phương pháp kỹ thuật phần mềm thực nghiệm:

1. Khung lý thuyết kiến trúc:

  • Kiến trúc Modular Monolithic (đơn khối mô-đun hóa): Mô hình thiết kế trong đó toàn bộ hệ thống được đóng gói và vận hành trong một tiến trình duy nhất (chia sẻ tài nguyên phần cứng), nhưng mã nguồn được tổ chức chặt chẽ thành các mô-đun logic độc lập theo từng nghiệp vụ. Các mô-đun giao tiếp thông qua giao diện (interface) công khai hoặc sự kiện miền (domain events). Đây là giải pháp trung gian giúp giảm thiểu độ phức tạp hạ tầng so với Microservices nhưng vẫn khắc phục được tình trạng mã nguồn đan xen, khó bảo trì của Monolithic truyền thống.
  • Spring Modulith: Thư viện mở rộng thuộc hệ sinh thái Spring (từ Spring Boot 3.1 trở lên) hỗ trợ kiểm soát tính đóng gói của các gói Java, ngăn chặn các vi phạm phụ thuộc giữa các mô-đun, tự động tạo tài liệu/lược đồ kiến trúc và điều phối sự kiện nội bộ nhằm giảm độ phụ thuộc trực tiếp.

2. Phương pháp nghiên cứu và kỹ thuật thực tế:

  • Khảo sát hiện trạng và đánh giá so sánh: Tác giả tiến hành khảo sát các nền tảng thực tế tại Việt Nam gồm TicketBox (thuộc VNPAY) và Cticket (thuộc BeFinancial), kết hợp phân tích các ca sự cố quá tải hệ thống thực tế (VFF 2018, OneU 2024) và giải pháp kỹ thuật của hệ thống SmartID (công viên nước).
  • Tổng hợp dữ liệu thực nghiệm về tài nguyên hệ thống: Tác giả trích dẫn các nghiên cứu định lượng độc lập để làm căn cứ lựa chọn kiến trúc:
    • Nghiên cứu của Redha et al. (2021) trên hệ thống POS với 100 người dùng: Microservices tiêu tốn nhiều hơn 22% CPU và khoảng 1.135 MB RAM so với Monolithic, trong khi độ trễ và thông lượng không có sự khác biệt đáng kể.
    • Báo cáo CIMPS (2018): Triển khai Microservices trên container chiếm dụng 67,6% RAM so với mức 55% của Monolithic do chi phí duy trì tiến trình và JVM riêng biệt.
    • Nghiên cứu từ ResearchGate (2019): Mức sử dụng CPU trung bình của Microservices là 7,85%, cao hơn mức 2,39% của Monolithic trong cùng điều kiện kiểm thử.
  • Mô hình hóa phần mềm theo chuẩn UML: Sử dụng sơ đồ ca sử dụng (Use Case Diagram), sơ đồ lớp nghiệp vụ (Class Diagram) và sơ đồ tuần tự (Sequence Diagram) để chuẩn hóa quy trình dữ liệu và logic xử lý.
  • Kỹ thuật container hóa và tự động hóa quy trình: Ứng dụng Docker, Docker Compose và luồng CI/CD để xây dựng quy trình triển khai phần mềm khép kín.

3. Nguồn dữ liệu: Dữ liệu nghiên cứu được trích xuất từ các báo cáo thị trường (TTXVN, CafeF, RedEvent), thông số kỹ thuật của các cổng vé trực tuyến, các bài báo khoa học về đo lường hiệu năng hệ thống (JATISI, ResearchGate, CIMPS) cùng các đặc tả ca sử dụng nội bộ do tác giả thiết kế.


Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình Modular Monolithic, kết hợp các công nghệ sau:

Thành phần Công nghệ / Công cụ sử dụng Vai trò và chức năng kỹ thuật
Backend Spring Boot, Spring Modulith, Spring Data JPA Xử lý logic nghiệp vụ, quản lý mô-đun, cung cấp API và kết nối dữ liệu
Frontend React, TypeScript, Vite, shadcn UI Xây dựng giao diện web tương tác, kiểm soát kiểu dữ liệu và tối ưu thời gian biên dịch
Cơ sở dữ liệu MySQL (RDBMS) Lưu trữ quan hệ bảo đảm tính nhất quán dữ liệu người dùng, vé và sự kiện
Giao tiếp nội bộ gRPC (Protocol Buffers) Trao đổi dữ liệu nhị phân nội bộ với tốc độ cao và định dạng dữ liệu nhẹ
Hàng đợi thông điệp Apache Kafka, Apache Zookeeper Xử lý các sự kiện bất đồng bộ theo mô hình Event-Driven, tăng khả năng chịu lỗi
Giao tiếp ngoại vi RESTful API, WebSocket Cung cấp dịch vụ cho web client và duy trì kết nối hai chiều thời gian thực
Bảo mật BCrypt, JSON Web Token (JWT) Mã hóa mật khẩu người dùng và xác thực phiên làm việc không trạng thái
Đóng gói & Hạ tầng Docker, Docker Compose, VPS, CI/CD Container hóa đa dịch vụ, quản lý phụ thuộc, tự động hóa quy trình cập nhật máy chủ

Hệ thống phân định 3 nhóm tác nhân tương tác: Khách (Guest), Người dùng cuối (User - bao gồm khán giả và nhà tổ chức sự kiện), và Quản trị viên (Administrator). Hệ thống định nghĩa 15 bảng đặc tả Use Case chính:

  • Chức năng người dùng và nghiệp vụ chung: Đăng ký tài khoản, Đăng nhập, Đăng xuất, Quản lý tài khoản cá nhân, Quản lý thẻ thông tin, Tạo mật khẩu mới, Tìm kiếm vé, Mua vé, Quản lý sự kiện, Quản lý suất diễn, Quản lý vé cho suất diễn, Phân tích dữ liệu sự kiện, Check-in vé tại cổng.
  • Chức năng quản trị hệ thống: Quản lý tài khoản người dùng, Quản lý kiểm duyệt nội dung sự kiện.

Thiết kế cơ sở hạ tầng được đóng gói qua Docker Compose gồm các cấu hình service mạng riêng biệt (networks), vùng lưu trữ dữ liệu (volumes), kiểm tra trạng thái dịch vụ (health checks) và thứ tự phụ thuộc (dependencies) giữa cơ sở dữ liệu, Kafka, Zookeeper, backend và frontend. Hệ thống tích hợp pipeline CI/CD cho phép tự động kích hoạt tiến trình kiểm thử, build image và cập nhật mã nguồn lên máy chủ ảo VPS khi có thay đổi từ kho lưu trữ.


Nội dung chính theo từng chương

Chương 1: Khảo sát hiện trạng và xác định yêu cầu

Chương này phân tích bối cảnh kinh tế - xã hội phục hồi sau đại dịch, sự gia tăng nhu cầu giải trí và cấu trúc thị trường sự kiện Việt Nam. Tác giả đi sâu phân tích kỹ thuật các điểm nghẽn của các hệ thống bán vé hiện nay:

  • Phân tích nguyên nhân sự cố sập mạng của hệ thống bán vé bóng đá VFF (2018) và OneU (2024), chỉ ra các hạn chế cố hữu của kiến trúc monolithic truyền thống, việc thiếu hụt cơ chế auto-scaling trên hạ tầng đám mây và cấu hình cache (Redis/Memcached) chưa tối ưu.
  • Đánh giá hệ thống SmartID sử dụng PostgreSQL với kỹ thuật phân mảnh (sharding) 4 vùng địa lý (mỗi vùng xử lý 25% tải) và thuật toán khóa lạc quan (Optimistic Locking) giúp giảm 80% xung đột giao dịch khi cập nhật số lượng vé.
  • Khảo sát ưu và nhược điểm của hai nền tảng tiêu biểu:
    • TicketBox (VNPAY): Chuyển đổi từ monolithic sang microservices trên Viettel Cloud và AWS, tích hợp thanh toán phong phú, song thiếu công cụ tùy biến sâu cho ban tổ chức và chưa có giao diện quản trị riêng cho đội ngũ soát vé.
    • Cticket (BeFinancial): Áp dụng kiến trúc Event-Driven với Kafka, triển khai Kubernetes, hỗ trợ bản đồ ghế ngồi và tính năng soát vé ngoại tuyến (offline QR sync), nhưng độ phủ cổng thanh toán và giao diện thiết lập còn phức tạp với người dùng mới.
  • Xác định bộ yêu cầu hệ thống:
    • Yêu cầu chức năng: Đầy đủ các luồng CRUD cho người dùng, sự kiện, suất diễn, vé, đặt mua vé trực tuyến, check-in vé bằng mã QR, duyệt sự kiện và thống kê báo cáo.
    • Yêu cầu phi chức năng: Hệ thống chịu tải tối thiểu 500 yêu cầu/giây trong điều kiện bình thường; thời gian phản hồi truy vấn tìm kiếm vé không vượt quá 2 giây; độ sẵn sàng hoạt động đạt từ 99% trở lên; mật khẩu lưu trữ mã hóa BCrypt; xác thực giao tiếp frontend - backend bằng JWT; dịch vụ tự động khởi động lại khi gặp sự cố.

Chương 2: Cơ sở lý thuyết

Chương 2 trình bày chi tiết nền tảng lý thuyết và căn cứ kỹ thuật lựa chọn công nghệ cho đề tài:

  • Phân tích kiến trúc Modular Monolithic: Đánh giá mô hình như một giải pháp dung hòa tối ưu, giúp bảo đảm tính phân tách trách nhiệm giữa các mô-đun mà không phát sinh độ phức tạp vận hành như Microservices.
  • So sánh định lượng mức tiêu thụ tài nguyên giữa Modular Monolithic và Microservices, dẫn chứng các số liệu thực nghiệm từ Redha et al. (microservices tốn hơn 22% CPU và ~1.135 MB RAM), CIMPS 2018 (chiếm dụng 67,6% RAM so với 55%), và ResearchGate 2019 (CPU chiếm 7,85% so với 2,39%).
  • Giới thiệu chi tiết thư viện Spring Modulith trên nền tảng Spring Boot 3.1 trong việc quản lý biên giới gói và điều phối sự kiện miền nội bộ.
  • Trình bày đặc tính kỹ thuật của hệ thống công nghệ được áp dụng: Spring Boot (backend), React, TypeScript, Vite, thư viện shadcn UI (frontend), MySQL (cơ sở dữ liệu), giao thức truyền tin gRPC, hàng đợi thông điệp Kafka và Zookeeper, API RESTful và WebSocket.

Chương 3: Thiết kế phần mềm

Chương 3 tập trung vào công tác mô hình hóa hướng đối tượng cho toàn bộ hệ thống:

  • Mô hình hóa ca sử dụng cho 3 nhóm tác nhân: Guest (xem sự kiện, tra cứu), User (quản lý tài khoản, tạo/quản lý sự kiện, đặt mua vé, xem báo cáo, check-in), và Administrator (quản lý tài khoản người dùng, xét duyệt nội dung sự kiện).
  • Chi tiết hóa 15 bảng đặc tả ca sử dụng (Bảng 01 đến Bảng 15) bao gồm các trường: tác nhân, điều kiện tiên quyết, luồng sự kiện chính, luồng thay thế và điều kiện kết thúc.
  • Xây dựng sơ đồ lớp nghiệp vụ (Class Diagram) chuẩn hóa quan hệ giữa các thực thể cốt lõi: User, Event, Show, Ticket, Order, Transaction.
  • Thiết kế 5 sơ đồ tuần tự (Sequence Diagram) chi tiết cho các luồng nghiệp vụ quan trọng: Luồng đăng ký tài khoản, Luồng đăng nhập hệ thống, Luồng quản lý thông tin cá nhân, Luồng quản lý thẻ thông tin thanh toán, và Luồng thống kê dữ liệu sự kiện.

Chương 4: Xây dựng và triển khai ứng dụng

Nội dung chương này mô tả quy trình hiện thực hóa giải pháp từ môi trường phát triển cục bộ đến hạ tầng máy chủ:

  • Đặc tả thông số phiên bản các thành phần phát triển tại máy trạm cục bộ (hệ điều hành, Node.js, JDK Java, Docker).
  • Hướng dẫn thiết lập và khởi chạy các dịch vụ: Backend Spring Boot, Frontend React qua Vite, cụm dịch vụ Kafka và Zookeeper qua Docker.
  • Thiết kế tệp cấu hình docker-compose.yml, phân bổ cổng mạng, cấu hình biến môi trường (.env), thiết lập các chính sách liên kết dịch vụ, kiểm tra trạng thái sống (health checks) và tự động khởi động lại.
  • Thiết lập quy trình triển khai tự động CI/CD lên máy chủ ảo VPS: Luồng kích hoạt triển khai tự động từ kho lưu trữ mã nguồn, quy trình build image, kiểm tra trạng thái dịch vụ trên máy chủ và phương thức truy cập hệ thống.

Chương 5: Thiết kế giao diện

Chương 5 minh họa trực quan các giao diện người dùng theo từng nhóm tác nhân thông qua hệ thống hình ảnh thực tế:

  • Nhóm giao diện Khách (Guest): Trang chủ khi chưa đăng nhập, giao diện đăng ký tài khoản, giao diện đăng nhập, trang đổi/quên mật khẩu, thanh tìm kiếm sự kiện và trang hiển thị kết quả tìm kiếm.
  • Nhóm giao diện Người dùng (User): Trang chủ khi đã đăng nhập, trang chi tiết sự kiện, quy trình mua vé 4 bước tuần tự (Bước 1: Chọn suất diễn; Bước 2: Chọn hạng vé; Bước 3: Xác nhận thông tin nhận vé; Bước 4: Thực hiện thanh toán), trang quản lý vé đã mua, trang quản lý thông tin nhận vé, trang tạo mới/chỉnh sửa sự kiện (gồm 4 phần: thông tin cơ bản, suất diễn, hạng vé, hình ảnh quảng bá), trang quản lý danh sách vé, trang phân tích số liệu bán vé và giao diện Chatbot hướng dẫn tự động.
  • Nhóm giao diện Quản trị viên (Admin): Trang quản lý danh sách người dùng, giao diện xem chi tiết thông tin người dùng, trang quản lý danh sách sự kiện toàn hệ thống, giao diện kiểm duyệt nội dung sự kiện, trang quản lý tham số khu vực tổ chức và trang cấu hình hướng dẫn Chatbot.

Kết quả và đóng góp

Khóa luận đã hoàn thành các mục tiêu đề ra với những kết quả cụ thể:

1. Kết quả phần mềm và chỉ số kỹ thuật:

  • Xây dựng hoàn chỉnh ứng dụng web sàn mua bán vé sự kiện trực tuyến, đáp ứng toàn diện các chu trình nghiệp vụ từ quản lý sự kiện, phân hạng vé, mua vé, thanh toán trực tuyến, soát vé bằng mã QR đến công cụ thống kê dữ liệu.
  • Thiết kế hệ thống bảo đảm các chỉ số chất lượng đề ra: năng lực tiếp nhận tối thiểu 500 yêu cầu/giây trong điều kiện vận hành chuẩn, thời gian phản hồi các tác vụ tra cứu dưới 2 giây, và tính sẵn sàng của hệ thống đạt từ 99% trở lên.
  • Triển khai thành công ứng dụng trên máy chủ ảo VPS thông qua Docker Compose và luồng CI/CD, tự động hóa quy trình vận hành và cập nhật hệ thống.

2. Giải pháp và kiến nghị kỹ thuật:

  • Đề xuất và ứng dụng kiến trúc Modular Monolithic thông qua Spring Modulith kết hợp Spring Boot. Giải pháp này giúp kiểm soát ranh giới giữa các mô-đun nghiệp vụ một cách kỷ luật, dễ dàng chuyển đổi sang Microservices trong tương lai mà không phải chịu tổn thất lớn về chi phí phần cứng và tài nguyên vận hành ở giai đoạn đầu.
  • Kết hợp gRPC để tối ưu hóa tốc độ trao đổi dữ liệu nhị phân nội bộ và Apache Kafka để xử lý bất đồng bộ các luồng sự kiện đặt vé, giải quyết triệt để nguy cơ nghẽn cổ chai khi phát sinh lượng giao dịch lớn.

3. Đóng góp về mặt học thuật và kỹ thuật:

  • Cung cấp một tài liệu kỹ thuật hoàn chỉnh về quy trình phân tích, thiết kế UML (15 đặc tả use case, sơ đồ lớp, sơ đồ tuần tự) cho bài toán thương mại điện tử chuyên ngành vé sự kiện.
  • Đưa ra mô hình đối sánh định lượng rõ ràng giữa kiến trúc đơn khối truyền thống, Modular Monolithic và Microservices dựa trên các nghiên cứu thực nghiệm, đóng vai trò tài liệu tham khảo giá trị cho các bài toán tối ưu hóa hạ tầng máy chủ với chi phí hợp lý.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên phạm vi và nội dung trình bày trong văn bản khóa luận, đề tài ghi nhận các điểm hạn chế và hướng mở rộng như sau:

1. Hạn chế:

  • Hệ thống mới chỉ dừng lại ở phạm vi triển khai và thử nghiệm trên môi trường máy chủ ảo VPS với quy mô thử nghiệm nội bộ, chưa trải qua quá trình kiểm thử chịu tải (stress test/load test) thực tế trên quy mô hàng trăm nghìn người dùng đồng thời như các sàn thương mại lớn.
  • Khả năng tích hợp với các cổng thanh toán điện tử thực tế và việc kết nối hệ thống với các nền tảng của bên thứ ba (như CRM, ERP) qua các cổng API mở rộng vẫn đang ở mức độ thiết lập nghiệp vụ cơ sở, chưa được liên kết diện rộng.

2. Hướng nghiên cứu tiếp:

  • Mở rộng các kết nối API tiêu chuẩn với các dịch vụ bên ngoài nhằm hỗ trợ đa dạng cổng thanh toán và tăng cường khả năng liên kết với các đối tác tổ chức sự kiện.
  • Tối ưu hóa hệ thống để thích ứng với tốc độ tăng trưởng người dùng; thực hiện phân tách từng mô-đun nghiệp vụ cụ thể thành các dịch vụ độc lập (Microservices) khi nhu cầu mở rộng quy mô và lưu lượng truy cập thực tế đòi hỏi.

Giá trị tham khảo

Tài liệu khóa luận mang lại giá trị thực tiễn cho các đối tượng:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm: Là tài liệu tham khảo chuẩn mực về cấu trúc một đồ án tốt nghiệp kỹ sư hoàn chỉnh, từ khảo sát hiện trạng, phân tích nghiệp vụ, mô hình hóa hệ thống bằng UML đến kỹ thuật đóng gói và triển khai.
  • Kỹ sư phát triển phần mềm: Cung cấp phương pháp thực hành cụ thể về việc triển khai kiến trúc Modular Monolithic sử dụng Spring Modulith trên Spring Boot, cách tổ chức mã nguồn có tính mở rộng cao và việc phối hợp gRPC cùng Apache Kafka trong kiến trúc hướng sự kiện.
  • Phần nội dung đáng tham khảo nhất:
    • Bảng tổng hợp so sánh định lượng tài nguyên (CPU, RAM) giữa các mô hình kiến trúc tại Chương 2.
    • Hệ thống 15 bảng đặc tả ca sử dụng chi tiết cùng các sơ đồ tuần tự tại Chương 3.
    • Cấu hình mạng, quản lý phân vùng và thiết lập phụ thuộc dịch vụ bằng Docker Compose kết hợp luồng CI/CD lên VPS tại Chương 4.

Câu hỏi thường gặp

1. Tại sao tác giả lựa chọn kiến trúc Modular Monolithic thay vì triển khai trực tiếp mô hình Microservices?
Dựa trên các nghiên cứu thực nghiệm được trích dẫn (như Redha et al., CIMPS 2018), mô hình Microservices tiêu tốn nhiều tài nguyên hơn đáng kể (thêm 22% CPU và ~1.135 MB RAM trên hệ thống mô phỏng, chiếm dụng tới 67,6% RAM) do mỗi dịch vụ phải duy trì container và tiến trình JVM riêng. Với quy mô của một hệ thống mới và hạ tầng máy chủ đơn (VPS), kiến trúc Modular Monolithic giúp tối ưu hóa chi phí vận hành, giảm độ phức tạp hạ tầng nhưng vẫn bảo đảm tính độc lập mô-đun thông qua thư viện Spring Modulith, tạo nền tảng thuận lợi để tách thành Microservices khi cần mở rộng.

2. Hệ thống sử dụng những phương pháp liên lạc nội bộ và ngoại vi nào để bảo đảm hiệu năng?
Giao tiếp nội bộ giữa các dịch vụ backend được thực hiện qua gRPC (giao thức RPC hiệu năng cao sử dụng Protocol Buffers dạng nhị phân nhẹ) và Apache Kafka kết hợp Apache Zookeeper đóng vai trò hàng đợi thông điệp để xử lý sự kiện bất đồng bộ theo mô hình Event-Driven. Giao tiếp với bên ngoài sử dụng chuẩn RESTful API cho các thao tác dữ liệu thông thường và giao thức WebSocket nhằm duy trì kết nối hai chiều thời gian thực cho các tính năng phản hồi liên tục.

3. Quy trình mua vé trực tuyến của người dùng trên giao diện được thiết kế gồm mấy bước?
Quy trình mua vé trên giao diện web được chuẩn hóa qua 4 bước tuần tự:

  • Bước 1: Lựa chọn suất diễn phù hợp của sự kiện.
  • Bước 2: Lựa chọn hạng vé và số lượng vé mong muốn.
  • Bước 3: Xác nhận các thông tin cá nhân và thông tin nhận vé.
  • Bước 4: Thực hiện thanh toán trực tuyến để hoàn tất đơn hàng và nhận mã vé.

4. Quản trị viên (Administrator) có những thẩm quyền nghiệp vụ nào trong hệ thống?
Quản trị viên có quyền kiểm soát toàn diện hoạt động của hệ thống, bao gồm: quản lý tài khoản người dùng (xem thông tin, chỉnh sửa, khóa hoặc xóa tài khoản, phân quyền truy cập); thực hiện kiểm duyệt nội dung sự kiện do ban tổ chức gửi lên trước khi công khai mở bán; quản lý danh sách sự kiện và các suất diễn; theo dõi các báo cáo thống kê về doanh thu, số lượng vé bán ra và lượt check-in; đồng thời quản lý các tham số khu vực tổ chức và cấu hình Chatbot hướng dẫn.


Kết luận

Khóa luận tốt nghiệp của tác giả Huỳnh Nam Duy đã hoàn thành trọn vẹn mục tiêu thiết kế và xây dựng hệ thống sàn mua bán vé sự kiện trực tuyến, đáp ứng đầy đủ các yêu cầu nghiệp vụ thực tiễn cho cả người mua vé, ban tổ chức và quản trị viên. Bằng việc ứng dụng kiến trúc Modular Monolithic kết hợp Spring Modulith, đề tài đã đưa ra giải pháp cân bằng hiệu quả giữa năng lực mở rộng phần mềm và chi phí tài nguyên phần cứng. Công trình cung cấp tài liệu chi tiết từ thiết kế UML, kiểm soát luồng giao tiếp gRPC/Kafka đến quy trình tự động hóa CI/CD bằng Docker Compose, đóng góp một mô hình tham khảo có tính thực tiễn cao cho sinh viên và kỹ sư phát triển phần mềm ứng dụng.