Miêu tả các vấn đề mỗi khía cạnh của 5 khía cạnh không đồng nhất cần phải giải quyết để cho một đối tượng client có thể dẫn xuất một phương thức trên server.. Nhưng những máy tính có thể
Trang 1BÁO CÁO CÁ NHÂN MÔN HỌC: CÁC HỆ THỐNG PHÂN TÁN
ĐỀ TÀI 14: Tạo 3 bản sao cho 1 CSDL SQL (Có 2 table, mỗi table gồm 5 trường dữ liệu với các
kiểu dữ liệu khác nhau ) trên cùng 1 Instance Viết ứng dụng lan truyền cập nhật từ CSDL
đến Bản sao 1, bản sao 1 đến bản sao 2 và bản sao 3.
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 2TP Hồ Chí Minh, ngày 30 tháng 10 năm 2021
Trang 3MỤC LỤC
Phần I: Câu hỏi cá nhân 3
Phần II: Đồ án Nhóm 4
1.Cơ sở dữ liệu 5
2.Thư viện Dotmim 5
3.Sản phẩm 7
3.1 Công cụ sử dụng 7
3.2 Giới thiệu sản phẩm 7
3.3 Demo Sản phẩm 10
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 4Phần I: Câu hỏi cá nhân
Câu 7: Một chương trình server viết trên một ngôn ngữ(ví dụ C++) cung cấp ứng
dụng cho một đối tượng BLOB mà đối tượng đó có ý định kết nối với những clients
viết bởi một ngôn ngữ khác(ví dụ như Java) Máy client và server có thể khác phần
cứng nhưng đều cùng kết nối đến một mạng internet Miêu tả các vấn đề mỗi khía
cạnh của 5 khía cạnh không đồng nhất cần phải giải quyết để cho một đối tượng
client có thể dẫn xuất một phương thức trên server
Trả lời:
Vì những máy tính được kết nối tới cùng một mạng internet, chúng ta có thể giả
định rằng các giao thức Internet xử lý những khác biệt trong mạng lưới
Nhưng những máy tính có thể có phần cứng khác nhau – Do đó chúng ta phải xử lý
với những sự khác biệt của cách trình bày mục dữ liệu(data items) trong quá trình
yêu cầu và hồi đáp tin nhắn từ các máy client đến các đối tượng Một tiêu chuẩn
chung sẽ cần được định nghĩa cho mỗi loại mục dữ liệu cần được truyền đi giữa đối
tượng và client của nó
Những máy tính để thể chạy trên hệ điều hành khác nhau, vì thế chúng ta cần phải giải
quyết sự khác biệt giữa các hệ điều hành trong việc gửi nhận tin nhắn hay thể hiện lời
gọi hàm Do đó tại cấp độ Java/C++ một hệ điều hành chung sẽ được dùng để dịch ra
hệ điều hành riêng biệt hệ thống đó đang dùng
Chúng ta có 2 ngôn ngữ khác nhau là C++ và Java, chúng sử dụng cách trình bày
khác nhau cho những cấu trúc dữ liệu như chuỗi, hàm, bản ghi Một tiêu chuẩn chung
sẽ được dùng để định nghĩa cho mỗi loại cách trúc dữ liệu cần được truyền đi giữa
đối tượng và những client của nó Và một cách để biên dịch cấu trúc dữ liệu đó giữa
những ngôn ngữ khác nhau
Chúng ta có thể có 2 người thực hiện khác nhau ví dụ như một cho C++ và một cho
Java Họ sẽ cần phải thống nhất một tiêu chuẩn chung được đề cập ở trên và ghi
chép lại chúng
Trang 5Câu 116 Giải thích những điều kiện liên kết chương trình phải được đáp ứng nếu
một server được tải động lên một không gian địa chỉ kernel, và bằng cách nào để
phân biệt những trường hợp thực thi một server dưới cấp độ người dùng
Trả lời:
Một phần của không gian địa chỉ kernel phải được cấp phát cho phần code và dữ
liệu mới Những kí hiệu trong code và dữ liệu mới phải được phân giải thành những
mục(item) trong không gian địa chỉ kernel Ví dụ, nó sẽ sử dụng hàm xử lý tin nhắn
của kernel
Ngược lại, nếu server được thực thi bằng một tiến trình riêng biệt thì nó sẽ chạy
một địa chỉ tiêu chuẩn trên không gian địa chỉ của nó và tách biệt với những liên kết
tới những thư viện được chia sẻ, hình ảnh liên kết của nó sẽ là độc lập
Cấu 225 Giải thích bằng cách nào mà giao thức xác nhận hai pha cho những giao
tác lồng nhau đảm bảo rằng nếu giao tác cấp cao thực thi, tất cả thành phần con đúng
được xác nhận hoặc hủy bỏ
Trả lời:
-Giao thức xác nhận 2 pha đảm bảo rằng giao tác phải được xác nhận hết hoặc sẽ hủy
bỏ toàn bộ
-Mỗi khi một giao tác lồng nhau được thực thi, nó báo về trạng thái của nó và trạng thái
của thành phần con về cha Vì thế nếu một giao tác đến trạng thái xác nhận, nó có một
danh sách đúng cho những thành phần con đã xác nhận Do đó mỗi khi giao tác cấp cao
bắt đầu giao thức xác nhận hai pha, nó liệt kê những thành phần con đã xác nhận là đúng
Nó kiểm tra những thành phần con và đảm bảo rằng chúng vẫn có thể xác nhận hoặc
phải hủy bỏ Ở đó có thể tồn tài những node chạy những thành phần con không thành
công không được bao gồm trong giao thức xác nhận 2 pha Ta sẽ biết được kết quả của
chúng bằng cách chạy truy vấn giao tác cấp cao
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 6Phần II: Đồ án Nhóm
NHÓM 14 Tên thành viên:
Nguyễn Phạm Nhật Minh-N17DCCN095
1.Cơ sở dữ liệu
-CSDL gốc sẽ lấy tên là Demo và bản sao sẽ là Demo1,Demo2,Demo3
Table_1
Table_2
2.Thư viện Dotmim
-Dotmim.Sync(DMS) là một trong những thư viện thuận tiện nhất để thực hiện đồng bộ
dữ liệu giữa cái CSDL trên cùng 1 server trên nhiều nền tảng quản trị sql khác nhau
như MySQL, SQL Server, SQLite và MariaDB Trong bài này chúng ta sẽ sử dụng
SQL server của Microsoft
-Cấu trúc của DMS gồm 3 thành phần chính:
Trang 7-Providers: một provider có trách nhiệm giao tiếp với CSDL local Mỗi provider có thể
hoạt động ở cả 2 bên: Server và Client
-Orchestrators: Để có thể chuyển đổi giữa các nền tảng quản trị CSDL Provider là
luôn cần thiết để tạo ra 1 Orchestrator
-SyncAgent: SyncAgent sẽ chịu trách nhiệm chuyển đổi dữ liệu giữa 2
Orchestrator Remote và Local Công việc của SyncAgent bao gồm:
+Tạo ra một local Orchestrator với một client provider nhập trước
+ Tạo ra một remote Orchestrator với một server provider nhập trước
+Đồng bộ dữ liệu giữa client và server bằng các giao thức có trong Orchestrator
Ví dụ:
var serverProvider = new
MySqlSyncProvider(serverConnectionString); var clientProvider =
new SqliteSyncProvider(clientConnectionString);
var tables = new string[] {"<TableName1> ", "<TableName2>" };
var agent = new SyncAgent(clientProvider, serverProvider, tables); var result = await agent.SynchronizeAsync();
Console.WriteLine(result);
Trang 8TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 9-Trong code ví dụ trên không tồn tại Orchestrator vì thư viện Dotmim đã tạo sẵn
cho người dùng để giúp cho mọi thứ đơn giản hóa hơn
3.Sản phẩm
3.1 Công cụ sử dụng
-Ngôn ngữ: C#
-IDE: Visual Studio
-Nutget Packages cài đặt:
+Dotmim.Sync.SqlServer
+Dotmim.Sync.SqlServer.ChangeTracking
+Dotmim.Sync.Sqlite
3.2 Giới thiệu sản phẩm
-Main Form
+Nút làm mới sẽ cập nhập dữ liệu từ SQL Server
+Nút Synchronize tại tab Demo sẽ đẩy dữ liệu từ Demo -> Demo1
+Nút Synchronize tại tab Demo1 sẽ đẩy dữ liệu từ Demo1 -> Demo2, Demo3
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 10+Các nút Table 1,2 sẽ tạo Sub Form giúp chỉnh sửa dữ liệu
SubForm để chỉnh sửa dữ liệu khi nhấn các nút Table1,Table2
Trang 11-Tab Demo1
-Tab Demo2
-Tab Demo 3 sẽ tương tự Tab Demo2
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 123.3 Demo Sản phẩm
-Trước tiên ta sẽ xóa hết dữ liệu trên Demo1, Demo2, Demo3
Trang 13-Thực hiện đẩy dữ liệu từ Demo -> Demo1
-Dữ liệu đã được đẩy xuống Demo1
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 14-Thực hiện đẩy dữ liệu từ Demo1 -> Demo2,Demo3
Trang 15-Dữ liệu đã được đẩy đến Demo2, Demo3
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat