1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

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

Định dạng
Số trang 15
Dung lượng 135,5 KB

Nội dung

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

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

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

Trang 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

Trang 3

TRẬT TỰ HÓA CÁC TÁC ĐỘNG

Với tập hợp giao dịch M = {T1, T2…, Tn}

 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 = (a1, a2, ,

an) 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.

Trang 4

TRẬT TỰ HÓA CÁC TÁC ĐỘNG

 Ví dụ: Cho T1 = (a11, a12, a13, a14) và T2 = (a21, a22, a23) 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.

Trang 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

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

Trang 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ý Pj gửi thông điệp cho bộ xử lý Pk vào thời gian T thì Pk không thể nhận thông điệp đó vào thời gian T hoặc trước đó.

Trang 7

THUẬT TOÁN LAMPORT DỰA TRÊN ĐỒNG HỒ LOGIC

 Đặt T là giá trị đồng hồ thực và Cj(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 Ck(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à:

Trang 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

- Ci(a) < Cj(b) hoặc

- Ci(a) = Cj(b) và i < j

Trang 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…)

Trang 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

Mi = (REL, Hinit , 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 Mi (T,Hi,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 Hj) cho Sj và đưa yêu cầu này vào trong hàng đợi yêu cầu của nó.

Trang 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

Trang 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

Trang 13

XÂY DỰNG CHƯƠNG TRÌ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:

hiện nó.

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

Trang 14

Demo Chương trình

Trang 15

Trân trọng cảm ơn

Thầy và các bạn

Ngày đăng: 31/01/2015, 23:02

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w