Tính chịu lỗ

Một phần của tài liệu Bài giảng hệ phân tán (Trang 54 - 58)

II. Hệ phân tán dựa trên WEB

4. Tính chịu lỗ

Tính chịu lỗi trong hệ phân tán dựa trên Web thường được sử dụng thông qua cache client-server và các bản sao server. Không có biện pháp đặc biệt nào có khả năng kết hợp chặt chẽ, ví dụ, cho tính chịu lỗi cho HTTP và khả năng khôi phục. Mặc dù vậy, khả năng sẵn sàng trong các dịch vụ chủ yếu như DNS. DNS cho phép vài địa chỉ

được trả về như kết quả trong phép tìm kiếm tên. Trong các hệ thống trên nền Web, tính chịu lỗi có thể đạt được dễ dàng mà không quan tâm đến thiết kế của server. Khi lỗi đến từ các dịch vụ Web, cũng có một số biện pháp tương tự. Tuy nhiên, vấn đề che giấu lỗi và khôi phục yêu cầu ở mức khắt khe hơn. Ví dụ, các dịch vụ Web hỗ trợ các giao dịch phân tán diện rộng và giải pháp chắc chắn sẽ phải liên quan tới các vấn đề lỗi của các dịch vụ tham gia và truyền thông không đáng tin cậy.

Quan trọng hơn, trong các dịch vụ Web, ta có thể xử lý với các đồ thị phức tạp. Trong nhiều hệ thống truyền thông trên nền Web, ta dựa trên thỏa thuận giưa client-server. Điều này có nghĩa là khi client gọi server, sau đó ước tính đáp ứng mà không cần thêm các dịch vụ mở rộng. tính chịu lỗi thường có thể nhân được bằng cách nhân bản server một cách đơn giản hoặc sử dụng một phần kết quả trong cache.

Tình huống này không còn đối với các dịch vụ web, trong nhiều trường hợp ta gặp phải vấn đề server đóng vai trò là client. Vấn đề trở nên trầm trọng hơn cho các dịch vụ được thiết kế để chống lại lỗi tùy tiện. Nhân bản đóng vai trò chủ yếu, thêm vào đó ta gặp phải vấn đề dịch vụ chịu lỗi tùy tiện Byzantine fault-tolerant (BFT) đóng vai trò như client trong dịch vụ không nhân bản khác.

Có 3 tình huống cần giải quyết :

• Client trong dịch vụ BFT nhìn dịch vụ như là dịch vụ web khác. Đặc biệt, điều này có ý nghĩa rằng nhân bản bên trong dịch vụ nên che giấu đối với client, song song với quá trình hồi đáp đúng đắn. Ví dụ, client cần lấy k+1 câu trả lời độc lập từ 2k+1 câu trả lời, giả sử rằng dịch vụ BFT được thiết kế để chịu được tối đa k tiến trình lỗi.

• Dịch vụ BFT nên đảm bảo tính nhất quán bên trong khi đóng vai trò là client, đặc biệt nó phải chịu được trường hợp dịch vụ bên ngoài trả về các kết quả khác nhau từ các bản sao khác nhau. Điều này xảy ra khi dịch vụ gặp sự cố. Các bản sao cần chạy các giao thức thỏa thuận như sự mở rộng cho các giao thức mà nó đã chạy mà có khả năng cung cấp tính chịu được lỗi tùy tiện. Sau khi thực thi giao thức này, chúng có khả năng gửi trả lời ngược lại client.

• Cuối cùng, các dịch vụ mở rộng có thể coi dịch vụ BFT như một client, như một thực thể đơn. Đặc biệt, một dịch vụ không thể chấp nhận yêu cầu một cách tùy

tiện từ một bản sao đơn, mà phải đảm bảo đủ ít nhất k+1 yêu cầu từ các bản sao khác nhau.

Ba tình huống trên dẫn tới 3 thành phần khác nhau trong phần mềm được liên kết với nhau trong toolkit để phát triển các dịch vụ Web.

C. Kết luận

Vai trò của hệ phân tán đối với sự phát triển của máy tính là không thể bàn cãi, đặc biệt khi quy mô các hệ thống máy tính ngày càng lớn như hiện nay. Các đặc tính của hệ phân tán giúp nó có điều kiện thuận lợi cho việc phát triển.

Tuy nhiên bên cạnh các đặc tính thuận lợi của hệ phân tán, tồn tại rất nhiều vấn đề trong việc xây dựng hệ thống để đảm bảo cá tính chất tốt đó của hệ. Do đó việc nghiên cứu hệ phân tán ngày càng đóng vai trò quan trọng trong việc xây dựng các mạng máy tính.

Trong số các đặc tính của hệ phân tán, tính trong suốt là đặc tính quan trọng, tạo điều kiện để khai thác hiệu quả hệ phân tán đồng thời đảm bảo tính tiện dụng cho người dùng. Việc nghiên cứu tính trong suốt tạo điều kiện để phát triển và nâng cao hiệu năng của hệ thống, đồng thời vẫn đảm bảo hệ phân tán là hệ thống phục vụ người dùng.

Một phần của tài liệu Bài giảng hệ phân tán (Trang 54 - 58)

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

(58 trang)
w