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

Trong bối cảnh công nghệ thông tin và mạng truyền thông phát triển, các giải pháp kỹ thuật Internet of Things (IoT) dựa trên hạ tầng như một dịch vụ (IaaS - Infrastructure as a Service) ngày càng giữ vai trò quan trọng trong việc vận hành các hệ thống thông tin trực tuyến. Sự gia tăng của các dịch vụ giao dịch qua mạng—như đặt chỗ vé máy bay, thương mại điện tử, đăng ký dự thi, và đặc biệt là đăng ký tour du lịch từ xa—đòi hỏi hạ tầng mạng phải phân tán trên nhiều máy chủ đặt tại các vị trí địa lý khác nhau.

Tuy nhiên, bài toán đặt ra cho mô hình này là hiện tượng không gắn bó dữ liệu (data inconsistency) và tranh chấp tài nguyên khi xuất hiện nhiều truy cập đồng thời từ người dùng. Điển hình như trường hợp khách hàng tại chi nhánh Đà Nẵng tiến hành đăng ký tour do chi nhánh Hà Nội quản lý, hoặc khách hàng tại Thành phố Hồ Chí Minh đăng ký tour tại Đà Nẵng trong cùng một thời điểm. Nếu không có cơ chế điều khiển đồng thời và đồng bộ hóa chặt chẽ, hệ thống sẽ gặp các sự cố nghiêm trọng như trùng lặp mã đăng ký, sai lệch số lượng chỗ trống thực tế, hoặc bán trùng lặp dịch vụ cho nhiều khách hàng. Khóa luận tốt nghiệp của tác giả Hồ Như Thảo (chuyên ngành Công nghệ Thông tin, Đại học Quảng Nam, khóa 2015–2019, người hướng dẫn: TS. Nguyễn Hà Huy Cường) tập trung giải quyết bài toán kỹ thuật này thông qua đề tài: "Xây dựng hệ thống đa server cho hệ thống đăng ký từ xa qua mạng", áp dụng cụ thể cho mô hình kinh doanh của Công ty Dịch vụ Lữ hành SaiGonTourist với ba chi nhánh đại diện tại Hà Nội, Đà Nẵng và Thành phố Hồ Chí Minh.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Hệ thống hóa các khái niệm, nguyên tắc kiến trúc và mục tiêu của hệ phân tán cùng mô hình Client - Server và hệ quản trị cơ sở dữ liệu phân tán (DDBS).
  2. Phân tích các vấn đề tính toán trong hệ phân tán, khảo sát và xây dựng các giải pháp kỹ thuật đảm bảo tính gắn bó dữ liệu và điều khiển tương tranh giữa các máy chủ.
  3. Thiết kế và cài đặt chương trình mô phỏng quá trình cập nhật, đồng bộ hóa dữ liệu tự động giữa ba máy chủ (đa server) khi tiếp nhận các giao dịch đăng ký từ xa.

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

  • Đối tượng nghiên cứu: Cơ sở lý thuyết về hệ phân tán, nguyên tắc xây dựng cơ sở dữ liệu phân tán; các giải pháp kỹ thuật đồng bộ hóa dữ liệu trong mô hình hạ tầng IoT; thuật toán điều khiển tương tranh và giao thức ủy thác giao dịch; công cụ lập trình Java (NetBeans) và hệ quản trị cơ sở dữ liệu Microsoft SQL Server.
  • Phạm vi nghiên cứu: Mô phỏng quá trình định tuyến nội miền và quá trình truyền thông các gói tin giữa các node mạng đại diện cho ba chi nhánh du lịch (Hà Nội, Đà Nẵng, TP. Hồ Chí Minh).

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

Khóa luận xây dựng nền tảng dựa trên các khung lý thuyết, tiêu chuẩn và mô hình kỹ thuật sau:

  • Kiến trúc hệ cơ sở dữ liệu phân tán (DDBS): Áp dụng mô hình kiến trúc bốn mức gồm: Sơ đồ tổng thể (Global Schema), Sơ đồ phân đoạn (Fragmentation Schema), Sơ đồ định vị (Allocation Schema), và Sơ đồ ánh xạ địa phương (Local Mapping Schema). Phân loại hệ thống theo hai nhóm: hệ phân tán thuần nhất (tất cả các node dùng chung một loại hệ quản trị CSDL) và hệ phân tán hỗn tạp (các node sử dụng các hệ quản trị CSDL khác nhau).
  • Tiêu chuẩn tính trong suốt ISO/IS/10746 (1995): Dựa trên mô hình Open Distributed Processing Reference Model xác định 8 dạng trong suốt: trong suốt truy cập, vị trí, di trú, định vị lại, nhân bản, tương tranh, sự cố và tính bền vững.
  • Lý thuyết quản lý hệ thống nhiều bản sao (Multiple Copy): Phân tích các kỹ thuật điều khiển đồng thời phân tán theo hai trường phái: bi quan (đồng bộ hóa trước khi thực hiện qua khóa chốt, thời dấu) và lạc quan (kiểm tra xung đột khi kết thúc giao dịch).
  • Giao thức Ủy thác hai pha tuyến tính (Linear Two-Phase Commit - 2PC): Sử dụng cơ chế điều phối viên (Transaction Coordinator - TC) và các thành viên tham gia (Transaction Manager - TM) với các bản ghi nhật ký (log) và các trạng thái (Init, Wait, Ready, Commit, Abort) nhằm đảm bảo tính nguyên tử (Atomicity) cho giao dịch phân tán.
  • Mô hình giao dịch lồng nâng cao (Model Advanced of Open Nested Transaction - MAONT): Cung cấp cơ chế cho phép các giao dịch con giải phóng khóa sớm khi ủy thác hoặc chuyển khóa cho giao dịch cha để nâng cao hiệu năng xử lý đồng thời.
  • Giải thuật Lamport (1978) về loại trừ tương hỗ: Sử dụng đồng hồ logic để đóng dấu thời gian (timestamps) cho các thông điệp, thiết lập một quan hệ trật tự toàn phần nhằm giải quyết xung đột truy cập đoạn găng (Critical Section).
  • Kỹ thuật triệu gọi phương thức từ xa (Java RMI): Cơ chế giao tiếp hướng đối tượng phân tán thông qua hai thành phần trung gian là Stub (phía client) và Skeleton (phía server).

Phương pháp nghiên cứu thực tế bao gồm: thu thập và phân tích tài liệu học thuật chuyên ngành; khảo sát quy trình nghiệp vụ đăng ký tour thực tế; thiết kế thuật toán đồng bộ và xây dựng phần mềm thực nghiệm mô phỏng trên mạng cục bộ với ba máy chủ độc lập.


Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo mô hình đa máy chủ phân tán kết nối mạng, phục vụ người dùng đăng ký tour du lịch thông qua ứng dụng Client-Server.

1. Kiến trúc phân tán và cơ sở dữ liệu

Dữ liệu được phân tán cục bộ tại ba trạm máy chủ độc lập tương ứng với ba chi nhánh:

  • Server 1 (Chi nhánh Hà Nội): Quản lý cơ sở dữ liệu DANGKYTOUR1.
  • Server 2 (Chi nhánh TP. Hồ Chí Minh): Quản lý cơ sở dữ liệu DANGKYTOUR2.
  • Server 3 (Chi nhánh Đà Nẵng): Quản lý cơ sở dữ liệu DANGKYTOUR3.

Các thực thể dữ liệu chính được thiết kế bao gồm: Tuyến du lịch, Khách sạn, Phương tiện, và Thông tin đăng ký. Client gửi yêu cầu trực tiếp đến máy chủ cục bộ tiếp nhận; máy chủ này sẽ thực hiện truy vấn nội bộ và phối hợp với các máy chủ còn lại thông qua mạng truyền thông thay vì cho phép Client truy cập trực tiếp vào cơ sở dữ liệu từ xa.

Trường thông tin Ý nghĩa nghiệp vụ
Tour du lịch Tên và mã tuyến tour du lịch khách hàng đăng ký
Khách hàng Họ và tên, số CMND/Hộ chiếu, địa chỉ, số điện thoại, email
Dịch vụ Dịch vụ đi kèm (ăn uống, thể thao, tiêu chuẩn phòng khách sạn)
Phương tiện Thông tin phương tiện di chuyển (tàu hỏa, xe ô tô, máy bay)

2. Mô hình toán học và kiểm soát tài nguyên

Việc kiểm soát số lượng chỗ trống của hệ thống gồm $N$ tour khả dụng được mô hình hóa theo công thức điều kiện cục bộ: $$X = N - E + S > 0$$ Trong đó:

  • $N$: Tổng số lượng tour ban đầu.
  • $E$: Tổng số lần ghi nhận đăng ký thành công.
  • $S$: Tổng số lần hủy đăng ký.
  • $X$: Số lượng chỗ còn trống thực tế trong hệ thống. Mỗi bộ điều khiển $C_i$ tại máy chủ $i$ duy trì biến trạng thái $X_i$ để kiểm tra điều kiện cấp phát.

3. Quy tắc vận hành và giao thức đồng bộ

Để đảm bảo trạng thái dữ liệu luôn gắn bó giữa các máy chủ, hệ thống thiết lập 3 quy tắc cung cấp tài nguyên:

  1. Tất cả các máy chủ tiếp nhận phải vận hành cùng một giải thuật.
  2. Mọi thông điệp phát sinh từ một máy chủ phải được gửi đến tất cả các máy chủ còn lại trong hệ thống.
  3. Các thông điệp phải được xử lý theo cùng một trật tự thời gian logic thống nhất trên toàn bộ các trạm.

Cơ chế đóng dấu thời gian theo giải thuật Lamport sử dụng 3 kiểu thông điệp truyền qua kênh FIFO tin cậy:

  • (REQ, Hi, i): Thông điệp yêu cầu truy cập đoạn găng từ tiến trình $P_i$ tại thời điểm logic $H_i$.
  • (ACQ, Hi, i): Thông điệp phản hồi chấp thuận từ $P_i$ gửi cho tiến trình yêu cầu.
  • (REL, Hi, i): Thông điệp giải phóng đoạn găng sau khi $P_i$ hoàn tất thao tác cập nhật dữ liệu.

Mỗi máy chủ duy trì một hàng đợi $q_i$ sắp xếp các yêu cầu theo thứ tự tăng dần của dấu thời gian. Tiến trình chỉ được phép cập nhật dữ liệu khi yêu cầu của nó nằm ở đầu hàng đợi và đã nhận đủ thông điệp chấp thuận từ tất cả các máy chủ khác.


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

Chương 1: Tổng quan về hệ phân tán

Chương 1 hệ thống hóa cơ sở lý luận về hệ thống tính toán phân tán và hệ cơ sở dữ liệu phân tán. Tác giả chỉ rõ bốn nguyên tắc cốt lõi khi xây dựng hệ phân tán: chia sẻ tài nguyên, khả năng liên lạc, độ tin cậy (khi một trạm gặp sự cố thì các trạm khác tự động đảm nhận và phục hồi) và tăng tốc độ tính toán nhờ phân tán tải song song. Chương này phân tích chi tiết các thành phần phần cứng (hệ thống đa xử lý dùng chung bộ nhớ - Shared memory và hệ thống đa máy tính bộ nhớ phân tán - Private memory) cùng ba cấp độ phần mềm: Hệ điều hành phân tán (DOS), Hệ điều hành mạng (NOS) và Phần mềm trung gian (Middleware).

Nguyên tắc Nội dung thuyết minh theo tài liệu
Chia sẻ tài nguyên Cung cấp khả năng sử dụng chung tài nguyên giữa các tiến trình trên các trạm khác nhau qua giao diện truyền thông.
Liên lạc Cho phép các thực thể trong mạng trao đổi thông tin thông qua hạ tầng kết nối viễn thông.
Tin cậy Sự cố tại một trạm không làm sụp đổ toàn bộ hệ thống; công việc được phân chuyển cho các trạm khác.
Tăng tốc Chia nhỏ các tính toán quy mô lớn để thực hiện song song trên nhiều trạm, tối ưu hóa thời gian đáp ứng.

Tác giả phân tích kiến trúc 4 mức của hệ CSDL phân tán, so sánh ưu nhược điểm giữa CSDL phân tán thuần nhất và hỗn tạp, đồng thời trình bày các đặc thù của giao dịch từ xa và sự cần thiết của kỹ thuật quản lý nhiều bản sao nhằm hạn chế hiện tượng đọc phải dữ liệu cũ hoặc xung đột cập nhật.

Chương 2: Bài toán đăng ký từ xa qua mạng với hệ thống đa server

Chương 2 mô tả chi tiết bài toán nghiệp vụ đăng ký tour du lịch tại SaiGonTourist và đề xuất các giải pháp kỹ thuật giải quyết tranh chấp dữ liệu. Tác giả đưa ra kịch bản minh chứng cho sự mất tính gắn bó nếu không có cơ chế đồng bộ trật tự thông điệp: với trạng thái ban đầu có 100 tour trống, ba chi nhánh đồng thời phát ra ba thông điệp $M_1$ (Thêm 20 tour trống), $M_2$ (Đăng ký 10 tour) và $M_3$ (Dành 10% tour khuyến mãi cho nhân viên). Do độ trễ mạng khác nhau, trật tự xử lý tại ba chi nhánh bị đảo lộn dẫn đến số lượng tour trống sau cùng bị sai lệch hoàn toàn giữa các máy chủ.

Trật tự xử lý Chi nhánh 1 (Hà Nội) Chi nhánh 2 (TP. Hồ Chí Minh) Chi nhánh 3 (Đà Nẵng)
Ban đầu 100 100 100
Bước 1 $M_1 \rightarrow 120$ $M_1 \rightarrow 120$ $M_3 \rightarrow 90$
Bước 2 $M_3 \rightarrow 108$ $M_2 \rightarrow 110$ $M_2 \rightarrow 80$ (văn bản ghi 110)
Bước 3 $M_2 \rightarrow 98$ $M_3 \rightarrow 99$ $M_1 \rightarrow 100$

Để khắc phục hiện tượng này, chương 2 thiết lập giải thuật loại trừ tương hỗ dựa trên đồng hồ logic Lamport kết hợp với giao thức ủy thác hai pha tuyến tính (2PC) và mô hình MAONT. Tác giả cũng phân tích chi tiết quy trình xử lý trường hợp timeout của bộ điều phối và các thành viên tham gia, cùng việc ứng dụng kỹ thuật Java RMI (Stub và Skeleton) để triệu gọi đối tượng từ xa.

Chương 3: Chương trình demo

Chương 3 trình bày việc hiện thực hóa các giải pháp lý thuyết thành phần mềm thử nghiệm cụ thể. Nội dung chương bao gồm:

  • Hướng dẫn cấu hình môi trường phân tán cơ sở dữ liệu trên Microsoft SQL Server cho ba database DANGKYTOUR1, DANGKYTOUR2, DANGKYTOUR3.
  • Xây dựng module Server bằng Java để tiếp nhận kết nối RMI, quản lý hàng đợi thông điệp, thực thi giải thuật đóng dấu thời gian và đồng bộ hóa giao dịch.
  • Xây dựng module giao diện Client cho phép người dùng nhập thông tin cá nhân, lựa chọn tour du lịch, dịch vụ, phương tiện và gửi yêu cầu đăng ký.
  • Kết quả chạy thử nghiệm minh chứng: khi Client thực hiện đăng ký thành công trên một máy chủ, hệ thống sinh mã đăng ký duy nhất, tự động gửi gói tin đồng bộ và cập nhật chính xác số liệu tour còn lại trên cả ba máy chủ Server 1, Server 2 và Server 3.

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

1. Kết quả chính

  • Mô hình hóa thành công bài toán đăng ký tour du lịch từ xa trên môi trường đa máy chủ phân tán (gồm 3 server quản lý 3 cơ sở dữ liệu độc lập).
  • Thiết lập quy trình đồng bộ hóa dữ liệu dựa trên giải thuật đóng dấu thời gian Lamport kết hợp giao thức ủy thác hai pha tuyến tính (Linear 2PC), giúp loại bỏ xung đột dữ liệu và ngăn chặn việc trùng lặp mã đăng ký khi nhiều người dùng thao tác đồng thời.
  • Xây dựng hoàn chỉnh chương trình demo bằng ngôn ngữ Java (trên môi trường NetBeans) kết nối Microsoft SQL Server qua cơ chế Java RMI, kiểm chứng thực tế việc đồng bộ trạng thái giữa ba máy chủ khi có giao dịch phát sinh.

2. Giải pháp và kiến nghị của tác giả

  • Ứng dụng giải pháp đa server phân tán vào các doanh nghiệp lữ hành, vận tải hoặc thương mại điện tử có nhiều chi nhánh nhằm nâng cao tính tự trị cục bộ, giảm tải cho máy chủ trung tâm và giảm thiểu chi phí truyền thông đường dài.
  • Áp dụng cơ chế kiểm soát tài nguyên theo điều kiện $X = N - E + S > 0$ và hàng đợi FIFO tin cậy để quản lý chặt chẽ tài nguyên dùng chung trong môi trường phân tán.

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

  • Tác giả đã hệ thống hóa và kết hợp các lý thuyết nền tảng về hệ phân tán (chuẩn ISO/IS/10746, kiến trúc DDBS 4 mức, giao thức 2PC, mô hình MAONT, giải thuật Lamport) để giải quyết một bài toán nghiệp vụ thực tiễn cụ thể trong ngành du lịch.
  • Đóng góp giải pháp kỹ thuật tích hợp giữa cơ chế triệu gọi từ xa Java RMI và thuật toán đồng hồ logic để duy trì tính nhất quán cho mô hình cơ sở dữ liệu nhiều bản sao.

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

  • Hạn chế: Hệ thống mới dừng lại ở quy mô chương trình mô phỏng thực nghiệm trên ba máy chủ trong môi trường mạng phòng thí nghiệm/nội miền; chưa tiến hành đo đạc hiệu năng với tải truy cập lớn ở quy mô hàng nghìn giao dịch đồng thời trên diện rộng. Cơ chế xử lý sự cố mạng phức tạp (phân rã mạng, mất kết nối kéo dài) mới chỉ dừng ở mức thiết kế lý thuyết theo nghi thức 2PC timeout.
  • Hướng nghiên cứu tiếp: Mở rộng bài toán định tuyến và đồng bộ hóa trên mạng diện rộng (WAN); tích hợp giải pháp kỹ thuật trên nền tảng hạ tầng IoT và điện toán đám mây cho các mô hình dịch vụ quy mô lớn.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo phù hợp cho sinh viên, học viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Khoa học Máy tính khi học tập hoặc nghiên cứu các học phần liên quan:

  • Hệ phân tán và Mạng máy tính: Tham khảo phần tổng quan lý thuyết tại Chương 1 về các nguyên tắc kiến trúc, 8 chuẩn tính trong suốt ISO/IS/10746, mô hình phần mềm Middleware và cơ sở dữ liệu phân tán.
  • Lập trình mạng và Cơ sở dữ liệu nâng cao: Tham khảo Chương 2 và Chương 3 về kỹ thuật lập trình Java RMI, cách cài đặt giải thuật loại trừ tương hỗ Lamport, giao thức ủy thác 2 pha (2PC), và phương pháp thiết kế ứng dụng đa máy chủ kết nối Microsoft SQL Server.

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

1. Khóa luận giải quyết bài toán nghiệp vụ cụ thể nào và áp dụng cho đơn vị nào?
Khóa luận giải quyết bài toán đăng ký tour du lịch từ xa qua mạng giữa nhiều chi nhánh trong điều kiện có nhiều người dùng truy cập đồng thời, áp dụng mô hình cho Công ty Dịch vụ Lữ hành SaiGonTourist với ba chi nhánh tại Hà Nội, Đà Nẵng và Thành phố Hồ Chí Minh.

2. Ba cơ sở dữ liệu được cài đặt trên ba máy chủ trong chương trình demo có tên là gì?
Ba cơ sở dữ liệu được cài đặt độc lập trên ba máy chủ lần lượt là DANGKYTOUR1 (trên Server 1 - Hà Nội), DANGKYTOUR2 (trên Server 2 - TP. Hồ Chí Minh), và DANGKYTOUR3 (trên Server 3 - Đà Nẵng).

3. Công thức kiểm tra số lượng chỗ trống trước khi cho phép khách hàng đăng ký tour là gì?
Công thức kiểm tra là $X = N - E + S > 0$, trong đó $N$ là tổng số tour ban đầu của hệ thống, $E$ là tổng số lần ghi nhận đăng ký, $S$ là số lần hủy tour, và $X$ là số lượng tour còn trống khả dụng.

4. Giải thuật nào được tác giả sử dụng để thiết lập trật tự xử lý thông điệp đồng nhất giữa các máy chủ?
Tác giả sử dụng giải thuật loại trừ tương hỗ Lamport (1978) dựa trên cơ chế đóng dấu thời gian bằng đồng hồ logic kết hợp hàng đợi FIFO và ba loại thông điệp (REQ, Hi, i), (ACQ, Hi, i), (REL, Hi, i).

5. Công nghệ và công cụ lập trình nào được sử dụng để xây dựng chương trình mô phỏng?
Chương trình mô phỏng được xây dựng bằng ngôn ngữ Java trên môi trường phát triển NetBeans IDE, sử dụng kỹ thuật Java RMI (triệu gọi phương thức từ xa với cơ chế Stub - Skeleton) và hệ quản trị cơ sở dữ liệu Microsoft SQL Server.


Kết luận

Khóa luận tốt nghiệp của tác giả Hồ Như Thảo đã nghiên cứu và giải quyết bài toán đảm bảo tính gắn bó dữ liệu cho hệ thống đăng ký thông tin từ xa qua mạng đa máy chủ. Bằng việc kết hợp giao thức ủy thác hai pha tuyến tính (2PC) và giải thuật đóng dấu thời gian Lamport, đề tài đã thiết kế giải pháp kỹ thuật đồng bộ hóa trạng thái giao dịch hiệu quả giữa các chi nhánh. Kết quả mô phỏng trên nền tảng Java RMI và SQL Server minh chứng tính khả thi của mô hình trong việc xử lý tranh chấp và duy trì tính toàn vẹn dữ liệu cho các ứng dụng phân tán thực tế.