Giao thức gọi thủ tục từ xa (RPC) trong hệ thống phân tán

RPC là gì?

Cuộc gọi thủ tục từ xa (RPC) là một kỹ thuật giao tiếp giữa các tiến trình. RPC là Remote Procedure Call. Nó được sử dụng cho các ứng dụng máy khách-máy chủ. Các cơ chế RPC được sử dụng khi một chương trình máy tính khiến một thủ tục hoặc chương trình con thực thi trong một không gian địa chỉ khác, được mã hóa như một lệnh gọi thủ tục bình thường mà không cần lập trình viên mã hóa cụ thể các chi tiết cho tương tác từ xa.

Cuộc gọi thủ tục này cũng quản lý giao thức truyền tải cấp thấp, chẳng hạn như Giao thức gói dữ liệu người dùng, Transmission Giao thức điều khiển/Giao thức Internet, v.v. Nó được sử dụng để mang dữ liệu tin nhắn giữa các chương trình.

Các loại RPC

Ba loại RPC là:

  • RPC gọi lại
  • Phát sóng RPC
  • RPC chế độ hàng loạt

RPC gọi lại

Loại RPC này cho phép mô hình P2P giữa các quy trình tham gia. Nó giúp một quá trình trở thành cả dịch vụ máy khách và máy chủ.

Chức năng của RPC gọi lại:

  • Sự cố ứng dụng tương tác được xử lý từ xa
  • Cung cấp máy chủ với khả năng xử lý của khách hàng
  • Gọi lại làm cho quá trình khách hàng chờ đợi
  • Quản lý tình trạng bế tắc gọi lại
  • Nó tạo điều kiện cho mô hình ngang hàng giữa các quá trình tham gia.

Phát sóng RPC

Broadcast RPC là yêu cầu của khách hàng, được phát trên mạng, được xử lý bởi tất cả các máy chủ có phương pháp xử lý yêu cầu đó.

Chức năng của Broadcast RPC:

  • Cho phép bạn chỉ định rằng thông báo yêu cầu của khách hàng phải được phát sóng.
  • Bạn có thể khai báo các cổng phát sóng.
  • Nó giúp giảm tải cho mạng vật lý

RPC chế độ hàng loạt

RPC chế độ hàng loạt giúp xếp hàng, phân tách các yêu cầu RPC trong bộ đệm truyền ở phía máy khách, sau đó gửi chúng trên mạng theo một đợt đến máy chủ.

Chức năng của RPC chế độ hàng loạt:

  • Nó giảm thiểu chi phí liên quan đến việc gửi yêu cầu vì nó gửi chúng qua mạng theo một đợt đến máy chủ.
  • Loại giao thức RPC này chỉ hiệu quả đối với ứng dụng cần tốc độ cuộc gọi thấp hơn.
  • Cần có một giao thức truyền tải đáng tin cậy.

RPC Archikiến trúc

Kiến trúc RPC chủ yếu có năm thành phần của chương trình:

  1. Khách hàng
  2. Sơ khai khách hàng
  3. Thời gian chạy RPC
  4. Sơ khai máy chủ
  5. của chúng tôi
RPC Archikiến trúc
RPC Archikiến trúc

RPC hoạt động như thế nào?

Các bước sau đây diễn ra trong quá trình RPC:

Bước 1) Máy khách, sơ khai máy khách và một phiên bản của thời gian chạy RPC thực thi trên máy khách.

Bước 2) Một máy khách bắt đầu một tiến trình sơ khai máy khách bằng cách truyền các tham số theo cách thông thường. Sơ khai của khách hàng lưu trữ trong không gian địa chỉ của chính khách hàng. Nó cũng yêu cầu RPC Runtime cục bộ gửi trở lại sơ khai máy chủ.

Bước 3) Trong giai đoạn này, RPC được người dùng truy cập bằng cách thực hiện Local Procedural Cal. RPC Runtime quản lý việc truyền tin nhắn giữa mạng giữa máy khách và máy chủ. Nó cũng thực hiện công việc truyền lại, xác nhận, định tuyến và mã hóa.

Bước 4) Sau khi hoàn tất thủ tục máy chủ, nó sẽ quay trở lại sơ khai máy chủ, gói này (sắp xếp) các giá trị trả về vào một thông báo. Sau đó, server stub sẽ gửi tin nhắn trở lại lớp vận chuyển.

Bước 5) Trong bước này, lớp vận chuyển sẽ gửi lại thông báo kết quả đến lớp vận chuyển máy khách, lớp này sẽ trả lại một thông báo cho sơ khai máy khách.

Bước 6) Trong giai đoạn này, sơ khai máy khách sẽ sắp xếp lại (giải nén) các tham số trả về trong gói kết quả và quá trình thực thi sẽ trả về cho người gọi.

Đặc điểm của RPC

Dưới đây là các đặc điểm cơ bản của RPC:

  • Thủ tục được gọi nằm trong một quy trình khác, có khả năng nằm trong một máy khác.
  • Các tiến trình không chia sẻ không gian địa chỉ.
  • Các tham số chỉ được truyền theo giá trị.
  • RPC thực thi trong môi trường của tiến trình máy chủ.
  • Nó không cung cấp quyền truy cập vào môi trường của thủ tục gọi.

Đặc điểm của RPC

Dưới đây là các tính năng quan trọng của RPC:

  • Cú pháp gọi đơn giản
  • Cung cấp ngữ nghĩa đã biết
  • Cung cấp một giao diện được xác định rõ ràng
  • Nó có thể giao tiếp giữa các tiến trình trên cùng một máy hoặc khác nhau

Ưu điểm của RPC

Dưới đây là Ưu điểm/lợi ích của RPC:

  • Phương pháp RPC giúp khách hàng giao tiếp với máy chủ bằng cách sử dụng các lệnh gọi thủ tục thông thường bằng các ngôn ngữ cấp cao.
  • Phương thức RPC được mô hình hóa dựa trên lệnh gọi thủ tục cục bộ, nhưng thủ tục được gọi rất có thể được thực thi trong một quy trình khác và thường là trên một máy tính khác.
  • RPC hỗ trợ các mô hình hướng tiến trình và luồng.
  • RPC làm cho cơ chế truyền tin nhắn nội bộ bị ẩn khỏi người dùng.
  • Nỗ lực cần viết lại và phát triển lại mã là tối thiểu.
  • Các cuộc gọi thủ tục từ xa có thể được sử dụng cho mục đích phân phối và môi trường cục bộ.
  • Nó cam kết nhiều lớp giao thức để cải thiện hiệu suất.
  • RPC cung cấp sự trừu tượng. Ví dụ: bản chất truyền tin nhắn của giao tiếp mạng vẫn bị ẩn đối với người dùng.
  • RPC cho phép sử dụng các ứng dụng trong môi trường phân tán không chỉ trong môi trường cục bộ.
  • Với mã RPC, nỗ lực viết lại và phát triển lại được giảm thiểu.
  • Các mô hình hướng quy trình và hướng luồng được hỗ trợ bởi RPC.

Nhược điểm của RPC

Dưới đây là những nhược điểm/nhược điểm của việc sử dụng RPC:

  • Cuộc gọi thủ tục từ xa Truyền tham số chỉ theo giá trị và giá trị con trỏ, điều này không được phép.
  • Thời gian gọi (và quay lại) thủ tục từ xa (tức là chi phí chung) có thể thấp hơn đáng kể so với thủ tục cục bộ.
  • Cơ chế này rất dễ bị hỏng vì nó liên quan đến một hệ thống liên lạc, một máy khác và một quy trình khác.
  • Khái niệm RPC có thể được triển khai theo nhiều cách khác nhau, điều này không thể đạt tiêu chuẩn.
  • Không cung cấp bất kỳ tính linh hoạt nào trong RPC cho kiến ​​trúc phần cứng vì nó chủ yếu dựa trên tương tác.
  • Chi phí của quá trình này tăng lên do cuộc gọi thủ tục từ xa.

Tổng kết

  • Một cuộc gọi thủ tục từ xa là một giao tiếp giữa các quy trình kỹ thuật.
  • Ba loại RPC là 1) RPC gọi lại 2) RPC phát sóng và 3) RPC chế độ hàng loạt
  • Kiến trúc RPC chủ yếu có năm thành phần của chương trình: 1) Client 2) Client Stub 3) RPC Runtime 4) Server Stub và 5) Server
  • Trong phương pháp RPC, các tiến trình không chia sẻ không gian địa chỉ
  • RPC cung cấp cú pháp cuộc gọi đơn giản và ngữ nghĩa đã biết
  • Phương pháp RPC giúp khách hàng giao tiếp với máy chủ bằng cách sử dụng các lệnh gọi thủ tục thông thường bằng các ngôn ngữ cấp cao.
  • Hạn chế lớn nhất của phương pháp RPC là nó rất dễ bị lỗi vì nó liên quan đến hệ thống liên lạc, máy khác và quy trình khác.