Giới thiệu dự án

Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 cùng mô hình Điện toán Đám mây theo định hướng Hạ tầng như một Dịch vụ (IaaS) đã thúc đẩy mạnh mẽ việc ứng dụng Internet of Things (IoT) vào các ngành kinh tế trọng điểm. Theo các báo cáo công nghệ số, hơn 70% các hệ thống thương mại điện tử và dịch vụ trực tuyến hiện đại phải chuyển đổi từ kiến trúc nguyên khối (Monolithic) sang các hệ thống phân tán để đáp ứng lưu lượng truy cập lớn và tính sẵn sàng cao. Tại tỉnh Quảng Nam – địa phương sở hữu hai Di sản Văn hóa Thế giới và vùng kinh tế trọng điểm miền Trung, bài toán số hóa ngành du lịch thông qua việc kết nối chuỗi dịch vụ phân tán (Hội An, Tam Kỳ, Khu kinh tế mở Chu Lai) đòi hỏi hạ tầng dữ liệu phải đảm bảo tính tin cậy tuyệt đối.

+-----------------------------------------------------------------------+
|                 MÔ HÌNH HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN QUẢNG NAM           |
|                                                                       |
|  [ Trạm Hội An ]  <======= (Internet) =======>  [ Trạm Tam Kỳ ]       |
|   (MySQL Node 1)                                (MySQL Node 2)        |
|          ^                                             ^              |
|          |                  (Internet)                 |              |
|          +=====================> <=====================+              |
|                                  v                                    |
|                       [ Trạm Chu Lai ]                                |
|                        (MySQL Node 3)                                 |
+-----------------------------------------------------------------------+

Vấn đề cốt lõi của các hệ thống đặt chỗ du lịch tập trung truyền thống nằm ở hiện tượng "điểm nghẽn cổ chai" (bottleneck), độ trễ đường truyền cao khi người dùng truy cập từ xa, và đặc biệt là rủi ro mất mát dữ liệu khi máy chủ trung tâm gặp sự cố. Trong môi trường phân tán, việc nhiều khách hàng đồng thời gửi yêu cầu đăng ký tour hoặc đặt dịch vụ dẫn đến nguy cơ xung đột tương tranh dữ liệu (concurrency conflicts), gây ra tình trạng một chỗ ngồi, một phòng nghỉ bị bán nhiều lần (overbooking) hoặc dữ liệu giữa các chi nhánh không đồng nhất.

Khóa luận tốt nghiệp của sinh viên Trần Dương Ngọc Tuấn (Khoa Công nghệ Thông tin, Trường Đại học Quảng Nam) tập trung giải quyết bài toán: Nghiên cứu và hiện thực hóa giải pháp kỹ thuật đồng bộ hóa dữ liệu phân tán cho bài toán đăng ký tour du lịch từ xa, kết hợp hệ thống giám sát sự cố phần cứng thời gian thực trong môi trường Internet of Things (IoT).

Mục tiêu cụ thể của đề tài bao gồm:

  1. Hệ thống hóa lý thuyết về tính toán phân tán, hệ quản trị cơ sở dữ liệu phân tán (DDBS), các mô hình nhân bản dữ liệu (Replication) và kiểm soát tương tranh.
  2. Phân tích, so sánh các giao thức đồng thuận và cam kết giao dịch kinh điển: Two-Phase Commit (2PC), Three-Phase Commit (3PC) và thuật toán Paxos.
  3. Thiết kế và tối ưu hóa giải pháp cam kết hai pha tuyến tính (Linear 2PC) kết hợp cơ chế lập lịch truy vấn ưu tiên (SELECT $\rightarrow$ DELETE $\rightarrow$ UPDATE $\rightarrow$ INSERT) và bể quản lý kết nối (Connection Pooling).
  4. Xây dựng mô hình thực nghiệm đa máy chủ kết hợp mạch vi điều khiển Arduino Uno và module truyền thông không dây Bluetooth HC-06 nhằm tự động phát hiện, cảnh báo sự cố vật lý tại các điểm cung cấp dịch vụ du lịch.

Phạm vi nghiên cứu giới hạn ở mô hình mạng phân tán 3 điểm trạm mô phỏng địa bàn tỉnh Quảng Nam (Hội An, Tam Kỳ, Chu Lai), sử dụng giao thức truyền thông TCP/IP Socket và nền tảng nhúng AVR 8-bit.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Quản lý giao dịch và đồng bộ hóa trong hệ thống phân tán đòi hỏi cân bằng giữa hiệu năng (Throughput/Latency) và tính toàn vẹn dữ liệu (Consistency). Bảng dưới đây so sánh các hướng tiếp cận hiện nay:

Tiêu chí CSDL Tập trung (Centralized) CSDL Phân tán 2PC Chuẩn Giải pháp Đề xuất (Linear 2PC + IoT)
Tính sẵn sàng (Availability) Thấp (SPOF - Single Point of Failure) Trung bình (Bị chặn nếu Coordinator lỗi) Cao (Chuyển giao trạm xử lý linh hoạt)
Độ trễ phản hồi (Latency) Cao khi truy cập từ xa qua Internet Cao do số lượng thông điệp trao đổi lớn Tối ưu hóa nhờ chuỗi tuyến tính $O(N)$
Kiểm soát bán trùng (Overbooking) Dễ kiểm soát bằng khóa nội bộ Tốt nhưng dễ gây tắc nghẽn (Deadlock) Tuyệt đối nhờ khóa loại trừ + Trật tự SQL
Nhận biết sự cố vật lý Không hỗ trợ (Chỉ bắt lỗi phần mềm) Không hỗ trợ Thời gian thực qua cảm biến vi điều khiển

Hệ thống đặt ra các yêu cầu chức năng và phi chức năng theo mô hình phân loại MoSCoW:

  • Must have (Bắt buộc): Đảm bảo tính nguyên tố (Atomicity) và nhất quán (Consistency) của giao dịch đặt tour phân tán; tự động phục hồi trạng thái cũ (Rollback) khi có ít nhất một nút trạm thất bại; phát tín hiệu cảnh báo sự cố từ phần cứng.
  • Should have (Nên có): Bể kết nối (ConnectionPool) dùng chung để tối ưu hóa việc tái sử dụng tài nguyên; giao diện giám sát quy trình di chuyển thông điệp trực quan (TPCMonitorServer).
  • Could have (Có thể mở rộng): Cơ chế bầu chọn điều phối viên mới tự động nếu trạm nguồn sập hoàn toàn.
  • Won't have (Chưa thực hiện): Tích hợp phân mảnh dữ liệu ngang/dọc phức tạp trên quy mô hàng ngàn nút trạm.

Thiết kế hệ thống

Kiến trúc giải pháp được tổ chức thành 4 tầng logic tương tác qua giao thức mạng:

[ Client Browsers (C1, C2, ..., Cn) ]
                 |  HTTP / Web Interface
                 v
[ Web Server - Node.js V8 Engine ]
                 |  TCP/IP Sockets / RPC
                 v
[ TPC-Server-App Coordinator (Java / ConnectionPool) ]
                 |  Linear 2PC Pipeline
                 +---> [ TPC-Server-App 1 (Hội An)  ] ---> [ MySQL Instance 1 ]
                 |              |
                 |              v
                 +---> [ TPC-Server-App 2 (Tam Kỳ)   ] ---> [ MySQL Instance 2 ]
                 |              |
                 |              v
                 +---> [ TPC-Server-App 3 (Chu Lai)  ] ---> [ MySQL Instance 3 ]
                 ^
                 | Bluetooth HC-06 (Serial UART @ 9600 bps)
[ IoT Hardware Hub: Arduino Uno (ATmega328P) + Physical Sensors / LEDs ]

Technology Stack và thông số kỹ thuật:

  • Web Frontend/Backend Gateway: Node.js nền tảng Google V8 JavaScript Engine, xử lý I/O phi đồng bộ (Event-driven Non-blocking I/O) cho phép tiếp nhận hàng ngàn kết nối đồng thời từ khách hàng mà không tiêu tốn tài nguyên luồng như mô hình đa luồng truyền thống.
  • Distributed Transaction Core: Java Standard Edition (JDK 8), thư viện đồ họa Java Swing / WindowBuilder phục vụ giám sát luồng dữ liệu.
  • Database Management System: MySQL Server 5.7 triển khai độc lập tại mỗi trạm, hỗ trợ giao thức kết nối JDBC.
  • IoT Hardware: Bo mạch Arduino Uno R3 (Vi điều khiển ATmega328P 8-bit, xung nhịp 16 MHz, 32KB Flash Memory), Module Bluetooth HC-06 (Baudrate 9600 bps, khoảng cách kết nối < 10m), mạch còi và đèn LED cảnh báo sự cố.
-- Schema cấu trúc dữ liệu mô phỏng tại các trạm phân tán
CREATE TABLE NhaHang_KhachSan (
    MaDV VARCHAR(10) PRIMARY KEY,
    TenDV VARCHAR(100) NOT NULL,
    DiaChi VARCHAR(200),
    SoChoTrong INT NOT NULL,
    TrangThaiSuCo TINYINT DEFAULT 0 -- 0: Binh thuong, 1: Gap su co
);

CREATE TABLE DangKyTour (
    MaDK VARCHAR(10) PRIMARY KEY,
    TenKhachHang VARCHAR(100) NOT NULL,
    SoDienThoai VARCHAR(15),
    MaDV VARCHAR(10),
    SoLuongNguoi INT NOT NULL,
    NgayDangKy DATETIME DEFAULT CURRENT_TIMESTAMP,
    TrangThaiThanhCong TINYINT DEFAULT 0,
    FOREIGN KEY (MaDV) REFERENCES NhaHang_KhachSan(MaDV)
);

Methodology

Đề tài áp dụng phương pháp nghiên cứu thực nghiệm lặp (Iterative Engineering Methodology) kết hợp kiểm chứng qua mô phỏng. Tiến trình thực hiện chia làm 4 giai đoạn chính:

[ Phase 1: Nghiên cứu lý thuyết CSDL Phân tán & IoT ] (Tuần 1 - 4)
[ Phase 2: Thiết kế mô hình thuật toán Linear 2PC ]   (Tuần 5 - 8)
[ Phase 3: Lập trình hệ đa Server Java & Mạch Arduino ] (Tuần 9 - 14)
[ Phase 4: Thử nghiệm mô phỏng, Đánh giá & Viết báo cáo ] (Tuần 15 - 18)

Đánh giá và giảm thiểu rủi ro kỹ thuật:

  • Rủi ro nghẽn mạng cục bộ: Sử dụng ConnectionPool tái tạo liên kết đến CSDL MySQL, giảm 45% thời gian khởi tạo kết nối mới mỗi giao dịch.
  • Rủi ro sai lệch dữ liệu khi nút trạm chết giữa chừng: Giao thức bắt buộc lưu vết trạng thái chuẩn bị vào bộ nhớ đệm trước khi phản hồi thông điệp ACK (Acknowledgement).

Implementation và kết quả

Development process

Cốt lõi của hệ thống là thuật toán Cam kết Hai Pha Tuyến tính (Linear Two-Phase Commit). Trong mô hình này, thông điệp không truyền hình sao (Star topology) từ điều phối viên đến từng thành viên rồi quay lại, mà được chuyển tiếp tuần tự theo danh sách di chuyển định sẵn ($1 \rightarrow 2 \rightarrow \dots \rightarrow N$).

[ Coordinator ] ---- Prepare ----> [ Participant 1 ] ---- Prepare ----> [ Participant 2 ]
      ^                                                                         |
      |                                                                         v
      +<------------------------ Global Commit / Abort <------------------------+

Khi một yêu cầu đăng ký tour được gửi từ Client, Web Server tiếp nhận và phân rã thành danh sách các câu truy vấn tương ứng trên từng Database Server. Thứ tự ưu tiên thực thi các thao tác nguyên thủy trên từng đối tượng được chuẩn hóa nghiêm ngặt: $$\text{Priority: } \text{SELECT} \longrightarrow \text{DELETE} \longrightarrow \text{UPDATE} \longrightarrow \text{INSERT}$$

+-------------------------------------------------------------------------------+
|         MÃ GIẢ XỬ LÝ GIAO DỊCH PHÂN TÁN LINEAR 2PC TẠI TPC-SERVER-APP         |
+-------------------------------------------------------------------------------+
1. Function ProcessDistributedTransaction(TransactionRequest req):
2.    Let serverList = DecomposeRequestToServers(req)
3.    Let currentTransactionState = PREPARE_STATE
4.    
5.    For each server in serverList do:
6.       AcquireLock(server.TargetResource, EXCLUSIVE_MODE) // v_viet(e)
7.       Let isExecutable = server.ExecuteValidationQueries(SELECT_PRIORITY)
8.       
9.       If NOT isExecutable OR server.IsHardwareIncidentOccurred() then:
10.          currentTransactionState = ABORT_STATE
11.          Break Loop
12.      End If
13.   End For
14.   
15.   If currentTransactionState == PREPARE_STATE then:
16.      For each server in serverList do:
17.         server.ExecuteUpdateQueries(UPDATE_INSERT_PRIORITY)
18.         server.CommitLocalTransaction()
19.         ReleaseLock(server.TargetResource) // giai_phong(e)
20.      End For
21.      Return TRANSACTION_SUCCESS
22.   Else:
23.      For each server in serverList do:
24.         server.RollbackLocalTransaction()
25.         ReleaseLock(server.TargetResource)
26.      End For
27.      Return TRANSACTION_FAILED_AND_ROLLEDBACK
28.   End If
+-------------------------------------------------------------------------------+

Đối với tầng phần cứng, Arduino thực hiện quét trạng thái cảm biến và liên tục phản hồi qua giao thức Serial/Bluetooth để thông báo khi cơ sở dịch vụ gặp sự cố (ví dụ: nhà hàng quá tải hoặc mất điện):

// Mã nguồn điều khiển trên Arduino Uno R3 thông báo sự cố qua Bluetooth HC-06
#define LED_STATUS_PIN 13
#define INCIDENT_BUTTON_PIN 2

int incidentState = 0;

void setup() {
  pinMode(LED_STATUS_PIN, OUTPUT);
  pinMode(INCIDENT_BUTTON_PIN, INPUT_PULLUP);
  Serial.begin(9600); // Khởi tạo giao tiếp UART với module HC-06
}

void loop() {
  // Đọc tín hiệu nút bấm hoặc cảm biến báo sự cố
  int sensorRead = digitalRead(INCIDENT_BUTTON_PIN);
  
  if (sensorRead == LOW) { // Phát hiện sự cố tại điểm cung cấp dịch vụ
    incidentState = 1;
    digitalWrite(LED_STATUS_PIN, HIGH);
    Serial.println("ALERT_INCIDENT_ON"); // Gửi tín hiệu về Server
    delay(500); // Chống dội phím (debounce)
  } else {
    if (incidentState == 1) {
      incidentState = 0;
      digitalWrite(LED_STATUS_PIN, LOW);
      Serial.println("ALERT_INCIDENT_OFF");
    }
  }
  delay(100);
}

Testing và validation

Chương trình được triển khai thử nghiệm trong môi trường mạng cục bộ diện rộng giả lập với 3 trạm máy chủ chứa cơ sở dữ liệu MySQL độc lập.

+------------------------------------------------------------------------------+
|             KẾT QUẢ KIỂM THỬ KHẢ NĂNG ĐỒNG BỘ DỮ LIỆU KHI CÓ SỰ CỐ            |
+------------------------------------------------------------------------------+
| Kịch bản kiểm thử                     | Kỳ vọng            | Thực tế đạt được|
+---------------------------------------+--------------------+-----------------+
| 1. Đăng ký tour khi 3 Server bình     | Toàn bộ 3 Server   | 100% Commit     |
|    thường (Tải 100 req/s)             | ghi nhận dữ liệu   | Thành công      |
| 2. Ngắt kết nối mạng tại Server 2     | Toàn bộ hệ thống   | 100% Rollback,  |
|    trong pha Chuẩn bị (Phase 1)       | hủy giao dịch      | Không sai lệch  |
| 3. Arduino kích hoạt báo sự cố vật lý | Loại bỏ dịch vụ ra | Bắt sự cố trong |
|    tại Nhà hàng trạm Hội An           | khỏi danh sách đặt | < 850 ms        |
+------------------------------------------------------------------------------+
  • Độ bao phủ kiểm thử (Test Coverage): 100% các nhánh rẽ của tiến trình Linear 2PC (Vote-Commit, Vote-Abort, Timeout Rollback) được kích hoạt và kiểm chứng thành công qua công cụ TPCMonitorServer.
  • Hiệu năng hệ thống: Thời gian xử lý trung bình cho một giao dịch phân tán 3 điểm trạm đạt 145ms trong điều kiện mạng lý tưởng và tự động hủy bỏ an toàn trong vòng 1200ms khi xảy ra hiện tượng mất gói tin (Packet Loss).

Đổi mới và đóng góp

  1. Cải tiến giao thức Linear 2PC theo thứ tự SQL ưu tiên: Bằng cách áp dụng trật tự hóa tuần tự (SELECT kiểm tra chỗ trống $\rightarrow$ UPDATE trừ số lượng $\rightarrow$ INSERT bản ghi đăng ký), hệ thống triệt tiêu hoàn toàn khả năng xảy ra tình trạng Deadlock giữa các giao dịch cạnh tranh tài nguyên tại các trạm.
  2. Tích hợp phần cứng IoT vào kiến trúc quản lý giao dịch CSDL: Đây là một trong những nghiên cứu ứng dụng tiên phong kết hợp tầng vi điều khiển (Arduino Uno, Bluetooth HC-06) với tầng cơ sở dữ liệu phân tán, cho phép hệ thống nhận biết tức thời sự cố vật lý từ thế giới thực mà không cần chờ đợi lỗi từ tầng ứng dụng phần mềm.
  3. Mô hình hóa thành công bài toán kinh tế số địa phương: Đề tài đã trực tiếp giải quyết bài toán cấp thiết trong chiến lược phát triển du lịch thông minh tại Quảng Nam, cung cấp giải pháp khả thi để kết nối các trung tâm du lịch lớn của tỉnh.

Ứng dụng thực tế và triển khai

Hệ thống được thiết kế theo hướng module hóa cao, phù hợp triển khai trực tiếp cho:

  • Chuỗi văn phòng lữ hành, đại lý du lịch liên vùng: Đồng bộ dữ liệu bán vé tour Hội An - Mỹ Sơn - Tam Kỳ - Chu Lai.
  • Hệ thống khách sạn, resort phân tán: Quản lý quỹ phòng nghỉ thời gian thực, ngăn chặn triệt để tình trạng bán vượt công suất phòng (Overbooking).
  • Mạng lưới nhà hàng, điểm tham quan: Ứng dụng hộp thiết bị IoT Arduino tại quầy lễ tân để kích hoạt trạng thái "Hết chỗ" hoặc "Tạm ngừng phục vụ", dữ liệu sẽ lập tức được đẩy về máy chủ trung tâm để dừng nhận khách đặt từ xa.
+------------------------------------------------------------------------------+
|                         LỘ TRÌNH TRIỂN KHAI THỰC TẾ                          |
|                                                                              |
|  [ Tháng 1 - 2 ]  Triển khai hạ tầng máy chủ phân tán & Cấu hình MySQL       |
|  [ Tháng 3 - 4 ]  Lắp đặt thiết bị ngoại vi Arduino + Cảm biến tại cơ sở     |
|  [ Tháng 5 - 6 ]  Chạy thử nghiệm nội bộ & Đào tạo nhân viên điều hành       |
+------------------------------------------------------------------------------+

Ước tính hiệu quả kinh tế (ROI): Việc áp dụng mô hình phân tán chi phí thấp trên nền tảng nguồn mở (Node.js, MySQL, Arduino) giúp doanh nghiệp tiết kiệm đến 60% chi phí bản quyền phần mềm so với các hệ quản trị CSDL thương mại lớn (như Oracle RAC), đồng thời loại bỏ hoàn toàn chi phí đền bù thiệt hại do lỗi bán trùng dịch vụ gây ra.


Hạn chế và hướng phát triển

Dù đạt được các kết quả mô phỏng khả quan, đề tài vẫn tồn tại một số hạn chế kỹ thuật:

  • Hạn chế của giao thức 2PC: Bản chất của Linear 2PC là giao thức dạng chặn (Blocking Protocol). Nếu Coordinator hoặc một nút trong chuỗi bị treo vĩnh viễn trong giai đoạn cam kết, các tài nguyên liên quan vẫn bị khóa (v_viet(e) lock), làm giảm tính sẵn sàng của toàn hệ thống.
  • Phạm vi truyền thông IoT: Module Bluetooth HC-06 có bán kính hoạt động hẹp (< 10m) và độ ổn định tín hiệu suy giảm khi gặp vật cản lớn.

Hướng phát triển tiếp theo:

  1. Nâng cấp giao thức đồng thuận từ Linear 2PC lên Paxos Consensus hoặc Raft Algorithm để loại bỏ hoàn toàn điểm nghẽn điều phối viên.
  2. Thay thế module Bluetooth bằng các vi điều khiển hỗ trợ Wi-Fi/LoRaWAN (như ESP8266, ESP32) để gửi dữ liệu cảm biến trực tiếp lên máy chủ thông qua giao thức truyền tin nhẹ MQTT.
  3. Bổ sung cơ chế tự động giải phóng khóa (Lock Timeout Management) và phục hồi giao dịch thông qua tệp ghi nhật ký hệ thống (Write-Ahead Logging - WAL).

Đối tượng hưởng lợi

  • Sinh viên & Học viên ngành CNTT: Nguồn tài liệu tham khảo trực quan, chi tiết về cách thức hiện thực hóa lý thuyết hệ phân tán, xử lý tương tranh và kỹ thuật lập trình Socket giao tiếp đa trạm.
  • Lập trình viên & Kỹ sư hệ thống: Nắm bắt được mô hình triển khai Linear 2PC kết hợp Connection Pooling và phương pháp tích hợp luồng dữ liệu phần cứng IoT vào logic nghiệp vụ của ứng dụng web.
  • Doanh nghiệp lữ hành, dịch vụ: Có được bản thiết kế kiến trúc hệ thống đặt chỗ trực tuyến phân tán với chi phí đầu tư phần cứng/phần mềm tối thiểu nhưng vẫn đảm bảo tính an toàn dữ liệu tuyệt đối.
  • Nhà nghiên cứu: Cơ sở thực nghiệm để tiếp tục phát triển các mô hình đồng thuận dữ liệu lai (Hybrid Consensus) kết hợp giữa mạng cảm biến không dây (WSN) và hệ cơ sở dữ liệu phân tán.

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

1. Yêu cầu phần cứng và hạ tầng tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu các nút máy chủ phân tán có cấu hình tối thiểu 2 vCPU, 4GB RAM chạy hệ điều hành Linux (Ubuntu Server/CentOS) có cài đặt Java Runtime Environment (JRE 8+) và MySQL 5.7+. Đối với các điểm dịch vụ cần cảnh báo phần cứng, chỉ cần trang bị bo mạch Arduino Uno (hoặc Nano) kèm module giao tiếp mạng với tổng chi phí dưới 300.000 VNĐ/điểm.

2. Hệ thống giải quyết bài toán xung đột dữ liệu (Concurrency Conflict) như thế nào?

Hệ thống sử dụng cơ chế khóa loại trừ (Exclusive Lock) thông qua hàm nguyên thủy v_viet(e) trên đối tượng dữ liệu trước khi thực hiện cập nhật. Kết hợp với việc chuẩn hóa thứ tự thực thi câu lệnh SQL (SELECT kiểm tra hợp lệ $\rightarrow$ UPDATE/INSERT), hệ thống ngăn chặn hoàn toàn việc hai người dùng đặt cùng một ghế/phòng tại cùng một thời điểm.

3. Nếu một máy chủ thành viên bị mất kết nối trong quá trình giao dịch, hệ thống xử lý ra sao?

Nếu một máy chủ gặp sự cố không thể gửi phản hồi trong pha chuẩn bị (Prepare Phase), trạm điều phối sẽ kích hoạt cơ chế Hủy bỏ Toàn cục (Global Abort). Toàn bộ các trạm đã thực hiện thao tác trước đó sẽ tiến hành Rollback trạng thái về điểm xuất phát ban đầu, đảm bảo tính toàn vẹn dữ liệu (Atomicity).

4. Tại sao hệ thống lại sử dụng kết hợp cả Node.js và Java?

Node.js đóng vai trò cổng giao tiếp Web (Web Gateway) tiếp nhận yêu cầu từ hàng ngàn trình duyệt người dùng nhờ kiến trúc non-blocking I/O nhanh và nhẹ. Trong khi đó, Java được sử dụng để xây dựng tầng lõi xử lý giao dịch phân tán (TPC-Server-App) nhằm tận dụng khả năng xử lý Socket TCP/IP mạnh mẽ, an toàn kiểu dữ liệu và hỗ trợ quản lý kết nối CSDL bền vững.

5. Khả năng mở rộng (Scalability) của giải pháp này đến mức nào?

Mô hình Linear 2PC hiện tại hoạt động tối ưu với các hệ thống phân tán quy mô vừa từ 3 đến 10 nút trạm mạng cục bộ/vùng. Khi mở rộng lên quy mô hàng trăm chi nhánh, hệ thống cần được phân cụm (Clustering) và chuyển đổi tầng cam kết sang các giao thức phân tán hiện đại như Paxos hoặc Raft để giảm độ trễ lan truyền thông điệp.


Kết luận

Khóa luận tốt nghiệp của sinh viên Trần Dương Ngọc Tuấn đã nghiên cứu thành công và giải quyết trọn vẹn bài toán đồng bộ hóa dữ liệu phân tán cho mô hình đăng ký tour du lịch từ xa. Bằng việc kết hợp sáng tạo giữa lý thuyết cam kết hai pha tuyến tính (Linear 2PC), kỹ thuật kiểm soát khóa loại trừ và tầng phần cứng giám sát IoT trên nền tảng vi xử lý Arduino, đề tài đã chứng minh tính khả thi của một hệ thống thương mại điện tử du lịch tin cậy, không xảy ra hiện tượng bán trùng dịch vụ và có khả năng ứng phó linh hoạt với các sự cố vật lý tại địa phương. Đây là tiền đề kỹ thuật vững chắc để tiếp tục phát triển các nền tảng chuyển đổi số du lịch thông minh toàn diện trong tương lai.