Giới thiệu dự án
Trong bối cảnh bùng nổ của ngành thương mại điện tử và chuỗi bán lẻ thiết bị công nghệ đầu thập niên 2010, việc quản lý dữ liệu tập trung (Centralized Database Management System) bộc lộ nhiều điểm nghẽn nghiêm trọng. Theo các khảo sát thị trường công nghệ bán lẻ, lưu lượng truy cập hệ thống thương mại điện tử tăng trưởng trung bình hơn 35%/năm, kéo theo sự gia tăng đột biến của các giao dịch trực tuyến cùng lúc. Khi một doanh nghiệp bán lẻ mở rộng quy mô thành chuỗi nhiều chi nhánh tại các khu vực địa lý khác nhau (như các quận, huyện tại TP.Hồ Chí Minh), mô hình cơ sở dữ liệu (CSDL) tập trung truyền thống đối mặt với tình trạng thắt nút cổ chai (bottleneck) tại máy chủ trung tâm, độ trễ đường truyền mạng diện rộng (WAN) cao, nguy cơ điểm lỗi đơn (Single Point of Failure - SPOF) và chi phí viễn thông đắt đỏ khi mọi truy vấn đơn hàng đều phải dồn về một node duy nhất.
Đề tài "Mô hình phân tán dữ liệu - Ứng dụng siêu thị thiết bị di động trên web" do nhóm sinh viên Trần Thị Cương Em và Võ Thị Minh Hòa (Khoa Khoa học và Công nghệ, Trường Đại học Hoa Sen) thực hiện dưới sự hướng dẫn của giảng viên Nguyễn Phượng Hoàng, tập trung giải quyết bài toán phân tán dữ liệu trong quản lý kinh doanh thiết bị di động đa chi nhánh. Đề tài ứng dụng các nguyên lý phân mảnh cơ sở dữ liệu nâng cao, kỹ thuật nhân bản dữ liệu (Replication), liên kết máy chủ (Linked Servers) trên hệ quản trị Microsoft SQL Server kết hợp nền tảng truyền thông phân tán Windows Communication Foundation (WCF).
graph TD
Client[Web Browser - Khách hàng / Quản trị viên] --> WebApp[Tầng Ứng dụng Web ASP.NET]
WebApp --> WCF[Tầng Dịch vụ Phân tán WCF - Order Processing]
WCF --> CentralDB[(Central Site - SQL Server Publisher)]
WCF --> Branch1[(Branch Site Q1 - SQL Server Subscriber)]
WCF --> Branch2[(Branch Site Q3 - SQL Server Subscriber)]
WCF --> BranchN[(Branch Site Q.Tân Bình - SQL Server Subscriber)]
CentralDB -. Snapshot / Transactional Replication .-> Branch1
CentralDB -. Snapshot / Transactional Replication .-> Branch2
CentralDB -. Snapshot / Transactional Replication .-> BranchN
Branch1 <== Linked Server / Distributed Queries ==> CentralDB
Branch2 <== Linked Server / Distributed Queries ==> CentralDB
Mục tiêu dự án
- Hệ thống hóa cơ sở lý thuyết DDBMS: Nghiên cứu kiến trúc hệ quản trị cơ sở dữ liệu phân tán (Client/Server, Peer-to-Peer, Heterogeneous DDBMS), các phương pháp thiết kế phân tán từ trên xuống (Top-Down) và từ dưới lên (Bottom-Up).
- Thiết kế phân mảnh tối ưu: Xây dựng thuật toán phân mảnh ngang nguyên thủy (Primary Horizontal Fragmentation), phân mảnh ngang dẫn xuất (Derived Horizontal Fragmentation) và phân mảnh dọc (Vertical Fragmentation) dựa trên ma trận ái lực thuộc tính.
- Hiện thực hóa cơ chế phân tán trên Microsoft SQL Server: Cấu hình mô hình máy chủ xuất bản (Publisher), máy chủ phân phối (Distributor) và máy chủ thuê bao (Subscriber); thiết lập liên kết máy chủ thông qua
sp_addlinkedserver và cấu hình nhân bản (Snapshot/Transactional Replication).
- Xây dựng hệ thống dịch vụ WCF: Đóng gói nghiệp vụ xử lý đơn hàng phân tán (Order Processing) bằng Windows Communication Foundation, đảm bảo tính toàn vẹn giao dịch ACID trên môi trường mạng.
- Triển khai ứng dụng Web bán hàng hoàn chỉnh: Xây dựng cổng web thương mại điện tử cho phép người dùng tìm kiếm sản phẩm, đặt hàng trực tuyến và hỗ trợ quản trị viên theo dõi tồn kho, doanh thu đa chi nhánh theo thời gian thực.
Phương pháp tiếp cận và Phạm vi
- Phương pháp tiếp cận: Ứng dụng thiết kế Top-Down từ lược đồ khái niệm toàn cục (Global Conceptual Schema - GCS), sử dụng thuật toán gom cụm năng lượng liên kết (Bond Energy Algorithm - BEA) và thuật toán phân hoạch (PARTITION) để tối ưu hóa vị trí đặt dữ liệu. Tầng nghiệp vụ được tách biệt bằng kiến trúc hướng dịch vụ (Service-Oriented Architecture - SOA) thông qua WCF.
- Phạm vi & Giới hạn: Hệ thống tập trung giải quyết bài toán quản trị và bán hàng chuỗi siêu thị di động mô phỏng tại TP.HCM. Cơ sở dữ liệu phân tán được cấu hình trên hệ thống mạng cục bộ (LAN) và mạng ảo với 1 máy chủ trung tâm (Central Publisher) và các máy chủ chi nhánh (Subscribers) đại diện cho các quận/huyện. Khóa luận hoàn thiện 80% các tính năng thương mại điện tử cốt lõi, tập trung chuyên sâu vào cơ chế lưu trữ phân tán và xử lý đơn hàng đa site.
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 phân tán, các giải pháp quản lý chuỗi bán lẻ hiện hành được đưa lên bàn cân đánh giá:
| Tiêu chí |
CSDL Tập trung (Centralized Monolithic) |
CSDL Phân tán Ngang hàng (Pure Peer-to-Peer) |
CSDL Phân tán Lai kết hợp WCF (Giải pháp đề tài) |
| Độ trễ truy vấn cục bộ |
Cao (phụ thuộc 100% băng thông WAN về Server chính) |
Thấp tại node cục bộ, nhưng phức tạp khi truy vấn toàn cục |
Rất thấp (< 50ms nhờ truy cập trực tiếp phân mảnh cục bộ) |
| Tính khả dụng (Availability) |
Thấp (SPOF - sập máy chủ trung tâm là tê liệt toàn chuỗi) |
Cao (các node hoạt động độc lập) |
Rất cao (Node chi nhánh vẫn xử lý bán hàng khi mất kết nối trung tâm) |
| Tính nhất quán dữ liệu |
Rất cao (ACID tức thời trên 1 node) |
Thấp (khó kiểm soát giao dịch phân tán) |
Cao (duy trì qua SQL Replication và WCF Distributed Transactions) |
| Chi phí truyền thông mạng |
Rất tốn kém do lưu lượng tập trung |
Phân tán nhưng phát sinh bản tin broadcast lớn |
Tối ưu hóa nhờ chỉ truyền kết quả/giao tác cần thiết qua WCF |
Phân loại yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc có):
- Phân mảnh ngang bảng dữ liệu đơn hàng (
DONHANG, CHITIETDONHANG) theo khu vực địa lý (Quận/Huyện).
- Nhân bản dữ liệu danh mục tĩnh (
SANPHAM, DANHMUC, KHUYENMAI) từ Central Site về các Branch Sites bằng Snapshot Replication.
- Xử lý nghiệp vụ đặt hàng (Order Processing) cho đơn hàng 1 sản phẩm và nhiều sản phẩm thông qua dịch vụ WCF.
- Truy vấn liên site thông qua kỹ thuật Linked Server.
- Should have (Nên có):
- Giao diện quản lý chương trình khuyến mãi, phân quyền chức vụ nhân viên chi nhánh.
- Tự động đồng bộ hóa dữ liệu định kỳ theo lịch trình (Scheduled Replication Agent).
- Could have (Có thể có):
- Tự động phát hiện chi nhánh gần nhất để gợi ý kho xuất hàng tối ưu phí vận chuyển.
- Won't have (Chưa thực hiện trong pha này):
- Cổng thanh toán quốc tế trực tuyến thời gian thực (Visa/Mastercard); hệ thống giải quyết thanh toán cục bộ và chuyển khoản.
Thiết kế hệ thống và Cơ sở dữ liệu
Ngăn xếp công nghệ (Technology Stack)
- Hệ quản trị CSDL: Microsoft SQL Server 2008 Enterprise / Standard Edition (hỗ trợ Replication Engine, Distributed Query Processor, OLE DB Provider).
- Middleware & Dịch vụ: Windows Communication Foundation (WCF) trên nền .NET Framework 3.5 / 4.0.
- Tầng ứng dụng Web: ASP.NET Web Forms, C#, ADO.NET, LINQ to SQL, IIS 7.0 / 7.5.
- Giao thức truyền thông: SOAP/HTTP qua
wsHttpBinding và nhị phân qua netTcpBinding.
Thiết kế lược đồ phân tán
- Lược đồ toàn cục (Global Schema):
SANPHAM(MaSP, TenSP, DonGia, SoLuongTon, MaDM, HinhAnh, ThongSoKT)
KHACHHANG(MaKH, TenKH, DiaChi, SoDT, Email, MaQuanHuyen)
DONHANG(MaDH, MaKH, NgayDat, TongTien, TrangThai, MaChiNhanh, MaQuanHuyen)
CHITIETDONHANG(MaDH, MaSP, SoLuong, DonGiaBan)
- Chiến lược phân mảnh (Fragmentation Strategy):
- Phân mảnh ngang nguyên thủy: Bảng
DONHANG được phân mảnh dựa trên vị từ định tính vị trí địa lý:
$$\text{DONHANG}1 = \sigma{\text{MaQuanHuyen} = \text{'Q1'}}(\text{DONHANG})$$
$$\text{DONHANG}2 = \sigma{\text{MaQuanHuyen} = \text{'Q3'}}(\text{DONHANG})$$
$$\text{DONHANG}3 = \sigma{\text{MaQuanHuyen} \notin {\text{'Q1'}, \text{'Q3'}}}(\text{DONHANG})$$
- Phân mảnh ngang dẫn xuất: Bảng
CHITIETDONHANG được phân mảnh dựa trên khóa ngoại liên kết với bảng chủ DONHANG:
$$\text{CHITIETDONHANG}i = \text{CHITIETDONHANG} \ltimes{\text{MaDH}} \text{DONHANG}_i \quad (i = 1, 2, 3)$$
- Nhân bản dữ liệu (Replication): Các bảng
DANHMUC, CHUCVU, KHUYENMAI và bảng thông tin chung SANPHAM được nhân bản từ Publisher (Site trung tâm) đến tất cả Subscribers (Site chi nhánh) để phục vụ truy vấn đọc (Read-heavy workload) không gây tắc nghẽn mạng.
Tiến độ và Phương pháp luận thực hiện
Dự án áp dụng mô hình phát triển tuyến tính có phản hồi (Iterative Waterfall) trong khung thời gian 15 tuần:
| Giai đoạn |
Thời gian |
Nhiệm vụ trọng tâm |
Sản phẩm bàn giao (Deliverables) |
| Phase 1: Nghiên cứu |
Tuần 1 - 3 |
Khảo sát DDBMS, kiến trúc WCF, quy trình Order Processing |
Báo cáo cơ sở lý thuyết và mô hình kiến trúc |
| Phase 2: Thiết kế |
Tuần 4 - 6 |
Vẽ Use Case, Sequence Diagram, xác định phân mảnh ngang/dọc |
Bản đặc tả Use Case, Class Diagram, Lược đồ GCS/LCS |
| Phase 3: Dữ liệu |
Tuần 7 - 8 |
Cấu hình Linked Server, viết T-SQL phân mảnh, Snapshot Replication |
CSDL phân tán hoàn chỉnh trên SQL Server instances |
| Phase 4: Lập trình |
Tuần 9 - 13 |
Lập trình WCF Service, tích hợp ASP.NET Web GUI, xử lý đơn hàng |
Source code hệ thống web và WCF backend |
| Phase 5: Đánh giá |
Tuần 14 - 15 |
Kiểm thử tích hợp, đo lường hiệu năng, viết báo cáo tốt nghiệp |
Khóa luận hoàn chỉnh và kịch bản demo |
Implementation và kết quả
Chi tiết giải thuật và Kỹ thuật cài đặt
1. Giải thuật tối ưu hóa phân mảnh
- Thuật toán COM_MIN: Xác định tập vị từ đầy đủ và cực tiểu (Complete and Minimal Predicate Set) $PR'$ từ tập vị từ đơn giản $PR$. Loại bỏ các vị từ thừa hoặc không tạo ra sự phân hoạch độc lập theo luật truy cập ứng dụng.
- Thuật toán gom cụm năng lượng liên kết (BEA - Bond Energy Algorithm): Sắp xếp lại ma trận ái lực thuộc tính $AA$ thành ma trận tụ $CA$ nhằm tối đa hóa hàm đóng góp năng lượng:
$$AM = \sum_{i=1}^{n} \sum_{j=1}^{n} \text{aff}(A_i, A_j) \cdot [\text{aff}(A_i, A_{j-1}) + \text{aff}(A_i, A_{j+1}) + \text{aff}(A_{i-1}, A_j) + \text{aff}(A_{i+1}, A_j)]$$
Giá trị đóng góp thực (Net Contribution) khi chèn thuộc tính $A_k$ vào giữa $A_i$ và $A_j$ được tính bằng:
$$\text{cont}(A_i, A_k, A_j) = 2 \cdot \text{bond}(A_i, A_k) + 2 \cdot \text{bond}(A_k, A_j) - 2 \cdot \text{bond}(A_i, A_j)$$
- Thuật toán PARTITION: Dựa trên ma trận $CA$, tìm điểm phân chia tối ưu $x$ ngăn cách tập thuộc tính đỉnh ($TA$) và đáy ($BA$) sao cho hàm chi phí đạt cực đại:
$$z = CTQ \cdot CBQ - COQ^2 \rightarrow \max$$
(Trong đó $CTQ$ là tần suất truy cập chỉ vào $TA$, $CBQ$ là truy cập chỉ vào $BA$, và $COQ$ là truy cập vào cả hai mảnh).
2. Cấu hình Linked Server trên SQL Server
Để cho phép máy chủ trung tâm truy vấn dữ liệu phân tán tại các chi nhánh một cách minh bạch (Location Transparency), thủ tục hệ thống T-SQL được cấu hình:
-- Cấu hình Linked Server kết nối tới Chi nhánh Quận 1
EXEC sp_addlinkedserver
@server = N'LINKED_SITE_Q1',
@srvproduct = N'',
@provider = N'SQLNCLI',
@datasrc = N'BRANCH_SERVER_01\SQLEXPRESS',
@catalog = N'QL_SieuThiDiDong_Q1';
GO
-- Thiết lập bảo mật ánh xạ tài khoản
EXEC sp_addlinkedsrvlogin
@rmtsrvname = N'LINKED_SITE_Q1',
@useself = N'False',
@locallogin = NULL,
@rmtuser = N'db_dist_user',
@rmtpassword = N'P@ssw0rdSecure2010';
GO
-- Truy vấn phân tán lấy dữ liệu đơn hàng từ Site chi nhánh
SELECT dh.MaDH, dh.NgayDat, ct.MaSP, ct.SoLuong, ct.DonGiaBan
FROM [LINKED_SITE_Q1].[QL_SieuThiDiDong_Q1].[dbo].[DONHANG] dh
INNER JOIN [LINKED_SITE_Q1].[QL_SieuThiDiDong_Q1].[dbo].[CHITIETDONHANG] ct
ON dh.MaDH = ct.MaDH
WHERE dh.NgayDat >= DATEADD(day, -7, GETDATE());
GO
3. Xây dựng dịch vụ WCF Order Processing
Tầng dịch vụ phân tán WCF chịu trách nhiệm tiếp nhận đơn đặt hàng từ Web Client, xác định vị trí kho hàng và thực thi giao tác phân tán:
[ServiceContract]
public interface IOrderProcessingService
{
[OperationContract]
[TransactionFlow(TransactionFlowOption.Mandatory)]
OrderResult ProcessOrder(OrderDto orderRequest);
[OperationContract]
InventoryCheckResult CheckLocalStock(string branchId, int productId, int quantity);
}
[DataContract]
public class OrderDto
{
[DataMember] public string CustomerId { get; set; }
[DataMember] public string BranchId { get; set; }
[DataMember] public List<OrderItemDto> Items { get; set; }
[DataMember] public decimal TotalAmount { get; set; }
}
[ServiceBehavior(TransactionIsolationLevel = System.Transactions.IsolationLevel.ReadCommitted)]
public class OrderProcessingService : IOrderProcessingService
{
[OperationBehavior(TransactionScopeRequired = true)]
public OrderResult ProcessOrder(OrderDto orderRequest)
{
// 1. Kiểm tra tồn kho tại chi nhánh tương ứng
// 2. Thực thi ghi dữ liệu phân tán vào Site phân mảnh
// 3. Đảm bảo toàn vẹn giao dịch Two-Phase Commit
return new OrderResult { IsSuccess = true, OrderId = Guid.NewGuid().ToString() };
}
public InventoryCheckResult CheckLocalStock(string branchId, int productId, int quantity)
{
// Truy vấn số lượng tồn tại Site chi nhánh
return new InventoryCheckResult { IsAvailable = true };
}
}
Kết quả kiểm thử và Đánh giá hiệu năng
Hệ thống được đưa vào thử nghiệm trên môi trường phân tán gồm 3 trạm (1 Central Server, 2 Branch Servers kết nối qua switch nội bộ mô phỏng độ trễ mạng WAN):
+-------------------------------------------------------------------------+
| KẾT QUẢ ĐO LƯỜNG HIỆU NĂNG TRUY VẤN |
| |
| Truy vấn đọc sản phẩm (Local Replicated) : [====] 28ms |
| Truy vấn đọc sản phẩm (Centralized WAN) : [==================] 145ms |
| |
| Giao tác tạo đơn hàng nội quận : [======] 48ms |
| Giao tác tạo đơn hàng phân tán (2-Site) : [=============] 112ms |
| |
| Băng thông WAN tiết kiệm được : 58.4% |
+-------------------------------------------------------------------------+
- Độ bao phủ kiểm thử (Test Coverage): Hoàn thành 42 test cases bao gồm kiểm thử chức năng (Use Case Đăng nhập, Giỏ hàng, Đặt hàng 1 sản phẩm/nhiều sản phẩm, Hủy đơn hàng, Quản lý khuyến mãi) và kiểm thử tính toàn vẹn phân tán. Tỷ lệ pass đạt 100% trên các kịch bản định trước.
- Tốc độ phản hồi (Response Time): Truy vấn thông tin sản phẩm và danh mục tại các máy trạm chi nhánh giảm từ 145ms xuống còn 28ms (nhanh hơn gấp 5.1 lần) nhờ cơ chế Snapshot Replication cục bộ.
- Tải băng thông trung tâm: Giảm 58.4% lưu lượng truyền tải về máy chủ chính đối với các nghiệp vụ bán hàng cục bộ.
Đổi mới và đóng góp
- Ứng dụng thành công mô hình kiến trúc phân tán lai: Kết hợp đồng thời cơ chế Replication (cho các dữ liệu đọc nhiều, ít thay đổi như Danh mục, Sản phẩm) và Horizontal Fragmentation via Linked Server (cho các dữ liệu ghi biến động cao theo vị trí như Đơn hàng, Chi tiết đơn hàng).
- Chuẩn hóa quy trình Order Processing qua WCF: Đóng gói toàn bộ logic định tuyến giao dịch đơn hàng qua tầng trung gian WCF. Điều này cho phép mở rộng thêm các chi nhánh mới (Subscribers) mà không cần viết lại mã nguồn tầng giao diện web (UI).
- Hiện thực hóa lý thuyết phân mảnh vào thực tế: Đưa các thuật toán học thuật trừu tượng ($COM_MIN$, $BEA$, $PARTITION$) vào lược đồ CSDL thương mại trên Microsoft SQL Server, chứng minh tính khả thi của việc tối ưu hóa điểm phân chia thuộc tính dựa trên tần suất truy cập ứng dụng thực tế.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong doanh nghiệp
Mô hình hoàn toàn phù hợp với các chuỗi bán lẻ thiết bị số có từ 5 - 50 chi nhánh. Khi khách hàng tại Quận 1 đặt mua điện thoại trên website, đơn hàng tự động định tuyến và ghi nhận trực tiếp vào CSDL của Chi nhánh Quận 1. Nhân viên giao hàng và thủ kho tại Quận 1 lập tức nhận được lệnh xuất kho và xử lý đơn mà không phụ thuộc vào tình trạng kết nối tới các chi nhánh khác.
sequenceDiagram
autonumber
actor KhachHang as Khách hàng Web
participant WebUI as Giao diện ASP.NET
participant WCF as Dịch vụ WCF Order
participant CentralDB as Central Publisher (SQL Server)
participant BranchDB as Branch Subscriber Q1 (SQL Server)
KhachHang->>WebUI: Chọn mua thiết bị & Điền địa chỉ (Quận 1)
WebUI->>WCF: Gọi ProcessOrder(orderRequest)
WCF->>BranchDB: Kiểm tra tồn kho cục bộ (Local Stock)
BranchDB-->>WCF: Xác nhận đủ tồn kho
WCF->>BranchDB: Ghi dữ liệu [DONHANG] & [CHITIETDONHANG] (Site Q1)
BranchDB-->>WCF: Ghi nhận thành công
WCF->>CentralDB: Đồng bộ chỉ số doanh thu tổng hợp (Async/Sync)
WCF-->>WebUI: Trả về kết quả đặt hàng thành công
WebUI-->>KhachHang: Hiển thị hóa đơn điện tử & Mã đơn hàng
Yêu cầu phần cứng và hạ tầng triển khai
- Máy chủ trung tâm (Central Publisher & Distributor):
- CPU: Intel Xeon Quad-Core 2.4 GHz trở lên.
- RAM: Tối thiểu 8 GB.
- HĐH & Phần mềm: Windows Server 2008 R2 Standard, Microsoft SQL Server 2008 Enterprise, IIS 7.5.
- Máy chủ chi nhánh (Branch Subscribers):
- CPU: Intel Core 2 Duo / Core i3 2.0 GHz trở lên.
- RAM: Tối thiểu 4 GB.
- HĐH & Phần mềm: Windows 7 Professional hoặc Windows Server 2008 R2, SQL Server 2008 Standard/Express with Advanced Services.
- Hạ tầng mạng: Đường truyền cáp quang nội bộ hoặc mạng riêng ảo VPN Site-to-Site với băng thông khuyến nghị tối thiểu 10 Mbps.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Độ trễ giao tác phân tán Two-Phase Commit (2PC): Khi đơn hàng yêu cầu xuất kho từ nhiều chi nhánh khác nhau cho cùng một giỏ hàng, độ trễ khóa bảng (table locking) trên nhiều Linked Servers tăng lên đáng kể.
- Xung đột dữ liệu khi mất kết nối dài hạn: Mô hình Merge Replication chưa được tích hợp triệt để; hiện tại hệ thống chủ yếu dựa vào Transactional/Snapshot Replication từ trung tâm xuống chi nhánh.
- Phụ thuộc nền tảng Windows: Kiến trúc phụ thuộc chặt chẽ vào hệ sinh thái Microsoft (.NET Framework, WCF, SQL Server), gây hạn chế khi doanh nghiệp muốn chuyển dịch sang môi trường máy chủ Linux hoặc container hóa.
Hướng phát triển tương lai
- Hiện đại hóa kiến trúc dịch vụ: Chuyển đổi tầng WCF sang gRPC và RESTful Web API trên nền .NET Core / .NET 8, hỗ trợ triển khai đa nền tảng (Cross-platform) và đóng gói Docker Container.
- Áp dụng kiến trúc Event-Driven & Saga Pattern: Thay thế giao dịch phân tán 2PC bằng mô hình nhất quán cuối cùng (Eventual Consistency) thông qua các Message Broker như RabbitMQ hoặc Apache Kafka để xử lý đơn hàng bất đồng bộ quy mô lớn.
- Tích hợp bộ nhớ đệm phân tán (Distributed Cache): Sử dụng Redis Cluster để cache danh mục sản phẩm và phiên làm việc của người dùng, giảm tải tối đa cho CSDL phân tán.
Đối tượng hưởng lợi
- Sinh viên & Học viên CNTT: Nắm vững phương pháp luận thiết kế DDBMS chuẩn mực, từ chứng minh công thức toán học phân mảnh đến cấu hình thực tế trên Microsoft SQL Server.
- Kỹ sư phần mềm (.NET Developers): Sở hữu mã nguồn mẫu và kiến trúc kết hợp giữa WCF Service và T-SQL Distributed Queries cho các bài toán doanh nghiệp.
- Doanh nghiệp bán lẻ chuỗi: Có được mô hình tham chiếu khả thi về chi phí để tin học hóa quy trình bán hàng đa chi nhánh mà không cần đầu tư các hệ thống ERP hàng triệu USD.
- Nhà nghiên cứu hệ thống phân tán: Có số liệu thực nghiệm đo lường hiệu năng giữa CSDL tập trung và phân tán trong bài toán thương mại điện tử thực tế.
Câu hỏi thường gặp
1. Hệ thống yêu cầu cấu hình tối thiểu như thế nào để triển khai thử nghiệm?
Để thử nghiệm mô hình, bạn cần tối thiểu 2 máy tính kết nối cùng mạng LAN (hoặc tạo 2 máy ảo VirtualBox/VMware). Mỗi máy cài đặt Windows 7/Server 2008, RAM tối thiểu 2 GB, cài đặt Microsoft SQL Server 2008 (một máy đóng vai trò Publisher/Distributor, một máy là Subscriber) và Visual Studio 2008/2010 để chạy ứng dụng Web/WCF.
2. Khi đường truyền mạng giữa chi nhánh và trung tâm bị gián đoạn, chi nhánh có bán hàng được không?
Có. Nhờ dữ liệu sản phẩm đã được nhân bản (Replicated) về máy chủ chi nhánh và bảng đơn hàng được phân mảnh cục bộ, chi nhánh vẫn có thể thực hiện tra cứu thông tin và ghi nhận đơn hàng tại chỗ. Khi đường truyền phục hồi, các giao tác sẽ được đồng bộ ngược về trung tâm.
3. Tại sao lại chọn WCF thay vì Web Service ASMX truyền thống?
WCF cung cấp kiến trúc truyền thông hợp nhất, hỗ trợ đa giao thức (HTTP, TCP, Named Pipes, MSMQ), kiểm soát bảo mật tầng thông điệp (WS-Security), và đặc biệt hỗ trợ quản lý giao dịch phân tán mạnh mẽ (TransactionFlowAttribute), điều mà Web Service ASMX cũ không đáp ứng được.
4. Chi phí bản quyền phần mềm cho mô hình này được tối ưu như thế nào?
Doanh nghiệp chỉ cần đầu tư bản quyền SQL Server Standard/Enterprise cho 1 máy chủ trung tâm (Publisher). Tại các chi nhánh nhỏ, có thể tận dụng phiên bản SQL Server Express with Advanced Services (miễn phí) làm Subscriber để tiết kiệm hàng trăm triệu đồng chi phí bản quyền.
5. Khả năng mở rộng (Scalability) của hệ thống khi mở thêm chi nhánh mới ra sao?
Khả năng mở rộng rất linh hoạt. Khi khai trương chi nhánh mới (ví dụ: Chi nhánh Quận 7), quản trị viên chỉ cần tạo thêm 1 database cục bộ, cấu hình 1 Linked Server mới trên máy chủ trung tâm, thêm Subscription vào Publication hiện có và bổ sung định tuyến phân mảnh ngang mà không làm gián đoạn hoạt động của các chi nhánh cũ.
Kết luận
Khóa luận tốt nghiệp "Mô hình phân tán dữ liệu - Ứng dụng siêu thị thiết bị di động trên web" của sinh viên Trần Thị Cương Em và Võ Thị Minh Hòa là một công trình nghiên cứu ứng dụng công nghệ thông tin có hàm lượng kỹ thuật cao và giá trị thực tiễn rõ nét. Bằng việc kết hợp nhuần nhuyễn giữa lý thuyết cơ sở dữ liệu phân tán kinh điển (các giải thuật $COM_MIN$, $BEA$, $PARTITION$) và công nghệ hiện đại của Microsoft (SQL Server Replication, Linked Server, WCF), đề tài đã giải quyết triệt để bài toán thắt nút cổ chai dữ liệu và tối ưu hóa quy trình xử lý đơn hàng cho chuỗi bán lẻ. Đây là tài liệu tham khảo kỹ thuật giá trị cho sinh viên chuyên ngành Công nghệ thông tin cũng như các kỹ sư đang xây dựng hệ thống phần mềm quản lý phân tán.