Tải bản đầy đủ (.ppt) (15 trang)

báo cáo tiểu luận môn lập trình mạng lập trình cho phép hệ đa server gắn bó dữ liệu bằng phương pháp trật tự hóa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (158.08 KB, 15 trang )

1
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
==========
LẬP TRÌNH CHO PHÉP HỆ ĐA SERVER
GẮN BÓ DỮ LIỆU BẰNG PHƯƠNG PHÁP
TRẬT TỰ HÓA
BÁO CÁO TIỂU LUẬN
BÁO CÁO TIỂU LUẬN
LẬP TRÌNH MẠNG
LẬP TRÌNH MẠNG
ĐỀ TÀI :
Giáo viên hướng dẫn
: PGS.
TS. Lê Văn
Sơn
Học viên thực hiện : Phùng Thị Ngọc
Dung
2
YÊU CẦU CỦA TIỂU LUẬN

Lập trình cho phép hệ đa Server gắn bó
dữ liệu bằng phương pháp trật tự hóa.

Bài toán gồm có 3 phần :

Xây dựng hệ đa Server theo kiểu ngang hàng
có khả năng phát và nhận thông điệp.

Xây dựng cấu trúc các loại thông điệp trao đổi
giữa các Server.



Xây dựng đọan chương trình sắp xếp các thông
điệp đến căn cứ vào giá trị đồng hồ logic
Lamport.
3
TRẬT TỰ HÓA CÁC TÁC ĐỘNG

Với tập hợp giao dịch M = {T
1
, T
2
…, T
n
}

Mỗi giao dịch được cấu tạo từ một dãy các tác
động. Bằng các tác động không chia sẻ được này,
toàn bộ sự việc thực hiện của tập hợp các giao dịch
M bởi một tập hợp các tiến trình tương tranh là
tương đương với việc thực hiện một dãy S các tác
động thuộc các giao dịch này, như S = (a
1
, a
2
, ,
a
n
) chẳng hạn.

Trong trật tự tuân thủ trật tự nội tại của từng giao

dịch, dãy này bao gồm tất cả các tác động cấu tạo
nên các giao dịch M; mỗi tác động chỉ xuất hiện
một và chỉ một lần. Một dãy như vậy gọi là trật tự
hóa của tập các giao dịch M.
4
TRẬT TỰ HÓA CÁC TÁC ĐỘNG

Ví dụ: Cho T
1
= (a
11
, a
12
, a
13
, a
14
) và T
2
= (a
21
, a
22
, a
23
). Một
trật tự hóa (T
1
, T
2

) được thể hiện như sau:
S = a
21
, a
11
, a
12
, a
22
, a
13
, a
23
, a
14

Trong số các trật tự hóa của một tập hợp các giao dịch, điều
rất quan trọng là phải tách ra cho được những cái phục vụ
trạng thái gắn bó dữ liệu và chúng được gọi là trật tự hóa gắn
bó.

Như vậy, đặc tính quan trọng của trật tự hóa là: các trật tự
hóa tương ứng với việc thực hiện tuần tự của tập hợp các giao
dịch hay còn gọi ngắn gọn là trật tự hóa tuần tự.

Điều kiện đủ cho sự gắn bó của một trật tự hóa có thể được
phát biểu như sau: Một trật tự hóa là gắn bó, nếu nó có cùng
quan hệ phụ thuộc với một trật tự tuần hoàn.
5
TRẬT TỰ HÓA TRONG HỆ PHÂN TÁN


Trong các hệ thống phân tán, việc đồng bộ hóa chỉ đặt ra
duy nhất vấn đề thiết lập một trật tự giữa các sự kiện.
Giữa các trạm khác nhau, trật tự đó chỉ có thể thể hiện
được thông qua việc trao đổi các thông điệp với nhau.

Giả sử rằng ta có thể xác định một trật tự giữa các sự
kiện của hệ phân tán nhờ vào quan hệ có trước được ký
hiệu là

; quan hệ này tối thiểu phải thỏa mãn được các
ràng buộc sau:

Nếu A và B là hai sự kiện của cùng một trạm và nếu A
được thực hiện trước B thì theo trật tự cục bộ của
trạm ta có:
A  B.

Nếu A là sự kiện phát thông điệp bởi một trạm nào đó
và nếu B là sự kiện thu của thông điệp này, thì ta có A
 B.
6
ĐỒNG HỒ LOGIC LAMPORT:

Đồng hồ logic Lamport dựa trên hai vấn đề
sau:

Các sự kiện xảy ra trong cùng một bộ xử lý thì
chúng luôn ở trong trạng thái trật tự gắn bó
bằng cách sử dụng đồng hồ hệ thống (thời gian

thực) vì giá trị của đồng hồ hệ thống luôn được
tăng đều.

Các sự kiện xảy ra trong các bộ xử lý khác nhau
thì sẽ gây ra tình trạng không gắn bó trong thời
gian truyền thông điệp, nhưng không lâu sau
chúng cũng gắn bó vì nếu bộ xử lý P
j
gửi thông
điệp cho bộ xử lý P
k
vào thời gian T thì P
k
không
thể nhận thông điệp đó vào thời gian T hoặc
trước đó.
7
THUẬT TOÁN LAMPORT DỰA TRÊN ĐỒNG HỒ LOGIC

Đặt T là giá trị đồng hồ thực và C
j
(T) là giá trị của đồng
hồ logic trong bộ xử lý J tại thời gian T, đồng hồ logic
hoạt động theo nguyên tắc sau:

Đánh dấu mỗi sự kiện bằng giá trị đồng hồ logic của
bộ xử lý đó. (với C
j
: Đồng hồ logic của P
j

, được khởi
tạo từ 0).

Nếu có một sự kiện cục bộ xảy ra, thì ta tăng giá trị
đồng hồ logic lên 1.

Khi một thông điệp được gửi bởi bộ xử lý K, đánh
dấu nó bởi C
k
(T).

Khi bộ xử lý K nhận một thông điệp có dấu thời gian
là C’ thì ta đặt lại đồng hồ logic của bộ xử lý K là:
max(C’, C
k
(T)) + 1.
8
THUẬT TOÁN LAMPORT DỰA TRÊN ĐỒNG HỒ LOGIC (tt)

Đề tài chỉ quan tâm đến truyền và nhận các
thông điệp, nên nếu nhận các thông điệp cùng
một thời gian thì căn cứ vào giá trị đồng hồ logic
của các thông điệp để thực hiện việc sắp xếp:
a thực hiện trước b nếu
-
C
i
(a) < C
j
(b) hoặc

-
C
i
(a) = C
j
(b) và i < j
9
THUẬT TOÁN LAMPORT DỰA TRÊN ĐỒNG HỒ LOGIC (tt)

Như vậy trong thông điệp ta phải truyền thêm ID của
bộ xử lý (nếu là sắp xếp trong các tiến trình ta phải
dùng thêm ID của tiến trình).

Tổng quát cấu trúc thông điệp như sau:
(METHOD, PARAs, C
i
, i)

Với:

METHOD: là phương thức muốn gọi.

PARAs: là các tham số cần truyền cho phương thức.

C
i
: giá trị đồng hồ logic của bộ xử lý i.

i: là ID của bộ xử lý (như Server1, Server2…).
10

THUẬT TOÁN SẮP XẾP CÁC THÔNG ĐIỆP ĐẾN CĂN CỨ VÀO
GIÁ TRị CỦA ĐỒNG HỒ LOGIC LAMPORT
Thuật toán được mô tả theo sơ đồ sau :

Khởi tạo hàng đợi, mỗi máy tự phát thông điệp
M
i
= (REL, H
init
, i)

Khi trạm đang yêu cầu tài nguyên:

Để truy cập vào tài nguyên một trạm nào đó sẽ
phát một thông điệp yêu cầu M
i
(T,H
i
,i) đến tất cả
các trạm khác và đưa yêu cầu vào hàng đợi yêu
cầu của trạm này.

Khi trạm j nhận thông điệp yêu cầu từ i, nó sẽ gởi
ngược lại thông điệp (có chứa đồng hồ logic H
j
)
cho S
j
và đưa yêu cầu này vào trong hàng đợi yêu
cầu của nó.

11
THUẬT TOÁN SẮP XẾP CÁC THÔNG ĐIỆP ĐẾN CĂN CỨ VÀO
GIÁ TRị CỦA ĐỒNG HỒ LOGIC LAMPORT
If state =muon then
Begin
Send M(T,H
j
,j) đến trạm i
INSERT(M
i
,hàngđợi)
End
12
THUẬT TOÁN SẮP XẾP CÁC THÔNG ĐIỆP ĐẾN CĂN CỨ VÀO
GIÁ TRị CỦA ĐỒNG HỒ LOGIC LAMPORT

Khi trạm đang vào đoạn găng: Trạm i nhận một
thông điệp với đồng hồ logic lớn hơn đồng hồ ở
thời điểm hiện tại của trạm i và yêu cầu của
trạm i đang ở vị trí của hàng đợi yêu cầu của
nó.
If (H>H
i
) and (Vị trí M ở đầu của hàng đợi) then
state=namgiu

Khi trạm không thực hiện gì cả

Xoá yêu cầu và gởi thông điệp giải phóng những trạm
khác sẽ loại bỏ yêu cầu tương ứng


If state=ranh then xử lý(các thông điệp hàng đợi) ‘sau
đó xoá

Send thông điệp giải phóng đến các trạm

Những trạm khác cũng sẽ xoá yêu cầu của nó trong
hàng đợi của mình.
13
XÂY DỰNG CHƯƠNG TRÌNH:

Giả lập hai Server trên một máy đơn giống như
hai Server đang chạy trên Internet thực sự. Hai
Server này có chức năng:

Chứa cơ sở dữ liệu là một tài khoản ngân hàng.

Khi nhận thông điệp:

Server sẽ cập nhật giá trị đồng hồ logic của chính.

Lưu thông điệp vào hàng đợi.

Sắp xếp lại hàng đợi.

Lấy thông điệp ở đầu hàng đợi ra khỏi hàng đợi và thực
hiện nó.

Sau khi thực hiện 1 thông điệp, Server sẽ tự động
trả về kết quả.


Giả lập Client trên một cửa sổ khác:

Kết nối với 2 Server

Gửi thông điệp để thay đổi số tiền có trong tài khoản
(thêm tiền và tính lãi suất).

Nhận thông điệp trả về từ các Server cho biết số tiền
hiện có trong tài khoản.
14
Demo Chương trình
15
Trân trọng cảm ơn
Thầy và các bạn

×