Mô tả bài toán

Một phần của tài liệu tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán (Trang 64 - 67)

6. Cấu trúc luận văn

3.3.2.Mô tả bài toán

Khi ngƣời sử dụng đƣa thẻ ATM vào máy, thực hiện check-in vào hệ thống ATM, hệ thống sẽ xác thực thẻ thông qua số PIN do ngƣời sử dụng nhập vào. Nếu hệ thống xác nhận thẻ hợp lệ, thì cũng sẽ xác định đƣợc thẻ thuộc ngân hàng nào phát hành. Nếu là thẻ đang nằm trên máy ATM do chính ngân hàng phát hành thẻ quản lý, thẻ sẽ đƣợc thao tác trực tiếp với hệ thống của ngân hàng đó. Nếu thẻ nằm trên máy ATM đƣợc quản lý bởi ngân hàng khác với ngân hàng phát hành thẻ, thì

toàn bộ lệnh thao tác trên thẻ sẽ đƣợc hệ thống tự động định tuyến về “Bộ lập lịch”

tƣơng ứng của ngân hàng phát hành thẻ.

Vì thế sẽ không mất tính tổng quát, nếu ở đây ta xét hoạt động rút tiền – chuyển khoản của các thẻ thao tác trên các máy ATM của một hệ thống ngân hàng phát hành thẻ.

“Bộ quản trị giao dịch” sẽ tiếp nhận các giao dịch do các máy ATM gửi về. Sau đó, các giao dịch sẽ đƣợc phân tích thành các lệnh tƣơng ứng và chuyển sang cho “Bộ lập lịch”.

Tại “Bộ lập lịch”, sẽ lập lịch và xử lý đồng hành cho tối đa là 3 giao dịch. Nếu trong lúc xử lý, các giao dịch vẫn tiếp tục đƣợc gửi về, thì sẽ đƣợc xếp vào hàng đợi. Khi một giao dịch đƣợc xử lý xong, giao dịch trong hàng đợi sẽ đƣợc chèn ngay vào. “Bộ lập lịch” sẽ các lệnh đến “Bộ quản trị dữ liệu” để thao tác trực tiếp đến “Cơ sở dữ liệu” .

Trong thực tế các máy ATM hoạt động đa ngân hàng đƣợc làm việc theo mô hình sau:

Hình 3.11: Mô hình hoạt động của máy ATM

Hình trên, đƣờng kết nối giữa các máy ATM với “Bộ quản trị giao dịch”

các kết nối vật lý. Những kết nối giữa các “Bộ quản trị giao dịch” “Bộ lập lịch”

của các ngân hàng khác nhau có thể là các kết nối vật lý. Trên thực tế, “Bộ quản trị giao dịch”, “Bộ lập lịch”, “Bộ quản trị dữ liệu” “Dữ liệu ngân hàng” đều nằm tại server của một ngân hàng.

3.3.3. Phân tích hệ thống

Trên một máy ATM, các thao tác cơ bản đƣợc thực hiện: đăng nhập, xem tài

khoản, rút tiền, chuyển tiền, thoát khỏi hệ thống.

Khi ngƣời sử dụng thực hiện một thao tác, máy ATM sẽ gửi về hệ thống các

lệnh theo một định dạng đƣợc quy ƣớc trƣớc.

* Các định dạng của một giao dịch:

- Đăng nhập : ATM#: CheckIn(Card#,PIN)

- Thoát : ATM#: Logout(Acc#)

- Xem tài khoản : ATM#: Show(Acc#)

Các giao dịch

- Rút tiền : ATM#: Withdraw(Acc1#, Amount#)

- Chuyển tiền : ATM#: Transfer(Acc1#, Amount#, Acc2#)

Khi các giao dịch này đƣợc chuyển về “Bộ quản trị giao dịch” nó sẽ đƣợc phân tích thành một chuỗi các lệnh để gửi về “Bộ lập lịch”.

* Các lệnh trong giao dịch cần lưu ý:

Giao dịch “Xem tài khoản”: ATM#: Show(Acc#)

lockR(x) read(x) unlockR(x)

commit

Giao dịch “Rút tiền”: ATM#: Withdraw(Acc1#, Amount#)

lockW(x) read(x) write(x) unlockW(x)

commit

Giao dịch “Chuyển tiền”: ATM#: Transfer(Acc1#, Amount#, Acc2#)

lockW(x) read(x) write(x) lockW(y) read(y) write(y) unlockW(y) unlockW(x) commit * Lưu ý:

Trong chuỗi lệnh trên có hai kiểu khóa: lockR(x) và lockW(x), hai kiểu giải

phóng khóa tƣơng ứng: unlockR(x) và unlockW(x). Khóa lockR(x) là khóa đọc khi thao tác trên khoản mục x. Khóa lockW(x) là khóa ghi khi thao tác trên khoản mục

x. Các lệnh unlockR(x) và unlockW(x) tƣơng ứng với lệnh giải phóng khóa đọc và giải phóng khóa ghi.

Các giao dịch ở đây là các giao dịch thực hiện theo khóa 2 pha (2PL), vì thế

cách tổ chức các chuỗi lệnh trong một giao dịch cũng tuân thủ theo nguyên tắc của khóa 2 pha: trong pha tăng trƣởng: giao dịch yêu cầu khóa; trong pha thu hồi: chỉ có

thể giải phóng khóa mà không đƣợc yêu cầu khóa. Bằng cách này, “Bộ lập lịch”

thể lập lịch biểu khả tuần tự cho các giao dịch 2 pha.

Một phần của tài liệu tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán (Trang 64 - 67)