Bài giảng hệ phân tán

58 566 0
Bài giảng hệ phân tán

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

A. Giới thiệu Hệ phân tán đóng vai trò quan trọng trong lĩnh vực phát triển của công nghệ máy tính, đăc biệt là trong điều kiện phát triển bùng nổ của các mạng máy tính. Sự phát triển của các mạng LAN, WAN cho phép hàng trăm, hàng nghìn hay thậm chí hàng triệu mát tính có thể kết nối với nhau. Kết quả của sự phát triển công nghệ hiện nay không chỉ đáng tin cậy mà còn tạo nên các hệ thống máy tính rất lớn, được kết nối bằng các đường kết nối tốc độ cao. Chúng tạo nên các mạng máy tính lớn hoặc các hệ phân tán, ngược với hệ thống tập trung trước đây, bao gồm các máy tính đơn và có thể cả thiết bị điều khiển đầu cuối (remote teminal). Có nhiều định nghĩa được đưa ra, nhưng nếu coi hệ phân tán là hệ thống phục vụ người dùng thì : hệ phân tán là tập các máy tính độc lập giao tiếp với người dùng như một hệ thống thống nhất và trọn vẹn. Hệ phân tán được xây dựng cần đảm bảo một số đặc trưng :  Chia sẻ tài nguyên  Tính trong suốt  Tính mở  Tính co giãn Tính trong suốt đảm bảo khả năng che giấu tiến trình và tài nguyên phân tán trong mạng máy tính. Hệ phân tán có khả năng biểu diễn bản thân nó với người dùng và ứng dụng giống như một máy tính đơn lẻ. Bài tiểu luận này sẽ trình bày về các đặc trưng về mặt lý thuyết để đảm bảo tính trong suốt trong hệ phân tán và triển khai nó trong hệ thống WEB. B. Nội dung I. Các vấn đề về lý thuyết của hệ phân tán 1. Tính trong suốt đối với người sử dụng • Truy nhập (Access transparency): che giấu sự khác biệt trong cách biểu hiện dữ liệu và cách thức truy nhập tài nguyên. Ở mức cơ bản, ta che giấu sự khác biệt về kiến trúc máy, nhưng quan trọng hơn chính là ta phải đạt được sự thống nhất trong biểu diễn dữ liệu bởi các máy tính khác nhau và các hệ điều hành khác nhau. Ví dụ, quy ước về cách đặt tên của các máy tính khác nhau chạy trên các hệ điều hành khác nhau là khác nhau, tuy nhiên cách thức này cùng với các thao tác với file hoàn toàn trong suốt với cả ứng dụng và người dùng. • Vị trí (Location transparency): che giấu vị trí tài nguyên  người dùng hoàn toàn không biết về vị trí vật lý của tài nguyên trong hệ thống. Để đạt được , ta cần tiến hành định danh bằng tên gọi logic. Tên gọi có thể đơn giản, không cần mã hóa. VD : cardchua.vn, là tên của trang web, ta không hề biết vị trí vật lý của nó trên Web server nào, nhưng vẫn có thể truy cập được. • Di trú (Migration transparency): che giấu việc tài nguyên di chuyển sang máy khác  tài nguyên có thể không nằm ở vị trí cố định, mà nó có thể được di chuyển sang các máy khác nhau trong hệ thống để phục vụ các yêu cầu khác nhau mà không ảnh hưởng tới việc truy nhập tài nguyên. • Di chuyển (Relocation transparency): che giấu việc tài nguyên có thể bị di chuyển sang nơi khác  tài nguyên có thể di chuyển sang nơi khác ngay cả khi nó đang bị truy cập. VD: người dùng điện thoại di động có thể di chuyển từ nơi này sang nơi khác, do đó chuyển liên lạc từ trạm phát sóng này sang trạm phát sóng khác nhưng cuộc thoại vẫn liên tục, không có bất kì gián đoạn nào. • Nhân bản (Repilcation transparency): che giấu việc sao chép tài nguyên  việc sao chép tài nguyên giúp đơn giản hóa và tăng tốc độ truy cập dữ liệu, các bản sao đặt gần hoặc ngay tại nơi truy cập dữ liệu. Các bản sao này phải có cùng tên, để che giấu với người dùng; và hệ thống cần có tính trong suốt về vị trí, để đảm bảo khả năng quản lý các bản sao khác nhau trên các máy trong hệ thống. • Tương tranh (Concurrency transparency): che giấu sự chia sẻ tài nguyên bởi một số người sử dụng, nhiều người dùng có thể cùng truy cập dữ liệu tại cùng một thời điểm, đặc biệt sử dụng nhiều trong mạng truyền thông. VD: hai người cùng lưu trữ file trên cùng server, và tại một thời điểm, họ truy cập tới cùng bản ghi trong cơ sở dữ liệu chung, để đảm bảo tính nhất quán và ổn định của dữ liệu với từng người dùng, ta cần sử dụng các cơ chế khóa. Ngoài ra, còn có thể thực hiện cơ chế giao dịch, tuy nhiên nó khó thực hiện trên hệ thống phân tán. • Lỗi (Failure transparency): che giấu lỗi và khắc phục lỗi  đảm bảo người dùng hoàn toàn không biết về các lỗi xảy ra trong hệ thống và sự khắc phục các lỗi này. Che dấu lỗi là một trong các yêu cầu khó thực hiện nhất, và có thể không thực hiện được trong một số tình huống cụ thể. Điểm khó nhất chính là ta không thể phân biệt được tài nguyên là truy cập chậm hay không thể truy cập được. VD: khi truy cập một web Server bận, trình duyệt thông báo “timeout”, thì ta không thể biết được server có thực sự bị lỗi hay không. Mức độ trong suốt Tuy nhiên không phải lúc nào cũng nên thể hiện tính trong suốt hoàn toàn với người dùng. Ví dụ, khi có báo điện tử xuất hiện trong hòm thư của người dùng vào lúc 7h, trong khi bạn đang ở múi giờ khác, người dùng cần phải biết thông tin về tờ báo này không phải là tờ báo mà họ vẫn sử dụng. Ngoài ra cũng có sự đánh đổi giữa mức độ trong suốt và tốc độ hệ thống. Ví dụ, nhiều ứng dụng Internet lặp lại việc truy cập máy chủ sau một khoảng thời gian nhất định trước khi từ bỏ, do đó, nếu ta cố che dấu việc kết nối thất bại sẽ làm chậm đáng kể tốc độ hệ thống. Với trường hợp này, cần rút ngắn thời gian cố kết nối hoặc để cho người dùng huỷ bỏ kết nối. Ví dụ khác, ta cần đảm bảo sự thống nhất giữa các bản sao trên các máy khác nhau. Một bản ghi bị thay đổi sẽ kéo theo sự thay đổi của tất cả các bản ghi khác, làm chậm đáng kể thời gian hệ thống, nên không thể che giấu người dùng. Trong một số tình huống, tính trong suốt không hẳn là giải pháp tốt, cụ thể như trong các tình huống liên quan tới vị trí và hoàn cảnh đặc biệt, chúng ta nên thể hiện tính phân tán của hệ thống hơn là nên che dấu nó, cụ thể như trong các hệ phân tán nhúng và phân bố rộng. Ví dụ, khi ta muốn in văn bản thông qua các máy in mạng, nên gửi tới các máy in ở gần ta, dù đang bận, hơn là tại các máy in xa. Việc thiết kế hệ phân tán trong suốt là cần thiết, tuy nhiên cũng cần đảm bảo sự hài hoà với các đặc tính khác như hiệu năng và tính thân thiện với người dùng của hệ thống. Tuy nhiên có thể phải trả giá đắt cho việc không đảm bảo tính trong suốt hoàn toàn của hệ phân tán. 2. Kiến trúc Hệ phân tán thường bao gồm tập phức tạp của các phần mềm nằm rải rác trên các máy khác nhau, do đó cần tổ chức tốt. Có nhiều cách khác nhau để xem xét tổ chức của hệ phân tán , và một trong số đó là tách riêng tổ chức logic của các thành phần phần mềm và các phần cứng hệ thống. Một trong các mục đích quan trọng của hệ phân tán là phân tách các ứng dụng từ nền bên dưới thông qua lớp trung gian. Đó chính là bước thiết kế quan trọng với mục đích chính là đảm bảo tính trong suốt phân tán. Tuy nhiên, việc đó phải đánh đổi bằng nhiều biện pháp thiết kế phức tạp để làm lớp trung gian có khả năng tương tác tốt. Các loại kiến trúc hệ thống: kiến trúc lớp kiến trúc hướng đối tượng kiến trúc dữ liệu trung tâm kiến trúc hướng sự kiện Kiến trúc lớp : các thành phần được tổ chức theo kiểu lớp, thành phần lớp Li sẽ gọi thành phần ở lớp dưới Li1 , mô hình được sử dụng rộng rãi trong truyền thông mạng . Kiến trúc hướng đối tượng có các đối tượng được định nghĩa dưới dạng các thành phần và được kết nối với nhau thông qua cơ chế gọi thủ tục (remote). Dạng kiến trúc phần mềm này tương tự như kiến trúc clientserver. Hai dạng kiến trúc lớp và hướng đối tượng vẫn đóng vai trò quan trọng trong các hệ thống phần mềm lớn. Kiến trúc dữ liệu tập trung suy ra từ ý tưởng các tiến trình giao tiếp thông qua phần tử (chủ động hay thụ động) chung. Kiến trúc này cũng quan trọng không kém 2 kiến trúc trên, ví dụ như hệ thống chia sẻ file chung nhằm che giấu tất cả các kết nối trong hệ thống thông qua các liên kết ảo tới file như trong hệ thống phân tán kiểu Web. Trong kiến trúc hướng sự kiện, tiến trình về cơ bản sẽ giao tiếp thông qua sự lan truyền của sự kiện, có thể mang cả dữ liệu. Với hệ phân tán, sự lan truyền sự kiện nói chung liên quan tới các hệ thống công cộng (publishsubscribe). Ý tưởng cơ bản là các tiến trình gửi sự kiện sau khi lớp trung gian đảm bảo chỉ các tiến trình chấp nhận sự kiện này mới có thể nhận chúng. Lợi ích lớn của hệ thống hướng sự kiện là các tiến trình có mỗi quan hệ linh động, chúng không cần liên quan chặ chẽ với các tiến trình khác. Do đó chúng có thể liên kết hoặc tự do. Kiến trúc hướng sự kiện có thể kết hợp với kiến trúc dữ liệu tập trung, tạo thành không gian dữ liệu chia sẻ. Bản chất của không gian dữ liệu tập trung là các tiến trình có thể không liên kết với nhau, chúng không cần sẵn sàng khi sự truyền đạt được thiết lập. Xa hơn, nhiều không gian dữ liệu chia sẻ sử dụng giao diện SQL để chia sẻ kho dữ liệu với ý nghĩa dữ liệu có thể truy nhập thông qua mô tả hơn là tham chiếu rõ ràng, như trong trường hợp với file. Sự cần thiết của các kiến trúc phần mềm để đảm bảo tính trong suốt đối với các hệ phân tán là không có gì phải bàn cãi, tuy nhiên yêu cầu về tính trong suốt phải đánh đổi với hiệu năng hệ thống, khả năng chịu lỗi, khả thi khi lập trình và còn một số các yêu cầu khác. Không có lời giải tách biệt nào đảm bảo tất cả yêu cầu của hệ phân tán, do đó ta cần áp dụng tổng hợp các giải pháp để đạt hiệu quả. 3. Tiến trình Khái niệm của tiến trình bắt nguồn từ các lĩnh vực của hệ điều hành , trong đó nó được định nghĩa như là chương trình đang thực thi . Trong đó thì việc quản lý và lập kế hoạch của các tiến trình có lẽ là vấn đề quan trọng nhất cần phải quan tâm . Ví dụ , để tổ chức hiệu quả 1 hệ thống clientserver, người ta thường sử dụng các kỹ thuật đa luồng. Như chúng ta đã thảo luận trong phần trước, đặc điểm quan trọng nhất của luồng trong hệ phân tán là chúng cho phép các máy trạm và máy chủ có thể được xây dựng để các kết nối và xử lý nội bộ có thể chồng lên nhau , điều này dẫn đến hiệu suất cao , Trong những năm gần đây , khái niệm về ảo hóa đã trở nên phổ biến . Ảo hóa cho phép một ứng dụng và có thể có môi trường hoàn chỉnh bao gồm hệ điều hành , để chạy đồng thời với các ứng dụng khác nhưng hoàn toàn độc lập về phần cứng và nền tảng nằm dưới . Hơn nữa , ảo hóa giúp tách được các sự cố gây ra do lỗi hay các vấn đề về bảo mật. Đây là một khái niệm quan trọng trong hệ phân tán . Một vấn đề quan trọng , đặc biệt là ở khu vực phân tán rộng, là việc di chuyển tiến tình giữa các máy tính khác nhau . Quá trình di chuyển hay cụ thể hơn là di trú mã. 3.1. Luồng Để thực thi 1 chương trình , hệ điều hành tạo ra một số bộ xử lý ảo, mỗi một bộ xử lý này chạy 1 chương trình khác nhau. Để theo dõi các bộ xử lý ảo này , hệ điều hành có 1 bảng tiến trình, mỗi mục lưu các giá trị thanh ghi, ánh xạ bộ nhớ, các tập tin mở, các thông tin tính toán, quyền hạn … Một tiến trình thường được định nghĩa như là một chương trình đang thực thi. Một vấn đề quan trọng là hệ điều hành sẽ theo dõi chặt chẽ để đảm bảo rằng các tiến trình độc lập không vô tình hoặc cố ý ảnh hưởng đến các hành vi của tiến trình khá. Tuy nhiên, thực tế là nhiều quá trình có thể chia sẻ cùng một bộ xử lý và tài nguyên phân cứng khác do tính trong suốt của hệ thống. Thông thường , hệ điều hành yêu cầu phần cứng hỗ trợ để thực hiện việc phân chia này. Điều này làm chi phí cho các tiến trình sẽ rất lớn . Ví dụ , mỗi lần 1 tiến trình được tạo ra, hệ điều hành cần phải tạo ra một không gian địa chỉ độc lập. Phân phối bộ nhớ được xem như khởi tạo phân đoạn bộ nhớ bằng cách xoá dữ liệu, sao chép chương trình vào phân đoạn text, và khởi tạo ngăn xếp . Tương tự, chuyển đổi phục vụ của CPU giữa 2 tiến trình có thể tương đối tốn kém. Ngoài việc tiết kiệm CPU ( các giá trị thanh ghi , bộ đếm chương trình , ngăn xếp con trỏ .. ) hệ điều hành cũng sẽ phải sửa đổi thanh ghi của bộ nhớ quản lý (MMU ) và bộ nhớ cache như trong bộ đệm TLB. Thêm vào đó, nếu hệ thống hỗ trợ nhiều tiến trình đồng thời nó cần phải lưu tiến trình trong bộ nhớ chính. Nó có thể có tiến trình nháp để trao đổi giữa bộ nhớ chính và ổ đĩa trước khi thực sự thực hiện tiến trình. Giống như tiến trình, một luồng thực thi các đoạn mã của nó độc lập với các luồng khác. Tuy nhiên, ngược với tiến trình nó không cố gắng để tạo ra sự độc lập với các luồng khác nếu việc này làm giảm hiệu năng. Do đó một luồng hệ thống thường chỉ duy trì các thông tin tối thiểu cho phép một CPU được chia sẻ bởi 1 vài luồng. Đặc biệt, một bối cảnh luồng thông thường chỉ gồm có bối cảnh CPU cùng với một số thông tin khác để quản lý luồng. Ví dụ , một hệ thống luồng có thể đảm bảo rằng một luồng hiện tại đang bị khóa thì sẽ không thể thực thi. Thông tin đó không thực sự cần thiết để quản lý đa luồng và thường bị bỏ qua. Vì lý do này , bảo vệ dữ liệu chống lại các truy cập không thích hợp bằng luồng trong 1 tiến trình được đặt hoàn toàn vào người phát triển ứng dụng . Có hai ý nghĩa quan trọng của phương pháp này. Trước hết , hiệu suất của 1 ứng dụng đa luồng khó có thể kém hơn ứng dụng đơn luồng. Trong thực tế, nhiều trường hợp đa luồng làm cho hiệu suất tăng . Thứ hai, bởi vì các luồng không tự động bảo vệ lẫn nhau như cách của tiến trình, nên việc phát triển các ứng dụng đa luồng cần được phát triển hơn nữa, đảm bảo thiết kế và giữ mọi thứ càng đơn giản càng tốt. Tuy nhiên, những thực nghiệm hiện nay không chứng mình rằng nguyên tắc này đều được các nhà phát triển nắm rõ. 3.2. Di trú mã Di trú mã là một trong các đặc tính của tính trong suốt trong hệ phân tán, nhằm di trú tiến trình (ngay cả khi chúng đang thực thi), nhằm đơn giản hoá việc thiết kế hệ phân tán. Phương pháp tiếp cận Di trú mã trong hệ phân tán là quá trình di chuyển toàn bộ tiến trình từ máy này sang máy khác. Tuy điều này làm tốn kém và phức tạp nhưng hiệu quả mang lại về hiệu năng là rõ rệt. Ý tưởng cơ bản là hiệu năng hệ thống có thể tăng rõ rệt nếu các tiến trình được di chuyển từ máy nặng tải sang máy nhẹ tải hơn. Các thuật toán phân chia tải cho hệ thống liên quan tới phân chia và tái phân chia các tác vụ với tập hợp các vi xử lý, đóng vai trò quan trọng trong các hệ thống tính toán cường độ lớn. Mặc dù vậy, trong các hệ thống tính toán hiện đại, tối ưu tính toán tải ít được đưa ra hơn. Hơn nữa, do tính không đồng nhất của nền bên dưới và mạng máy tính, việc cải thiện hiệu năng thông qua di trú mã thường dựa trên lý do định tính hơn là định lượng. Ví dụ, trong trường hợp server chứa lượng cơ sở dữ liệu lớn, nếu client cần thực hiện nhiều hoạt động trên CSDL này, có thể nên chuyển một phần mã của ứng dụng client sang server và chỉ gửi kết quả qua mạng, giúp giảm tải đáng kể. Điều này có thể áp dụng tương tự cho phía client. Di trú mã có thể được áp dụng trong tính toán song song, dù không rắc rối như lập trình song song. Ví dụ cụ thể như với trường hợp tìm kiếm thông tin trên WEB, được thực hện thông qua tác tử di động, di chuyển từ site này sang site khác. Bằng cách sao chép tác tử này, do kích thước nhỏ nên thời gian thực hiện nhanh, và gửi chúng tới các site khác nhau, ta có thể thu dược hiệu quả như sử dụng một chương trình đơn lẻ. Bên cạnh việc cải thiện hiệu năng, còn một số lý do khác. Lý do quan trọng nhất là độ linh động của hệ thống. đơn giản nhất là ta chia ứng dụng thành các đoạn khác nhau, và đánh giá đoạn nào nên được thực thi.Tuy nhiên, nếu mã di chuyển giữa các máy khác nhau, ta có thể cấu hình động cho hệ phân tán. Mô hình di trú mã Mặc dù di trú mã có nghĩa là ta chỉ chuyển mã giữa các máy, điểu này bao hàm khu vực rộng lớn hơn nhiều. Theo truyền thống, truyền thông trong hệ phân tán liên quan tới việc trao đổi dữ liệu giữa các tiến trình. Di trú mã theo nghĩa rộng là di chuyển các chương trình giữa các máy với nhau, với mục tiêu thực hiện các chương trình này để đạt được mục đích. Trong một số trường hợp, trạng thái thực thi chương trình, thông tin hiện hành và một số phần khác của môi trường cũng được di chuyển theo. Ta sử dụng mô hình sau : trong mô hình này, tiến trình được chia thành 3 phần. Phần mã chứa tập lệnh thực hiện của tiến trình. Phần tài nguyên chứa các tài nguyên cần thiết như file, máy in, các thiết bị và các tiến trình khác. Cuối cùng, phấn thực thi lưu giữ các trạng thái của tiến trình trong thời điểm hiện tại, gồm dữ liệu riêng, ngăn xếp và bộ đếm chương trình. Ta có 2 mô hình chính của di trú mã: mô hình di động yếu và mô hình di động mạnh. Trong mô hình di động yếu, ta có thể chỉ chuyển phần mã, với một số dữ liệu ban đầu. Chức năng chính của mô hình này là chương trình được truyền luôn bắt đầu từ một trong các vị trí bắt đầu được xác định trước. Lợi ích rõ ràng nhất của phương pháp này là sự đơn giản, chỉ yêu cầu máy đích thực thi mã, thực tế làm giảm sự linh động của mã. Ngược với mô hình di động yếu, trong mô hình di động mạnh, tiến trình đang chạy có thể dừng lại và tiếp tục trạng thái đang hoạt động khi di chuyển từ máy này sang máy khác. Tuy nhiên nó phải trả giá bằng việc khó triển khai hơn so với mô hình di động yếu. Trong trường hợp mô hình di động yếu, có sự khác nhau nếu mã di trú được thực thi bởi tiến trình đích và với các tiến trình riêng biệt, ví dụ với Java applet được tải về bởi trình duyệt được thực thi trong không gian địa chỉ của trình duyệt. Lợi ích rõ ràng là không cần kết nối tới máy chủ, tuy nhiên cần bảo vệ tiến trình đích trước mã độc và sự sơ xuất khi thực thi. Có thể giải quyết bằng cách hệ điều hành chú ý tới việc tạo các tiến trình để thực thi mã di trú. Tuy nhiên nó không giải quyết được vấn đề truy nhập tài nguyên trái phép. Thay vì di chuyển các tiến trình đang chạy, mô hình di động mạnh được hỗ trọ bởi các remote cloning. Trái ngược với di trú mã, ta sao chép hoàn toàn chính xác tiến trình gốc, nhưng được thực hiện trên máy khác. Trong hệ thống UNIX, remote cloning chia nhánh một tiến trình con và để tiến trình này tiếp tục thực thi trên máy điều khiển. Lợi ích của việc nhân bản là tạo mô hình gần như tập hợp bởi các ứng dụng khác nhau đã được sử dụng. Điểm khác duy nhất là tiến trình nhân bản được thực thi trên máy khác. Do đó, việc di trú bằng cách nhân bản là cách đơn giản để cải thiện tính trong suốt.

A Giới thiệu Hệ phân tán đóng vai trò quan trọng lĩnh vực phát triển công nghệ máy tính, đăc biệt điều kiện phát triển bùng nổ mạng máy tính Sự phát triển mạng LAN, WAN cho phép hàng trăm, hàng nghìn hay chí hàng triệu mát tính kết nối với Kết phát triển công nghệ không đáng tin cậy mà tạo nên hệ thống máy tính lớn, kết nối đường kết nối tốc độ cao Chúng tạo nên mạng máy tính lớn hệ phân tán, ngược với hệ thống tập trung trước đây, bao gồm máy tính đơn thiết bị điều khiển đầu cuối (remote teminal) Có nhiều định nghĩa đưa ra, coi hệ phân tán hệ thống phục vụ người dùng : hệ phân tán tập máy tính độc lập giao tiếp với người dùng hệ thống thống trọn vẹn Hệ phân tán xây dựng cần đảm bảo số đặc trưng :  Chia sẻ tài nguyên  Tính suốt  Tính mở  Tính co giãn Tính suốt đảm bảo khả che giấu tiến trình tài nguyên phân tán mạng máy tính Hệ phân tán có khả biểu diễn thân với người dùng ứng dụng giống máy tính đơn lẻ Bài tiểu luận trình bày đặc trưng mặt lý thuyết để đảm bảo tính suốt hệ phân tán triển khai hệ thống WEB B Nội dung I Các vấn đề lý thuyết hệ phân tán Tính suốt đối với người sử dụng • Truy nhập (Access transparency): che giấu khác biệt cách biểu dư liệu cách thức truy nhập tài nguyên Ở mức bản, ta che giấu khác biệt kiến trúc máy, quan trọng ta phải đạt thống biểu diễn dư liệu máy tính khác hệ điều hành khác Ví dụ, quy ước cách đặt tên máy tính khác chạy hệ điều hành khác khác nhau, nhiên cách thức với thao tác với file hoàn toàn suốt với ứng dụng người dùng • Vị trí (Location transparency): che giấu vị trí tài nguyên → người dùng hoàn toàn vị trí vật lý tài nguyên hệ thống Để đạt , ta cần tiến hành định danh tên gọi logic Tên gọi đơn giản, không cần mã hóa VD : cardchua.vn, tên trang web, ta vị trí vật lý Web server nào, vẫn truy cập • Di trú (Migration transparency): che giấu việc tài nguyên di chuyển sang máy khác → tài nguyên không nằm vị trí cố định, mà di chuyển sang máy khác hệ thống để phục vụ yêu cầu khác mà không ảnh hưởng tới việc truy nhập tài nguyên • Di chuyển (Relocation transparency): che giấu việc tài nguyên bị di chuyển sang nơi khác → tài nguyên di chuyển sang nơi khác bị truy cập VD: người dùng điện thoại di động di chuyển từ nơi sang nơi khác, chuyển liên lạc từ trạm phát sóng sang trạm phát sóng khác thoại vẫn liên tục, gián đoạn • Nhân (Repilcation transparency): che giấu việc chép tài nguyên → việc chép tài nguyên giúp đơn giản hóa tăng tốc độ truy cập dư liệu, đặt gần nơi truy cập dư liệu Các phải có tên, để che giấu với người dùng; hệ thống cần có tính suốt vị trí, để đảm bảo khả quản lý khác máy hệ thống • Tương tranh (Concurrency transparency): che giấu chia sẻ tài nguyên số người sử dụng, nhiều người dùng truy cập dư liệu thời điểm, đặc biệt sử dụng nhiều mạng truyền thông VD: hai người lưu trư file server, thời điểm, họ truy cập tới ghi sở dư liệu chung, để đảm bảo tính quán ổn định dư liệu với từng người dùng, ta cần sử dụng chế khóa Ngoài ra, thực chế giao dịch, nhiên khó thực hệ thống phân tán • Lỗi (Failure transparency): che giấu lỗi khắc phục lỗi → đảm bảo người dùng hoàn toàn lỗi xảy hệ thống khắc phục lỗi Che dấu lỗi yêu cầu khó thực nhất, không thực số tình cụ thể Điểm khó ta phân biệt tài nguyên truy cập chậm hay truy cập VD: truy cập web Server bận, trình duyệt thông báo “time-out”, ta biết server có thực bị lỗi hay không Mức độ suốt Tuy nhiên lúc nên thể tính suốt hoàn toàn với người dùng Ví dụ, có báo điện tử xuất hòm thư người dùng vào lúc 7h, bạn múi khác, người dùng cần phải biết thông tin tờ báo tờ báo mà họ vẫn sử dụng Ngoài có đánh đổi giưa mức độ suốt tốc độ hệ thống Ví dụ, nhiều ứng dụng Internet lặp lại việc truy cập máy chủ sau khoảng thời gian định trước từ bỏ, đó, ta cố che dấu việc kết nối thất bại làm chậm đáng kể tốc độ hệ thống Với trường hợp này, cần rút ngắn thời gian cố kết nối người dùng huỷ bỏ kết nối Ví dụ khác, ta cần đảm bảo thống giưa máy khác Một ghi bị thay đổi kéo theo thay đổi tất ghi khác, làm chậm đáng kể thời gian hệ thống, nên che giấu người dùng Trong số tình huống, tính suốt không giải pháp tốt, cụ thể tình liên quan tới vị trí hoàn cảnh đặc biệt, nên thể tính phân tán hệ thống nên che dấu nó, cụ thể hệ phân tán nhúng phân bố rộng Ví dụ, ta muốn in văn thông qua máy in mạng, nên gửi tới máy in gần ta, dù bận, máy in xa Việc thiết kế hệ phân tán suốt cần thiết, nhiên cần đảm bảo hài hoà với đặc tính khác hiệu tính thân thiện với người dùng hệ thống Tuy nhiên phải trả giá đắt cho việc không đảm bảo tính suốt hoàn toàn hệ phân tán Kiến trúc Hệ phân tán thường bao gồm tập phức tạp phần mềm nằm rải rác máy khác nhau, cần tổ chức tốt Có nhiều cách khác để xem xét tổ chức hệ phân tán , số tách riêng tổ chức logic thành phần phần mềm phần cứng hệ thống Một mục đích quan trọng hệ phân tán phân tách ứng dụng từ bên thông qua lớp trung gian Đó bước thiết kế quan trọng với mục đích đảm bảo tính suốt phân tán Tuy nhiên, việc phải đánh đổi nhiều biện pháp thiết kế phức tạp để làm lớp trung gian có khả tương tác tốt Các loại kiến trúc hệ thống: - kiến trúc lớp - kiến trúc hướng đối tượng - kiến trúc dư liệu trung tâm - kiến trúc hướng kiện Kiến trúc lớp : thành phần tổ chức theo kiểu lớp, thành phần lớp Li gọi thành phần lớp Li-1 , mô hình sử dụng rộng rãi truyền thông mạng Kiến trúc hướng đối tượng có đối tượng định nghĩa dạng thành phần kết nối với thông qua chế gọi thủ tục (remote) Dạng kiến trúc phần mềm tương tự kiến trúc client-server Hai dạng kiến trúc lớp hướng đối tượng vẫn đóng vai trò quan trọng hệ thống phần mềm lớn Kiến trúc dư liệu tập trung suy từ ý tưởng tiến trình giao tiếp thông qua phần tử (chủ động hay thụ động) chung Kiến trúc quan trọng không kiến trúc trên, ví dụ hệ thống chia sẻ file chung nhằm che giấu tất kết nối hệ thống thông qua liên kết ảo tới file hệ thống phân tán kiểu Web Trong kiến trúc hướng kiện, tiến trình giao tiếp thông qua lan truyền kiện, mang dư liệu Với hệ phân tán, lan truyền kiện nói chung liên quan tới hệ thống công cộng (publish/subscribe) Ý tưởng tiến trình gửi kiện sau lớp trung gian đảm bảo tiến trình chấp nhận kiện nhận chúng Lợi ích lớn hệ thống hướng kiện tiến trình có mỗi quan hệ linh động, chúng không cần liên quan chặ chẽ với tiến trình khác Do chúng liên kết tự Kiến trúc hướng kiện kết hợp với kiến trúc dư liệu tập trung, tạo thành không gian dư liệu chia sẻ Bản chất không gian dư liệu tập trung tiến trình không liên kết với nhau, chúng không cần sẵn sàng truyền đạt thiết lập Xa hơn, nhiều không gian dư liệu chia sẻ sử dụng giao diện SQL để chia sẻ kho dư liệu với ý nghĩa dư liệu truy nhập thông qua mô tả tham chiếu rõ ràng, trường hợp với file Sự cần thiết kiến trúc phần mềm để đảm bảo tính suốt hệ phân tán phải bàn cãi, nhiên yêu cầu tính suốt phải đánh đổi với hiệu hệ thống, khả chịu lỗi, khả thi lập trình số yêu cầu khác Không có lời giải tách biệt đảm bảo tất yêu cầu hệ phân tán, ta cần áp dụng tổng hợp giải pháp để đạt hiệu Tiến trình Khái niệm tiến trình bắt nguồn từ lĩnh vực hệ điều hành , định nghĩa chương trình thực thi Trong việc quản lý lập kế hoạch tiến trình có lẽ vấn đề quan trọng cần phải quan tâm Ví dụ , để tổ chức hiệu hệ thống client-server, người ta thường sử dụng kỹ thuật đa luồng Như thảo luận phần trước, đặc điểm quan trọng luồng hệ phân tán chúng cho phép máy trạm máy chủ xây dựng để kết nối xử lý nội chồng lên , điều dẫn đến hiệu suất cao , Trong năm gần , khái niệm ảo hóa trở nên phổ biến Ảo hóa cho phép ứng dụng có môi trường hoàn chỉnh bao gồm hệ điều hành , để chạy đồng thời với ứng dụng khác hoàn toàn độc lập phần cứng tảng nằm Hơn nưa , ảo hóa giúp tách cố gây lỗi hay vấn đề bảo mật Đây khái niệm quan trọng hệ phân tán Một vấn đề quan trọng , đặc biệt khu vực phân tán rộng, việc di chuyển tiến tình giưa máy tính khác Quá trình di chuyển hay cụ thể di trú mã 3.1 Luồng Để thực thi chương trình , hệ điều hành tạo số xử lý ảo, mỗi xử lý chạy chương trình khác Để theo dõi xử lý ảo , hệ điều hành có bảng tiến trình, mỗi mục lưu giá trị ghi, ánh xạ nhớ, tập tin mở, thông tin tính toán, quyền hạn … Một tiến trình thường định nghĩa chương trình thực thi Một vấn đề quan trọng hệ điều hành theo dõi chặt chẽ để đảm bảo tiến trình độc lập không vô tình cố ý ảnh hưởng đến hành vi tiến trình Tuy nhiên, thực tế nhiều trình chia sẻ xử lý tài nguyên phân cứng khác tính suốt hệ thống Thông thường , hệ điều hành yêu cầu phần cứng hỗ trợ để thực việc phân chia Điều làm chi phí cho tiến trình lớn Ví dụ , mỗi lần tiến trình tạo ra, hệ điều hành cần phải tạo không gian địa độc lập Phân phối nhớ xem khởi tạo phân đoạn nhớ cách xoá dư liệu, chép chương trình vào phân đoạn text, khởi tạo ngăn xếp Tương tự, chuyển đổi phục vụ CPU giưa tiến trình tương đối tốn Ngoài việc tiết kiệm CPU ( giá trị ghi , đếm chương trình , ngăn xếp trỏ ) hệ điều hành phải sửa đổi ghi nhớ quản lý (MMU ) nhớ cache đệm TLB Thêm vào đó, hệ thống hỗ trợ nhiều tiến trình đồng thời cần phải lưu tiến trình nhớ Nó có tiến trình nháp để trao đổi giưa nhớ ổ đĩa trước thực thực tiến trình Giống tiến trình, luồng thực thi đoạn mã độc lập với luồng khác Tuy nhiên, ngược với tiến trình không cố gắng để tạo độc lập với luồng khác việc làm giảm hiệu Do luồng hệ thống thường trì thông tin tối thiểu cho phép CPU chia sẻ vài luồng Đặc biệt, bối cảnh luồng thông thường gồm có bối cảnh CPU với số thông tin khác để quản lý luồng Ví dụ , hệ thống luồng đảm bảo luồng bị khóa thực thi Thông tin không thực cần thiết để quản lý đa luồng thường bị bỏ qua Vì lý , bảo vệ dư liệu chống lại truy cập không thích hợp luồng tiến trình đặt hoàn toàn vào người phát triển ứng dụng Có hai ý nghĩa quan trọng phương pháp Trước hết , hiệu suất ứng dụng đa luồng khó ứng dụng đơn luồng Trong thực tế, nhiều trường hợp đa luồng làm cho hiệu suất tăng Thứ hai, luồng không tự động bảo vệ lẫn cách tiến trình, nên việc phát triển ứng dụng đa luồng cần phát triển nưa, đảm bảo thiết kế giư thứ đơn giản tốt Tuy nhiên, thực nghiệm không chứng nguyên tắc nhà phát triển nắm rõ 3.2 Di trú mã Di trú mã đặc tính tính suốt hệ phân tán, nhằm di trú tiến trình (ngay chúng thực thi), nhằm đơn giản hoá việc thiết kế hệ phân tán Phương pháp tiếp cận Di trú mã hệ phân tán trình di chuyển toàn tiến trình từ máy sang máy khác Tuy điều làm tốn phức tạp hiệu mang lại hiệu rõ rệt Ý tưởng hiệu hệ thống tăng rõ rệt tiến trình di chuyển từ máy nặng tải sang máy nhẹ tải Các thuật toán phân chia tải cho hệ thống liên quan tới phân chia tái phân chia tác vụ với tập hợp vi xử lý, đóng vai trò quan trọng hệ thống tính toán cường độ lớn Mặc dù vậy, hệ thống tính toán đại, tối ưu tính toán tải đưa Hơn nưa, tính không đồng bên mạng máy tính, việc cải thiện hiệu thông qua di trú mã thường dựa lý định tính định lượng Ví dụ, trường hợp server chứa lượng sở dư liệu lớn, client cần thực nhiều hoạt động CSDL này, nên chuyển phần mã ứng dụng client sang server gửi kết qua mạng, giúp giảm tải đáng kể Điều áp dụng tương tự cho phía client Di trú mã áp dụng tính toán song song, dù không rắc rối lập trình song song Ví dụ cụ thể với trường hợp tìm kiếm thông tin WEB, thực hện thông qua tác tử di động, di chuyển từ site sang site khác Bằng cách chép tác tử này, kích thước nhỏ nên thời gian thực nhanh, gửi chúng tới site khác nhau, ta thu dược hiệu sử dụng chương trình đơn lẻ Bên cạnh việc cải thiện hiệu năng, số lý khác Lý quan trọng độ linh động hệ thống đơn giản ta chia ứng dụng thành đoạn khác nhau, đánh giá đoạn nên thực thi.Tuy nhiên, mã di chuyển giưa máy khác nhau, ta cấu hình động cho hệ phân tán Mô hình di trú mã Mặc dù di trú mã có nghĩa ta chuyển mã giưa máy, điểu bao hàm khu vực rộng lớn nhiều Theo truyền thống, truyền thông hệ phân tán liên quan tới việc trao đổi dư liệu giưa tiến trình Di trú mã theo nghĩa rộng di chuyển chương trình giưa máy với nhau, với mục tiêu thực chương trình để đạt mục đích Trong số trường hợp, trạng thái thực thi chương trình, thông tin hành số phần khác môi trường di chuyển theo Ta sử dụng mô hình sau : mô hình này, tiến trình chia thành phần Phần mã chứa tập lệnh thực tiến trình Phần tài nguyên chứa tài nguyên cần thiết file, máy in, thiết bị tiến trình khác Cuối cùng, phấn thực thi lưu giư trạng thái tiến trình thời điểm tại, gồm dư liệu riêng, ngăn xếp đếm chương trình Ta có mô hình di trú mã: mô hình di động yếu mô hình di động mạnh Trong mô hình di động yếu, ta chuyển phần mã, với số dư liệu ban đầu Chức mô hình chương trình truyền bắt đầu từ vị trí bắt đầu xác định trước Lợi ích rõ ràng phương pháp đơn giản, yêu cầu máy đích thực thi mã, thực tế làm giảm linh động mã Ngược với mô hình di động yếu, mô hình di động mạnh, tiến trình chạy dừng lại tiếp tục trạng thái hoạt động di chuyển từ máy sang máy khác Tuy nhiên phải trả giá việc khó triển khai so với mô hình di động yếu Trong trường hợp mô hình di động yếu, có khác mã di trú thực thi tiến trình đích với tiến trình riêng biệt, ví dụ với Java applet tải trình duyệt thực thi không gian địa trình duyệt Lợi ích rõ ràng không cần kết nối tới máy chủ, nhiên cần bảo vệ tiến trình đích trước mã độc sơ xuất thực thi Có thể giải cách hệ điều hành ý tới việc tạo tiến trình để thực thi mã di trú Tuy nhiên không giải vấn đề truy nhập tài nguyên trái phép Thay di chuyển tiến trình chạy, mô hình di động mạnh hỗ trọ remote cloning Trái ngược với di trú mã, ta chép hoàn toàn xác tiến trình gốc, thực máy khác Trong hệ thống UNIX, remote cloning chia nhánh tiến trình để tiến trình tiếp tục thực thi máy điều khiển Lợi ích việc nhân tạo mô hình gần tập hợp ứng dụng khác sử dụng Điểm khác tiến trình nhân thực thi máy khác Do đó, việc di trú cách nhân cách đơn giản để cải thiện tính suốt Tài nguyên di trú tài nguyên cục Cho tới phần này, ta xét tới mã di trú phần thực thi (execution segment) thực … Phân đoạn tài nguyên đòi hỏi ý đặc biệt Điều khó khăn thường gặp thực di trú mã phân đoạn tài nguyên dễ dàng chuyển phân đoạn khác mà không bị thay đổi Ví dụ, giả sử tiến trình nắm giư tham chiếu tới cổng TCP mà qua giao tiếp với tiến trình khác Do tham chiếu giư phân đoạn tài nguyên nó, tiến trình di chuyển sang vị trí khác, phải từ bỏ cổng cũ yêu cầu cổng vị trí Để hiểu hàm ý mà di trú mã có phân đoạn tài nguyên, ta phân biệt loại ràng buộc tiến trình-tài nguyên Loại ràng buộc mạnh tiến trình đòi hỏi tài nguyên dựa vào định danh Trong trường hợp đó, tiến trình yêu cầu xác tài nguyên tham chiếu, không yêu cầu khác Một ví dụ ràng buộc định danh tiến trình sử dụng VRL để yêu cầu Web site cụ thể yêu cầu tới FrP server địa Internet server Với nguyên nhân đó, tham chiếu tới điểm giao tiếp cục dẫn tới ràng buộc định danh Một dạng ràng buộc tiến trình – tài nguyên yếu ta quan tâm tới giá trị tài nguyên yêu cầu Trong trường hợp đó, thực thi tiến trình không bị ảnh hưởng tài nguyên khác cung cấp giá trị Một ví dụ cho ràng buộc giá trị chương trình dựa thư viện chuẩn, lập trình C Java chẳng hạn Các thư viện tồn cục bộ, vị trí xác chúng hệ thống file cục khác giưa site khác Nội dung chúng quan trọng cho việc thực thi xác tiến trình Cuối cùng, dạng ràng buộc yếu tiến trình yêu cầu loại định tài nguyên.Ràng buộc loại đơn giản tham chiếu tới thiết bị cục bộ, hình, máy in,… Khi di trú mã, thường cần thay đổi tham chiếu tới tài nguyên, làm ảnh hưởng tới loại ràng buộc tiến trình – tài nguyên Một tham chiếu thay đổi xác nào, phụ thuộc vào tài nguyên di chuyển với mã tới máy đích Cụ thể hơn, cần quan tâm tới ràng buộc tài nguyên – máy, phân biệt trường hợp khác nhau.Tài nguyên tách rời dễ dàng di chuyển giưa máy khác nhau, file cụ thể liên quan đến chương trình di trú Ngược lại, di chuyển hay chép tài nguyên gắn kết có thể, phải tốn chi phí cao Ví dụ, tài nguyên gắn kết sở dư liệu cục Website hoàn chỉnh Mặc dù tài nguyên, xét lý thuyết, không phụ thuộc vào máy chứa nó, thường di chuyển chúng tới môi trường khác Cuối cùng, tài nguyên cố định gắn kết cố định với máy tính môi trường cụ thể bị di chuyển Tài nguyên cố định thường thiết bị cục Một ví dụ khác tài nguyên cố định điểm truyền thông cục Kết hợp loại ràng buộc tiến trình – tài nguyên, loại ràng buộc tài nguyên – máy tính, dẫn tới kết hợp ta cần quan tâm thực di trú mã kiểu kết hợp hình 10 • Hình a : đĩa chép y nguyên • Hình b : trường hợp hệ thống gặp lỗi đĩa update đĩa chưa cập nhật Để tiến hành phục hồi, tiến hành so sánh đĩa với từng khối một, thấy sai khác lại cập nhật để giống • Hình c: trường hợp có khối tự động lỗi Khi có checksum error từ khối ổn định trước Nếu lỗi phát hiện, khối bị lỗi khôi phuc lại theo đĩa lại Ưu điểm lưu trư tĩnh tính tin cậy ghi đồng thời, sau kiểm tra lại nên khả có lỗi xảy Checkpointing : Trong hệ phân tán, khôi phục lùi yêu cầu hệ thống lưu lại trạng thái kho lưu trư tĩnh Nếu tiến trình P ghi lại trạng thái thu nhận thông điệp, có tiến trình Q ghi nhận gửi thông điệp Mỗi tiến trình lưu lại trạng thái theo trình tự thời gian vào kho lưu trư Để khôi phục, cần lấy trạng thái tốt gần để khôi phục lại hệ thống 44 Checkpointing độc lập Khi tiến trình gặp lỗi, động tác khôi phục lùi thực thi Tuy nhiên vấn đề nảy sinh chỗ tiến trình khôi phục trạng thái tốt gần điều không đảm bảo trạng thái tốt cho toàn hệ thống Nói cách khác, trạng thái ứng với trạng thái lỗi tiến trình khác hệ thống Điều dẫn tới việc phải liên tục kiểm tra điểm checkpoint từng tiến trình riêng biệt phải đảm bảo tính ổn định cho hệ thống, ta phải quay lui đạt thời điểm tối ưu, điều gọi hiệu ứng domino Hiệu ứng domino Việc tính toán điểm khôi phục để đảm bảo hoàn hảo cho hệ thống yêu cầu phân tích phần phụ thuộc ghi lại tiến trình hệ thống Điều vô phức tạp, đặc biệt hệ thống lớn Checkpointing phối hợp Với phương pháp này, tất tiến trình đồng để ghi lại trạng thái vào kho lưu trư cục Lợi ích phương pháp trạng thái lưu trư đồng tự động cho hệ thống, tránh hiêu ứng domino Phương pháp đảm bảo tính ổn định cho hệ thống, thông điệp đến thời điểm checkpoint, thông điệp gửi lưu vào hàng đợi thông điệp CHECKPOINT DONE nhận Ta cải thiện phương pháp cách multicast checkpoint tới tiến trình phụ thuộc vào thời điểm khoi phục lờ tiến trình khác Một tiến trình phụ thuộc vào tiến trình điều phối nhận thông điệp có tính nhân liên quan đến thông điệp gửi tiến trình điều phối lần gửi gần Lúc này, tiến trình multicast checkpoint tới tiến trình mà gửi thông điệp trước checkpoint cuối Khi tiến trình nhận thông điệp này, gửi yêu cầu tới tất tiến trình mà 45 từng gửi thông điệp trước checkpoint cuối Mỗi tiến trình gửi thông điệp lần tất tiến trình nhận diện, multicast thứ sử dụng để thực lấy trạng thái từ checkpoint để phục hồi hoạt động cho tiến trình toàn hệ thống II Hệ phân tán dựa WEB World Wide Web (www) xem hệ phân tán khổng lồ tiêu biểu với hàng triệu server client cho truy cập dư liệu Server chứa dư liệu client cung cấp cho người sử dụng giao diện thân thiện cho việc biểu diễn dư liệu truy nhập dư liệu Tính suốt đặc trưng tiêu biểu hệ phân tán, thể rõ rệt thông qua WEB Đối với người dùng , tài liệu lấy từ phía server , truyền tới client, biểu diễn hình Không có khác giưa tài liệu lưu trư bên client tài liệu lưu trư máy chủ, tận bên giới Theo nghĩa này, tính phân tán suốt Trong phần này, ta đưa số nội dung thể tính suốt tiêu biểu web, đại diện tiêu biểu hệ phân tán đại Kiến trúc 46 Kiến trúc hệ phân tán tảng web khác biệt so với hệ phân tán khác Mặc dù vậy, năm gần đây, tài liệu web không đơn tĩnh, mà chuyển sang xu hướng chứa phần tử chủ động, nhiều tổ chức hỗ trợ dịch vụ không đơn tài liệu nưa Hệ thống dựa web truyền thống Nhiều hệ thống dựa web tổ chức đơn giản dạng client-server Nhân web định dạng tiến trình truy cập tới hệ thống file cục lưu trư dư liệu Cách thức đơn giản thông qua Uniform Resource Locator (URL) Qua đó, ta xác định vị trí tài liệu, thường qua tên DNS để xác định vị trí server chứa dư liệu vật lý tài liệ yêu cầu Client giao tiếp với web server thông qua trình duyệt (browser), chịu trách nhiệm hiển thị tài liệu truyền đạt thông tin giưa người dùng hệ thống, thông qua giao thức truyền siêu văn HTTP (HyperText Transfer Protocol) Các tài liệu web Tài liệu web mang ý nghĩa rộng lớn : không đơn dạng kí tự (plain text), mà tài liệu chứa âm thanh, hình ảnh, hoạt hình … Trong nhiều trường hợp, ứng dụng trợ giúp đặc biệt cần thiết để thể tài liệu cách gần gũi với sống Hầu hết tài liệu web chứa phần : phần thường mang tính chất mẫu để biểu diễn phần lại tài liệu trình duyệt web., thường biểu diễn ngôn ngư đánh dấu (markup language) Tiêu biểu ngôn ngư HTML XML 47 • Ngôn ngư HTML : chuẩn để biểu diễn tài liệu dạng văn thông tin định dạng cần thiết (phông, kích cỡ, màu sắc …) để biểu diễn chúng HTML có chế mang tính điều kiện, phương pháp để biểu diễn dư liệu dạng ngắn gọn mở rộng người dùng HTML cung cấp khả định danh cho tài liệu, gọi liên kết siêu văn (hypertext links) hay metalink Nhưng liên kết xác định vị trí tài liệu mà người dùng cần truy cập tới, dạng văn dạng hình ảnh đồ hoạ • Ngôn ngư XML : dạng tổng quát HTML để bao quát dạng dư liệu lớn Nó dạng biểu diễn dài dòng, sử dụng mã ASCII để mã hoá dư liệu Các đối tượng XML có khả tự mô tả, khác với ghi truyền thống thường mang tính quy chuẩn Do dài dòng nên XML có kích cỡ lớn, chưa có khả thay dạng biểu diễn khác, nhiên với tính rộng khắp khả hoạt động song song, tương lai XML trở thành ngôn ngư tương lai, đơn giản hoá đáng kể việc lập trình Một số dạng tài liệu web Định danh Vấn đề định danh, đặc biệt với web, đặc tính thể hiên tính suốt vị trí, có nghĩa ta không cần biết vị trí thực trang web mặt vật lý vẫn đảm bảo khả truy cập dư liệu cần đến Web sử dụng hệ thống định danh đơn để tham chiếu tới tài liệu gọi Uniform Resource Identifiers (URI) Có loại URI: 48 • Uniform Resource Locator (URL) : định danh tài liệu cách đưa thêm thông tin vị trí cách thức truy cập tài liệu • Uniform Resource Name (URN) : đóng vai trò đối tượng định danh đích thực, sử dụng đối tượng tổng thể nhất, độc lập vị trí liên kết vưng chắc với tài liệu Ta xét tới cấu trúc URL : • Cách thức truy cập : thông qua chế http, ftp hay telnet • Vị trí tài liệu : ý nghĩa tên DNS server địa IP server • Số hiệu cổng mà server lắng nghe • Tên tài liệu muốn truy cập tới Các cấu trúc thông dụng URL a) sử dụng tên DNS b) Kết hợp yên DNS só cổng c) Kết hợp địa IP với địa cổng Ngoài ta có số dạng URI khác, dùng đặc trưng cho yêu cầu khác không dành riêng cho vấn đề tham chiếu đến tài liệu Ví dụ, URI telnet dùng để cài đặt phiên telnet cho server; URI tel dùng để chứa số điện thoại để client thiết lập gọi tới mạng điện thoại 49 Sự nhân Sự nhân cho hệ thống lưu trữ web Vai trò quan trọng web ngày tăng mặt tổ chức để đảm bảo khả biểu diễn kết nối trực tiếp với người dùng, ta cần đảm bảo nội dung đồng thời khả tiện dụng truy cập Sự phân biệt mở đường cho mạng phân phối nội dung (content delivery networks CDNs) Ý tưởng đặt CDN bên dưới, để chúng đóng vai trò dịch vụ web, cung cấp sở hạ tầng cho phân tán chép tài liệu web cho nhiều trang khác Internet Tổ chức chung CDN dạng phản hồi Có hướng liên quan tới việc thực chép hệ thống lưu trư web: đánh giá khoảng cách (metric estimation), adaptation triggering thực phép đo thích hợp (appropriate measures) Đánh giá độ đo 50 Một vấn đề đáng ý CON cần phải đánh giá vai trò mặt có liên quan đến vấn đề lưu trư Ví dụ, thời gian truy cập đến tài liệu tối ưu chép với số lượng lớn, lai đòi hỏi chi phí lớn tài băng thông cho hệ thống Do tuỳ trương hợp mà có tiêu chí đánh giá khác • Độ trễ : khoảng thời gian để thực hành động, ví dụ tìm kiếm tài liệu Ví dụ đánh giá độ trễ giưa client vài remote server Thay đánh giá độ trễ, ta xác định băng thông thích hợp giưa nút mạng, đặc biệt quan trọng việc truyền tài liệu có kích cỡ lớn • Độ đo không gian : bao gồm khoảng cách giưa nút thông qua số hop lớp mạng, số hop giưa hệ thống tự trị Tuy nhiên việc khó thực • Độ đo mức độ sử dụng mạng : thường liên quan đến băng thông, việc tính toán băng thông số byte truyền qua mạng đơn giản Tuy nhiên để xác, ta nên đánh giá mức độ thường xuyên mà tài liệu đọc, ghi, nhân • Độ đo tính quán : xác định mức độ sai lệch so với gốc • Độ đo tài : xác định mức độ hoạt động tốt CDN Tuy không mang tính kĩ thuật, trương hợp hoạt động hệ thống tài chính, lại yếu tố định Ví dụ, hầu hết CDN tài đặt server trạm đỉnh mạng Internet, nghĩa họ thuê trực tiếp từ ISP để phục vụ người dùng cuối Điều làm gắn chặt mo hình kinh doanh với mô hình kĩ thuật, thực tế tài liệu đưa mối liên hệ Qua ví dụ trên, ta thấy việc đánh giá hiệu CDN phức tạp Trong thực tế với CDN tài chính, ta đơn giản hoá khả phục vụ nhanh người dùng, thực tốt yêu cầu khách hàng Adaptation triggering Vấn đề cần đặt thực trình nhân Một cách thức đơn giản đánh giá độ đo theo chu kỳ sau thực đo cần Cách thường 51 thực thực tế Một tiến trình xác định thông tin cuar server định kì kiểm tra thay đổi Tuy nhiên việc thực mang tính chu kỳ không đảm bảo độ tin cậy có thay đổi đột ngột hệ thống, ví dụ flash crowd Đó kiện xuất bùng nổ yêu cầu cho tài liệu đặc biệt đó, điều làm sụp đổ hệ thống Việc điều khiển flash crowd khó khăn Một giải pháp sử dụng tiến trình đoán flash crowd để đảm bảo để server có đủ thời gian thiết lập sao, thật khó để đưa dự đoán xác Một giải pháp khác đưa sử dụng kiến trúc nội suy tuyến tính đơn, thông qua việc đánh giá số yêu cầu gửi đến khoảng thời gian dựa theo kích cỡ cửa sổ Các khoảng chia thành đoạn nhỏ, từ nội suy để xác định hình dạng đường cong thể lượng yêu cầu phụ thuộc thời gian Nếu yêu cầu gần đạt tới giá trị ngưỡng, cảnh báo đưa Các mẫu đo phản ánh truy cập flash crowd trương hợp bình thường trường hợp bất thường Tuy nhiên, phương pháp không hiệu phụ thuộc vào kích thước cửa sổ, dẫn đến phụ thuộc vào lưu lượng server web Do ta cần chỉnh tay để đạt dự đoán xác cho từng site riêng biệt mà chưa có chế tự động Điều chỉnh độ đo 52 Vai trò việc tái định hướng (redirection) quan trọng việc gửi yêu cầu client, điều thực thông qua giao thức tái định hướng thích nghi, đảm bảo cho thông tin tiến trình thực việc tái định hướng Bên cạnh việc sử dụng giao thức khác nhau, vấn đề dược đưa có cần đảm bảo việc tái định hướng yêu cầu có nên suốt với client hay không Có kĩ thuật sử dụng thực tế : TCP handoff, tái định hướng DNS(DNS redirection), tái định hướng HTTP( HTTP redirection) • Tái định hướng DNS : chế suốt đảm bảo client hoàn toàn không hay biết vị trí thực tài liệu Chú ý rằng, chế áp dụng cho site thực thể tên tài liệu đơn không hợp với không gian tên cuả DNS • Tái định hướng HTTP: ngược lại, không chế suốt Khi client yêu cầu tài liệu đặc biệt đó, nhận URL tạm để sau tái định hướng URL người dùng, nên lưu lại địa này, vô dụng lần yêu cầu sau Nhân ứng dụng web Trong phần ta tập trung vào kĩ thuật cache chép tĩnh nội dung Web Các kĩ thuật cỉa thiện đáng kể hiệu hệ thống, việc kết hợp kĩ thuật cho phép đạt hiệu cao so với từng kĩ thuật đơn lẻ Ta xét ví dụ đây, giả sử CDN, mỗi host server gốc đóng vai trò định việc khiển yêu cầu client, có khả lưu trư từng phần thông tin giống server gốc 53 Các phương án cải thiện hiệu hệ thống : • Áp dụng đầy đủ cho tất dư liệu lưu server, điều áp dụng tốt tỉ số cập nhật nhỏ truy vấn yêu cầu tìm kiếm sỏ dư liệu mở rộng Tuy nhiên điều thực tỉ số cập nhật lớn, mỗi cập nhật tạo gánh nặng cho hệ thống mạng Vấn đề truy vấn phức tạp, điều dẫn tới việc truy cập tới nhiều bảng gây khó khăn cho việc tìm kiếm dư liệu • Điều dẫn tới việc thực từng phần, làm giảm nhẹ đáng kể gánh nặng cho hệ thống Nhưng vấn đề nảy sinh định xem dư liệu nên tạo sao, giải pháp cho phương án ta phân tích vết truy cập ghi trước thực thông qua hàm đánh giá Cost = • ∑ w m , với i = 1÷n m độ đo khoảng cách w trọng số dương i i i i Tạo cache nội dung-mù (content-blind) Ý tưởng phương pháp đơn giản: client đưa yêu cầu tới server edge, server tính toán giá trị băm truy vấn này, từ xác định xem có tồn truy vấn chưa Nếu chưa có lưu vào cache trước gửi tới client, có cache gửi cho client Phương pháp làm giảm đáng kể mức độ tính toán so sánh với việc ta phải tiếp xúc với CSDL Tuy nhiên trở nên vô dụng cache có nhiều dư liệu dư thừa so với nội dung cần thiết hay so với CSDL Các phương pháp triển khai việc hình thành dịch vụ web, nhiên cần có nhiều nghiên cứu trước đưa giải pháp ổn định Tính chịu lỗi Tính chịu lỗi hệ phân tán dựa Web thường sử dụng thông qua cache client-server server Không có biện pháp đặc biệt có khả kết hợp chặt chẽ, ví dụ, cho tính chịu lỗi cho HTTP khả khôi phục Mặc dù vậy, khả sẵn sàng dịch vụ chủ yếu DNS DNS cho phép vài địa 54 trả kết phép tìm kiếm tên Trong hệ thống Web, tính chịu lỗi đạt dễ dàng mà không quan tâm đến thiết kế server Khi lỗi đến từ dịch vụ Web, có số biện pháp tương tự Tuy nhiên, vấn đề che giấu lỗi khôi phục yêu cầu mức khắt khe Ví dụ, dịch vụ Web hỗ trợ giao dịch phân tán diện rộng giải pháp chắc chắn phải liên quan tới vấn đề lỗi dịch vụ tham gia truyền thông không đáng tin cậy Quan trọng hơn, dịch vụ Web, ta xử lý với đồ thị phức tạp Trong nhiều hệ thống truyền thông Web, ta dựa thỏa thuận giưa client-server Điều có nghĩa client gọi server, sau ước tính đáp ứng mà không cần thêm dịch vụ mở rộng tính chịu lỗi thường nhân cách nhân server cách đơn giản sử dụng phần kết cache Tình không dịch vụ web, nhiều trường hợp ta gặp phải vấn đề server đóng vai trò client Vấn đề trở nên trầm trọng cho dịch vụ thiết kế để chống lại lỗi tùy tiện Nhâ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ò client dịch vụ không nhân khác Có tình cần giải : • Client dịch vụ BFT nhìn dịch vụ dịch vụ web khác Đặc biệt, điều có ý nghĩa nhân bên dịch vụ nên che giấu client, song song với trình hồi đáp đắ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ử dịch vụ BFT thiết kế để chịu tối đa k tiến trình lỗi • Dịch vụ BFT nên đảm bảo tính quán bên đóng vai trò client, đặc biệt phải chịu trường hợp dịch vụ bên trả kết khác từ khác Điều xảy dịch vụ gặp cố Các cần chạy giao thức thỏa thuận mở rộng cho giao thức mà chạy mà có khả cung cấp tính chịu lỗi tùy tiện Sau thực thi giao thức này, chúng có khả gửi trả lời ngược lại client • Cuối cùng, dịch vụ mở rộng coi dịch vụ BFT client, thực thể đơn Đặc biệt, dịch vụ chấp nhận yêu cầu cách tùy 55 tiện từ đơn, mà phải đảm bảo đủ k+1 yêu cầu từ khác Ba tình dẫn tới thành phần khác phần mềm liên kết với toolkit để phát triển dịch vụ Web 56 C Kết luận Vai trò hệ phân tán phát triển máy tính bàn cãi, đặc biệt quy mô hệ thống máy tính ngày lớn Các đặc tính hệ phân tán giúp có điều kiện thuận lợi cho việc phát triển Tuy nhiên bên cạnh đặc tính thuận lợi hệ phân tán, tồn nhiều vấn đề việc xây dựng hệ thống để đảm bảo cá tính chất tốt hệ Do việc nghiên cứu hệ phân tán ngày đóng vai trò quan trọng việc xây dựng mạng máy tính Trong số đặc tính hệ phân tán, tính suốt đặc tính quan trọng, tạo điều kiện để khai thác hiệu 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 suốt tạo điều kiện để phát triển nâng cao hiệu hệ thống, đồng thời vẫn đảm bảo hệ phân tán hệ thống phục vụ người dùng 57 Tài liệu tham khảo Distributed System: Principles and Paradims – A Tanenbaum, M Van Steen Reliable Distributed Systems Technologies, Web Services, and Applications - Kenneth P Birman 58 [...]... trình truy cập tới thực thể đã được đặt tên Để phân giải tên, cần phải bổ sung hệ thống định danh Sự khác nhau giưa việc đặt tên trong hệ phân tán và hệ không phân tán nằm ở cách hệ thống đặt tên được thực hiện Tên (Name) Địa chỉ (Address) Một xâu bit/char để tham chiếu đến 1 thực thể trong hệ phân tán Một xâu bit/char để tham chiếu đến 1 thực thể trong hệ phân tán Định danh (ID) Một tên đặc biệt có các... Một đặc tính của hệ phân tán khác biệt với các hệ thống máy đơn lẻ là khái niệm lỗi bộ phận, xảy ra khi một thành phần của hệ thống gặp sự cố Lỗi này có thể ảnh hưởng đến hoạt động của các thành phần khác, trong khi một số thành phần không chịu bất cứ ảnh hưởng nào Ngược lại, sự cố trong các hệ không phân tán thường làm cả hệ thống phải ngừng hoạt động Mục đích quan trọng của hệ phân tán là xây dựng... nưa ngoài server đó, mặc dù server đó bị lỗi Mối quan hệ phụ thuộc đó xuất hiện rất thường xuyên trong hệ phân tán Một đĩa cứng bị lỗi có thể ảnh hưởng đến một file server được thiết kế để cung cấp hệ thống file có tính sẵn sàng cao Nếu một file server như vậy là một phần của một hệ cơ sở dư liệu phân tán, sự hoạt động chính xác của hệ toàn bộ hệ cơ sở dư liệu có thể bị đe dọa và chỉ một phần dư liệu... dụng các máy ảo 4 Truyền thông Truyền thông đa tiến trình là trái tim của hệ phân tán Hệ phân tán hiện đại chứa hàng nghìn, thậm chí hàng triệu tiến trình đồng thời hoạt động trong mạng, tiêu biểu như Internet Trong phần này, ta sẽ xét tới vai trò của các mô hình truyền thông hiện đại trong việc đảm bảo tính trong suốt của hệ phân tán: • Gọi thủ tục từ xa RPC (Remote Procedure Call) • Triệu gọi đối tượng... thiết bị hỏng sẽ không ảnh hưởng đến sự hoạt động của hệ thống Mặc dù không phải mọi hệ phân tán có khả năng chịu lỗi đều sử dụng TMR nhưng kỹ thuật đó là rất phổ biến để cung cấp một cái nhìn rõ ràng về một hệ thống có khả năng chịu lỗi Phục hồi tiến trình Ta sẽ tập trung vào cách thức tiến hành để có thể đạt được khả năng chịu lỗi trong hệ phân tán Phần trên ta đưa ra cách thức ngăn chặn lỗi xảy... sử dụng bản sao Dư liệu nói chung trong hệ phân tán được nhân lên thành nhiều bản để tăng thêm tính tin cậy và tăng hiệu năng Vấn đề chính của các bản sao là sự nhất quán giưa các bản sao khi một hoặc 1 số bản sao bị thay đổi Ta cần quan tâm tới 2 vấn đề : quản lý bản sao và giư các bản sao được nhất quán khi xây dựng hệ phân tán • Để tăng tín tin cậy cho hệ thống : Trong quá trình đọc hoặc ghi dư... chiếu toàn cục Di trú trong các hệ thống hỗn tạp Cho tới giờ, chúng ta ngầm định rằng các mã di trú có thể được thực thi dễ dàng ở máy đích Giả định này được coi là hợp lệ khi xử lý với các hệ thống hỗn tạp Một cách tổng quát, dĩ nhiên, các hệ phân tán được cấu trúc bởi một tập các platform hỗn tạp, đều có hệ điều hành riêng và kiến trúc máy tính riêng Di trú trong mỗi hệ thống đó đòi hỏi mỗi platform... hướng dạng (Stream Oriented Middleware) 4.1 Gọi thủ tục từ xa RPC Rất nhiều hệ phân tán dựa trên việc trao đổi thông điệp chi tiết giưa các tiến trình Tuy nhiên các thủ tục truyền và nhận trong giao tiếp không hoàn toàn được che giấu, trong khi tính trong suốt trong truy cập là một trong nhưng đặc tính quan trọng của hệ phân tán Vấn đề này đã được đặt ra từ lâu nhưng chỉ cơ bản được giải quyết khi... Việc che giấu lỗi trong hệ phân tán tập trung vào trường hợp có tiến trình bị lỗi Nhưng ta cũng phải xét đến trường hợp các giao tiếp bị lỗi Thông thường, một kênh giao tiếp có thể gặp các lỗi: lỗi sụp đổ, lỗi bỏ sót, lỗi thời gian và lỗi tùy ý Việc xây dựng một kênh truyền thông tập trung vào che giấu lỗi sụp đổ và lỗi tùy ý Truyền thông điểm – điểm Trong hệ phân tán, truyền thông điểm –... quan trọng trong tất cả các hệ thống máy tính Chúng thường được sử dụng để chia sẻ tài nguyên, nhận biết các thực thể duy nhất, tương ứng với các vị trị và hơn nưa Một vấn đề quan trọng của việc định danh đó là tên có thể được phân giải tới thực thể tương ứng Ngoài ra, việc định danh cũng có vai trò quan trọng trong việc đảm bảo tính trong suốt về vị trí ytong hệ phân tán Giải pháp định danh cho phép

Ngày đăng: 12/01/2016, 20:20

Từ khóa liên quan

Mục lục

  • Truyền các tham số (Parameter Passing)

  • RPC dị bộ (Asynchronous RPC)

  • RPC đồng bộ trễ (Deferred synchronuos RPC)

  • RPC đơn tuyến (one- way RPC)

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan