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

Công nghệ thông tin đóng vai trò then chốt trong công tác quản lý và thu thập thông tin tại các cơ quan, doanh nghiệp và tổ chức. Trong bối cảnh hạ tầng mạng phát triển, nhu cầu truy cập, xử lý và cập nhật dữ liệu từ xa giữa nhiều máy trạm trong cùng hệ thống gia tăng nhanh chóng. Thực tế này đặt ra yêu cầu kỹ thuật về việc đảm bảo dữ liệu trên các máy tính được đồng bộ hóa an toàn, nhất quán, nhanh chóng và chính xác. Đề tài "Xây dựng chương trình ứng dụng trên máy tính cho phép đồng bộ CSDL giữa nhiều máy trong mạng" được thực hiện trong khuôn khổ học phần PBL4 (Dự án Hệ điều hành & Mạng máy tính) tại Khoa Công nghệ Thông tin, Trường Đại học Bách khoa – Đại học Đà Nẵng nhằm giải quyết bài toán quản lý và đồng bộ dữ liệu tập trung qua môi trường mạng máy tính.

Mục tiêu và các nhiệm vụ nghiên cứu chính của đề tài bao gồm:

  1. Nghiên cứu tổng quan lý thuyết về mô hình mạng Client - Server, cơ chế truyền thông hai chiều qua Socket và các giao thức tầng giao vận TCP/IP, UDP.
  2. Khảo sát, phân tích yêu cầu nghiệp vụ và thiết kế kiến trúc hệ thống phân tán gồm 1 máy chủ (Server) và nhiều máy khách (Client).
  3. Thiết kế cấu trúc cơ sở dữ liệu quan hệ trên hệ quản trị cơ sở dữ liệu để lưu trữ thông tin tài khoản, máy tính/sản phẩm, nhà cung cấp, khách hàng và chi tiết giao dịch.
  4. Xây dựng các ca sử dụng (Use Case) chi tiết, thiết kế giao diện đồ họa người dùng và quy trình xử lý dữ liệu cho cả phía Server và phía Client.
  5. Triển khai cài đặt chương trình, thiết lập cơ chế đồng bộ dữ liệu gián tiếp qua Server bằng giao thức TCP và tiến hành kiểm thử các chức năng phần mềm.

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

  • Đối tượng nghiên cứu: Cơ chế truyền thông Socket tầng mạng, mô hình xử lý dữ liệu Client - Server và kỹ thuật đồng bộ hóa cơ sở dữ liệu giữa nhiều điểm cuối trong mạng máy tính.
  • Phạm vi không gian và công nghệ: Ứng dụng desktop triển khai trong mạng cục bộ/mạng máy tính; phát triển bằng công cụ Apache NetBeans IDE 19 và hệ quản trị cơ sở dữ liệu Microsoft SQL Server 18.
  • Phạm vi thời gian: Dự án được lập kế hoạch và triển khai từ ngày 05/04/2023 đến ngày 28/05/2023; báo cáo học thuật được hoàn thiện và nghiệm thu vào tháng 12/2023.

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

Khóa luận xây dựng giải pháp kỹ thuật dựa trên các nền tảng lý thuyết mạng máy tính và kỹ thuật phần mềm chuẩn:

  • Mô hình kiến trúc Client - Server: Hệ thống phân chia thành hai thành phần độc lập. Server là máy tính từ xa có cấu hình phù hợp, đóng vai trò trung tâm lưu trữ tài nguyên, quản lý dịch vụ và tiếp nhận kết nối. Client là các máy trạm gửi yêu cầu dịch vụ đến Server. Mô hình cho phép tập trung hóa ứng dụng, hỗ trợ người dùng chia sẻ tài nguyên không giới hạn vị trí địa lý và độc lập với phần cứng máy khách. Nhược điểm được xác định là nguy cơ về an toàn bảo mật dữ liệu khi truyền thông giữa các máy tính ở các khu vực địa lý cách xa nhau.
  • Cơ chế truyền thông Socket: Socket là điểm cuối (end-point) trong liên kết truyền thông hai chiều (two-way communication) giữa Client và Server. Socket được ràng buộc với một địa chỉ IP và cổng (port) cụ thể để tầng giao vận định danh chính xác tiến trình ứng dụng nhận dữ liệu.
  • Bộ giao thức TCP/IP:
    • Giao thức TCP (Transmission Control Protocol): Đảm bảo truyền tải dữ liệu tin cậy, chia nhỏ và lắp ráp các gói dữ liệu theo đúng thứ tự, đồng bộ hóa truyền tải, kiểm soát lưu lượng và phát hiện gói tin lỗi để yêu cầu gửi lại.
    • Giao thức IP (Internet Protocol): Thực hiện định danh thiết bị và định tuyến (routing) các gói tin đến đúng địa chỉ đích trong mạng.

Phương pháp nghiên cứu và quy trình triển khai phần mềm gồm các phương pháp kỹ thuật cụ thể:

  • Phương pháp phân tích và thiết kế hướng đối tượng: Sử dụng biểu đồ Use Case, phân tích luồng sự kiện cơ bản (Basic Flow), luồng ngoại lệ (Exception Flow) và mô hình hóa các thực thể nghiệp vụ (DTO).
  • Phương pháp thiết kế cơ sở dữ liệu quan hệ: Chuẩn hóa các bảng dữ liệu, thiết lập các ràng buộc toàn vẹn khóa chính (Primary Key) và khóa ngoại (Foreign Key).
  • Phương pháp quản lý dự án: Sử dụng công cụ Trello để theo dõi tiến độ công việc và GitHub để quản lý phiên bản mã nguồn, phân quyền nhóm phát triển.
  • Nguồn dữ liệu: Dữ liệu thực nghiệm quản lý bán hàng thiết bị máy tính, danh mục nhà cung cấp, thông tin khách hàng và tài khoản người dùng được lưu trữ trên Microsoft SQL Server 18.

Thiết kế và kiến trúc hệ thống

Hệ thống được thiết kế theo mô hình 1 Server – Nhiều Client, hoạt động theo cơ chế đồng bộ trung gian nhằm đảm bảo an toàn cho cơ sở dữ liệu gốc:

[ Máy khách Client 1 ] <--- TCP Socket ---> [ Máy chủ Server ] <---> [ Microsoft SQL Server 18 ]
[ Máy khách Client 2 ] <--- TCP Socket --->         ^
[ Máy khách Client N ] <--- TCP Socket -------------|
  • Nguyên lý đồng bộ dữ liệu: Các máy Client tuyệt đối không gửi câu lệnh truy vấn trực tiếp đến Microsoft SQL Server. Mọi thao tác đọc, thêm, sửa, xóa (CRUD) đều được đóng gói thành thông điệp gửi qua kết nối TCP tới Server. Server tiếp nhận, thực thi truy vấn trên SQL Server, ghi log hoạt động, sau đó phát tán (broadcast) hoặc gửi phản hồi dữ liệu cập nhật tới toàn bộ các Client đang trực tuyến trong mạng.
  • Phân định tác nhân (Actors):
    • Server: Lắng nghe cổng kết nối; xác thực tài khoản đăng nhập; quản lý danh sách Client trực tuyến; hiển thị địa chỉ IP và cổng; theo dõi và ghi nhật ký (log) lịch sử chỉnh sửa; tiếp nhận yêu cầu và phản hồi mật khẩu mặc định khi người dùng yêu cầu đặt lại mật khẩu.
    • Client: Đăng nhập, đăng ký tài khoản; gửi yêu cầu CRUD danh mục sản phẩm, nhà cung cấp, khách hàng; thay đổi tên hiển thị, đổi mật khẩu; thực hiện kết xuất danh sách dữ liệu ra tập tin Excel.

Cơ sở dữ liệu của hệ thống được tổ chức thành 5 bảng quan hệ:

Tên bảng Tên thuộc tính Kiểu dữ liệu Mô tả thuộc tính Ràng buộc
Account idaccount varchar(100) Mã định danh tài khoản Khóa chính
username varchar(100) Tên đăng nhập
password varchar(100) Mật khẩu tài khoản
name nvarchar(100) Tên hiển thị người dùng
Bảng chi tiết idchitiet int Mã chi tiết giao dịch Khóa chính
idkhachhang varchar(50) Mã khách hàng Khóa ngoại
maMay varchar(50) Mã máy tính / sản phẩm Khóa ngoại
soluong int Số lượng sản phẩm mua
ngaymua date Ngày thực hiện giao dịch
Bảng máy tính maMay varchar(50) Mã thiết bị máy tính Khóa chính
maNhaCungCap varchar(100) Mã nhà cung cấp Khóa ngoại
tenmay varchar(100) Tên thiết bị máy tính
soLuong int Số lượng tồn kho
gia float Đơn giá sản phẩm
loaimay varchar Phân loại thiết bị
kichthuoc float Kích thước màn hình
dungluongpin varchar(50) Thông số dung lượng pin
xuatxu nvarchar(50) Nguồn gốc xuất xứ
Bảng nhà cung cấp maNhaCungCap varchar(100) Mã đơn vị cung cấp Khóa chính
tenNhaCungCap nvarchar(100) Tên nhà cung cấp
sdt varchar(100) Số điện thoại liên hệ
diachi nvarchar(100) Địa chỉ nhà cung cấp
Bảng khách hàng idkhachhang varchar(50) Mã định danh khách hàng Khóa chính
tenkhachhang nvarchar(50) Họ và tên khách hàng
sdt varchar(50) Số điện thoại khách hàng
diachi nvarchar(100) Địa chỉ cư trú

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

Mở đầu

Phần mở đầu trình bày tính cấp thiết của công nghệ thông tin trong quản lý dữ liệu tại Việt Nam và sự cần thiết của giải pháp đồng bộ hóa cơ sở dữ liệu qua mạng máy tính. Tác giả công bố kế hoạch phân công nhiệm vụ và tiến độ dự án từ ngày 05/04/2023 đến 28/05/2023:

  • Thành viên Lê Thị Huệ: Chịu trách nhiệm thiết kế cơ sở dữ liệu, thiết kế giao diện phần mềm, hiện thực các phân hệ chức năng quản lý bàn, quản lý đồ uống, quản lý hóa đơn, quản lý order và quản lý ca làm.
  • Thành viên Nguyễn Thị Thanh Thảo: Chịu trách nhiệm thiết kế cơ sở dữ liệu, xây dựng chức năng quản lý nhân viên, quản lý thông tin tài khoản cá nhân, chức năng đổi/reset mật khẩu và hoàn thiện văn bản báo cáo.

Tổng quan về mô hình Client-Server, Socket và TCP/IP

Chương này hệ thống hóa các nguyên lý mạng nền tảng:

  • Phân tích nguyên tắc hoạt động của kiến trúc Client - Server, làm rõ vai trò máy chủ trung tâm lưu trữ dịch vụ và các máy trạm gửi yêu cầu.
  • Định nghĩa cơ chế hoạt động của Socket như một cầu nối hai chiều giữa hai tiến trình qua địa chỉ IP và Port.
  • Phân tích cấu trúc hoạt động của bộ giao thức TCP/IP: Giao thức TCP chịu trách nhiệm thiết lập kết nối, đồng bộ hóa dòng dữ liệu, kiểm soát lưu lượng và phát hiện gói tin lỗi để yêu cầu gửi lại; giao thức IP chịu trách nhiệm định tuyến và vận chuyển gói tin qua mạng.

Chương 2. Phân tích thiết kế hệ thống

Chương 2 tập trung vào việc mô hình hóa hệ thống và chi tiết hóa các ca sử dụng:

  • Thiết lập mô hình hoạt động: Server chạy liên tục tiếp nhận các kết nối TCP từ nhiều Client; duy trì danh bạ kết nối, quản lý log nhật ký và làm cổng trung gian duy nhất truy vấn CSDL SQL Server.
  • Đặc tả các Use Case cốt lõi phía Client: Thêm, chỉnh sửa, xóa và tìm kiếm thông tin sản phẩm máy tính; thêm, chỉnh sửa, xóa và tìm kiếm nhà cung cấp; quản lý khách hàng (thêm, sửa, xóa, xem chi tiết, tìm kiếm); quản lý tài khoản người dùng (đổi tên, đổi mật khẩu).
  • Phân tích luồng sự kiện: Xác định điều kiện tiên quyết (Pre-condition), luồng xử lý chuẩn (Basic Flow) và các luồng ngoại lệ (Exception Flow) như báo lỗi nhập thiếu thông tin, sai định dạng hoặc thao tác trên bản ghi rỗng.

Chương 3. Triển khai và đánh giá kết quả

Chương này mô tả chi tiết các thành phần giao diện thực tế và quy tắc xử lý tương tác của phần mềm:

  • Giao diện Log in: Gồm các trường Username, Password, nút bấm Log in, nút Forget Password và liên kết Sign up. Nếu thông tin không chính xác, hệ thống hiển thị thông báo lỗi "Invalid username. Please re-enter.". Khi chọn quên mật khẩu, hệ thống gửi yêu cầu lên Server và thiết lập lại mật khẩu về mặc định là 123456.
  • Giao diện Create account: Gồm các trường Fullname, Username, Password và Confirm Password. Đăng ký thành công trả về thông báo "New Account Registration successful".
  • Giao diện quản lý Server: Cung cấp các nút chức năng Reset Password, Add, Delete tài khoản Client, nhãn hiển thị trạng thái Status (xem lịch sử chỉnh sửa) và danh sách Account của các Client đang kết nối.
  • Giao diện Quản lý sản phẩm: Cho phép hiển thị danh mục, mở form thêm mới, form cập nhật (UPDATE PRODUCT INFORMATION), thực hiện xóa sản phẩm đã chọn, tìm kiếm sản phẩm và hỗ trợ nút bấm xuất dữ liệu danh sách ra tập tin Excel lưu trên ổ đĩa máy tính.

Kết luận và hướng phát triển

Chương kết luận tổng hợp mức độ hoàn thành của phần mềm so với các mục tiêu đề ra và nêu định hướng nâng cấp hệ thống trong tương lai.


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

Đồ án đã đạt được các kết quả kỹ thuật và đóng góp thực tiễn cụ thể:

  • Kết quả triển khai phần mềm:

    • Xây dựng thành công hai chương trình độc lập: Chương trình Server quản trị và chương trình Client người dùng.
    • Thiết lập thành công cơ chế giao tiếp và đồng bộ thông tin qua Socket TCP, cho phép Server nhận thông điệp từ một Client và đồng bộ dữ liệu tới tất cả các Client khác trong mạng.
    • Hiện thực đầy đủ 5 cấu trúc bảng cơ sở dữ liệu (Account, Bảng chi tiết, Bảng máy tính, Bảng nhà cung cấp, Bảng khách hàng) với các quan hệ ràng buộc chặt chẽ trên Microsoft SQL Server 18.
    • Cài đặt hoàn chỉnh các chức năng quản lý danh mục sản phẩm (mã máy, tên máy, đơn giá, kích thước, dung lượng pin, xuất xứ), quản lý nhà cung cấp, quản lý khách hàng, quản lý tài khoản người dùng và tính năng xuất dữ liệu ra file Excel.
    • Thiết lập cơ chế xử lý ngoại lệ đồng bộ: Kiểm soát đăng nhập hợp lệ, cảnh báo lỗi thiếu thông tin nhập liệu, xác nhận trước khi xóa bản ghi và cơ chế khôi phục mật khẩu mặc định 123456.
  • Đóng góp của đồ án:

    • Cung cấp giải pháp phần mềm đồng bộ dữ liệu gián tiếp qua máy chủ trung gian cho mô hình mạng nội bộ, hạn chế rủi ro cho phép các máy trạm kết nối trực tiếp vào cơ sở dữ liệu nguồn.
    • Xây dựng tài liệu đặc tả hệ thống chi tiết từ phân tích Use Case, thiết kế cơ sở dữ liệu đến thiết kế giao diện và xử lý sự kiện ngoại lệ, phục vụ tốt cho mục tiêu học tập và phát triển ứng dụng mạng.

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

  • Hạn chế được văn bản xác định:

    • Vấn đề an toàn và bảo mật dữ liệu thông tin vẫn còn hạn chế do quá trình trao đổi dữ liệu diễn ra giữa các máy tính khác nhau qua môi trường mạng, đặc biệt là khi mở rộng kết nối giữa các khu vực địa lý cách xa nhau.
    • Kiến trúc hệ thống mới chỉ tập trung vào mô hình 1 Server điều phối nhiều Client cục bộ, chưa đề cập đến các cơ chế cân bằng tải hoặc xử lý phân tán phức tạp khi số lượng máy trạm tăng cao.
  • Hướng nghiên cứu và phát triển tiếp:

    • Tiếp thu các ý kiến đóng góp chuyên môn từ giảng viên hướng dẫn và hội đồng đánh giá để hoàn thiện phần mềm chỉnh chu hơn.
    • Tăng cường các giải pháp mã hóa dữ liệu truyền thông qua Socket nhằm nâng cao tính bảo mật và toàn vẹn thông tin trên đường truyền mạng.

Giá trị tham khảo

Báo cáo đồ án PBL4 mang lại giá trị tham khảo thiết thực trong đào tạo và nghiên cứu ứng dụng:

  • Đối tượng thụ hưởng:
    • Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin và Mạng máy tính đang thực hiện các học phần dự án (PBL), đồ án môn học Lập trình mạng, Hệ điều hành hoặc Kiến trúc phần mềm.
    • Lập trình viên đang tìm hiểu phương pháp xây dựng ứng dụng máy tính (Desktop Application) giao tiếp mạng hai chiều qua giao thức Socket TCP trên môi trường NetBeans IDE và Microsoft SQL Server.
  • Nội dung tham khảo giá trị:
    • Phương pháp phân tầng ứng dụng và cơ chế đồng bộ dữ liệu gián tiếp qua Socket TCP (Client gửi thông điệp $\rightarrow$ Server xử lý SQL $\rightarrow$ Server chuyển tiếp dữ liệu đến các Client).
    • Hệ thống bảng đặc tả Use Case chi tiết với đầy đủ các luồng xử lý sự kiện thành công và luồng xử lý lỗi ngoại lệ.
    • Cấu trúc thiết kế 5 bảng cơ sở dữ liệu quản lý thiết bị máy tính và cách thức tổ chức giao diện người dùng tương ứng.

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

1. Cơ chế đồng bộ dữ liệu giữa các máy trạm Client trong đồ án được thực hiện như thế nào?
Các máy Client không kết nối hay truy vấn trực tiếp vào Microsoft SQL Server. Khi một Client có yêu cầu thay đổi dữ liệu (CRUD), yêu cầu sẽ được gửi qua kết nối Socket TCP đến Server. Server kết nối đến CSDL SQL để thực thi câu truy vấn, sau đó gửi kết quả phản hồi và chuyển tiếp thông tin cập nhật đến tất cả các máy Client khác đang kết nối trong mạng.

2. Mật khẩu mặc định được hệ thống thiết lập khi người dùng yêu cầu khôi phục (Reset Password) là gì?
Khi người dùng sử dụng chức năng Forget Password trên giao diện Client hoặc người quản trị nhấn Reset Password trên giao diện Server, hệ thống sẽ thực hiện thiết lập lại mật khẩu của tài khoản về giá trị mặc định là 123456.

3. Cơ sở dữ liệu của đồ án gồm những bảng nào và bảng lưu trữ thông tin máy tính có các thuộc tính gì?
Cơ sở dữ liệu gồm 5 bảng: Account, Bảng chi tiết, Bảng máy tính, Bảng nhà cung cấp, và Bảng khách hàng. Trong đó, Bảng máy tính bao gồm 9 thuộc tính: maMay (Khóa chính), maNhaCungCap (Khóa ngoại), tenmay, soLuong, gia, loaimay, kichthuoc, dungluongpin và xuatxu.

4. Những công cụ và môi trường phát triển chính nào đã được sử dụng để xây dựng đồ án?
Đồ án sử dụng công cụ lập trình Apache NetBeans IDE 19, hệ quản trị cơ sở dữ liệu Microsoft SQL Server 18, công cụ quản lý công việc nhóm Trello và nền tảng quản lý phiên bản mã nguồn GitHub.

5. Chương trình phía Server cung cấp những tính năng quản trị nào đối với các Client kết nối?
Server đảm nhận việc mở cổng kết nối, xử lý xác thực đăng nhập của Client, duy trì và hiển thị danh sách các Client trực tuyến cùng địa chỉ IP/cổng kết nối, theo dõi nhật ký hoạt động/chỉnh sửa của Client (Status), thêm/xóa tài khoản Client và thực hiện đặt lại mật khẩu cho người dùng.


Kết luận

Đồ án "Xây dựng chương trình ứng dụng trên máy tính cho phép đồng bộ CSDL giữa nhiều máy trong mạng" của nhóm sinh viên Lê Thị Huệ và Nguyễn Thị Thanh Thảo đã giải quyết thành công bài toán đồng bộ hóa dữ liệu tập trung qua mạng máy tính theo mô hình Client - Server. Hệ thống khai thác hiệu quả cơ chế truyền thông Socket trên nền giao thức TCP/IP kết hợp với hệ quản trị Microsoft SQL Server 18 để thực hiện các thao tác CRUD an toàn và nhất quán. Các tài liệu đặc tả Use Case, thiết kế cơ sở dữ liệu 5 bảng và kết quả triển khai giao diện thể hiện đầy đủ quy trình phát triển một ứng dụng mạng desktop hoàn chỉnh trong học phần PBL4.