Tiểu luận Hệ phân tán - Lê Thủy Thạch

Hệ thống máy tính đang trải qua một cuộc cách mạng. Từ năm 1945 cho đến năm 1985, các máy tính rất lớn và rất đắt. Hầu hết các tổ chức chỉ có rất ít máy tính và không biết cách nối chúng. Đến giữa những năm 1980, hai mở rộng trong kỹ thuật đã thay đổi tình hình đó. Thứ nhất là sự phát triển vi xử lý, từ CPU chỉ có 8 bit đã phát triển thành 16, 32, 64 bit. Nhiều

doc49 trang | Chia sẻ: vietpd | Lượt xem: 1827 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Tiểu luận Hệ phân tán - Lê Thủy Thạch, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Phần I. Giới thiệu Hệ thống máy tính đang trải qua một cuộc cách mạng. Từ năm 1945 cho đến năm 1985, các máy tính rất lớn và rất đắt. Hầu hết các tổ chức chỉ có rất ít máy tính và không biết cách nối chúng. Đến giữa những năm 1980, hai mở rộng trong kỹ thuật đã thay đổi tình hình đó. Thứ nhất là sự phát triển vi xử lý, từ CPU chỉ có 8 bit đã phát triển thành 16, 32, 64 bit. Nhiều CPU đã có một năng lực tính toán của một siêu máy tính nhưng với giá thấp. Sự phát triển thứ hai là sự phát minh mạng máy tính tốc độ cao, mạng cục bộ (Local-area networks-LAN) cho phép hàng trăm máy tính có thể kết nối được với nhau để trao đổi thông tin. Mạng diện rộng (Wide-area network-WAN) cho phép hàng triệu máy tính trên trái đất có thể được kết nối với tốc độ truyền dữ liệu từ 64Kbps đến gigabits mỗi giây. Kết quả của những cải tiến về mặt kỹ thuật đem lại sự kết nối dễ dàng nhiều hệ thống máy tính với nhau để tạo một mạng cao tốc. Chúng thường được gọi là mạng máy tính hoặc hệ phân tán. Để xây dựng được một hệ phân tán hoạt động hiệu quả và tối ưu, nhà thiết kế phải giải quyết rất nhiều vấn đề có tính chiến lược. Tiểu luận nhằm trình bày một số vấn đề cơ bản khi xây dựng một hệ phân tán và đưa ra một số giải pháp nhằm giải quyết các vấn đề đó. Đồng thời tiểu luận còn đưa ra một số ví dụ minh họa cho những vấn đề và giải pháp trên. Tiểu luận gồm bốn phần. Phần 1:Định nghĩa một hệ phân tán. Phần 2: Những mục tiêu khi xây dựng hệ phân tán. Phần này nhằm giới thiệu bốn mục tiêu cơ bản khi thiết kế và xây dựng hệ phân tán, đó là dễ dàng kết nối ngưởi sử dụng với tài nguyên; trong suốt đối với người sử dụng và ứng dụng; có khả năng thêm bớt các dịch vụ mà không ảnh hưởng đến các dịch vụ đã có-tính mở; dễ dàng thay đổi theo sự thay đổi quy mô của hệ thống-tính co giãn. Đồng thời nêu ra một số vấn đề và giải pháp chung mà người thiết kế cần chú ý. Phần 3: Trình bày một số vấn đề và giải pháp cụ thể liên quan đến truyền thông, tiến trình, định danh, đồng bộ hóa, nhân bản, tính chịu lỗi và an toàn trên hệ phân tán. Phần 4: Đưa ra trọn vẹn hai ví dụ về hệ phân tán hướng tư liệu đó là World Wide Web và Lotus Note nhằm minh họa cho những vấn đề và giải pháp cụ thể đã đề cập ở phần 3. Phần II. Nội dung I/ Định nghĩa hệ phân tán. Nhiều định nghĩa của hệ phân tán được đưa ra, tuy nhiên một số định nghĩa lại không phù hợp với những định nghĩa khác. Theo mục đích trình bày trong tiểu luận này, ta có thể đưa ra một định nghĩa như sau: Một hệ phân tán là một tập hợp của những máy tính độc lập mà hiện hữu cho những người sử dụng của nó như một hệ thống cố kết đơn. Định nghĩa này có hai khía cạnh. Thứ nhất đối với phần cứng: các máy là tự trị. Thứ hai đối với phần mềm: người sử dụng nghĩ rằng họ làm việc với hệ thống đơn. Để hỗ trợ những máy tính và mạng máy tính không đồng nhất, những hệ phân tán thường được tổ chức bởi một lớp phân mềm mà được đặt một cách logic giữa một lớp mức cao (gồm có người sử dụng và ứng dụng) và một lớp ở bên dưới (gồm có một hệ điều hành). Vì vậy, một hệ phân tán như vậy còn được gọi là phần mềm trung gian (middleware). Ví dụ: Với World Wide Web, Web đưa ra một mô hình phân tán tài liệu đơn giản, nhất quán và duy nhất. Để xem một tài liệu, người sử dụng chỉ cần khởi động một tham chiếu, và tài liệu xuất hiện trên màn hình. Theo lý thuyết, không cần biết server đem tài liệu từ đâu về. Xuất bản một tài liệu chỉ đơn giản là sinh ra một tên duy nhất dưới dạng Uniform Resource Locator (URL) mà tham chiếu đến một file cục bộ chứa nội dung tài liệu. Nếu World Wide Web xuất hiện cho những người sử dụng của nó như một hệ thống tài liệu tập trung khổng lồ thì nó cũng sẽ gọi là một hệ phân tán. Máy A Máy B Local OS Local OS Distributed application Middleware service Network Một tổ chức của hệ phân tán như middleware II/ Những mục tiêu khi xây dựng hệ phân tán Để xây dựng một hệ phân tán hoạt động hiệu quả và tối ưu, người thiết kế phải tập trung quan tâm đến việc giải quyết những mục tiêu quan trọng. Một hệ phân tán tối ưu phải là dễ dàng kết nối những người sử dụng với những tài nguyên, phải che dấu tài nguyên được phân tán trên một mạng máy tính, phải có khả năng thêm bớt các dịch vụ mà không ảnh hưởng đến các dịch vụ đã có, phải dễ dàng thay đổi theo sự thay đổi quy mô của hệ thống. 2.1/ Kết nối người sử dụng với tài nguyên Mục tiêu chính của hệ phân tán là tạo thuận lợi cho người sử dụng truy cập và chia sẻ tài nguyên từ xa. Đây là vấn đề bao trùm, các vấn đề khác đều liên quan đến vấn đề này. Khi cần chia sẻ phải không được dẫn đến tắc nghẽn. Đây không phải chỉ có ở bài toán hệ phân tán mà còn ở hệ tập trung. Tuy nhiên việc giải quyết vấn đề chia sẻ tài nguyên trên hệ phân tán là rất khó. Tài nguyên có thể là máy in, máy tính, bộ nhớ hữu dụng, file, dữ liệu... Có nhiều lý do để chia sẻ tài nguyên, trước hết đó là tiết kiệm và thuận lợi để hợp tác và trao đổi thông tin. Chia sẻ tài nguyên đã dẫn đến một vấn đề an toàn trong hệ phân tán. Đây là một vấn đề rất quan trọng. Với sự tăng lên của kết nối và chia sẻ, có thể dẫn đến một số truyền thông không mong muốn. Giải pháp cho vấn đề này là phải xây dựng những thiết bị lọc nhằm chọn được thông điệp dựa vào nội dung của chúng. Một vấn đề an toàn khác đó là vết truyền thông để xây dựng một tiểu sử tham chiếu của một người sử dụng cụ thể. Một vết như vậy rõ ràng vi phạm sự bí mật, đặc biệt nếu nó được làm mà không có sự khai báo người sử dụng. Giải pháp chung là cần phải có cơ chế bảo vệ đủ mạnh để chống lại sự nghe trộm hoặc sự xâm nhập trên giao tiếp. Chia sẻ tài nguyên cũng dẫn đến vấn đề tương tranh trong hệ phân tán. Giải pháp bổ sung thêm tài nguyên không phải là phương án tốt. Vì thế cần phải có những thuật toán chia sẻ tài nguyên tối ưu. Nhiều trường hợp của chia sẽ tài nguyên dẫn đến một số lỗi xuất hiện. Hệ phan tán phải có khả năng vượt qua được một số lỗi đó và hoạt động bình thường. Giải pháp khi xây dựng hệ phân tán, với một số lỗi nhất định phải có cơ chế phục hồi lỗi và đưa hệ thống trở lại hoạt động bình thường. 2.2/ Tính trong suốt (Transparency) Một mục tiêu quan trọng của một hệ phân tán là tính trong suốt đối với người sử dụng cuối và người lập trình ứng dụng. Một hệ phân tán mà che dấu những tiến trình và tài nguyên của nó được phân tán trên nhiều máy tính, thể hiện bản thân nó cho người sử dụng và ứng dụng như là một hệ thống đơn được gọi là trong suốt. Khái niệm trong suốt có thể được áp vào nhiều khía cạnh của một hệ phân tán, bao gồm trong suốt truy xuất (access transparency), trong suốt định vị (location transparency), trong suốt di trú (migration transparency), trong suốt tái định vị (relocation transparency), trong suốt nhân bản (replication transparency) trong suốt tương tranh (concurrency transparency), trong suốt lỗi (failure transparency), trong suốt kiên nhẫn (persistence transparency) Trong suốt truy xuất thể hiện khả năng che dấu sự khác nhau trong biểu diễn dữ liệu và cách thức truy xuất tài nguyên của người sử dụng. Ví dụ, một hệ thống phân tán có thể có những hệ thống máy tính mà chạy trên những hệ điều hành khác nhau, mỗi cái có một quy ước đặt tên file riêng. Sự khác nhau trong quy ước đặt tên cũng như những file có thể được thao tác như thế nào đều phải được che dấu đối với người sử dụng và những ứng dụng. Trong suốt vị trí là khả năng che dấu vị trí tài nguyên được định vị vật lý trong hệ thống đối với người sử dụng. Định danh đóng một vai trò quan trọng trong việc đạt được trong suốt vị trí. Giải quyết trong suốt vị trí có thể được thực hiện bằng cách ấn định những tên logic cho tài nguyên, đó là những tên trong đó những vị trí của một tài nguyên là không được mã hóa bí mật. Trong suốt di trú thể hiện khả năng tài nguyên có thể được di chuyển mà không ảnh hưởng đến truy xuất. Trong suốt tái định vị thể hiện tài nguyên có thể định vị lại trong khi chúng đang được truy xuất mà người sử dụng hoặc chương trình đều không nhận ra. Ví dụ khi những người sử dụng di chuyển có thể tiếp tục sử dụng laptop không dây của họ trong khi chuyển từ nơi này sang nơi khác mà không bị cắt kết nối. Trong suốt nhân bản giải quyết việc che dấu sự kiện mà server sao chép một tài nguyên đã tồn tại. Để che dấu nhân bản đối với người sử dụng, điều cần thiết là tất cả các bản nhân có cùng một tên. Vì vậy, một hệ thống mà hỗ trợ trong suốt nhân bản phải hỗ trợ trong suốt định vị, bởi vì nếu không thì sẽ không thể tham chiếu đến một bản nhân tại một vị trí khác. Trong quá trình tương tác với hệ phân tán, có khi nhiều người cùng truy xuất đến một tài nguyên nhưng mỗi người không biết người khác cũng đang sử dụng cùng tài nguyên đó. Khả năng che dấu này của hệ phân tán được gọi là trong suốt tương tranh. Một hệ phân tán trong suốt lỗi nghĩa là che dấu để người sử dụng đang làm việc không biết rằng có một tài nguyên hỏng và sau đó hệ thống tự động phục hồi lại từ hỏng đó. Đánh dấu lỗi là một vấn đề khó nhất trong hệ phân tán, đó là làm thế nào để phân biệt giữa một tài nguyên đã chết với một tài nguyên chậm. Trong suốt kiên nhẫn giải quyết việc đánh dấu liệu một tài nguyên hiện đang trong bộ nhớ hoặc có thể một nơi nào đó trên đĩa. Ví dụ nhiều cơ sở dữ liệu hướng đối tượng cung cấp phương tiện để trực tiếp gọi phương thức trên đối tượng được lưu. Đầu tiên, cơ sở dữ liệu server sao chép trạng thái đối tượng từ đĩa vào bộ nhớ chính, thực hiện thao tác và có thể viết trạng thái đó lên bộ nhớ thứ cấp. Tuy nhiên, người sử dụng không ý thức được rằng server đang chuyển trạng thái từ bộ nhớ cơ sở sang bộ nhớ thứ cấp. 2.3/ Tính mở. Một mục tiêu quan trọng khác của hệ phân tán là tính mở. Tính mở của hệ phân tán thể hiện ở khả năng có thể bổ sung thêm các dịch vụ mới mà không làm ảnh hưởng đến các dịch vụ đã có. Giải pháp để xây dựng một hệ phân tán mở là đưa ra nhiều dịch vụ theo nguyên tắc chuẩn mô tả cú pháp và ngữ nghĩa của những dịch vụ này. Ví dụ trong mạng máy tính, các nguyên tắc chuẩn chi phối khuôn dạng, nội dung và ý nghĩa của thông điệp gữi và nhận. Những nguyên tắc như vậy được chính thức hóa trong giao thức. Trong hệ phân tán, những dịch vụ nói chung được chỉ ra thông qua giao diện, thường được mô tả trong một Interface Definition Language (IDL). Định nghĩa giao diện được viết trong một IDL nhằm chỉ ra chính xác tên của hàm mà có thể dùng được với nhau với những loại tham số, giá trị trả về... Một định nghĩa giao diện cho phép một tiến trình tùy ý mà cần thiết một giao diện nào đó để nói chuyện với một tiến trình khác mà cung cấp giao diện đó. Nó cũng cho phép hai bên độc lập để xây dựng thực hiện những giao diện hoàn toàn khác nhau. Dẫn đến hai hệ phân tán riêng biệt mà hoạt động trên cùng một cách. Một mục tiêu khác đối với một hệ phân tán mở đó là tính mềm dẻo. Giải pháp chính khi thiết kế xây dụng hệ thống thành nhiều thành phần để dễ dàng thêm một thành phần mới hoặc thay thế những phần đang tồn tại mà không ảnh hưởng đễn thành phần khác. Có nhiều giải pháp để xây dựng một hệ phân tán có tính mở. Để không xảy ra xung đột thì các tiến trình phải hiểu nhau. Muốn thế các dịch vụ mới và cũ phải cùng chung sống, trước hết phải có cơ chế truyền thông với nhau. 2.4/ Tính co giãn. Tính co giãn là mục tiêu thiết kế quan trọng khi phát triển hệ phân tán. Tính co giãn của hệ phân tán là khả năng thay đổi dễ dàng theo sự thay đổi quy mô của hệ thống. Tính co giãn thể hiện theo ba góc độ. Thứ nhất, một hệ thống có thể co giãn đối với kích cở của nó, nghĩa là có thể dễ dàng thêm nhiều người sử dụng và tài nguyên cho hệ thống. Thứ hai, một hệ thống co giãn về mặt địa lý, nghĩa là người sử dụng và các tài nguyên có thể nằm trên những vùng khác nhau. Thứ ba, một hệ thống co giãn về mặt quản lý, nghĩa là có thể dễ dàng quản lý ngay cả khi nó mở rộng nhiều tổ chức quản trị độc lập. Trước hết, đối với vấn đề kích cở. Nếu nhiều người sử dụng hoặc tài nguyên cần được hỗ trợ, ta thường đối mặt với hạn chế của tập trung dịch vụ, dữ liệu và giải thuật. Ví dụ, nhiều dịch vụ được tập trung mà chúng được thực hiện bởi chỉ một server đơn chạy trên một máy cụ thể trong hệ phân tán. Rõ ràng, server có thể trở thành quá tải vì số lượng người dùng tăng lên. Cũng như vậy, ví dụ ta phải lưu giữ số điện thoại và địa chỉ của 50 triệu người. Nếu chỉ có một cơ sở dữ liệu đơn sẽ chắc chắn làm tràn đầy tất cả dòng truyền thông bên trong và bên ngoài nó. Tập trung thuật giải cũng là một ý tưởng không hợp lý. Trong một hệ phân tán lớn, một số lượng khổng lồ của những thông điệp phải được gửi trên nhiều đường. Việc chọn đường có thể bằng cách tập hợp những thông tin về tải trọng trên tất cả các máy và sau đó chạy một thuật giải để tính toán tất cả lộ trình tối ưu, cuối cùng truyền kết quả ra khắp hệ thống để cải tiến lộ trình. Tuy nhiên, chỉ với việc tập hợp và vận chuyển tất cả thông tin vào ra đã làm quá tải của mạng. Vì vậy giải pháp tối ưu là phân tán thuật giải. Co giãn về mặt địa lý có những vấn đề của chính nó. Một nguyên nhân chính vì sao là khó khăn để co giãn cho những hệ phân tán mà chỉ được thiết kế cho mạng cục bộ đó là chúng được dựa trên truyền thông đồng bộ. Trong dạng truyền thông này, client yêu cầu dịch vụ bị ngăn lại cho đến khi nhận được một trả lời. Một vấn đề khác mà gây trở ngại co giãn địa lý đó là truyền thông trong mạng diện rộng là vốn đã là không đáng tin cậy. Ngược lại, mạng cục bộ lại cung cấp một phương tiện truyền thông có độ tin cậy cao dựa trên quảng bá. Co giãn địa lý là liên quan chặt chẽ với vấn đề giải quyết tập trung hóa mà cản trở co giãn kích cỡ. Nếu ta có một hệ thống với nhiều thành phần tập trung, rõ ràng co giãn địa lý sẽ là bị hạn chế vì những vấn đề hiệu suất và độ tin cậy kết quả từ truyền thông diện rộng. Hơn nữa, tập trung hóa những thành phần sẽ dẫn đến một sự lãng phí tài nguyên mạng. Cuối cùng, một khó khăn là làm thế nào để một hệ thống co giãn về mặt quản lý. Một vấn đề chính đó là chính sách để giải quyết xung đột đối với tài nguyên hữu dụng, sự quản lý và an toàn. Có ba kỹ thuật cơ bản cho co giãn: che dấu truyền thông, phân tán và nhân bản. Che dấu truyền thông là có thể áp dụng trong trường hợp của co giãn địa lý. ý tưởng cơ bản là hạn chế thời gian chờ những trả lời của các yêu cầu dịch vụ từ xa. Nghĩa là xây dựng ứng dụng yêu cầu sao cho nó sử dụng truyền thông không đồng bộ. Khi một trả lời đến, ứng dụng bị ngắt và một điều khiển đặc biệt được gọi để hoàn thành yêu cầu đã phát ra. Tuy nhiên, có nhiều ứng dụng mà không cần sử dụng của truyền thông không đồng bộ. Ví dụ, trong những ứng dụng tương tác lẫn nhau khi một người sử dụng gửi một yêu cầu và chỉ chờ câu trả lời. Trong trường này, giải pháp tốt nhất là giảm toàn bộ truyền thông bằng cách di chuyển phần tính toán được làm ở server đến client để xử lý yêu cầu dịch vụ. Một trường hợp điển hình trong đó tiếp cận này được dùng để xử lý cơ sở dữ liệu sử dụng forms. Thông thường, điền vào form được làm bằng cách gửi một thông điệp phân biệt cho mỗi trường, và chờ một thông báo nhận. Một giải pháp tốt hơn là gửi mã để điền vào form đến client và client trả lại một form sau khi hoàn thành. Cách tiếp cận gửi mã này được hỗ trợ rộng rãi bởi Web trong dạng của Java applet Một kỹ thuật co giãn khác là phân tán. Phân tán bao hàm lấy một thành phần, chia nó thành nhiều phần nhỏ và truyền những phần đó ra khắp hệ thống. Kỹ thuật co giãn thứ ba đó là nhân bản. Nhân bản không chỉ làm tăng khả năng sẵn sàng mà còn giúp làm cân bằng tải trọng giữa các thành phần dẫn đến hiệu suất tốt hơn. Caching là một dạng đặc biệt của nhân bản mà kết quả là một bản sao của một tài nguyên. Tuy nhiên, nếu nhân bản được làm bằng chủ nhân của tài nguyên thì caching được làm bởi client truy xuất đến tài nguyên. Có một điều rắc rối đối với caching và nhân bản mà ảnh hưởng bất lợi đến co giãn. Vì khi caching hoặc nhân bản sẽ sinh ra nhiều bản sao của một tài nguyên, khi sửa đổi một bản sao sẽ làm nó khác với những bản sao khác. Vì vậy, caching và nhân bản dẫn đến vấn đề nhất quán. III/ Một số vấn đề cụ thể và giải pháp khi xây dựng hệ phân tán. Để xây dựng được hệ phân tán đáp ứng được tất cả các mục tiêu trên là rất khó. Nó đòi hỏi phải giải quyết hành loạt các vấn đề có tính chiến lược. Giải pháp để giải quyết các vấn đề này cũng được thể hiện trong các phần được trình bày dưới đây. 3.1/ Truyền thông (Communication) Truyền thông liên tiến trình là trung tâm của tất cả hệ phân tán. Phần này trình bày các quy luật mà những tiến trình truyền thông phải dựa vào đó là những giao thức và các mô hình sử dụng mở rộng cho truyền thông: Remote Procedure Call (RPC), Remote Method Invocation (RMI), Message-Oriented Middleware (MOM) và Stream. 3.1.1/ Giao thức phân tầng Để dễ dàng giải quyết những vấn đề của truyền thông Tổ chức tiêu chuẩn quốc tế (ISO) đã phát triển mô hình tham chiếu mà chỉ rõ các mức khác nhau, quy định tên cho chúng và đưa ra mức độ cần phải làm. Mô hình này được gọi là mô hình OSI. Mô hình OSI được thiết kế để cho phép hệ thống mở có thể truyền thông. Một hệ thống mở là hệ thống được chuẩn bị để truyền thông với bất kỳ hệ thống mở khác bằng cách sử dụng các quy tắc chuẩn. Những quy tắc này được gọi là những giao thức. Để cho phép một nhóm máy tính có thể truyền thông trên mạng, chúng phải thỏa thuận trên một giao thức được sử dụng. Có hai loại giao thức chính. Giao thức hướng kết nối và giao thức không kết nối. Trong mô hình OSI, truyền thông đươc chia thành 7 tầng. Mỗi tầng giải quyết một vấn đề của truyền thông. Tầng vật lý: liên quan đến nhiệm vụ truyền dòng bít không có cấu trúc qua đường truyền vật lý, truy nhập đường truyền vật lý nhờ các phương tiện cơ, điện. Tầng liên kết dữ liệu: cung cấp phương tiện để truyền thông tin qua liên kết vật lý đảm bảo tin cậy như gửi các khối dữ liệu với các cơ chế đồng bộ hóa, kiểm soát lỗi và kiểm soát luồng dữ liệu cần thiết. Tầng mạng: thực hiện việc chọn đường và chuyển tiếp thông tin với công nghệ chuyển mạch thích hợp, thực hiện kiểm soát luồng dữ liệu, cắt/hợp dữ liệu. Tầng giao vận: Thực hiện việc truyền dữ liệu giữa hai đầu mút; thực hiện cả việc kiểm soát lỗi và kiểm soát luồng dữ liệu giữa hai đầu mút; có thể thực hiện ghép kênh, cắt/hợp dữ liệu nếu cần. Tầng phiên: Cung cấp phương tiện quản lý truyền thông giữa các ứng dung; thiết lập, duy trì, đồng bộ hóa và hủy bỏ các phiên truyền thông giữa các ứng dụng. Tầng trình diễn: Chuyển đổi cú pháp dữ liệu để đáp ứng yêu cầu truyền dữ liệu của các ứng dụng qua môi trường OSI. Tầng ứng dụng: Cung cấp các phương tiện để người sử dụng truy nhập được vào môi trường OSI, đồng thời cung cấp các dịch vụ thông tin phân tán. Khi tiến trình A trên máy 1 muốn giao tiếp với tiến trình B trên máy 2, nó xây dựng một thông điệp và chuyển đến tầng ứng dụng của nó. Tầng ứng dụng sẽ thêm header trước thông điệp và chuyển xuống lớp giao diện cho tầng trình diễn. Tầng trình diễn thêm header của nó và chuyển thông điệp xuống tầng phiên. Cho đến khi thông điệp xuống đến tầng vật lý, nó thực sự được truyền đi. Khi thông điệp đến máy 2, nó được chuyển ngược lên các tầng trên và khi qua mỗi tầng nó lần lược được bóc đi các header. 3.1.2/ Gọi thủ tục từ xa Nhiều hệ phân tán dựa trên trao đổi thông điệp giữa các tiến trình. Tuy nhiên những thủ tục nhận và gửi không che dấu truyền thông, cái mà quan trọng để đạt được trong suốt truy cập trong hệ phân tán. Mô hình gọi thủ tục từ xa (Remote Procedure Call-RPC) nhằm vào che dấu hầu hết tính rắc rối của truyền thông điệp và là ý tưởng cho những ứng dụng client-server. Gọi thủ tục từ xa là phương thức cho phép một chương trình gọi một thủ tục nằm ở trên một máy khác. Khi tiến trình trên máy A gọi một tiến trình trên máy B, tiến trình trên A bị treo, và sự thực hiện thủ tục được gọi xảy ra trên B. Thông tin có thể được chuyển từ A đến B dưới dạng những tham số và sau khi thực hiện xong, kết quả được trả lại cho A. Vấn đề xảy ra đó là lời gọi và thủ tục được gọi nằm trên những máy khác nhau, chúng được thực hiện trong những không gian địa chỉ khác nhau, sự truyền những tham số và kết quả đã dẫn đến vấn đề phức tạp. Cuối cùng cả hai máy có thể bị lỗi hoặc sinh ra những vấ