Kịch bản dựng sẵn

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng máy trạng thái trong quản lý giao tác (Trang 53)

3. Bố cục của luận văn

3.2.1. Kịch bản dựng sẵn

Cấu trúc của một kịch bản dựng sẵn, gồm có các thành phần theo thứ tự như sau:

 N: là số lượng thành viên tham gia nghi thức thỏa thuận (giả sử số hiệu các thành viên được đánh số liên tiếp từ 1 đến N)

 C: số hiệu của điều phối viên

 Abort: số hiệu của thành viên có phiếu hủy bỏ

Từ những chú thích kể trên, trong chương trình đã xây dựng ba kịch bản cụ thể như sau: KỊCH BẢN 1 Input: N = 15 C = 1 Abort: 0

Output: Commited KỊCH BẢN 2 Input: N = 10 C = 2 Abort: 7 9 0 Output: Aborted --- KỊCH BẢN 3 Input: N = 12 C = 7 Abort: 1 6 9 11 0 Output: Aborted 3.2.2. Kịch bản ngẫu nhiên

Trong chương trình thử nghiệm học viên xây dựng 2 kịch bản ngẫu nhiên với nội dung và thứ tự thực hiện như sau:

KỊCH BẢN NGẪU NHIÊN 1:

Kịch bản ngẫu nhiên 1 được xây dựng gồm các thao tác sau:

1.Sinh ngẫu nhiên n thành viên

2.Chọn ngẫu nhiên một điều phối viên C trong số n thành viên

3.Điều phối viên C gửi yêu cầu cập nhật tới từng thành viên

4.Điều phối viên C nhận trả lời ĐỒNG Ý/ KHÔNG ĐỒNG Ý cập nhật từ các thành viên.

5.Xét các tình huống:

5.1.C nhận đủ n phiếu thuận (kể cả bản thân C):

C quyết định: THỎA THUẬN CẬP NHẬT và gửi quyết định này tới mọi thành viên.

5.2.C nhận được dù chỉ 1 phiếu chống:

C quyết định: HỦY CẬP NHẬT và gửi quyết định này tới mọi thành viên

deg=true: n thành viên đều bỏ phiếu thuận. deg = false: n thành viên bỏ phiếu THUẬN/CHỐNG theo xác suất 2/n

Kịch bản ngẫu nhiên 1 được thể hiện dưới dạng sơ đồ trạng thái như dưới đây:

--- ---

KỊCH BẢN NGẪU NHIÊN 2:

Kịch bản ngẫu nhiên 2 được xây dựng gồm các thao tác sau:

1.Sinh ngẫu nhiên n thành viên

2.Chọn ngẫu nhiên một điều phối viên C trong số n thành viên

3.Điều phối viên C gửi yêu cầu cập nhật tới từng thành viên

4.Điều phối viên C nhận trả lời ĐỒNG Ý/ KHÔNG ĐỒNG Ý cập nhật từ các thành viên .

5.Xét các tình huống:

5.1.C nhận đủ n phiếu thuận (kể cả bản thân C):

C quyết định: THỎA THUẬN CẬP NHẬT và gửi quyết định này tới mọi thành viên.

5.2.C nhận được dù chỉ 1 phiếu chống:

C quyết định: HỦY CẬP NHẬT và gửi quyết định này tới mọi thành viên

5.3.Time out

C quyết định: HỦY CẬP NHẬT và gửi quyết định này tới mọi thành viên.

Time out: Là tình trạng hết thời gian chờ

mà điều phối viên không nhận được đủ số phiếu. Điều này xảy ra là do có thành viên không gửi được phiếu hoặc gửi phiếu nhưng điều phối viên không nhận được.

deg=true: n thành viên đều bỏ phiếu thuận. deg = false: n thành viên bỏ phiếu THUẬN/CHỐNG theo xác suất 2/n

Với những kịch bản dựng sẵn hoặc sinh ngẫu nhiên như đã trình bày ở trên sẽ được minh họa ở phần thử nghiệm bên dưới. Từ đó có thể đưa ra các đánh giá về chương trình đã xây dựng.

3.2. Thử nghiệm và đánh giá

Chương trình thử nghiệm được viết trên ngôn ngữ lập trình C++, môi trường hoạt động là DevCPP, được cài đặt trên hệ điều hành Windows 7, 64 bit.

Chương trình mô phỏng được viết chia thành những nội dung chính như sau:

+ Đọc tổng số thành viên tham gia thỏa thuận và số hiệu của điều phối viên. + Điều phối viên gửi thông báo đề nghị cập nhật tới các thành viên

+ Các thành viên gửi ý kiến bỏ phiếu cập nhật hay không cập nhật + Đếm số phiếu thuận, phiếu chống

+ Điều phối viên gửi thông báo cập nhật nếu tất cả các thành viên bỏ phiếu thuận hoặc gửi thông báo không cập nhật khi có thành viên bỏ phiếu chống.

Với các kịch bản dựng sẵn:

Trong chương trình, để tiện cho việc chạy các kịch bản dựng sẵn như đã mô tả ở phần trên, học viên đã viết lại 3 kịch bản này thành một kịch bản dài nối tiếp nhau được lưu trong file Scienario1.inp, có dạng như sau:

Một số giao diện khi chạy chương trình:

Hình 3.1. Giao diện chính của chương trình

Số lượng kịch bản là 3

Kịch bản 1: gồm 15 thành viên tham gia thỏa thuận, số hiệu điều phối viên là 1, không có thành viên bỏ phiếu chống

Kịch bản 2: gồm 10 thành viên tham gia thỏa thuận, số hiệu điều phối viên là 2, số hiệu của các thành viên bỏ phiếu chống là 7,9

Kịch bản 3: gồm 12 thành viên tham gia thỏa thuận, số hiệu điều phối viên là 7, số hiệu của các thành viên bỏ phiếu chống là 1,6,9,11

Để có thể chạy chương trình với các kịch bản dựng sẵn từ giao diện chính trên màn hình ta nhấn phím số 3. Chương trình sẽ đọc ra có 3 kịch bản dựng sẵn và sẽ chạy từng kịch bản một như sau:

Hình 3.2. Đọc kịch bản 1

Đọc tổng số thành viên tham gia thỏa thuận và số hiệu của điều phối viên.

Hình 3.3. Đọc kịch bản 1

Hình 3.4. Đọc kịch bản 1

Các thành viên gửi phiếu cập nhật hay không cập nhật tới điều phối viên

Hình 3.5. Đọc kịch bản 1

Tổng hợp kết quả, điều phối viên gửi thông báo cập nhật tới các thành viên và kết thúc thỏa thuận.

Khi đọc xong kịch bản 1, để đọc tiếp kịch bản 2, từ giao diện ta nhấn phím bất kì. Kịch bản 2 sẽ diễn ra như sau:

Hình 3.6. Đọc kịch bản 2

Đọc tổng số thành viên tham gia thỏa thuận và số hiệu của điều phối viên

Hình 3.7. Đọc kịch bản 2

Điều phối viên gửi thông báo đề nghị cập nhật tới các thành viên

Hình 3.9. Đọc kịch bản 2

Tổng hợp kết quả, điều phối viên gửi thông báo hủy cập nhật tới các thành viên và kết thúc thỏa thuận.

Khi đọc xong kịch bản 2, để đọc tiếp kịch bản 3, từ giao diện ta nhấn phím bất kì. Kịch bản 3 sẽ diễn ra như sau:

Hình 3.10. Đọc kịch bản 3

Hình 3.11. Đọc kịch bản 3

Điều phối viên gửi thông báo đề nghị cập nhật tới các thành viên

Hình 3.12. Đọc kịch bản 3

Hình 3.13. Đọc kịch bản 3

Tổng hợp kết quả, điều phối viên gửi thông báo hủy cập nhật tới các thành viên và kết thúc thỏa thuận.

Với các kịch bản ngẫu nhiên

Để chạy chương trình với kịch bản ngẫu nhiên 1, từ giao diện chính nhấn phím số 1. Các kịch bản này sẽ được sinh ngẫu nhiên theo xác suất 2/n như đã xây dựng trong phần trên.

Hình 3.14. Kịch bản ngẫu nhiên 1 với tổng số thành viên tham gia thỏa thuận và số hiệu của điều phối viên được sinh ngẫu nhiên

Hình 3.15. Điều phối viên gửi thông báo đề nghị cập nhật tới các thành viên

Hình 3.16. Các thành viên gửi phiếu cập nhật hay không cập nhật tới điều phối viên

Hình 3.17. Tổng hợp kết quả, điều phối viên gửi thông báo cập nhật tới các thành viên và kết thúc thỏa thuận.

Để chạy chương trình với kịch bản ngẫu nhiên 1, từ giao diện chính nhấn phím số 1. Các kịch bản này sẽ được sinh ngẫu nhiên theo xác suất 2/n như đã xây dựng trong phần trên.

Hình 3.18. Kịch bản ngẫu nhiên 2 với tổng số thành viên tham gia thỏa thuận và số hiệu của điều phối viên được sinh ngẫu nhiên

Hình 3.19. Điều phối viên gửi thông báo đề nghị cập nhật tới các thành viên

Hình 3.20. Các thành viên gửi phiếu cập nhật hay không cập nhật tới điều phối viên

Hình 3.21. Tổng hợp kết quả, điều phối viên gửi thông báo cập nhật tới các thành viên và kết thúc thỏa thuận.

KẾT LUẬN

Hiện nay, với xu thế toàn cầu hóa việc sử dụng mạng máy tính để làm việc và giao dịch thì việc quản lý các giao tác rất quan trọng. Luận văn tập trung chủ yếu giải quyết một số bài toán cập nhật bản sao trong môi trường phân tán. Qua những tìm hiểu và phân tích, trong luận văn đã đưa ra được các giải pháp để có thể quản lý giao tác một cách hiệu quả. Đó là nghi thức thỏa thuận hai pha và nghi thức thỏa thuận ba pha. Trong luận văn cũng đưa ra được điểm mạnh và điểm yếu khi áp dụng hai nghi thức này trong việc quản lý giao tác nhằm hướng các nhà nghiên cứu có thể đưa ra các giải pháp tối ưu hơn.

Những kết quả mà luận văn đã đạt được, gồm có:

1. Nghiên cứu tài liệu, đưa ra một số nghi thức thỏa thuận phân tán phù hợp để giải quyết vấn đề của bài toán cập nhật.

2. Phân tích các nghi thức thỏa thuận, đưa ra điểm mạnh, điểm yếu của từng nghi thức.

HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN

Qua tìm hiểu học viên thấy rằng, mô hình thỏa thuận phân tán được sử dụng trong công nghệ blockchain. Blockchain là công nghệ lưu trữ và truyền tải thông tin bằng các khối được liên kết với nhau và mở rộng theo thời gian. Mỗi khối chứa đựng các thông tin về thời gian khởi tạo và được liên kết với các khối trước đó.

Blockchain được thiết kế để chống lại sự thay đổi dữ liệu. Thông tin trong blockchain không thể bị thay đổi và chỉ được bổ sung thêm khi có sự đồng thuận của tất cả các nút trong hệ thống. Ngay cả khi nếu một phần của hệ thống blockchain đổ, những máy tính và nút khác sẽ tiếp tục hoạt động để bảo vệ thông tin.

Đặc biệt blockchain có khả năng truyền tải dữ liệu mà không đòi hỏi trung gian để xác nhận thông tin. Hệ thống blockchain bao gồm nhiều nút độc lập có khả năng xác thực thông tin.

Với những đặc thù này, công nghệ này mở ra một xu hướng ứng dụng tiềm năng cho nhiều lĩnh vực như tài chính ngân hàng, bán lẻ, vận chuyển hàng hóa, sản xuất, viễn thông.

Do kiến thức và thời gian có hạn nên học viên không thể tìm hiểu sâu về blockchain. Qua đây học viên mong muốn rằng luận văn của mình sẽ giúp cho những bạn yêu thích và có đam mê với blockchain hiểu được bản chất bên trong của blockchain đó là sự thỏa thuận giữa các bên tham gia một cách rất chặt chẽ và thống nhất. Từ đó xây dựng cho mình một “lộ trình” đến với blockchain một cách thật nghiêm túc và đạt nhiều kết quả.

TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt:

[1]Vũ Đức Thái (2016), Thiết kế cơ sở dữ liệu, NXB Đại học Thái Nguyên. [2] Lê Tiến Vương (2000), Nhập môn cơ sở dữ liệu quan hệ, Tái bản lần thứ

5, NXB Thống Kê, Hà Nội.

[3]Nguyễn Bá Tường (2005), Nhập môn cơ sở dữ liệu phân tán, NXB Khoa học kỹ thuật.

[4] Phạm Thế Quế (2010), Giáo trình cơ sở dữ liệu phân tán, NXB Thông

Tin và Truyền Thông.

[5] Lê Văn Sơn (2002), Hệ tin học phân tán, NXB Đại học Quốc gia Thành phố Hồ Chí Minh.

Tài liệu tiếng Anh:

[6]Garcia-Molina H., Ullman J., Widom J. (2002), Database System: The Complete Book, Prentice Hall.

[7] Maier D. (1983), The Theory of Relational Database, Computer

Science Press, Rockville, Md.

[8] Ullman, J. (1982), Principles of Data-base and Knowledge-base Systems, (Second Edition), Computer Science Press, Potomac, Md., (Có

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng máy trạng thái trong quản lý giao tác (Trang 53)

Tải bản đầy đủ (PDF)

(71 trang)