1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo hệ thống phân tán

13 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Hệ Thống Phân Tán
Tác giả Vũ Tuấn Anh
Người hướng dẫn Lê Ngọc Bảo
Trường học Trường Đại Học Khoa Học Tự Nhiên - University of Science Ho Chi Minh City
Chuyên ngành Hệ Thống Phân Tán
Thể loại Báo cáo hệ thống phân tán
Năm xuất bản 2021
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 13
Dung lượng 3,21 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

====o0o==== BÁ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.

Trang 1

BÁ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.

TP Hồ Chí Minh, ngày 30 tháng 10 năm 2021

Trang 2

MỤC LỤC

Phần I: Câu hỏi cá nhân

Trang 3

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

Câ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

Trang 4

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

Phần II: Đồ án Nhóm

NHÓM 14

Tên thành viên:

Vũ Tuấn Anh-N18DCCN010

Mai Thiên An-N18DCCN001

Nguyễn Phạm Nhật Minh-N17DCCN095

Trang 5

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

Tên cột Kiểu dữ liệu

Table_2

Tên cột Kiểu dữ liệu

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 6

-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 7

-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

Trang 8

+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 9

-Tab Demo1

-Tab Demo2

-Tab Demo 3 sẽ tương tự Tab Demo2

Trang 10

3.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 11

-Thực hiện đẩy dữ liệu từ Demo -> Demo1

-Dữ liệu đã được đẩy xuống Demo1

Trang 12

-Thực hiện đẩy dữ liệu từ Demo1 -> Demo2,Demo3

Trang 13

-Dữ liệu đã được đẩy đến Demo2, Demo3

Ngày đăng: 18/12/2022, 22:35

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w