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

báo cáo tiểu luận môn lập trình mạng xây dựng chương trình cho hệ đa server với cơ sở dữ liệu gắn bó cho phép đăng ký tua du lịch từ xa trong điều kiện có sự cố

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 (334.78 KB, 24 trang )

1
1
ĐỀ TÀI:
XÂY DỰNG CHƯƠNG TRÌNH
CHO HỆ ĐA SERVER VỚI CSDL GẮN BÓ
CHO PHÉP ĐĂNG KÝ TUA DU LỊCH TỪ XA
TRONG ĐIỀU KIỆN CÓ SỰ CỐ
Học viên: Nguyễn Quang Thạch
Lớp KHMTK24 (2011 – 2013)
GVHD: PGS.TS. Lê Văn Sơn
BÁO CÁO TIỂU LUẬN
MÔN HỌC LẬP TRÌNH MẠNG
2
CÁC VẤN ĐỀ BÁO CÁO
I. Các giải thuật đảm bảo gắn bó dữ liệu
1. Giải thuật 2 pha tuyến tính
2. Giải thuật giao dịch lồng mở MAONT
II. Phát biểu bài toán
- Giải thuật giải quyết bài toán
III. Kết quả chương trình
3
I. Các giải thuật đảm bảo gắn bó dữ liệu
1. Giải thuật 2 pha tuyến tính (2PC)
- Ta giả thiết rằng thứ tự giữa các vị trí có tham gia thực
hiện một giao dịch là 1,2,…N. với điều phối viên là vị trí 1,
còn lại là các thành viên. Thuật toán được trình bày như sau:
- Điều phối viên gửi thông báo prepare đến thành viên 2.
Nếu thành viên 2 chưa sẵn sàng ủy thác giao dịch, nó gửi
thông báo biểu quyết hủy bỏ Vote-abort (VA) đến thành viên
3 và giao dịch bị hủy tại thời điểm này (hủy bỏ đơn phương
của 2). Ngược lại nếu thành viên 2 đồng ý ủy thác, nó gửi


thông báo vote-commit (VC) cho thành viên 3 rồi chuyển
sang trạng thái READY.
4
I. Các giải thuật đảm bảo gắn bó dữ liệu
1. Giải thuật 2 pha tuyến tính (2PC)
- Quá trình này tiếp tục cho đến khi một biểu quyết uỷ
thác đến được thành viên N. Đến đây kết thúc pha1. Nếu N
quyết định ủy thác nó gửi trở lại cho thành viên N-1 thông
báo global-commit (GC); bằng không, nó gửi một thông báo
hủy bỏ toàn cục global-abort (GA). Theo đó các thành viên
chuyển sang trạng thái thích hợp (COMMIT hoặc ABORT) và
làm lan truyền thông báo trở về điều phối viên
1 2
3
4
5 N
prepare VC/VA
VC/VA VC/VA
VC/VA
GC/GA GC/GA
GC/GA
GC/GA
GC/GA
Pha 1
Pha 2
5
I. Cỏc gii thut m bo gn bú d liu
Truy vấn
CSDL cục bộ
Begin-giao dịch

Server
Cuốii
Kết thúc giao
dịch
Bắt đầu
Nhận danh sỏch
Di chuyn
Trả ds kết quả về server lin
trc hoc trỡnh xl yờu cu
Gi danh sỏch di chuyn
n server k tip
To ds kt qu gm kt qu
truy vn cc b v kt qu
tr v t server lin k
Kết thúc
S

- Nhim v ca TT2PC-Server chy
ti cỏc server l truy vn CSDL cc
b, gi DSDC n server k tip
trong danh sỏch (nu nú cha l
server cui cựng trong danh sỏch di
chuyn) v tr kt qu truy vn v
server lin trc hoc trỡnh x lý yờu
cu (nu nú l server u tiờn trong
danh sỏch di chuyn).
- Khi TT2PC-Server nhn c
DSDC, chỳng tin hnh thc hin
cỏc thao tỏc theo s bờn
S thut toỏn TT2PC-Server

6
I. Các giải thuật đảm bảo gắn bó dữ liệu
2. Giải thuật giao dịch lồng mở MAONT (Model
Advanced of Open Nested Transaction)
MAONT được cải tiến cho phép các giao dịch tiến
hành đồng thời do một giao dịch có thể chứa một
giao dịch con khác theo phương pháp tiếp cận khóa
chốt, nhằm vào việc cập nhật, đăng ký từ xa trong
hệ thống.
- Mỗi giao dịch con thực thi như một giao dịch và khi
hoàn tất sẽ chuyển khóa của nó cho giao dịch cha.
- Một giao dịch cha kế thừa các khóa và các cập nhật
của những giao dịch con đã ủy thác của nó.
7
I. Các giải thuật đảm bảo gắn bó dữ liệu
2. Giải thuật giao dịch lồng mở MAONT (Model
Advanced of Open Nested Transaction)
- Trạng thái kế thừa chỉ có các hậu duệ của giao dịch cha kế
thừa là thấy được giao dịch con đã uỷ thác.
- Nếu một giao dịch con bị hủy bỏ thì tất cả các khóa và cập
nhật mà giao dịch con đó và các giao dịch cha kế thừa của
nó có đều bỏ đi. Cha của giao dịch con bị hủy bỏ không nhất
thiết phải hủy bỏ.
8
II . Phát biểu bài toán
Ta xây dựng một hệ thống cho phép khách hàng đăng ký
Tua du lịch trên mạng internet với điều kiện sau:
- Hệ thống bao gồm ba Server và CSDL đặt tại ba Server
khác nhau.
- Hệ thống đăng ký phải đảm bảo tính gắn bó dữ liệu.

- Trong quá trình đăng ký, sự cố có thể xẩy ra.

Để giải quyết bài toán ta đưa ra danh sách di chuyển dùng
để lưu địa chỉ các server và các câu lệnh truy vấn SQL của
các server dựa trên nguyên lý của 2 giải thuật nêu trên.

Bài toán được mô tả bởi giải thuật như sau:
9
II . Phát biểu bài toán
C1
C2
Cn
.
.
.
Trình xử
lý yêu cầu
TT2CP_Sever1
TQLdịchchuyển
QLKNối
CSDL
CSDL3CSDL2
CSDL1
CSDLN
QLKNối
CSDL
QLKNối
CSDL
QLKNối
CSDL



1
2
3
1
TT2CP_Sever2
TT2CP_Sever3
TT2CP_Sever
N
N
Ta giả thiết rằng thứ tự giữa các vị trí có tham gia vào việc
thực hiện một giao dịch là 1,2,…N. với điều phối viên là vị trí 1,
còn lại là các thành viên. Kỹ thuật được trình bày như sau:
- Khi nhận một yêu cầu từ các Client thì trình xử lý yêu cầu
thành lập một Danh sách các database server sẽ truy vấn đến
các câu lệnh SQL tương ứng được thực hiện tại mỗi Server.
Kỹ thuật giải quyết bài toán
10
II . Phát biểu bài toán
C1
C2
Cn
.
.
.
Trình xử
lý yêu cầu
TT2CP_Sever1
TQLdịchchuyển

QLKNối
CSDL
CSDL3CSDL2
CSDL1
CSDLN
QLKNối
CSDL
QLKNối
CSDL
QLKNối
CSDL


1
2
3
1
TT2CP_Sever2
TT2CP_Sever3
TT2CP_Sever
N
N
Sau khi thành Lập danh sách di chuyển (danh sách di chuyển
chứa địa chỉ Server tham gia truy vấn và danh sách các câu
lệnh truy vấn tại các server) nó sẽ chuyển cho TT2PC-Server1
thông qua RMI. Mỗi TT2PC-Server cài đặt một giao diện cung
cấp thuật toán 2PC với tham số là danh sách di chuyển, chỉ
mục và trả về kết quả là danh sách kết quả.
Kỹ thuật giải quyết bài toán
11

II . Phát biểu bài toán
C1
C2
Cn
.
.
.
Trình xử
lý yêu cầu
TT2CP_Sever1
TQLdịchchuyển
QLKNối
CSDL
CSDL3CSDL2
CSDL1
CSDLN
QLKNối
CSDL
QLKNối
CSDL
QLKNối
CSDL


1
2
3
1
TT2CP_Sever2
TT2CP_Sever3

TT2CP_Sever
N
N
- Nếu quá trình xử lý tại bất kỳ một TT2PC-Server nào bị
lỗi thì kết quả trả về là null, dựa vào kết quả này các
TT2PC-Server commit hoặc Rollback giao dịch đang quản
lý.
Kỹ thuật giải quyết bài toán
12
II . Phát biểu bài toán
C1
C2
Cn
.
.
.
Trình xử
lý yêu cầu
TT2CP_Sever1
TQLdịchchuyển
QLKNối
CSDL
CSDL3CSDL2
CSDL1
CSDLN
QLKNối
CSDL
QLKNối
CSDL
QLKNối

CSDL


1
2
3
1
TT2CP_Sever2
TT2CP_Sever3
TT2CP_Sever
N
N
- Như vậy, khi TT2PC-Server1 nhận được danh sách di chuyển,
nó bắt đầu một giao dịch để thực hiện các câu lệnh SQL truy
vấn cơ sở dữ liệu cục bộ thông qua kết nối CSDL1, tiếp theo
danh sách di chuyển ở nó tăng chỉ mục lên 1 và chuyển danh
sách di chuyển này đến TT2PC-Server2. Quá trình này tiếp tục
cho đến khi kết thúc danh sách di chuyển (đến TT2PC-Server
cuối).
Kỹ thuật giải quyết bài toán
13
II . Phát biểu bài toán
C1
C2
Cn
.
.
.
Trình xử
lý yêu cầu

TT2CP_Sever1
TQLdịchchuyển
QLKNối
CSDL
CSDL3CSDL2
CSDL1
CSDLN
QLKNối
CSDL
QLKNối
CSDL
QLKNối
CSDL


1
2
3
1
TT2CP_Sever2
TT2CP_Sever3
TT2CP_SeverN
N
Tại server cuối cùng trong danh sách di chuyển, nếu việc truy
vấn cơ sở dữ liệu cục bộ thành công thì TT2pC-Server cuối này
sẽ commit transaction và trả về danh sách kết qủa khác null.
Dựa vào kết quả trả về này server đứng trước trong danh sách
di chuyển sẽ commit hoặc rollback giao dịch cục bộ và trả về
kết quả cho server liền trước.
Kỹ thuật giải quyết bài toán

14
II . Phát biểu bài toán
C1
C2
Cn
.
.
.
Trình xử
lý yêu cầu
TT2CP_Sever1
TQLdịchchuyển
QLKNối
CSDL
CSDL3CSDL2
CSDL1
CSDLN
QLKNối
CSDL
QLKNối
CSDL
QLKNối
CSDL


1
2
3
1
TT2CP_Sever2

TT2CP_Sever3
TT2CP_SeverN
N
Nếu kết quả trả về cho server1 là null thì xử lý không
thành công, ngược lại server1 xử lý kết quả nhận được
trả về cho Client
Kỹ thuật giải quyết bài toán
15
II . Phỏt biu bi toỏn
S khi gii thut
Truy vấn
CSDL cục
bộ
Mở giao dịch
Server
Cuốii
! =
NUL
L

S
gi pthc t xa
trờn server k tip
Kết thúc giao
dịch
! = NUL
L
S
Trả kết quả về cho
Server lin trc

Bắt đầu
Nhận yêu cầu
từ Client
Thành lập danh
sách di chuyển
TT2PC-Server1
Trả kết quả về
cho Client
Chuyn sang
trng thỏi u
thỏc
Chuyn sang
trng thỏi khụi
phc
Kết thúc
Truy vấn
CSDL cục b
Mở giao
dịch
Server
cui
Kết thúc giao
dịch
! =
NULL
S
Truy vấn
CSDL cục
bộ
Mở giao

dịch
Kết thúc giao
dịch
S
Chuyn sang
trng thỏi u
thỏc
Chuyn sang
trng thỏi khụi
phc
S
Trả kết quả về cho
Server lin trc
gi pthc t xa
trờn server k tip
Chuyn sang
trng thỏi u
thỏc
Chuyn sang
trng thỏi khụi
phc
TT2PC-Server2
TT2PC-ServerN



16
II . Phát biểu bài toán
Mô hình CSDL
Hệ thống gồm nhiều

Server chứa các
chương trình và cơ sở
dữ liệu tại các Server
như sau:
Server1: Lưu trữ
database về Tour, file
database là Tour gồm
hai bảng Tour,
DangKy,
DangKy_DichVu.
Server2: Lưu trữ database về Hotel, file database là KhachSan gồm
hai bảng Khach_San, Tour_KhachSan, Dich_Vu, DichVu_KhachSan.
Server3: Lưu trữ database về Transport, file database là
PhuongTien gồm hai bảng Phuong_Tien, Tour_PhuongTien.
17
III. Kết quả chương trình
Mô hình ứng dụng của hệ thống:
Trong mô hình trên C1, C2, C3 là các Client truy cập đến
Server1, Server1 tiếp nhận yêu cầu từ các Client, truy vấn
CSDL 1 trên server cục bộ, gửi yêu cầu đến các server có
tham gia vào truy vấn để truy vấn các CSDL tại các server
này, nhận kết quả trả về từ các server và trả kết quả về cho
Client.
C1
C2
C3
CSDL2
CSDL3
CSDL1
Server1 Server2 Server3

18
Mô hình ứng dụng của hệ thống:
Chương trình được triển khai trên 1 máy với ba server
giả lập.
- Đầu tiên ta khởi động ba server và client để bảo đảm
sự kết nối đến các server và Client
- Khởi động client để đăng ký tour và cho kết quả thành
công hay không và danh sách kết quả trong các sever
III. Kết quả chương trình
19
Mô hình ứng dụng của hệ thống:
III. Kết quả chương trình
20
Mô hình ứng dụng của hệ thống:
III. Kết quả chương trình
21
Mô hình ứng dụng của hệ thống:
III. Kết quả chương trình
22
Mô hình ứng dụng của hệ thống:
III. Kết quả chương trình
23
Mô hình ứng dụng của hệ thống:
III. Kết quả chương trình
24
Xin chân thành cảm ơn sự
hướng dẫn tận tình của Thầy
PGS.TS Lê Văn Sơn và sự giúp
đỡ của các bạn.
BÁO CÁO TIỂU LUẬN

MÔN HỌC LẬP TRÌNH MẠNG

×