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.. Các giải thuật đảm bảo gắn bó dữ liệu Truy vÊn CSDL côc bé Begin-giao
Trang 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
Trang 2CÁ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
Trang 3I 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
Trang 4I 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
prepare VC/VA VC/VA VC/VA VC/VA
GC/GA GC/GA GC/GA GC/GA GC/GA
Pha 1
Trang 5I Các giải thuật đảm bảo gắn bó dữ liệu
Truy vÊn CSDL côc bé Begin-giao dÞch
Server Cuèi i
KÕt thóc giao dÞch
B¾t ®Çu NhËn danh sách
Di chuyển
Tr¶ ds kÕt qu¶ vÒ server liền
trước hoặc trình xl yêu cầu
Gởi danh sách di chuyển
- Khi TT2PC-Server nhận được DSDC, chúng tiến hành thực hiện các thao tác theo sơ đồ bên
Trang 6I Các giải thuật đảm bảo gắn bó dữ liệu
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ó.
Trang 7I Các giải thuật đảm bảo gắn bó dữ liệu
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ỏ
Trang 8II 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:
Trang 9lý yêu cầ u
TT 2C P_
Se ver1 TQLd ịch chu yển
QLKNối CSDL
CSDL3 CSDL2
QLKNối CSDL QLKNốiCSDL QLKNốiCSDL
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
Trang 10lý yêu cầ u
TT 2C P_
Se ver1 TQLd ịch chu yển
QLKNối CSDL
CSDL3 CSDL2
QLKNối CSDL QLKNốiCSDL QLKNốiCSDL
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ả
Trang 11lý yêu cầ u
TT 2C P_
Se ver1 TQLd ịch chu yển
QLKNối CSDL
CSDL3 CSDL2
QLKNối CSDL QLKNốiCSDL QLKNốiCSDL
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ý.
Trang 12lý yêu cầ u
TT 2C P_
Se ver1 TQLd ịch chu yển
QLKNối CSDL
CSDL3 CSDL2
QLKNối CSDL
QLKNối CSDL QLKNốiCSDL
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)
Trang 13lý yêu cầ u
TT 2C P_
Se ver1 TQLd ịch chuyể n
QLKNối CSDL
CSDL3 CSDL2
QLKNối CSDL QLKNốiCSDL QLKNốiCSDL
Trang 14II Phát biểu bài toán
lý yêu cầ u
TT 2C P_
Se ver1 TQLd ịch chuyể n
QLKNối CSDL
CSDL3 CSDL2
QLKNối CSDL QLKNốiCSDL QLKNốiCSDL
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
Trang 15II Phát biểu bài toán
Sơ đồ khối giải thuật
Truy vÊn CSDL côc bé
Më giao dÞch
Server Cuèi i
! = NULL
Đ
S
gọi pthức từ xa trên server kế tiếp
KÕt thóc giao
dÞch
! = NULL S
Tr¶ kÕt qu¶ vÒ cho Server liền trước
KÕt thóc
Truy vÊn CSDL côc bộ
Më giao dÞch
Server cuối
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
Chuyển sang trạng thái uỷ thác
Chuyển sang trạng thái khôi phục S
Tr¶ kÕt qu¶ vÒ cho Server liền trước
gọi pthức từ xa trên server kế tiếp
Chuyển sang trạng thái uỷ thác
Chuyển sang trạng thái khôi phục
TT2PC-Server2
TT2PC-ServerN
Đ
Trang 16II 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
Trang 17C2
C3
CSDL2 CSDL3CSDL1
Trang 18Mô 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
Trang 19Mô hình ứng dụng của hệ thống:
III Kết quả chương trình
Trang 20Mô hình ứng dụng của hệ thống:
III Kết quả chương trình
Trang 21Mô hình ứng dụng của hệ thống:
III Kết quả chương trình
Trang 22Mô hình ứng dụng của hệ thống:
III Kết quả chương trình
Trang 23Mô hình ứng dụng của hệ thống:
III Kết quả chương trình
Trang 24Xin chân thành cảm ơn sự hướng dẫn tận tình của Thầy
đỡ của các bạn.
BÁO CÁO TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG