Biểu đồ ca sử dụng (biểu đồ Use case)

Một phần của tài liệu (Luận văn thạc sĩ) nâng cấp động các thành phần của hệ thống phân tán (Trang 36 - 50)

Hình 4 1 Biểu đồ ca sử dụng

Use case Thiết lập chơi:Ngƣời chơi khởi động chƣơng trình, nhập địa chỉ IP của bạn chơi. Hệ thống sẽ tự động kiểm tra và thực hiện kết nối tới máy của bạn chơi.

Use case Chơi: Hai ngƣời chơi nhập tọa độ bắn của mình, chƣơng trình sẽ gửi tọa độ bắn sang máy bạn chơi, máy bạn chơi sẽ tính toán và gửi trả lại kết quả cho ngƣời bắn. Chƣơng trình cũng tự động kiểm tra trạng thái thắng/ thua của mình dựa trên các vị trí bị bắn và các kết quả bắn.

Use case Chơi lại: Chƣơng trình cho phép 2 ngƣời chơi lại từ đầu khi đã kết thúc hiệp chơi (đã xác định đƣợc bên Thắng/thua) hoặc khi chƣa kết thúc chơi (do một trong 2 ngƣời yêu cầu chơi lại).

Use case Chơi mới (chọn ngƣời chơi) chƣơng trình cho phép một ngƣời chơi dừng chơi để chơi với một ngƣời khác khi đang chơi dở hoặc đã hết hiệp chơi.

Thiet lap choi

Choi

Choi lai

Choi voi nguoi khac Nguoi choi

4.1.2 Biểu đồ trình tự

Biểu đồ trình tự UC Thiết lập chơi

Hình 4 2 Biểu đồ trình tự thiết lập chơi

Mô tả:

 Ngƣời chơi nhập địa chỉ IP của máy bạn chơi

 Hệ thống thực hiện kết nối tới đối tƣợng cho phép gọi từ xa trên máy bạn chơi.

 Hệ thống thông báo cho ngƣời chơi trạng thái kết nối của bạn chơi.

Biểu đồ trình tự UC Chơi : Machine A : Machine A : Nguoi choi A : Nguoi choi A : Machine B : Machine B

Khoi dong chuong trinh Yeu cau nhap IP cua may B

Nhap IP may B

Tim kiem doi tuong tren may B

Thong bao da ket noi voi may B

Hình 4 3 Biểu đồ trình tự chơi game

Mô tả:

 Ngƣời chơi A thông báo cho chƣơng trình trạng thái sẵn sàng chơi của mình từ bàn phím.

 Chƣơng trình gửi thông điệp sẵn sàng chơi sang máy bạn chơi B.

: Nguoi choi A : Nguoi choi A

: Machine A

: Machine A : Machine B : Machine B

: Nguoi choi B : Nguoi choi B San sang choi ?

Da san sang

Nguoi choi A da san sang

A da san sang Da san sang Nguoi choi B da san sang

B da san sang Yeu cau nhap toa do ban

Nhap toa do ban

Toa do A ban

Kiem tra trung/truot

Kiem tra thang/thua Bi trung/truot

Thang/ thua Ket qua ban

Kiem tra Thang/thua Trung/truot

 Bạn chơi B xác nhận sẵn sàng chơi bằng cách nhập liệu từ bàn phím, chƣơng trình phía máy bạn sẽ gửi trả lại máy ngƣời chơi A thông điệp “đã sẵn sàng” của bạn chơi B.

 Khi thông điệp xác nhận đƣợc phản hồi trở lại máy A, hệ thống cho phép bắt đầu chơi.

 Hai ngƣời chơi nhập tọa độ bắn của mình, hệ thống sẽ gửi tọa độ bắn sang máy bạn chơi.

 Hệ thống tính toán kết quả bắn dựa trên vị trí máy bay của mình và dữ liệu bắn bạn chơi gửi tới, sau đó gửi trả lại kết quả phát bắn cho bạn chơi.  Hệ thống kiểm tra trạng thái Thắng/ Thua của mình dựa trên các vị trí bị

Biểu đồ trình tự UC Chơi lại

Hình 4 4 Biểu đồ trình tự chơi lại

Mô tả:

 Ngƣời chơi A thông báo cho chƣơng trình yêu cầu dừng hiệp chơi của mình từ bàn phím.

 Hệ thống đƣa ra lựa chọn: Chơi lại/ Chơi mới (với ngƣời khác)/ Thoát.  Ngƣời chơi chọn Chơi lại.

 Hệ thống thiết lập lại các thông số chơi của ngƣời chơi về các giá trị ban đầu

 Hệ thống gửi thông điệp dừng chơi cho bạn chơi.

 Hệ thống phía máy bạn thông báo yêu cầu dừng chơi cho bạn chơi và đƣa ra các lựa chọn Chơi lại/ Chơi mới (với ngƣời khác)/ Thoát.

 Bạn chơi chọn Chơi lại.

: Nguoi choi A : Nguoi choi A

: Machine A

: Machine A : Machine B : Machine B

: Nguoi choi B : Nguoi choi B Yeu cau choi lai

Choi lai? Xac nhan choi lai

Khoi tao lai cac tham so choi cua A

Yeu cau choi lai

Yeu cau choi lai Dong y choi lai

Xac nhan choi lai

Khoi tao lai cac tham so choi cua B

 Hiệp chơi đƣợc thực hiện lại từ đầu.

Biểu đồ trình tự UC Chơi với người khác

Hình 4 5 Biểu đồ trình tự chơi với người khác

Mô tả:

 Ngƣời chơi A thông báo cho chƣơng trình yêu cầu dừng hiệp chơi của mình từ bàn phím.

 Hệ thống đƣa ra lựa chọn: Chơi lại/ Chơi mới (với ngƣời khác)/ Thoát.  Ngƣời chơi chọn Chơi với ngƣời khác.

 Hệ thống gửi thông điệp dừng chơi cho bạn chơi.  Hệ thống yêu cầu nhập địa chỉ IP của bạn chơi mới.  Ngƣời chơi nhập địa chỉ IP của bạn chơi mới.  Hệ thống thực hiện kết nối với máy bạn chơi mới

 Hệ thống thiết lập lại các thông số chơi về giá trị ban đầu  Đợi bạn chơi mới tham gia chơi.

: Nguoi choi A : Nguoi choi A

: Machine A : Machine A

Yeu cau choi voi nguoi khac Choi moi?

Xac nhan choi moi

Thiet lap choi

Thong bao choi moi

4.1.3 Biểu đồ lớp

Xây dựng lớp đối tƣợng Jet để thực hiện các hoạt động chơi, lớp đối tƣợng này phải cho phép các lời gọi hàm từ xa. Do đó nó phải kế thừa từ lớp

UnicastRemoteObject và thực thi giao diện Interface1.

 Ở giao diện Interface1 mô tả hình thức các hàm cho phép triệu gọi từ xa  Ở lớp Jet, thực thi giao diện Interface1 bằng cách cài đặt các hàm đã khai

báo trong Interface1.

Hình 4 6 Biểu đồ lớp

4.1.4. Thiết kế dữ liệu

Dữ liệu của hệ thống chỉ bao gồm dữ liệu tọa độ máy bay và tọa độ bắn, do đó sử dụng các ma trận 2 chiều để biểu diễn các dữ liệu này:

 private int positionMatrix[][]  private int fireMatrix[][]

Dữ liệu trao đổi giữa các máy chỉ là dòng thông điệp thông báo tọa độ bắn và kết quả bắn.

4.2 Mô hình nâng cấp hệ thống

Hình 4.7 Biểu đồ trình tự nâng cấp.

Hình trên thể hiện trình tự thực hiện trong quá trình nâng cấp giữa hai nút A và B. Khi nút A nhận biết việc nâng cấp từ phiên bản V lên phiên bản V+1, khi đó tại nút A sẽ tạo ra một đối tượng mô phỏng V +1. Sau đó nâng cấp được lan truyền

: Nguoi choi : May A : SO may A : May B : SO may B

1: \\cai dat nang cap V+1

2: \\ Tao SO V +1

4: \\ Tao SO V +1 3: \\Lan truyen nang cap V+1

6: // Tao SO V tai B 5: \\ Nang cap xong V+1 tai B

8: \\Thao tac SO V+1 7: \\ Thao tac SO V

9: \\ Nang cap xong V+1 tai A

tới các nút nó cung cấp dịch vụ hay trao đổi là nút B. Tại nút B, cũng tạo ra đối tượng mô phỏng V +1 và tiến hành nâng cấp. Khi nút B nâng cấp thành công, nó sẽ tạo ra đối tượng mô phỏng của phiên bản V (phiên bản cũ) để cung cấp dịch vụ cho các nút khác nó cung cấp dịch vụ mà chưa được nâng cấp (nút A), và nút B trỏ tới đối tượng mô phỏng V+1 của nút A để giao tiếp.

4.3 Thử nghiệm

Hình 4.9 Thiết lập hai máy bắt đầu chơi

Hình trên bao gồm hai ma trận 10x10 biểu diễn sơ đồ và vị trí của máy bay. Ma trận đầu là vị trí máy bay A, ma trận dưới là vị trí máy bay B (máy bay đối phương). Kí hiệu @ là tọa độ vị trí máy bay trên sơ đồ và vị trí máy bay bị bắn trúng ở ma trận đối phương. Mỗi một lần chơi, vị trí máy bay sẽ thay đổi ngẫu nhiên. Kí hiệu x là vị trí máy bay bị bắn.

Hình 4.10 Khi máy A yêu cầu nâng cấp

Hình trên khi máy A dừng chơi, có thể đưa ra một số lựa chọn: Nhấn nhím 0 để thiết lập chơi với người khác; phím 1 để chơi lại với người đang chơi; phím 2 để thoát khỏi trò chơi; yêu cầu nâng cấp bằng cách lựa chọn nhấn phím 3.

Hình 4.11 Sau khi nâng cấp bản đồ chương trình.

Hình 4.11 thiết lập trò chơi khi yêu cầu nâng cấp. Nâng cấp bằng cách thiết lập lại bản đồ của trò chơi. Trên đó, kí hiệu @ là vị trí tọa độ máy bay, kí hiệu x là vị trí máy bay bị bắn trượt, kí hiệu ? là các vật cản trên sơ đồ bảo vệ máy bay.

KẾT LUẬN

Sau một thời gian học tập và nghiên cứu, trƣớc bài toán khó làm thế nào để tự động nâng cấp các thành phần của hệ thống phân tán, trong khuôn khổ bài luận văn tôi đã giải quyết đƣợc một số vấn đề sau: tìm hiểu phƣơng thức nâng cấp động cho hệ thống phân tán, nâng cấp tự động tại mỗi nút bằng cách nhận biết có phiên bản mới cung cấp, từ đó tự động lan truyền tới các nút tiếp theo đang đƣợc hỗ trợ. Việc nâng cấp này không làm ảnh hƣởng tới các dịch vụ khác mà hệ thống đang cung cấp nhờ có các đối tƣợng mô phỏng và hệ thống vẫn cung cấp đầy đủ các dịch vụ khi các nút chạy với các phiên bản khác nhau. Với hƣớng đề xuất trên mới chỉ thử nghiệm bằng chƣơng trình Java trên hệ thống phân tán theo mô hình ngang hàng, khi thử nghiệm trên nhiều máy (số nút trên 4) việc tải và kết nối chƣa đạt hiệu quả theo mong muốn.

Trong thời gian tôi dự kiến sẽ nghiên cứu tiếp việc hỗ trợ nhiều đối tƣợng trên một nút, đánh giá đƣợc trạng thái các nút dừng, khôi phục đƣợc các nâng cấp khi lỗi xẩy ra và tạo bộ lọc để lựa chọn các lớp cần nâng cấp.

TÀI LIỆU THAM KHẢO

[1]A. Yonezawa (1999), “ABCL: An Object-Oriented Concurrent System”, The MIT Press.

[2]Andrew S. Tanenbaum & Maarten van Steen (2002), “Distributed Systems: Principles and Paradigms”, Pearson Prentice Hall.

[3]Barbara Liskov(October 2001), “Software upgrades in distributed systems”,Keynote address at the 18th, ACM Symposium on Operating SystemsPrinciples.

[4]Clavel, M. and J.Meseguer (2002), “Reflection in conditional rewriting logic”,

Theoretical Computer Science 285, pp. 245-288.

[5]Clavel, M., F. Duran, S. Eker, P. Lincoln, N. Marti-Oliet, J. Meseguer and J. F.Quesada (2002), “Maude: Specication and programming in rewriting logic”,

Theoretical Computer Science 285, pp. 187-243.

[6]Christoph von Praun (July 2004.),“Detecting Synchronization Defects in Multi- Threaded Object-Oriented Programs”, PhD thesis, ETH Zurich.

[7]De Oliveira Braga, C. (2001), “Rewriting Logic as a Semantic Framework for Modular Structural Operational Semantics”, Ph.D. thesis, Pontifcia Universidade Catolica do Rio de Janeiro.

[8]E. B. Johnsen and O. Owe (Jan. 2005.),“Inheritance in the presence of asynchronous method calls”,InProc. 38th Hawaii Intl. Conf. on System Sciences (HICSS’05), IEEE CS Press.

[9]Einar Broch Johnsen and Olaf Owe and Isabelle Simplot-Ry (2005), “A Dynamic Class Construct for Asynchronous Concurrent Objects”.

[10] Ewan D. Tempero, Gavin M. Bierman, James Noble, Matthew J. Parkinso (2008), “From Java to UpgradeJ: An empirical study”, In Proceedings of HotSWUp'2008.

[11] Feras Karablieh and Rida Bazzi (October 2002), “Heterogeneous Checkpointing for Multithreaded Applications”, In 21st Symposium on Reliable Distributed Systems (SRDS).

[12] Iulian Neamtiu and Michael Hicks and Jeffrey S.Foster and Polyvios Pratikakis (2007),“Contextual Effects for Version-Consistent Dynamic Software Updating and Safe Concurrent Programming”, Technical Report CS- TR-4875.

[13] Iulian Neamtiu, Michael Hicks, Gareth Stoyle, andManuel Oriol (June 2006),“Practical Dynamic Software Updating for C”,In Proceedings of the

ACM Conference onProgramming Language Design and

Implementation(PLDI).

[14] Kristis Makris and Rida Bazzi (2009), Immediate Multi-Threaded Dynamic Software Updates Using Stack Reconstruction,USENIX'09 Annual Technical Conference 13, pp.2-6.

[15] M. E. Shaddock, M. C.Mitchell, and H. E. Harrison (1995). How to upgrade 1500 workstations on Saturday, and still have time to mow the yard on Sunday. In Proc. of the 9thUSENIX Sys.

[16] Sameer Ajmani (August 2002),“A review of software upgrade techniques for distributed systems”, pp.1-3.

[17] Sameer Ajmani(October 2002), “A distributed system Upgrade Scenarior”, MIT Laboratory for Computer Science 200 Technology Square, Cambridge, MA 02139, USA, pp.1-3.

Một phần của tài liệu (Luận văn thạc sĩ) nâng cấp động các thành phần của hệ thống phân tán (Trang 36 - 50)

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

(50 trang)