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 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 q 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 qn 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 ngồ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.