Cho một ví dụ về chia sẻ tài nguyên mạng

Giới thiệu về cuốn sách này


Page 2

Giới thiệu về cuốn sách này

Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápMỤC LỤC2.3.1. Mô hình Client/Server 112.3.1. Mô hình hướng đối tượng 123.1.1. Chia sẻ tài nguyên phần cứng 133.1.2. Chia sẻ tài nguyên phần mềm và dữ liệu 143.2.2. Truyền thông (Communication) 163.2.3. Bảo vệ tài nguyên 17 Trang 1 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápMỞ ĐẦUHiện nay nhiều lĩnh vực khoa học đã phát triển mạnh mẽ và đạt được nhiều thành tựu to lớn. Trong đó có công nghệ thông tin và đặc biệt là internet đã góp phần không ngỏ vào sự phát triển của xã hội.Nhờ sự phát triển của internet nên hệ phân tán đã góp phần rất lớn vào việc quản lý mạng, điều hành mạng, quản lý file, quản lý bộ nhớ và định vị công việc …, bên cạnh cũng có một số vấn đề cần giải quyết trong hệ phân tán đó là:“Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải pháp”Dưới sự hướng dẫn tận tình của TS. Hoàng Minh Thức em đã cố gắng hoàn thành tốt bài tiểu luận này. Nhưng trong quá trình thực hiện không tránh khỏi những sai sót, mong thầy góp ý để bài tiểu luận được hoàn thiện hơn.Em xin chân thành cảm ơn! Trang 2 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápCHƯƠNG 1: GIỚI THIỆU CHUNG VỀ HỆ PHÂN TÁN1.1. Định nghĩa về hệ phân tánĐịnh nghĩa:Có nhiều định nghĩa về hệ phân tán, hầu hết các định nghĩa này đều không hoàn toàn chính xác. Nói chung, 3 định nghĩa sau đây có thế thích hợp đối với chúng ta và được sử dụng rộng rãi:Định nghĩa 1: Hệ phân tán là một hệ thống có chức năng và dữ liệu phân tán trên các trạm (máy tính) được kết nối với nhau thông qua một mạng máy tính.Định nghĩa 2: Hệ phân tán là một tập hợp của những máy tính tự trị được kết nối với nhau bởi một mạng máy tính, và được cài đặt phần mềm hệ phân tán.Định nghĩa 3: Hệ phân tán là một tập các máy tính độc lập, xuất hiện đối với người sử dụng như một hệ thống thống nhất.Tóm lại, chúng ta có thể nói: Hệ phân tán = mạng máy tính + phần mềm hệ phân tán.Ví dụ:Ví dụ đầu tiên của hệ phân tán chính là mạng máy tính. Mạng là tập các máy tính/thiết bị chuyển mạch được kết nối bởi các liên kết truyền thông nhằm chia sẻ thông tin và tài nguyên. Trong mạng này, các tài nguyên trở nên khả dụng đối với bất kỳ người sử dụng nào trên mạng.Ví dụ thứ hai là một hệ thống thông tin có thể thực hiện tự động các lệnh trong việc xử lý ở văn phòng. Hê thống đó được sử dụng từ nhiều văn phòng khác nhau, từ nhiều địa điểm khác nhau. Mỗi trạm có thể tham gia vào một ứng dụng toàn cục trong hệ thống. Người sử dụng chỉ kết nối vào hệ thống và sử dụng dữ liệu mà không cần biết dữ liệu đó ở tại máy nào trong hệ thống. Người sử dụng luôn nghĩ rằng mình làm việc một cách độc lập không hề liên quan đến các máy tính khác.Ví dụ tiếp theo là World Wide Web. Đó là một mô hình của tài liệu phân tán. Để tìm thấy tài liệu, người sử dụng chỉ chỉ ra được nội dung mà mình muốn tìm thì toàn bộ tài liệu sẽ suất hiện trên màn hình. Bạn chỉ phải đưa ra một cái tên duy nhất trong khung URL (Uniform Resource Locator). Người sử dụng luôn biết được là tài liệu mà mình sử dụng có từ nhiều nơi khác nhau và được xử lý bởi các phục vụ khác nhau.Và một số ví dụ khác như:• Hệ điều hành phân tán (Distributed Operationg Systems)• Cơ sở dữ liệu phân tán (Distributed DataBase) Trang 3 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải pháp• Các hệ thống tính toán phân tán (Distributed Computing Systems)• Các dịch vụ thông tin trên mạng Internet như E-mail, Web-based Service, 1.2. Mục tiêu và đặc trưng của hệ phân tán1.2.1. Chia sẻ nguồn tài nguyên (Resource Sharing)Là một đặc tính cơ bản của hệ thống phân tán, nó là cơ sở cho những đặc tính khác và nó ảnh hướng đến những kiến trúc phần mềm có sẵn trong các hệ phân tán. Trong hệ phân tán, tập tài nguyên chung là hữu hạn, số lượng các tiến trình cần chia sẻ tuy cũng là hữu hạn nhưng có thể rất lớn và phân tán trên nhiều trạm, vì thế cơ chế quản lý và chia sẻ tài nguyên trông hệ phân tán là rất phức tạp và khó khăn hơn nhiều so với hệ tập trung.Các nguồn tài nguyên để chia sẻ có thể là phần cứng như ổ đĩa, máy in và các thiết bị ngoại vi khác, cũng có thể là phần mềm như hệ thống tập tin, cơ sở dữ liệu, các đối tượng dữ liệu … Các thiết bị phần cứng như máy in, ổ đĩa cứng dung lượng lớn và những thiết bị khác được chia sẻ để thuận tiện trong việc sử dụng và giảm chi phí.Việc chia sẻ dữ liệu là một yêu cầu cần thiết trong nhiều ứng dụng máy tính, các nguồn tài nguyên của một máy tính đa người sử dụng thông thường được chia sẻ cho mọi người sử dụng. Những nguồn tài nguyên trong một hệ phân tán được gói gọn trong các máy tính và chỉ có thể truy nhập từ những máy tính khác bằng cách liên lạc.Để việc chia sẻ hiệu quả, mỗi tài nguyên phải được quản lý bằng một chương trình, cung cấp một giao diện truyền thông cho phép tài nguyên được điều khiển truy cập và cập nhật một cách tin cậy và đồng nhất.Ta có thể tiếp cận phương thức chia sẻ tài nguyên trên hai mô hình đặc trưng của hệ phân tán, đó là mô hình khách/chủ (Client/Server model) và mô hình hướng đối tượng (Object based model).a. Mô hình Client/ServerTrong mô hình Client/Server, có thể có một hay nhiều máy server, mỗi máy server đóng vai trò như một bộ quản lý tài nguyên (resource manager) đối với tập hợp các tài nguyên và các tiến trình của máy trạm. Việc thực hiện các vụ đòi hỏi phải có thể truy cập đến các tài nguyên phần cứng và phần mềm trong hê thống. Trong mô hình khách chủ, tất cả các tài nguyên dùng chung đều được nắm giữ và quản lý bởi các server. Khi máy client có nhu cầu sử dụng tài nguyên, nó sẽ gửi yêu cầu lên máy server, nếu yêu cầu được chấp thuận, máy server sẽ thực hiện yêu cầu và gửi trả lời đến máy trạm.Mô hình client/server rất có hiệu quả trong hệ thống hiện hành với những dịch vụ quản lý được rất nhiều kiểu của những nguồn tài nguyên dùng chung như: thư điện tử, tin nhắn, file, đồng hồ đồng bộ trong mạng Trang 4 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápdiện rộng, đĩa lưu trữ, máy in, truyền thông trên diện rộng và thậm chí hiển thị trong những không gian cửa sổ trên màn hình của từng máy mạng. Nhưng nó không thể hữu dụng cho tất cả những nguồn tài nguyên tồn tại trong một hệ phân tán được quản trị và chia sẻ theo cách này; với những nguồn tài nguyên còn lại của máy tính như: RAM, bộ vi xử lý trung tâm và giao diện mạng cục bộ thường có hiệu quả sử dụng tài nguyên rất thấp. Những nguồn tài nguyên cơ bản này được quản trị riêng biệt bởi một hệ điều hành trên mỗi máy tính, chúng có thể được chia sẻ chỉ giữa các tiến trình định vị trên cùng một máy tính.b. Mô hình hướng đối tượngHệ thống hướng đối tượng có thể cung cấp nhiều mô hình phức tạp hơn cho việc quản lý chia sẻ các nguồn tài nguyên. Mỗi tài nguyên được xem như là một đối tượng, đối tượng này được định danh duy nhất trong toàn bộ hệ thống. Đối tượng có thể di động trên mạng mà không cần thay đổi dịnh danh. Nếu một tiến trình cần sử dụng tài nguyên, nó sẽ gửi bản tin yêu cầu tài nguyên đến đối tượng tương ứng và có chương trình điều phối tương ứng sẽ tập hợp các yêu cầu này, xử lý yêu cầu và trả lời cho tiến trình.Không như mô hình client/server, mô hình hướng đối tượng thực thi cả việc truy cập tài nguyên người sử dụng và tài nguyên người quản trị. Trong mô hình client/server bản đồ tên được sử dụng cho những nguồn tài nguyên phụ thuộc vào dịch vụ quản trị chúng. Nhưng trong mô hình hướng đối tượng những nguồn tài nguyên người sử dụng có thể được xem như là tất cả những nguồn tài nguyên cùng loại.Chúng ta có thể sử dụng thuật ngữ quản trị đối tượng là một tập hợp của những thủ tục và những giá trị dữ liệu đặc trưng cho một lớp đối tượng.Trong quá trình hoạt động của mô hình hướng đối tượng phát sinh một vài vấn đề khó khăn. Yêu cầu một đối tượng quản trị của một kiểu liên quan phải được định vị bất cứ khi nào một đối tượng trong đó được định vị, vì những đối tượng nằm trong một trạng thái biểu diễn của chúng và người quản trị phải được định vị liên hợp với một đối tượng được sắp xếp truy cập trong trạng thái của chúng. Điều này dễ hiểu khi những đối tượng không thể di chuyển và vài hệ phân tán được thiết kế để hỗ trợ những đối tượng địa chỉ đồng nhất được tạo ra.1.2.2. Tính trong suốt (Transparency)Tính trong suốt được định nghĩa như sự che giấu với người dùng cuối và người lập trình ứng dụng sự rời rạc có thể có của hệ thống. Nhờ đó hệ thống phân tán được xem như một mạng tích hợp các thành phần, sự phân tán về tài nguyên được che giấu đối với người dùng. Trang 5 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápISO định nghĩa 8 mô hình trong suốt – Mô hình tham chiếu cho việc xử lý phân tán mở:a. Trong suốt truy cập (Access Transparency) Cố gắng che dấu sự khác biệt về cách biểu diễn và cách truy cập tài nguyên. Ví dụ như trong quá trình giao tiếp giữa hai máy Intel và Sun, hai máy tuân theo hai chuẩn biểu diễn dữ liệu khác nhau: Intel là little-endian còn Sun là big-endian, nhưng nhiệm vụ của hệ phân tán là phải che giấu đi sự khác biệt này để người dùng không phát hiện ra.b. Trong suốt định vị (Location Transparency) Cố gắng che dấu vị trí của tài nguyên. Ví dụ như cách đặt tên chỉ ra vị trí logic còn che dấu đi vị trí vật lý đặt trên server.c. Trong suốt tương tranh (Concurrency Transparency) Một mục tiêu quan trọng của hệ phân tán là chia sẻ tài nguyên. Như vậy một điều tất yếu là sẽ xảy ra tương tranh trong sử dụng. Tương tranh là hiện tượng nhiều người dùng cùng truy cập tới những file của họ trên cùng một server. Vì thế, trong suốt tương tranh là che dấu được việc xây ra tương tranh, che dấu được việc chia sẻ tài nguyên.d. Trong suốt nhân bản (Replication Transparency) Trong hệ phân tán, một dữ liệu gốc phải được sao chép ra nhiều bản sao nhằm tăng tính sẵn sàng hoặc tăng hiệu năng của hệ thống. Trong suốt về nhân bản là nhằm che dấu người sử dụng về việc sử dụng các bản sao. Để đảm bảo việc này thì tất cả các bản sao đều phải có cùng một tên. Chính vì vậy, hệ thống hỗ trợ trong suốt nhân bản thì cũng đồng thời tron suốt về vị trí.e. Trong suốt lỗi (Fault Transparency) Là che dấu người dùng khi hệ thống bị lỗi và có khả năng phục hồi từ trạng thái lỗi đó.f. Trong suốt di trú (Migration Transparency) Là che dấu khả di chuyển của tài nguyên. Tài nguyên có thể được di chuyển khắp nơi trên hệ phân tán nhưng không làm ảnh hưởng đến việc truy cập của sever. Người dùng đang truy cập có thể đi từ nơi này sang nơi khác mà không ảnh hưởng đến việc truy cập tài nguyên.g. Trong suốt định vị lại (Relocation Transparency) Là cố gắng che dấu một tài nguyên mà có thể được chuyển sang vị trí khác trong khi tài nguyên đó đang được sử dụng.1.2.3. Tính mơ (Openness)Một mục đích quan trọng của hệ phân tán là khả năng mở rộng. Một hệ phân tán mở là một hệ thống mà trong đó các dịch vụ tuân theo những chuẩn mô tả về cú pháp và ngữ nghĩa. Ví dụ như trong truyền thông, các chuẩn được mô tả trong các protocol, còn trong hệ phân tán các dịch vụ được cụ thể hoá qua các giao diện( interface). Các giao diện được định nghĩa thông qua Interface Definition Trang 6 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápLanguage( IDL). Hay nói cách khác, các dịch vụ được cụ thể hoá, chúng được đặc tả bởi tên các hàm, các biến, các giá trị trả về,… Chỉ cần các gia diện được đặc tả đầy đủ, đúng đắn thì các dịch vụ khác nhau có thể cùng hoạt động trong hệ phân tán . Hai thành phần của hệ thống từ những máy khác nhau có thể cùng tồn tại và làm việc với nhau đơn thuần là chỉ nhờ thông qua các chuyển thông thường gọi là liên tác(Interoperability). Còn thuật ngữ chuyển mạng( Portability) là nhằm chỉ đến việc một ứng dụng được thiết kế cho hệ phân tán A có thể thực thi trên hệ phân tán B mà không cần phải sửa đổi gì, chỉ cần trên B cũng có các giao diện giống trên A.1.2.4. Tính co dãn (Scalability)Tính co dãn là một mục tiêu quan trọng nhất của người thiết kế hệ phân tán. Tính co dãn thể hiện ở ba khía cạnh:• Co dãn về kích cỡ: việc thêm bớt người dùng và tài nguyên một cách dễ dàng.• Co dãn về địa lý: hệ thống có thể thay đổi về mặt địa lý, ví dụ như địa chỉ của người dùng hoặc tài nguyên có thể thay đổi dễ dàng.• Co dãn về mặt quản trị: hệ thống được quản trị dễ dàng, thậm chí có thể thay đổi quản trị từ nhiều thành phần độc lập.1.2.5. Tính chịu lỗi(Fault Tolerance)Các hệ thống thỉnh thoảng xảy ra lỗi, vì thế phải thiết kế để cho hệ thống vẫn hoạt động, các tiến trình không bị ngắt khi có lỗi xảy ra. Có hai giải pháp: - Tăng cường tài nguyên phần cứng (Hardware Redundancy).- Phần mềm hệ phân tán: xây dựng phần mềm có thể bỏ qua lỗi khi gặp phải để hệ thống vẫn hoạt động, tuy nhiên phải có chức năng phục hồi lỗi để khắc phục lỗi.1.3. Các kiểu hệ phân tánDưới đây ta sẽ nói về các kiểu khác nhau của hệ phân tán. Chúng ta sẽ phân biệt giữa các hệ thống tính toán phân tán, các hệ thống thông tin phân tán và các hệ thống nhúng phân tán.1.3.1. Các hệ thống tính toán phân tán(Distributed Computing Systems)Một lớp quan trọng nữa của hệ phân tán là nó được dùng cho công việc tính toán có hiệu năng cao (high-performance computing tasks). Để đáp ứng cho công việc trên ta có hai kỹ thuật hệ thống tính toán là: Cluster Computing Systems và Grid Computing Systems.• Cluster Computing SystemsLà một hệ thống tính toán có hiệu năng cao chỉ thuộc một tổ chức nào đó. Trong hệ thống này nhiều máy tính được ghép với nhau thành một hệ thống thuần nhất dựa trên kết nối mạng tốc độ cao để xử lý tính toán song song. Trang 7 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải pháp• Grid Computing Systems Là các hệ thống tính toán thuộc nhiều tổ chức khác nhau. Các dữ liệu đơn vị của các tổ chức khác nhau được nhóm với lại với nhau thành một tổ chức, gọi là tổ chức ảo. Hệ thống này là hệ thống không thuần nhất.1.3.2. Các hệ thống thông tin phân tán (Distribbuted Information Systems)Dưới đây chúng ta sẽ quam tâm đến hai dạng quan trong của hệ phân tán:• Transaction Processing SystemsPhần này ta quam tâm đến các ứng dụng cơ sở dữ liệu. Các hoạt động trên cơ sở dữ liệu thường được mảng đến dưới dạng transactions (các giao tác). Khi lập trình có sử dụng đến các transactions thì yêu cầu phải có các transaction nguyên thủy. Transaction có 4 tính chất cụ thể như sau:Atomic: transaction không thể chia nhỏ được nữa.Consistent: transaction không được vi phạm các hệ thông bất biến.Isolated: transacton song song không được giao tiếp với nhau.Durable: mỗi khi một transaction cảm kết thì sự thay đổ là thương xuyên.• Enterprise Applications IntegrationNhiều ứng dụng cơ sở dữ liệu là không ghép với cơ sở dữ liệu. Vậy cần phải tích hợp các ứng dụng một cách độc lập từ cơ sở dữ liệu của nó. Và các thành phần của ứng dụng có thể truyền thông trức tiếp với nhau, không như cách request/reply trong kỹ thuật transaction processing systems. Vì nhu cầu cần truyền thông giữa các ứng dụng thì dẫn đến nhiều mô hình truyền thông cần phải tồn tại.Ý tưởng chính là các ứng dụng có thể trào đổi thông tin một chức tiếp. Trang 8 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápTrong trường hợp này đã tồn tại nhiều kiểu communication middleware chẳng hạn như: mô hình RPC (Remote Procedure Calls), RMI (Remote Method Invocations), và MOM (Message-Oriented Middleware). 1.3.3. Các hệ thống phân tán rộng khắp (Distributed Pervasive Systems)Mặc dù tính ổn định chặn chẽ của hệ phân tán mà ta thu được qua các đặc điểm như transparency, nhưng nó trở thành vấn đề khác đối với thiết bị có cấu hình phần ứng thấp như các thiết bị nhỏ chạy trên pin, các thiết bị di động, PDA, chỉ có thể kết nối bằng mạng không giấy. Các thiết bị như thế có thể xếp loại trong hệ thống phân tán rộng khắp (Distributed Pervasive Systems).Ví dụ:• Nhà thông minh (Home Systems)• Các hệ thống chăm sóc sức khỏe (Electronic Health Care Systems)• Mạng cảm ứng (Sensor Network)CHƯƠNG 2: TÀI NGUYÊN TRONG HỆ PHÂN TÁN2.1. Các nguồn tài nguyên Trang 9 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápTài nguyên là một thành phần quan trọng trong bất kỳ một hệ thống nào. Trong hệ phân tán tài nguyên càng chiếm một vị trí quan trọng. Đặc biệt việc chia sẻ tài nguyên là một đặc tính cơ bản của các hệ thống phân tán.Các nguồn tài nguyên có thể là các thiết bị phần cứng như: các ổ đĩa, máy in, máy fax , các thực thể phần mềm như: Các tập tin, windows, cơ sở dữ liệu và các đối tượng dữ liệu khác.Người sử dụng hệ thống máy tính tập trung và phân tán đều đã quen thuộc với lợi ích của việc chia sẻ tài nguyên mà họ có thể dễ dàng bỏ qua, không thấy được tầm quan trọng của việc chia sẻ tài nguyên. Lợi ích của việc truy cập được chia sẻ vào hệ thống lưu trữ đơn giản bao gồm cơ sở dữ liệu, chương trình, tư liệu và những thông tin khác đã được thừa nhận đầu tiên trong hệ thống đa người dùng, hoặc hệ thống chia sẻ thời gian ở đầu thập kỷ 60, và hệ thống UNIX đa người dùng vào những năm 1970.Thiết bị phần cứng như: máy in, các ổ đĩa và thiết bị ngoại vi khác được chia sẻ để thuận tiện trong việc sử dụng và giảm giá thành.Chia sẻ dữ liệu là một nhu cầu cần thiết trong rất nhiều ứng dụng của máy tính.Người phát triển phần mềm làm việc theo nhóm, có thể cần truy nhập đến mỗi trạm làm việc khác và có thể chia sẻ những công cụ phát triển, yêu cầu duy nhất một phiên bản đơn của bộ biên dịch, trình soạn thảo, thư viện thủ tục và trình gỡ rối. Bất cứ khi nào một công cụ phát triển mới hoặc một phiên bản mới của trình biên dịch được cài đặt, tất cả mọi người sử dụng ngay lập tức truy cập được.Rất nhiều những ứng dụng thương mại cho phép người sử dụng truy cập vào những đối tượng dữ liệu dùng chung trong cơ sở dữ liệu đơn hiện hành.Một miền mở rộng với tốc độ cao của các ứng dụng cho các mạng, và các hệ phân tán được sử dụng cho các máy tính hỗ trợ người dùng làm việc theo nhóm trong các dự án hợp tác, ban quản trị, hướng dẫn từ xa và rất nhiều những tác vụ khác. Máy tính được hỗ trợ làm việc hợp tác (CSCW, luôn được biết đến như một phần mềm nhóm) phụ thuộc rất nhiều vào sự chia sẻ của các đối tượng dữ liệu giữa các chương trình chạy trên những trạm làm việc khác nhau.Nguồn tài nguyên của những máy tính đa người dùng thông thường chia sẻ cho tất cả người sử dụng, nhưng người sử dụng của những trạm làm việc đơn, người sử dụng trong mạng và những máy tính cá nhân thì không thu được lợi ích gì trong việc chia sẻ tài nguyên này.Những nguồn tài nguyên trong một hệ phân tán là phần vật lý thì được gói gọn trong phạm vi của một máy tính và chỉ có thể được truy cập từ những máy tính khác bằng truyền thông. Để việc chia sẻ tài nguyên hiệu quả, mỗi tài nguyên phải được quản lý bằng Trang 10 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápmột chương trình, mỗi chương trình đó cung cấp một giao diện truyền thông cho phép tài nguyên được truy cập, sử dụng và cập nhật một cách thuận tiện và nhất quán.2.2. Quản trị tài nguyênQuản trị tài nguyên cũng có lúc được hiểu như là một mô đun phần mềm quản lý một tập những tài nguyên đặc biệt. Mỗi loại tài nguyên này yêu cầu một vài chính sách và phương pháp quản trị riêng biệt, nhưng vẫn luôn luôn có nhưng yêu cầu chung. Điều này bao gồm cả sự phân chia bản đồ tên cho mỗi lớp của nguồn tài nguyên, cho phép được truy cập những nguồn tài nguyên riêng biệt từ bất kỳ vị trí nào bằng cách ánh xạ tên nguồn tài nguyên thành địa chỉ truyền thông, và điều phối những truy cập hiện hành có thay đổi trạng thái của những nguồn tài nguyên dùng chung đúng thứ tự và nhất quán.2.3. Mô hình chia sẻ tài nguyênMột hệ phân tán được tạo nên từ một tập tài nguyên của những nhà quản trị và một tập những chương trình tài nguyên người sử dụng. Tài nguyên của những người sử dụng giao tiếp với tài nguyên của những nhà quản trị để truy cập vào những nguồn tài nguyên dùng chung của hệ thống. Chúng ta có thể phát triển hệ phân tán theo hai mô hình: Mô hình Client/Server và mô hình hướng đối tượng.2.3.1. Mô hình Client/ServerĐược sử dụng nhiều nhất và được chấp nhận rộng rãi nhất cho các hệ phân tán. Mô hình này gồm một tập các tiến trình của server, mỗi hành động như một nguồn tài nguyên, người quản trị đưa ra các kiểu tập hợp của các nguồn tài nguyên, và một tập các tiến trình client, mỗi hành động là một tác vụ yêu cầu truy nhập vào những nguồn tài nguyên dùng chung như phần cứng hoặc phần mềm. Tài nguyên người quản trị có thể cần truy cập tới chính các nguồn tài nguyên dùng chung được quản trị bởi một tiến trình khác của người quản trị đó, vì vậy một số tiến trình là tiến trình của cả client và server. Trong mô hình client/server, mọi nguồn tài nguyên dùng chung được quản trị bởi những tiến trình của server. Những tiến trình client yêu cầu server bất cứ khi nào client cần truy cập tới những nguồn tài nguyên của server. Nếu yêu cầu hợp lệ thì server sẽ thực hiện yêu cầu và gửi hồi âm cho tiến trình client.Mô hình client/server mang lại hiệu quả cho việc chia sẻ thông tin, và những tài nguyên trong hệ phân tán. Mô hình này có thể được thi hành trong rất nhiều môi trường phần cứng và phần mềm khác nhau. Một mạng máy tính chạy các tiến trình client/server có thể có nhiều loại, và không có sự phân biệt giữa chúng, cả tiến trình client và server có thể chạy trên cùng một máy tính. Thật vậy, một tiến trình server sử dụng dịch vụ của server khác, xuất hiện như một máy client sau đó. Trang 11 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápTrong mô hình client/server này mỗi tiến trình cung cấp những nguồn tài nguyên mà nó quản trị.Mô hình client/server rất có hiệu quả trong hệ thống hiện hành với những dịch vụ, nó quản lý rất nhiều kiểu nguồn tài nguyên dùng chung như: Thư điện tử, tin nhắn, file, đồng hồ đồng bộ trong mạng diện rộng, đĩa lưu trữ, máy in, truyền thông trên diện rộng và thậm chí hiển thị trong những không gian cửa sổ trên màn hình của từng máy mạng. Nhưng nó không thể hữu dụng cho tất cả những nguồn tài nguyên còn lại của máy tính như: RAM, bộ vi xử lý trung tâm và giao diện mạng cục bộ thường có hiệu quả sử dụng tài nguyên rất thấp. Những nguồn tài nguyên cơ bản này được quản trị riêng biệt bởi một hệ điều hành trên mỗi máy tính, chúng có thể chia sẻ chỉ giữa các tiến trình định vị trên cùng một máy tính.2.3.1. Mô hình hướng đối tượng Trong mô hình này mỗi tài nguyên cần chia sẻ được xem như một đối tượng. Đối tượng đó được định danh duy nhất, có thể di chuyển trong hệ thống mà không cần thay đổi định danh. Bất cứ khi nào, một chương trình sử dụng tài nguyên yêu cầu truy cập nguồn tài nguyên thì nó gửi một message chứa yêu cầu đến đối tượng tương ứng. Một message là một tin nhắn gửi đi gần như là một thủ tục hoặc một tiến trình thực hiện những yêu cầu mà hồi đáp là những tiến trình yêu cầu nếu được chấp nhận.Không như mô hình client/server, mô hình hướng đối tượng thực thi cả việc truy cập tài nguyên người sử dụng và tài nguyên người quản trị. Trong mô hình client/server bản đồ tên được sử dụng cho những nguồn tài nguyên phụ thuộc vào dịch vụ quản trị chúng. Nhưng trong mô hình hướng đối tượng những nguồn tài nguyên người sử dụng có thể được xem như là tất cả những nguồn tài nguyên cùng loại.Chúng ta có thể sử dụng thuật ngữ quản trị đối tượng như là một tập hợp của những thủ tục và những giá trị dữ liệu đặc trưng cho một lớp đối tượng.Trong quá trình hoạt động, mô hình hướng đối tượng phát sinh một vài vấn đề khó khăn. Yêu cầu một đối tượng quản trị của một kiểu liên quan phải được định vị bất cứ khi nào một đối tượng trong đó được định vị, vì những đối tượng nằm trong một trạng thái biểu diễn của chúng và người quản trị phải được định vị liên hợp với một đối tượng được sắp xếp truy cập trong trạng thái của chúng. Điều này dễ hiểu khi những đối tượng không thể di chuyển và vài hệ phân tán được thiết kế để hỗ trợ những đối tượng địa chỉ đồng nhất được tạo ra.CHƯƠNG 3: VẤN ĐỀ CHIA SẺ TÀI NGUYÊN TRONG HỆPHÂN TÁN Trang 12 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải pháp3.1. Tổng quan về chia sẻ tài nguyênChia sẻ tài nguyên là một đặc trưng cơ bản nhất của hệ phân tán, do tài nguyên trong hệ thống là hữu hạn nhưng số tiến trình có yêu cầu sử dụng tài nguyên lại rất lớn, vì thế vào mỗi thời điểm có thể có nhiều tiến trình cùng chia sẻ sử dụng một tài nguyên chung. Việc quản lý và chia sẻ tài nguyên trong hệ phân tán giúp cho các tiến trình được thực hiện thông suốt và hiệu quả, ngoài ra nó còn tiết kiệm được chi phí khi xây dựng hệ thống.Một cách tổng quát, ta có thể xem tài nguyên trong hệ phân tán gồm tài nguyên phần cứng, tài nguyên phần mềm và dữ liệu.3.1.1. Chia sẻ tài nguyên phần cứngTrong một hệ phân thống máy tính phân tán, thường tồn tại nhiều thiết bị có hiệu năng thấp, do thời gian và tần suất sử dụng không nhiều, phần lớn thời gian ở trạng thái thông làm việc (như máy in). Nếu mỗi đơn vị trong mạng đều sở hữu những thiết bị như thế thì sẽ sinh ra lãng phí rất lớn, giải pháp tốt nhất để tiết kiệm được chi phí khi xây dựng hệ phân tán đó là dùng chung và chia sẻ các thiết bị phần cứng có giá thành cao.Có thể phân loại tài nguyên phần cứng thành 3 loại sau:- Các thiết bị đầu cuối và các thiết bị được sử dụng một cách trực tiếp hay thông mạng bởi người dùng. Ví dụ như máy in, ổ đĩa, bộ nhớ …- Bộ xử lý ở máy server: cung cấp các dịch vụ xử lý thông in trong hệ thống, đa truy cập trên cơ sở chia sẻ thời gian (multiaccess time sharing) sẽ cung cấp phương thức chia sẻ tài nguyên hiệu quả hơn.- Hệ thống truyền thông, bao gồm đường truyền vật lý và các bộ chuyển hướng dữ liệu. Cung cấp các dịch vụ trao đổi và điều khiển dữ liệu trong hệ thống.Việc chia sẻ bộ xử lý và các thiết bị phần cứng sẽ được trình bày ở phần sau, phần này sẽ trình bày vài nét cơ bản về chia sẻ hệ thống truyền thông, đặc biệt là việc truy nhập đường truyền vật lý. Các kênh truyền thông đại chúng đa truy cập – MultiAccess Broadcast ChannelsCác kênh truyền thông cung cấp cho người dùng các dịch vụ truyền thông, cho phép trao đổi thông tin giữa các thành viên trong mạng, truy cập và sử dụng tài nguyên trong hệ thống phân tán. Vì yêu cầu của người dùng là rất lớn và liên tục, nên kênh truyền cần được phân chia thành nhiều kênh nhỏ để có thể đáp ứng được các yêu cầu đó, mỗi kênh nhỏ được giao cho một số người dùng cụ thể. Như vậy cần có các phương thức chia sẻ kênh truyền sao cho có hiệu quả cao nhất trên cơ sở là các yêu cầu hiện tại của người dùng. Trang 13 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápCác kênh truyền thông đại chúng đa truy cập có thể đáp ứng được các yêu cầu truyền dẫn dữ liệu trên.Tính đa truy cập (Multiaccess) cho phép nhiều người dùng cùng truy cập trên cùng một kênh truyền vật lý vào cùng một thời điểm với nhiều dạng thức khác nhau, tính đại chúng (Broadcast) thể hiện ở việc kênh truyền có thể nhận biết được sự truyền dẫn dữ liệu từ nhiều thiết bị hoặc tất cả các thiết bị đầu cuối trong hệ thống.Họ các phương thức đa truy cập đường truyền (Family of MultiAccess Method):- ALOHA nguyên thủy (Pure ALOHA): những gói tin mới được tạo ra sẽ được truyền đi ngay lập tức bởi thiết bị đầu cuối tạo ra nó. Các gói tin gói xung đột và triệt tiêu lẫn nhau sẽ được truyền lại.- Slotted ALOHA: giống như Pure ALOHA, chỉ khác ở điểm các gói tin sẽ được truyền đi vào các thời điểm được đánh dấu trước, thời gian giữa 2 điểm đánh dấu bằng với thời gian truyền một gói tin.- CSMA (Carrier Sense Multiple Access): phương pháp đa truy cập sử dụng sóng mang: một trạm trước khi truyền dữ liệu đi phải “lắng nghe” xem đường truyền có rỗi hay không. Nếu đường truyền rỗi thì dữ liệu sễ được truyền đi.- Polling: phương pháp truyền dẫn có thăm dò: máy trung tâm lần lượt hỏi các msy trạm có dữ liệu cần truyền hay không, nếu có dữ liệu sẽ được truyền.- FDMA (Frequency Division Multiple Access): băng thông của kênh truyền sẽ được chia nhỏ thành nhiều kênh con (subchannel), mỗi kênh con được cấp riêng cho một thiết bị đầu cuối trong mạng.- TDMA (Time Division Multiple Access): các thiết bị đầu cuối lần lượt được chiếm giữ kênh truyền và truyền dữ liệu đi trong một khoảng thời gian định trước. 3.1.2. Chia sẻ tài nguyên phần mềm và dữ liệuỞ đây ta có thể xem tài nguyên phần mềm là bao gồm tất cả những gì không phải là phần cứng, việc chia sẻ tài nguyên phần mềm và dữ liệu là mục đích đầu tiên và quan trọng nhất của mọi hệ thống mạng. Tài nguyên cần chia sẻ gồm có: hệ thống tập tin, cơ sở dữ liệu, các chương trình ứng dụng …Trong môi trường phân tán, dữ liệu được định vị ở những vị trí khác nhau, trong những hệ thống có cấu trúc và phương thức truy nhập khác nhau để có thể chia sẻ dữ liệu một cách thông suốt trong hệ thống đòi hỏi phải có các giao thức liên kết, các dịch vụ quản lý và trao đổi dữ liệu tương ứng với từng mô hình mạng cụ thể. Đồng thời cũng phải đảm bảo các yêu cầu về an toàn thông tin và bảo mật trong hệ thống mạng.3.2. Các vấn đề cần quan tâm trong quản lý và chia sẻ tài nguyên Trang 14 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải pháp3.2.1. Định danh (Naming)Mỗi dịch vụ trong mạng thường quản lý nhiều tài nguyên, mỗi tài nguyên có thể được truy cập một cách độc lập bởi các máy client. Để điều này có thể thực hienj được, mỗi dịch vụ cần phải định danh cho tất cả các tài nguyên mà nó quản lý. Ví dụ như hệ thống quản lý tập tin thì quản lý các tập tin thông qua tên của chúng.Máy Client truy cập tài nguyên thông qua việc gửi yêu cầu đến dịch vụ quản lý tài nguyên đó, và nêu rõ tên của tài nguyên mà mình muốn truy cấp.Ở phần này, có 2 khái niệm cần được hiểu đúng, đó là tên (name) và định danh (identifier). Tên thì có thể được sử dụng bởi người dùng hoặc chương trình, còn định danh thì chỉ được gọi và sử dụng bởi chương trình mà thôi.Khi tài nguyên hoặc đối tượng được truy cập thì tên của tài nguyên sẽ được biên dịch sang một dạng khác để phù hợp với các thao tác trong việc truy cập thông qua hệ thống truyền thông, ta gọi thao tác này là chuyển đổi tên (resolve). Trong hệ phân tán, một tên đã được chuyển đổi thường là một định danh truyền thông (communication identifier), cùng với các thuộc tính khác có thể rất hữu ích trong truyền thông. Khuôn dạng của một định danh truyền thông phụ thuộc vào cách giải thích định danh trong hệ thống truyền thông mà nó đang được sử dụng.Ví dụ: Trong mạng internet, định danh truyền thông gồm 2 phần: một định danh máy trạm (host identifier – còn gọi là địa chỉ IP) có 4 phần, là địa chỉ của máy tính trong mạng; một địa chỉ cổng (port number), là định danh của cổng truyền thông được cấp phát bởi máy trạm tương ứng.Các định danh được phân bố cho các tài nguyên phải mang ý nghĩa toàn cục để có thể độc lập với vị trí của chúng. Việc thiết kế lược đồ định danh là cần thiết để dễ dàng trong việc chuyển đổi các định danh, đưa đến việc thi hành có hiệu quả.Định danh trong hệ phân tán cần bảo toàn các thiết kế sau:a) Chọn không gian tên thích hợp cho mỗi loại tài nguyên: mỗi không gian trên có thể là hữu hạn hay vô hạn, có thể có cấu trúc hoặc không có cấu trúc, nhưng phải đảm bảo không gian tên đủ lớn để có thể quản lý hết tất cả các tài nguyên trong phạm vi của mình, nhưng cũng không quá lớn để đỡ hao tốn bộ nhớ cũng như băng thông. Tất cả các tài nguyên được quản lý bởi cùng một bộ quản lý tài nguyên phải được đặt tên khác nhau. Trong hệ thống hướng đối tượng , tất cả các đối tượng được định danh theo cùng một khuôn mẫu – chúng chiếm giữ một không gian riêng lẻ.b) Tên của tài nguyên phải được chuyển đổi sang định danh truyền thông. Thông thường điều này được thực hiện bởi việc quản lý các bản sao của tên va bản dịch của chúng trong dịch vụ định danh (name service). Một vài loại tài nguyên được Trang 15 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải pháptruy cập thường xuyên, như các tập tin, thì giải pháp chuyển đổi tên là tốt nhất cho quản lý tài nguyên. Các máy trạm dành một vùng nhớ đệm địa phương lưu trữ các tên mới được dùng và các định danh tương ứng với chúng để tránh các liên lạc không cần thiết với các bộ quản lý tài nguyên hoặc dịch vụ định danh.Có nhiều khuôn mẫu cho tên và định danh của đối tượng, tương ứng với các mục đích cụ thể. Một vài tên được thiết kế cho con người có thể đọc hiểu được, vì thế người dùng có thể đọc, gọi lại và sử dụng lại chúng, chẳng hạn như tên file hoặc tên miền. Một số khác được thiết kế sao cho có tính gợi nhớ hoặc có liên quan đến vị trí của đối tượng tài nguyên.Các chiến lược định danh cso thể được thiết kế để bảo vệ tài nguyên khỏi sự truy nhập bất hợp pháp. Mỗi định danh được chọn một cách tính toán phức tạp để gây khó khăn cho bất cứ tiến trình nào nắm giữ định danh để sao chép lại mà không có thông qua dịch vụ định danh, dịch vụ định danh sẽ kiểm tra tính hợp lệ của máy client để nắm giữ định danh mà máy client yêu câu.3.2.2. Truyền thông (Communication)Các thành phần của một hệ phân tán có thể phân chia thành 2 nhóm: nhóm các đối tượng vật lý và nhóm các đối tượng logic, để có thể tương tác lẫn nhau, các thành phần này phải được nối kết với nhau thông qua các kênh truyền thông. Hệ thống phân tán và ứng dụng bao gồm các thành phần phần mềm tương tác với nhau để thực hiện các tác vụ. Ta sẽ xem xét rằng tất cả các thành phần yêu cầu hoặc cung cấp sự truy cập tài nguyên trong hệ phân tán thì được thực hiện như những trạm. Trong hệ thống client/server, một trạm client phải tương tác với máy server khi có nhu cầu truy cập đến một tài nguyên không thuộc quyền quản lý cảu nó- có thể là phần cứng, phần mềm hay dữ liệu.Truyền thông giữa hai trạm bao gồm hai thao tác gửi và nhận các gói tin nhằm đạt được hai kết quả:- Truyền dữ liệu từ nơi phát đến nơi thu.- Trong một vài thao tác truyền thông, có sự đồng bộ giữa thu và phát, quá trình thu hoặc phát sẽ được tiếp diễn cho đến khi có sự can thiệp của một tiến trình khác nhằm giải phóng nó.Khuôn dạng của gói tin gửi và nhận được quy định trong lập trình, những khuôn dạng này tạo ra các thông điệp (message) hành động giữa các trạm thu và phát. Mối thông điệp bao gồm một tập các đơn vị dữ liệu được trạm phát gửi thông cơ cấu truyền thông (cổng, kênh truyền) để đến trạm thu. Các cơ chế truyền thông có thể là đồng bộ hoặc blocking, tức là phía gửi sau khi gửi một thông điệp sẽ chờ cho đến khi phía thu nhận được và thực hiện thao tác trả lời, hay cũng có thể là không đồng bộ, tức là các thông điệp được xếp vào một hàng đợi và chờ đến khi phía thu đồng ý nhận thì lập tức được gửi đi. Trang 16 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápTrong phần này ta xét hai mô hình truyền thông là truyền thông khách/chủ và truyền thông nhóm multicast.a) Truyền thông khách/chủ (client/server communiction) Một trao đổi trong mô hình khách chủ bao gồm:- Máy khách gửi một yêu câu đến máy chủ.- Máy chủ thực hiện yêu cầu.- Máy chủ gửi thông điệp trả lời đến máy khách.Mỗi liên kết như vậy cần phải gửi nhận hai thông điệp và đòi hỏi phải có sự đồng bộ giữa máy khách và máy chủ. Khi thông điệp từ máy khách được gửi đến, các tiến trình của máy chủ sẽ được bắt đầu, các hành động gửi yêu caauff của máy khách sẽ bị khóa và chờ cho đến khi nhận được thông điệp trả lời từ máy chủ.b) Truyền thông nhóm multicast (Group Multicast) Trong mô hình truyền thông nhóm multicast, các trạm cũng liên lạc với nhau bởi các thông điệp, nhưng đích đến của một thông điệp không phải chỉ là một trạm đơn nhưng là một nhóm các trạm trong mạng. Multicast là phương pháp truyền dữ liệu một-nhiều, điều này cho phép truyền thông tin từ một thành viên của mạng đến một nhóm các thành viên khác vào cùng một lúc mà không phải gửi nhiều lần, thuận tiện việc truyền trực tiếp trên sóng vô tuyến.Khi có nhu cầu, máy tính cho bộ định tuyến (router) biết nó muốn nhận thông tin từ một multicast. Bộ định tuyến này báo cho bộ định tuyến tiếp theo gần với nguồn của multicast biết điều đó. Quá trình này được tiếp tục đến khi đường đi được thiết bị lập từ nguồn multicast đến máy muốn nhận multicast. Kết quả là chỉ có các bộ định tuyến cần thiết mới nhận được các gói multicast. Các bộ định tuyến không tham gia sẽ không nhận được gói, việc này làm giảm lưu thông và giúp cho tiến trình hiệu quả hơn.Trong một mạng máy tính có thể có cũng có thể không có những thiết bị phần cứng hỗ trợ multicast. Trong trương hợp không có, một thông điệp multicast phải được gửi tuần tự đến tất cả các trạm thành viên của nhóm multicast: có thể dùng phương thức truyền song song.3.2.3. Bảo vệ tài nguyênMục đích của chiến lược bảo vệ tài nguyên là đảm bảo rằng mỗi tiến trình chỉ được truy cập những tài nguyên mà nó được phép. Bảo vệ tài nguyên trong hệ phân tán thì rất phức tạp bởi tính mở của mạng và tính nhạy cảm của các máy tính không được bảo vệ đối với sự thay đổi ác ý với hệ thống phần mềm của họ. Trang 17 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápNhư những khía cạnh khác của quản lý tài nguyên, việc bảo vệ tài nguyên trong hệ phân tán là một dịch vụ đăc biệt có quy mô lớn. Nhân hệ điều hành phân tán có các cơ chế để bảo vệ tài nguyên, và các dịch vụ ở mức cao hơn cũng tương tự. Nhân dùng các tiện ích như đơn vị quản lý bộ nhớ để tự bảo vệ và bảo vệ cho các phần cứng mà nó quản lý. Các máy server phải tiếp nhận các thông điệp tùy ý từ khắp nơi trong hệ thống phân tán, vì thế cần có các phần mềm có chức năng chống lại các yêu cầu bất hợp pháp để bảo vệ tài nguyên.Miền bảo vệ (Protection Domains)Miền bảo vệ là một môi trường được bảo vệ được chia sẻ cho một tập hợp các đơn vị trong hệ thống phân tán. Có sự đi đôi của tài nguyên và quyền truy cập đối với tài nguyên đó. Liệt kê các tài nguyên có thể được truy cập bởi tất cả các trạm trong miền và các thao tác có thể được thực hiện đối với các tài nguyên tương ứng. Quyền ở đây là các thao tác được cho phép trên tài nguyên, ví dụ như một file thì có thể đọc hoặc ghi.KẾT LUẬNQua bài tiểu luận này, em đã phần nào hiểu được vấn đề sử dụng và chia sẻ tài nguyên trong hệ phân tán một cách có hiệu quả. Các giải pháp về truyền thông và an toàn an ninh là rất quan trọng trong qua trình chia sẻ tài nguyên. Tuy nhiên do khả năng tự Trang 18 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải phápnghiên cứu còn hạn chế nên nội dung trình bày còn nhiều thiếu sót Em rất mong nhận được sự chỉ bảo của thầy để hoàn thiện kiến thức của mình.TÀI LIỆU THAM KHẢO[1] DISTRIBUTED SYSTEMS Principles and Paradigms 2nd Edition Andrew S. Tanenbaum, Maarten Van Steen[2] Sharing Resources in Distributed Systems _ Rajmohan Rajaraman. University of Texas at Austin. 1997[3] Distributed Systems Concepts & Design by George Coulouris Trang 19 Chia sẻ tài nguyên trong hệ phân tán: vấn đề và giải pháp Trang 20