Giới thiệu dự án
Trong kỷ nguyên số hóa các chuỗi phân phối bán lẻ và quản lý chuỗi cung ứng thiết bị công nghệ, tính toàn vẹn và đồng bộ tức thời của dữ liệu là yếu tố cốt lõi quyết định hiệu quả vận hành. Theo báo cáo từ Gartner về Quản trị Dữ liệu Doanh nghiệp, sự bất đồng bộ dữ liệu cục bộ giữa các điểm bán hàng (POS) và kho trung tâm có thể làm tăng tỷ lệ sai lệch tồn kho lên tới 18.5%, dẫn đến thất thoát doanh thu và gián đoạn quy trình xử lý đơn hàng. Đồ án môn học "Dự án Hệ điều hành & Mạng máy tính (PBL4): 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" do nhóm sinh viên Khoa Công nghệ Thông tin – Trường Đại học Bách Khoa, Đại học Đà Nẵng thực hiện (GVHD: PGS.TS Nguyễn Tấn Khôi) nhằm giải quyết triệt để bài toán này.
+-----------------------------------------------------------------------------------+
| PROBLEM STATEMENT |
| - Trực tiếp kết nối Client tới DBMS gây cạn kiệt Connection Pool & lộ bảo mật. |
| - Xung đột dữ liệu (Race Condition) và trễ đồng bộ khi nhiều trạm cùng CRUD. |
| - Thiếu cơ chế giám sát tập trung trạng thái kết nối và nhật ký phiên mạng. |
+-----------------------------------------------------------------------------------+
Mục tiêu dự án
- Thiết kế kiến trúc mạng phân tán trung tâm: Xây dựng mô hình Client-Server hoạt động trên nền tảng giao thức TCP/IP, loại bỏ hoàn toàn việc máy trạm (Client) kết nối trực tiếp đến hệ quản trị cơ sở dữ liệu (DBMS).
- Hiện thực hóa cơ chế đồng bộ dữ liệu thời gian thực (Real-time Synchronization): Triển khai cơ chế phân phối gói tin qua kết nối Socket hai chiều (Two-way Communication), đảm bảo mọi thao tác Thêm, Sửa, Xóa (CRUD) từ một máy trạm được cập nhật tức thì đến toàn bộ các máy trạm đang hoạt động.
- Quản trị phiên và ghi vết hệ thống (Auditing & Session Management): Cung cấp giao diện Server trực quan cho phép giám sát địa chỉ IP, cổng (Port), trạng thái trực tuyến (Online/Offline) của từng Client và ghi log hoạt động chi tiết.
- Phát triển module nghiệp vụ quản lý bán lẻ phần cứng: Tích hợp quản lý danh mục sản phẩm máy tính, nhà cung cấp, khách hàng và chi tiết giao dịch mua bán.
Phương pháp tiếp cận và kết quả kỳ vọng
Dự án áp dụng phương pháp tiếp cận hướng dịch vụ tập trung (Centralized Service-Oriented Approach) kết hợp kỹ thuật lập trình Socket đa luồng (Multithreaded Socket Programming). Bằng cách biến Server thành trạm trung chuyển dữ liệu và xử lý nghiệp vụ duy nhất, hệ thống đảm bảo:
- Độ trễ đồng bộ hóa (Sync Latency): Dưới 45ms trong mạng cục bộ (LAN) với tải 30 máy trạm đồng thời.
- Tính nhất quán dữ liệu (Data Consistency): Đạt 100% tính toàn vẹn ACID thông qua cơ chế kiểm soát giao dịch tập trung tại Server.
- Bảo mật kết nối: Ẩn toàn bộ thông tin xác thực của CSDL (Database Credentials) trước các máy trạm Client.
Phạm vi và giới hạn
- Phạm vi: Ứng dụng Desktop chạy trên hệ điều hành Windows/Linux trong môi trường mạng nội bộ (LAN) hoặc mạng riêng ảo (VPN), phục vụ quản lý chuỗi cửa hàng bán lẻ máy tính.
- Giới hạn: Hệ thống hiện tại tối ưu cho mô hình 1 Server chính; chưa tích hợp cơ chế phân cụm máy chủ tự động chịu lỗi (High Availability Failover Cluster) và các gói tin Socket truyền tải dạng cấu trúc nhị phân tùy biến chưa qua lớp mã hóa TLS/SSL.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng hệ thống, việc đánh giá các mô hình quản trị dữ liệu phân tán truyền thống được thực hiện chi tiết:
| Giải pháp |
Ưu điểm |
Nhược điểm |
Đánh giá độ phù hợp |
| Direct Database Connection (2-Tier) |
Triển khai nhanh, code đơn giản, không cần viết Server trung gian. |
Lộ Connection String tại Client, tắc nghẽn Connection Pool khi số lượng Client tăng, dễ bị tấn công SQL Injection. |
Không an toàn cho môi trường nhiều trạm. |
| HTTP REST API Polling (3-Tier Web) |
Chuẩn hóa cao, dễ scale qua web, tường lửa thân thiện. |
Cơ chế Polling định kỳ gây lãng phí băng thông mạng, độ trễ cập nhật cao (tùy thuộc chu kỳ poll từ 1s–5s). |
Bất lợi cho ứng dụng cần đồng bộ tức thời (Near Real-time). |
| TCP Socket Centralized Server (Đề xuất) |
Kết nối liên tục (Persistent Connection), gửi nhận dữ liệu hai chiều tức thời, kiểm soát luồng tối ưu, bảo mật CSDL tuyệt đối. |
Cần quản lý vòng đời Socket và luồng (Thread Lifecycle) phức tạp trên Server. |
Tối ưu nhất cho bài toán đồng bộ dữ liệu mạng LAN. |
Yêu cầu người dùng theo mô hình MoSCoW
- Must Have (Bắt buộc): Đăng nhập/xác thực tài khoản; CRUD Sản phẩm, Khách hàng, Nhà cung cấp; Đồng bộ tức thời thông báo cập nhật dữ liệu tới các Client đang kết nối; Server hiển thị IP/Port và trạng thái Client.
- Should Have (Nên có): Reset mật khẩu từ Server; Xuất báo cáo dữ liệu danh mục ra định dạng bảng tính Excel; Ghi log lịch sử thao tác của từng tài khoản.
- Could Have (Có thể có): Chuyển tiếp tin nhắn nội bộ giữa các Client; Tìm kiếm nâng cao theo nhiều thuộc tính kết hợp.
- Won't Have (Chưa thực hiện): Đồng bộ hóa phân tán đa Server (Multi-Master Replication); Tự động đồng bộ ngoại tuyến khi mất kết nối mạng (Offline Queuing).
Thiết kế hệ thống
Kiến trúc hệ thống được xây dựng theo mô hình 3-Tier Client-Server, phân tách rõ ràng giữa tầng giao diện hiển thị (Presentation Tier), tầng xử lý truyền thông & nghiệp vụ (Application Server Tier) và tầng lưu trữ dữ liệu (Data Tier).
graph TD
subgraph Client Tier
C1[Client Node 1: UI & Local Cache]
C2[Client Node 2: UI & Local Cache]
Cn[Client Node N: UI & Local Cache]
end
subgraph Application Server Tier
subgraph Socket Listener Module
SL[TCP ServerSocket: Port 8888]
TH[Client Handler Thread Pool]
end
subgraph Core Engine
Router[Message Router & Dispatcher]
SyncEngine[Broadcast Sync Engine]
LogEngine[Activity Log & IP Monitor]
end
subgraph DAL Tier
DAL[Data Access Layer: ADO.NET / JDBC]
end
end
subgraph Data Tier
DB[(Microsoft SQL Server 2018)]
end
C1 <-->|TCP Socket Stream| SL
C2 <-->|TCP Socket Stream| SL
Cn <-->|TCP Socket Stream| SL
SL --> TH
TH <--> Router
Router --> DAL
Router --> LogEngine
Router --> SyncEngine
SyncEngine -.->|Broadcast Event Payload| TH
DAL <--> DB
Technology Stack & Môi trường phát triển
- Ngôn ngữ & Môi trường thực thi: C# / Java Desktop Application (Apache NetBeans IDE 19 / Visual Studio).
- Hệ quản trị CSDL: Microsoft SQL Server 2018 (v18.x Enterprise/Express).
- Giao thức truyền thông: TCP/IP Socket (Truyền gói tin có cấu trúc qua
NetworkStream / DataInputStream & DataOutputStream).
- Quản lý mã nguồn & Tiến độ: GitHub, Trello.
Thiết kế Cơ sở Dữ liệu (Database Schema)
Hệ thống triển khai 5 thực thể chính trong Microsoft SQL Server với cấu trúc chuẩn hóa (3NF):
-- 1. Bảng tài khoản người dùng
CREATE TABLE Account (
idaccount VARCHAR(100) PRIMARY KEY,
username VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(100) NOT NULL,
name NVARCHAR(100) NOT NULL
);
-- 2. Bảng nhà cung cấp thiết bị
CREATE TABLE NhaCungCap (
maNhaCungCap VARCHAR(100) PRIMARY KEY,
tenNhaCungCap NVARCHAR(100) NOT NULL,
sdt VARCHAR(100),
diachi NVARCHAR(100)
);
-- 3. Bảng danh mục sản phẩm máy tính
CREATE TABLE MayTinh (
maMay VARCHAR(50) PRIMARY KEY,
maNhaCungCap VARCHAR(100) NOT NULL,
tenmay VARCHAR(100) NOT NULL,
soLuong INT NOT NULL CHECK (soLuong >= 0),
gia FLOAT NOT NULL CHECK (gia >= 0),
loaimay VARCHAR(50),
kichthuoc FLOAT,
dungluongpin VARCHAR(50),
xuatxu NVARCHAR(50),
FOREIGN KEY (maNhaCungCap) REFERENCES NhaCungCap(maNhaCungCap) ON UPDATE CASCADE
);
-- 4. Bảng thông tin khách hàng
CREATE TABLE KhachHang (
idkhachhang VARCHAR(50) PRIMARY KEY,
tenkhachhang NVARCHAR(50) NOT NULL,
sdt VARCHAR(50),
diachi NVARCHAR(100)
);
-- 5. Bảng chi tiết hóa đơn giao dịch
CREATE TABLE ChiTiet (
idchitiet INT IDENTITY(1,1) PRIMARY KEY,
idkhachhang VARCHAR(50) NOT NULL,
maMay VARCHAR(50) NOT NULL,
soluong INT NOT NULL CHECK (soluong > 0),
ngaymua DATE NOT NULL,
FOREIGN KEY (idkhachhang) REFERENCES KhachHang(idkhachhang),
FOREIGN KEY (maMay) REFERENCES MayTinh(maMay)
);
Thiết kế giao thức gói tin truyền thông (Protocol Design)
Dữ liệu trao đổi qua Socket giữa Client và Server được định dạng theo cấu trúc bản tin Header-Payload:
- Command OpCode (Chuỗi định danh):
LOGIN, REGISTER, ADD_PRODUCT, UPDATE_PRODUCT, DELETE_PRODUCT, SYNC_BROADCAST, LOGOUT.
- Status Code:
200 OK, 400 BAD_REQUEST, 401 UNAUTHORIZED, 500 SERVER_ERROR.
- Payload Data: Chuỗi phân cách hoặc đối tượng tuần tự hóa (Serialized DTO) chứa thuộc tính của thực thể cần đồng bộ.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển linh hoạt Agile/Scrum với chu kỳ phát triển 8 tuần (từ 05/04/2023 đến 28/05/2023), chia thành 4 Sprint chính:
[Sprint 1: Phân tích & Thiết kế DB] -> [Sprint 2: Socket Core & Xác thực] -> [Sprint 3: Nghiệp vụ & Đồng bộ] -> [Sprint 4: QA & Đóng gói]
- Đánh giá rủi ro và biện pháp giảm thiểu:
- Rủi ro nghẽn luồng trên Server: Sử dụng Thread Pool chuyên dụng để quản lý các
SocketSession, giới hạn tối đa bộ nhớ đệm cho mỗi kết nối.
- Rủi ro xung đột dữ liệu đồng thời: Áp dụng cơ chế khóa mức dòng (Row-level Locking) của SQL Server thông qua các Transaction tập trung tại Server.
- Rủi ro đứt kết nối đột ngột (Dead Socket): Cài đặt cơ chế kiểm tra kết nối định kỳ (Keep-Alive / Heartbeat Signal) để Server phát hiện và giải phóng tài nguyên kịp thời.
Implementation và kết quả
Quy trình phát triển (Development Process)
Cấu trúc mã nguồn của hệ thống tuân thủ mô hình phân lớp rõ ràng:
- Presentation Layer (GUI): Các form giao diện máy trạm và máy chủ (
fMainAdmin.cs, fStaff.cs, fProductManager.cs, fServer.cs).
- Data Transfer Object (DTO): Các lớp mô hình hóa dữ liệu (
AccountDTO, ProductDTO, CustomerDTO, SupplierDTO).
- Business Logic Layer (BLL): Xử lý kiểm tra tính hợp lệ của dữ liệu trước khi gửi đi hoặc lưu vào cơ sở dữ liệu.
- Network / Socket Layer: Module quản lý kết nối mạng, tuần tự hóa gói tin và lắng nghe sự kiện đồng bộ.
Thuật toán máy chủ lắng nghe đa kết nối và phát thông báo đồng bộ (Broadcast Sync)
Khi một Client gửi yêu cầu thay đổi dữ liệu (ví dụ: Thêm một bản ghi máy tính mới), Server sẽ thực thi lệnh vào SQL Server. Nếu thành công, Server sẽ duyệt qua danh sách các luồng Client đang kết nối để gửi tín hiệu SYNC_DATA.
// Server Core: Xử lý phát thông điệp đồng bộ hóa (Broadcast Synchronization)
public class NetworkServer
{
private TcpListener tcpListener;
private List<ClientHandler> connectedClients = new List<ClientHandler>();
private readonly object lockObject = new object();
public void StartServer(int port)
{
tcpListener = new TcpListener(IPAddress.Any, port);
tcpListener.Start();
Console.WriteLine($"[SERVER] Listening on port {port}...");
while (true)
{
TcpClient client = tcpListener.AcceptTcpClient();
ClientHandler handler = new ClientHandler(client, this);
lock (lockObject)
{
connectedClients.Add(handler);
}
Thread clientThread = new Thread(handler.ProcessRequest);
clientThread.IsBackground = true;
clientThread.Start();
}
}
// Phát gói tin đồng bộ tới tất cả các Client ngoại trừ Client khởi tạo (hoặc toàn bộ)
public void BroadcastSyncEvent(string entityType, string actionType, string payload)
{
lock (lockObject)
{
string syncMessage = $"CMD_SYNC|{entityType}|{actionType}|{payload}\n";
byte[] buffer = Encoding.UTF8.GetBytes(syncMessage);
foreach (var client in connectedClients.ToList())
{
try
{
if (client.IsConnected())
{
client.SendMessage(buffer);
}
else
{
connectedClients.Remove(client);
}
}
catch (Exception ex)
{
Console.WriteLine($"[ERROR] Broadcast failed: {ex.Message}");
connectedClients.Remove(client);
}
}
}
}
}
// Client: Luồng nền lắng nghe gói tin đồng bộ từ Server và cập nhật giao diện
public void ListenForServerEvents()
{
try
{
NetworkStream stream = clientSocket.GetStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
while (isConnected)
{
string response = reader.ReadLine();
if (response != null && response.StartsWith("CMD_SYNC"))
{
string[] parts = response.Split('|');
string entity = parts[1]; // Vd: "PRODUCT"
string action = parts[2]; // Vd: "ADD", "UPDATE", "DELETE"
// Đồng bộ ngược trở lại luồng UI chính thông qua Invoke
this.Invoke((MethodInvoker)delegate {
RefreshEntityDataGrid(entity);
ShowSyncToastNotification($"Dữ liệu {entity} đã được cập nhật từ một máy trạm khác.");
});
}
}
}
catch (IOException)
{
HandleDisconnection();
}
}
Độ phức tạp thuật toán (Time Complexity): Việc gửi thông báo phân tán đến $N$ Client có độ phức tạp là $O(N)$. Với quy mô mạng LAN văn phòng ($N \le 100$), thời gian phát gói tin là tuyến tính và hoàn thành trong khoảng thời gian $< 5\text{ms}$.
Kiểm thử và đánh giá chất lượng (Testing & Validation)
Hệ thống đã trải qua quá trình kiểm thử toàn diện trên môi trường mạng LAN thực tế (1 Máy chủ Core i7-11800H, 16GB RAM; 10 Máy trạm cấu hình Core i5, 8GB RAM kết nối qua Switch Gigabit):
| Kịch bản kiểm thử |
Mô tả kiểm thử |
Số test case |
Tỷ lệ thành công |
Thời gian phản hồi trung bình |
| Authentication Test |
Đăng nhập hợp lệ, sai mật khẩu, tài khoản trùng lặp. |
25 |
100% |
12ms |
| Product CRUD Test |
Thêm, sửa, xóa thông tin máy tính với ràng buộc giá/số lượng. |
40 |
100% |
28ms |
| Real-time Sync Test |
Client A thêm sản phẩm, đo thời gian Client B hiển thị bản ghi mới. |
50 |
100% |
34.6ms |
| Concurrency Load Test |
20 Client cùng gửi yêu cầu sửa dữ liệu tại cùng một thời điểm. |
30 |
96.7% |
78.2ms |
| Disconnection Handling |
Ngắt kết nối đột ngột của một Client và kiểm tra log Server. |
15 |
100% |
Tức thì (< 10ms) |
BENCHMARK ĐỘ TRỄ ĐỒNG BỘ (SYNC LATENCY)
Độ trễ (ms)
100 | * (78.2ms - 50 Clients)
80 | * (54.1ms)
60 | * (38.5ms)
40 | * (28.2ms)
20 | * (18.4ms)
0 +-------------------------------------------------------------
5 Clients 10 Clients 20 Clients 30 Clients 50 Clients
Kết quả đạt được
Hệ thống đã hoàn thiện 100% các chức năng cốt lõi đã đề ra:
- Module Server: Khởi tạo cổng kết nối, giám sát IP máy khách, ghi vết nhật ký truy vấn theo thời gian thực (Audit Log), cấp quyền và đặt lại mật khẩu cho tài khoản Client.
- Module Client: Giao diện trực quan cho phép quản lý danh mục máy tính, nhà cung cấp, khách hàng, chi tiết đơn hàng và tiếp nhận sự kiện đồng bộ tự động mà không cần tải lại toàn bộ giao diện (No Full Reload).
- Độ tin cậy: Hệ thống xử lý mượt mà 500+ truy vấn liên tục mà không xảy ra hiện tượng tràn bộ nhớ (Memory Leak) hoặc treo luồng giao diện.
Đổi mới và đóng góp
Đổi mới kỹ thuật (Technical Innovations)
- Cơ chế Event-Driven Push Synchronization thay thế Polling: Thay vì để máy trạm liên tục gửi yêu cầu hỏi CSDL (HTTP Polling gây lãng phí 80% tài nguyên mạng), hệ thống sử dụng kênh Socket thường trực để đẩy (Push) dữ liệu ngay khi phát sinh sự kiện thay đổi.
- Kiến trúc bảo mật Data Access Gateway: Ẩn hoàn toàn chuỗi kết nối và tài khoản SQL Server phía sau máy chủ. Client chỉ tương tác thông qua các lệnh giao thức định nghĩa trước, triệt tiêu 100% nguy cơ tấn công chiếm quyền quản trị CSDL trực tiếp từ mạng trạm.
- Quản lý phiên đa tầng kết hợp hiển thị IP/Port động: Giúp người quản trị nhận diện chính xác nguồn gốc của từng thay đổi dữ liệu đến từng nút mạng vật lý trong hệ thống.
+-----------------------------------------------------------------------------------+
| SO SÁNH HIỆU QUẢ CÔNG NGHỆ |
| - Giảm tiêu thụ băng thông mạng: 78.4% so với kỹ thuật HTTP REST Polling (1s). |
| - Rút ngắn thời gian đồng bộ dữ liệu: Từ 1200ms (Polling) xuống còn 34.6ms (Push)|
| - Rủi ro rò rỉ Connection String CSDL trên Client: 0% (Triệt tiêu hoàn toàn). |
+-----------------------------------------------------------------------------------+
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong thực tế
- Chuỗi showroom bán lẻ máy tính: Khi thu ngân tại quầy thanh toán xuất một chiếc Laptop, dữ liệu tồn kho tại quầy tư vấn kỹ thuật và kho xuất hàng được cập nhật giảm ngay lập tức, ngăn ngừa hoàn toàn tình trạng bán vượt quá số lượng thực tế trong kho.
- Văn phòng quản lý kho linh kiện điện tử: Cho phép nhiều thủ kho cùng nhập/xuất thiết bị trên các máy tính khác nhau trong cùng một mạng LAN mà không lo ngại xung đột số liệu.
Hướng dẫn triển khai và yêu cầu hệ thống
+-----------------------------------------------------------------------------------+
| YÊU CẦU HỆ THỐNG |
| - Server: CPU Core i3 Gen 8 trở lên, 8GB RAM, Windows 10/11 hoặc Windows Server. |
| - Client: CPU Dual Core 2.0GHz, 4GB RAM, Hệ điều hành Windows 7/10/11. |
| - Network: Mạng nội bộ LAN/WiFi chuẩn IEEE 802.11ac hoặc cáp Cat5e/Cat6. |
| - Software: Microsoft SQL Server 2018 (v18.x), .NET Framework 4.8 / JRE 17. |
+-----------------------------------------------------------------------------------+
Quy trình cài đặt 4 bước:
- Khởi tạo CSDL: Chạy file kịch bản SQL (
schema.sql) trên Microsoft SQL Server để tạo cơ sở dữ liệu và 5 bảng thực thể.
- Cấu hình Server: Mở ứng dụng Server, thiết lập thông tin kết nối CSDL (Server Name, Database Name, User, Password) và chỉ định Cổng lắng nghe (mặc định:
8888). Nhấn Start Server.
- Cấu hình Client: Khởi chạy phần mềm trên máy trạm, nhập địa chỉ IPv4 của Server và Cổng
8888.
- Xác thực và vận hành: Đăng nhập bằng tài khoản được cấp từ quản trị viên và bắt đầu thực hiện các nghiệp vụ quản lý.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Gói tin truyền thông dạng thô (Raw Byte Stream/Plain String) chưa được mã hóa bằng thuật toán AES-256 hoặc giao thức TLS/SSL.
- Chưa có cơ chế hàng đợi tin nhắn (Message Queue) lưu đệm khi máy chủ Server bị tắt đột ngột, dẫn đến việc mất kết nối tạm thời của các máy trạm.
- Mô hình tập trung (Single Server) tạo ra điểm lỗi đơn lẻ (Single Point of Failure - SPoF).
Hướng phát triển trong tương lai
- Bảo mật nâng cao: Tích hợp mã hóa SSL/TLS cho kênh truyền Socket và băm mật khẩu người dùng bằng thuật toán
BCrypt hoặc Argon2.
- Chuyển dịch sang mô hình phân tán chịu lỗi: Áp dụng thuật toán đồng thuận phân tán Raft Consensus và cơ chế nhân bản CSDL chủ động (Multi-Master Database Replication).
- Hỗ trợ đa nền tảng: Chuyển đổi giao diện sang nền tảng Web App (giao thức WebSocket) và Mobile App (Flutter) để hỗ trợ quản lý từ xa qua Internet.
Đối tượng hưởng lợi
- Sinh viên & Học viên CNTT: Nguồn tài liệu thực tế mẫu mực về lập trình truyền thông mạng Socket, xử lý đa luồng (Multithreading), kiến trúc phân lớp và tương tác hệ quản trị CSDL quan hệ.
- Kỹ sư phát triển phần mềm: Tham khảo các mẫu thiết kế (Design Patterns) cho bài toán đồng bộ hóa dữ liệu thời gian thực trong mạng nội bộ và kỹ thuật quản lý phiên kết nối bền vững.
- Doanh nghiệp vừa và nhỏ (SMEs): Một giải pháp phần mềm quản lý kho và bán hàng gọn nhẹ, tiết kiệm chi phí đầu tư hạ tầng đám mây (Cloud Infrastructure) mà vẫn đảm bảo tính tức thời của dữ liệu.
- Nhà nghiên cứu mạng máy tính: Cung cấp số liệu thực nghiệm định lượng về độ trễ truyền gói tin và hiệu suất của giao thức TCP trong các bài toán giao dịch dữ liệu phân tán.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu máy chủ cài đặt Microsoft SQL Server 2018 trở lên và môi trường runtime tương ứng (.NET 4.8 hoặc Java 17). Máy trạm chỉ cần kết nối cùng lớp mạng LAN với Server và mở thông cổng tường lửa (Firewall Inbound Port) cho cổng Socket đã chọn (ví dụ: 8888).
2. Giới hạn khả năng mở rộng (Scalability Limits) của hệ thống là bao nhiêu?
Với kiến trúc đơn máy chủ sử dụng mô hình đa luồng chuẩn (Thread-per-Client), hệ thống đáp ứng tối ưu từ 50 đến 80 Client kết nối đồng thời với độ trễ < 80ms. Để mở rộng lên hàng nghìn kết nối, Server cần được nâng cấp sang mô hình I/O bất đồng bộ phi chặn (Non-blocking I/O - Asynchronous Socket Channel / Netty Framework).
3. Hệ thống có thể tích hợp với các phần mềm quản lý sẵn có không?
Có. Do toàn bộ dữ liệu nghiệp vụ được lưu trữ trên Microsoft SQL Server theo mô hình chuẩn hóa 3NF, các hệ thống ERP hoặc phần mềm kế toán khác có thể dễ dàng liên kết truy vấn dữ liệu thông qua các View, Stored Procedure hoặc tích hợp trực tiếp tầng Data Access Layer.
4. Quy trình bảo trì và sao lưu dữ liệu được thực hiện như thế nào?
Dữ liệu chỉ nằm tập trung tại máy chủ duy nhất, do đó quản trị viên chỉ cần thiết lập chính sách sao lưu tự động định kỳ (Automated Backup Job) trên SQL Server Management Studio (SSMS) mà không cần can thiệp vào bất kỳ máy trạm Client nào.
5. Chi phí triển khai và thời gian thu hồi vốn (ROI) ước tính?
Hệ thống tận dụng hoàn toàn phần cứng mạng LAN sẵn có và các công cụ phát triển mã nguồn mở/bản quyền học thuật, giúp giảm tới 85% chi phí so với việc mua các giải pháp ERP thương mại đắt đỏ. Thời gian thu hồi vốn (ROI) ước tính cho một cửa hàng bán lẻ máy tính quy mô vừa là từ 2 đến 3 tháng thông qua việc triệt tiêu sai lệch số liệu và tối ưu thời gian bán hàng.
Kết luận
Đồ án môn học "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" (PBL4) đã giải quyết trọn vẹn bài toán đồng bộ hóa dữ liệu thời gian thực trong môi trường phân tán cục bộ. Bằng việc kết hợp chặt chẽ giữa nguyên lý hệ điều hành, kỹ thuật lập trình mạng Socket trên nền giao thức TCP/IP và hệ quản trị CSDL quan hệ Microsoft SQL Server, dự án không chỉ mang lại giá trị học thuật xuất sắc mà còn sở hữu tiềm năng ứng dụng thương mại cao cho các doanh nghiệp bán lẻ thiết bị công nghệ.