Hệ thống xử lý giao dịch hệ phân tán

Đặc điểm của hệ phân tán

Hệ phân tán có các đặc điểm cơ bản là Tính chia xẻ tài nguyên, Tính mở, Khả năng song song, Tính mở rộng, Khả năng thứ lỗi, Tính trong suốt.

Tính chia xẻ tài nguyên

Thuật ngữ tài nguyên được dùng để chỉ tất cả mọi thứ có thể được chia xẻ trong hệ phân tán, bao gồm từ các thiết bị phần cứng (Đĩa, máy in ...) tới các đối tượng (file, các cửa sổ, CSDL và các đối tượng dữ liệu khác).

Trong hệ phân tán, chia xẻ tài nguyên được hiểu là tài nguyên của hệ thống được các QT chia xẻ (sử dụng chung) mà không bị hạn chế bởi tình trạng phân tán tài nguyên theo vị trí địa lý.

Việc chia xẻ tài nguyên trên hệ phân tán - trong đó tài nguyên bị lệ thuộc về mặt vật lý với một máy tính nào đó - được thực hiện thông qua truyền thông. Để chia xẻ tài nguyên một cách hiệu quả thì mỗi tài nguyên cần phải được quản lý bởi một chương trình có giao diện truyền thông, các tài nguyên có thể truy nhập, cập nhật được một cách tin cậy và nhất quán. Quản lý tài nguyên ở đây bao gồm lập kế hoạch và dự phòng, đặt tên các lớp tài nguyên, cho phép tài nguyên được truy cập từ nơi khác, ánh xạ tên tài nguyên vào địa chỉ truyền thông ...

Tính mở

Tính mở của một hệ thống máy tính là tính dễ dàng mở rộng phần cứng (thiết bị ngoại vi, bộ nhớ, các giao diện truyền thông ...) và phần mềm (các mô hình HĐH, các giao thức truyền thông, các dịch vụ chia xẻ tài nguyên ...) của nó. Nói một cách khác, tính mở của hệ thống phân tán mang ý nghĩa bao hàm tính dễ dàng cấu hình cả phần cứng lẫn phần mềm của nó.

Tính mở của hệ phân tán được thể hiện là hệ thống có thể được tạo nên từ nhiều loại phần cứng và phần mềm của nhiều nhà cung cấp khác nhau với điều kiện các thành phần này phải theo một tiêu chuẩn chung (liên quan đến HĐH là tính đa dạng tài nguyên; liên quan đến nhà cung cấp tài nguyên là tính chuẩn). Vai trò của ASP và SPI trong HĐH đã được trình bày trong chương 1.

Tính mở của Hệ phân tán được xem xét theo mức độ bổ sung thêm các dịch vụ chia xẻ tài nguyên mà không phá hỏng hay nhân đôi các dịch vụ đang tồn tại. Tính mở được hoàn thiện bằng cách xác định hay phân định rõ các giao diện chính của hệ phân tán và làm cho nó tương thích với các nhà phát triển phần mềm (tức là các giao diện chính của HĐH phân tán cần phổ dụng).

Tính mở của HĐH phân tán được thi hành dựa trên việc cung cấp cơ chế truyền thông giữa các QT và công khai các giao diện được dùng để truy cập tài nguyên chung.

Khả năng song song

Hệ phân tán hoạt động trên một mạng truyền thông có nhiều máy tính, mỗi máy tính có thể có một hoặc nhiều CPU. Trong cùng một thời điểm nếu có từ hai QT trở lên cùng tồn tại, ta nói rằng chúng được thực hiện đồng thời. Việc thực hiện các QT đồng thời theo cơ chế phân chia thời gian (một CPU) hay song song (nhiều CPU).

Khả năng làm việc song song trong hệ phân tán được thi hành do hai tình huống:

- Nhiều người sử dụng đồng thời đưa ra các lệnh hay tương tác với chương trình ứng dụng (đồng thời xuất hiện nhiều QT khách).

- Nhiều QT phục vụ chạy đồng thời, mỗi QT đáp ứng yêu cầu của một trong số các QT Khách.

Từ điều kiện đa xử lý, khả năng song song của hệ thống phân tán trở thành một thuộc tính của nó.

Khả năng mở rộng

Hệ phân tán có khả năng hoạt động tốt và hiệu quả ở nhiều mức khác nhau. Một hệ phân tán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc và một phục vụ file. Các hệ lớn có thể bao gồm hàng nghìn máy tính, nhiều phục vụ File và phục vụ máy in ...

Khả năng mở rộng của một hệ phân tán được đặc trưng bởi tính không thay đổi phần mềm hệ thống và phần mềm ứng dụng khi hệ thống được mở rộng.

Điều này chỉ đạt ở mức độ nào đó đối với hệ phân tán hiện tại (không thể hoàn toàn như định nghĩa trên). Yêu cầu mở rộng không chỉ là mở rộng về phần cứng hay về mạng trên đó hệ thống bao trùm mà còn cần phải được phân tích, đánh giá trên tất cả các khía cạnh khi thiết kế hệ phân tán. Một ví dụ đơn giản là tình huống tần suất sử dụng một file quá cao xuất hiện như kết quả của việc tăng số người sử dụng trên mạng. Để tránh tình trạng tắc nghẽn xảy ra nếu như chỉ có một phục vụ đáp ứng các yêu cầu truy cập file đó, cần nhân bản file đó trên một vài phục vụ và hệ thống được thiết kế sao cho dễ dàng bổ sung phục vụ. Có thể tính đến các giải pháp khác là sử dụng Cache và bản sao dữ liệu.

Khả năng thứ lỗi

Khả năng thứ lỗi thể hiện việc hệ thống không bị sụp đổ bởi các sự cố do các lỗi thành phần (cả phần cứng lẫn phần mềm) trong một bộ phận nào đó.

Việc thiết kế khả năng chịu lỗi của các hệ thống máy tính dựa trên hai giải pháp sau đây:

- Dùng khả năng thay thế để đảm bảo việc hoạt động liên tục và hiệu quả.

- Dùng các chương trình đảm bảo cơ chế phục hồi dữ liệu khi xảy ra sự cố.

Để xây dựng một hệ thống có thể khắc phục sự cố theo cách thứ nhất thì có thể chọn giải pháp nối hai máy tính với nhau để thực hiện cùng một chương trình mà một trong hai máy đó chạy ở chế độ Standby (không tải hay chờ). Giải pháp này khá tốn kém vì phải nhân đôi phần cứng của hệ thống.

Giải pháp khác nhằm giảm bớt phí tổn là dùng nhiều phục vụ khác nhau cung cấp các ứng dụng quan trọng để các phục vụ này có thể thay thế nhau khi sự cố xuất hiện. Khi không có sự cố thì các phục vụ chạy bình thường (nghĩa là vẫn phục vụ các yêu cầu của khách). Khi xuất hiện sự cố trên một phục vụ nào đó, các ứng dụng khách tự chuyển hướng sang các phục vụ còn lại. Với cách thứ hai thì phần mềm phục hồi được thiết kế sao cho trạng thái dữ liệu hiện thời (trạng thái trước khi xảy ra sự cố) có thể được khôi phục khi lỗi được phát hiện. Chú ý rằng với cách thức này, một mặt thì cùng một dịch vụ có thể được sẵn sàng trên nhiều máy và mặt khác, trên một máy lại có sẵn một số dịch vụ khác nhau.

Hệ phân tán cung cấp khả năng sẵn sàng cao để đối phó với các sai hỏng phần cứng. Khả năng sẵn sàng của hệ thống được đo bằng tỷ lệ thời gian mà hệ thống sẵn sàng làm việc so với thời gian có sự cố. Khi một máy trên mạng sai hỏng thì chỉ có công việc liên quan đến các thành phần sai hỏng bị ảnh hưởng. Người sử dụng có thể chuyển đến một trạm khác nếu máy họ đang sử dụng bị hỏng, một QT phục vụ có thể được khởi động lại trên một máy khác.

Tính trong suốt

Như đã được trình bày trong chương 1, tính trong suốt là tính chất căn bản của hệ phân tán. Tính trong suốt của hệ phân tán được hiểu như là sự che khuất đi các thành phần riêng biệt của hệ thống máy tính (phần cứng và phần mềm) đối với người sử dụng và những người lập trình ứng dụng. Người sử dụng có quyền truy cập đến dữ liệu đặt tại một điểm dữ liệu ở xa một cách tự động nhờ hệ thống mà không cần biết đến sự phân tán của tất cả dữ liệu trên mạng. Hệ thống tạo cho người dùng cảm giác là dữ liệu được coi như đặt tại máy tính cục bộ của mình. Các thể hiện điển hình về tính trong suốt của HĐH phân tán được trình bày trong phần sau.

Mục tiêu thiết kế hệ điều hành phân tán

Các đặc điểm của hệ phân tán cần được tính đến khi thiết kế HĐH phân tán. Mục tiêu thiết kế HĐH phân tán tương đồng với mục tiêu thiết kế HĐH nói chung và cần được xem xét theo hai góc độ: góc độ của người sử dụng và góc độ của nhà cung cấp HĐH. Trong thiết kế HĐH phân tán, những mục tiêu chung nhất theo cả hai góc độ này là cung cấp một mô hình đơn giản hướng tới một hệ thống hiệu quả (efficient), mềm dẻo (linh hoạt - flexible), nhất quán (consistency), mạnh mẽ (robust). Nội dung của bốn mục tiêu thiết kế này cũng bao gói được phần lớn các tính chất của hệ phân tán mà đã được giới thiệu trong mục trước.

Do tính chất "phân tán" vật lý (tài nguyên phân tán, truyền thông mức cao, đa dạng hơn các lỗi thành phần) cho nên HĐH phân tán hoạt động phức tạp hơn, cũng có nghĩa là việc thi hành các mục tiêu trên đây là phức tạp và khó khăn hơn.

Tính hiệu quả

Tính hiệu quả trở nên phức tạp hơn so với HĐH tập trung do phải tính đến chi phí phải trả cho bài toán truyền thông mà trước đây trong HĐH tập trung đã bỏ qua yếu tố này. Truyền thông CTĐ trong môi trường phân tán địa lý dẫn đến độ trễ tới hàng micro giây, mili giây thậm chí là hàng giây và tạo ra một yếu tố phức tạp trong việc đánh giá mức độ hiệu quả của hệ thống.

Nguồn gốc của "độ trễ" là do bổ sung nhiều yếu tố mới vào HĐH phân tán so với HĐH tập trung, đó là độ trễ do nhân bản dữ liệu, độ trễ do tính toán đến tổng phí theo các giao thức truyền thông ở các mức độ khác nhau và sự phân tán tải của hệ thống.

Độ trễ do nhân bản dữ liệu là khá rõ ràng và hiển nhiên. Nhân bản dữ liệu là việc tạo thêm các bản sao dữ liệu từ nơi khác tới vị trí xử lý nhằm mục đích tăng tốc độ truy nhập dữ liệu. Tuy nhiên nhân bản dữ liệu cũng đòi hỏi chi phí phải trả gồm thời gian sao dữ liệu và thời gian đảm bảo yếu tố nhất quán của dữ liệu được nhân bản. Không thể đặt ra giải pháp nhằm hạn chế nhân bản dữ liệu. Tuy nhiên, việc truyền thông mức ngôn ngữ hay HĐH nên làm thật hiệu quả và giao thức truyền thông mức mạng nên làm cho thật tốt. Khi lưu ý đến phân bố tải hệ thống thì những vấn đề như hiện tượng thắt cổ chai hoặc tắc nghẽn hoặc trong mạng vật lý hoặc trong thành phần phần mềm bắt buộc phải được địa chỉ hóa. Các ứng dụng (hệ thống hoặc người dùng) có thể tiến thêm một bước là QT phân tán cần được cấu trúc tốt chẳng hạn như tính toán và truyền thông có thể được cân bằng tải và gối lên nhau một cách hợp lý. Một thuật toán lập lịch tối ưu trong HĐH tập trung có thể không trở thành thuật toán tốt khi áp dụng trong HĐH phân tán. Việc phân tán các QT sao cho hệ thống được cân bằng: các CPU dùng cho xử lý, các đường truyền thông được phát huy cao nhất có thể có.

Hai thông số quan trọng đánh giá hiệu quả hệ phân tán là độ tăng tốc và thông lượng hệ thống. Độ tăng tốc (speedup) được hiểu là thời gian hoàn thiện QT là nhanh hay chậm. Thông lượng (throughput) được hiểu là số QT đồng thời được xử lý tại một thời điểm. Việc nâng cao hai thông số này thông qua việc lập lịch các QT phân tán, chia xẻ tải và hệ thống truyền thông cần được thiết kế tốt.

Tính mềm dẻo

Theo cách nhìn của người sử dụng, tính mềm dẻo được thể hiện thông qua tính thân thiện của hệ thống, tính tự do của người dùng khi sử dụng hệ thống. Tính thân thiện được hiểu rất rộng như dễ dàng sử dụng giao diện hệ thống, khả năng ánh xạ quá trình tính toán trong không gian bài toán tới hệ thống. Tiếp cận hướng đối tượng là chiến lược phổ biến để hoàn thành mục tiêu này. Tính thân thiện cũng liên kết với các tính chất nhất quán và tính tin cậy. Các hệ thống nhất quán và đáng tin cậy không có những hạn chế vô lý. Nó cần cung cấp môi trường hoạt động thích hợp trong đó các tool và dịch vụ mới dễ dàng được xây dựng.

Theo cách nhìn của hệ thống, tính mềm dẻo là năng lực của hệ thống để tiến hóa và di trú. Các tính chất mấu chốt là môđun, co giãn, khả chuyển và liên thao tác. Trong những trường hợp khác, các tính chất này có độ quan trọng riêng trong hệ phân tán do hầu hết các hệ thống sử dụng các thành phần phần cứng và phần mềm hỗn tạp. Một mặt, chúng ta mong muốn có một quyền tự trị địa phương, nhưng mặt khác, chúng ta lại muốn cùng cộng tác thành một hệ liên kết chặt chẽ, và chính điều này đã dẫn đến hạn chế nào đó tới chúng ta. Chính từ hai mong muốn có vẻ đối lập nhau này đưa đến giải pháp dung hòa trong việc giải quyết tính mềm dẻo của hệ phân tán.

Tính nhất quán

Tính nhất quán trở nên khó khăn hơn khi thi hành trong hệ phân tán: thiếu vắng thông tin toàn cục, tiềm tàng nhân bản và phân hoạch dữ liệu mạnh, khả năng xẩy ra lỗi thành phần, mối liên quan phức tạp các môđun thành phần; tất cả các điều đó đều tham gia vào sự thiếu nhất quán của hệ thống. Theo phương diện người dùng, một hệ thống là nhất quán nếu như có được tính đồng nhất khi sử dụng và ứng xử hệ thống có thể khẳng định trước. Hơn nữa, hệ thống phải đủ năng lực duy trì tình trạng toàn vẹn nhờ cơ chế điều khiển đồng thời chính xác và các thủ tục kiểm soát lỗi và khôi phục. Điều khiển nhất quán trong dữ liệu và file (hoặc CSDL trong hệ thống định hướng giao dịch) là những vấn đề còn được bàn luận trong hệ thống file phân tán.

Tính mạnh mẽ

Bài toán tính mạnh mẽ càng trở nên quan trọng hơn trong hệ thống phân tán: lỗi kết nối truyền thông, lỗi tại nút xử lý và lỗi trong các QT Client/Server là thường xuyên hơn so với hệ thống máy tính tập trung. Quy tắc nào cần được hệ HĐH tuân thủ trong những trường hợp, chẳng hạn như một thông điệp hỏi/đáp bị mất hoặc nút xử lý hoặc phục vụ bị đổ vỡ ? Tính mạnh mẽ về khía cạnh thứ lỗi được hiểu rằng hệ thống đủ năng lực tự khởi động lại tới trạng thái mà tại đó tính toàn vẹn của hệ thống đã được bảo quản mà chỉ với một độ giảm sút hiệu năng một cách hợp lý. Để có tính mạnh mẽ, hệ thống nên được trang bị cơ chế kiểm soát được tình huống khác thường (thậm chí chưa phải là lỗi rõ ràng) và lỗi, chẳng hạn như thay đổi tôpô hệ thống, độ trễ thông điệp lớn, hoặc sự bất lực khi định vị phục vụ. Tính mạnh mẽ cũng nên được mở rộng để phủ được khía cạnh an toàn đối với người dùng và hệ thống. Tính tin cậy, bảo vệ và điều khiển truy nhập là trách nhiệm của HĐH phân tán.