Учебники

13) Удаленный вызов процедур (RPC)

Что такое RPC?

Удаленный вызов процедур (RPC) – это метод межпроцессного взаимодействия. Используется для клиент-серверных приложений. Механизмы RPC используются, когда компьютерная программа вызывает выполнение процедуры или подпрограммы в другом адресном пространстве, которое закодировано как обычный вызов процедуры, при этом программист специально не кодирует детали для удаленного взаимодействия. Этот вызов процедуры также управляет транспортным протоколом низкого уровня, таким как протокол пользовательских дейтаграмм, протокол управления передачей / Интернет-протокол и т. Д. Он используется для передачи данных сообщения между программами. Полная форма RPC – Удаленный вызов процедур.

Из этого руководства по операционной системе вы узнаете:

Типы RPC

Три типа RPC:

  • Обратный вызов RPC
  • Трансляция RPC
  • RPC в пакетном режиме

Обратный вызов RPC

Этот тип RPC обеспечивает парадигму P2P между участвующими процессами. Это помогает процессу быть как клиентом, так и сервером.

Функции Callback RPC:

  • Удаленно обработанные проблемы интерактивного приложения
  • Предлагает сервер с дескриптором клиента
  • Обратный вызов заставляет клиентский процесс ждать
  • Управление взаимоблокировками обратного вызова
  • Это облегчает одноранговую парадигму среди участвующих процессов.

Трансляция RPC

Широковещательный RPC – это запрос клиента, который транслируется в сети и обрабатывается всеми серверами, у которых есть метод обработки этого запроса.

Функции Broadcast RPC:

  • Позволяет указать, что сообщение запроса клиента должно быть передано.
  • Вы можете объявить широковещательные порты.
  • Это помогает снизить нагрузку на физическую сеть

RPC в пакетном режиме

RPC в пакетном режиме помогает ставить в очередь отдельные запросы RPC в буфере передачи на стороне клиента, а затем отправлять их по сети одним пакетом на сервер.

Функции RPC в пакетном режиме:

  • Это сводит к минимуму накладные расходы, связанные с отправкой запроса, так как он отправляет их по сети одним пакетом на сервер.
  • Этот тип протокола RPC эффективен только для приложений, которым требуется более низкая скорость вызовов.
  • Требуется надежный протокол передачи.

Как работает RPC?

Архитектура RPC имеет в основном пять компонентов программы:

  1. клиент
  2. Клиентская заглушка
  3. RPC Runtime
  4. Серверная заглушка
  5. сервер

В процессе RPC выполняются следующие шаги:

Шаг 1) Клиент, заглушка клиента и один экземпляр времени выполнения RPC выполняются на клиентском компьютере.

Шаг 2) Клиент запускает процесс-заглушку клиента, передавая параметры обычным способом. Клиентская заглушка хранится в собственном адресном пространстве клиента. Он также просит локальную среду выполнения RPC отправить обратно на заглушку сервера.

Шаг 3) На этом этапе RPC доступен для пользователя путем выполнения обычной локальной процедурной калибровки. RPC Runtime управляет передачей сообщений между сетью через клиент и сервер. Он также выполняет работу по повторной передаче, подтверждению, маршрутизации и шифрованию.

Шаг 4) После завершения серверной процедуры он возвращается к заглушке сервера, которая упаковывает (маршаллы) возвращаемые значения в сообщение. Затем заглушка сервера отправляет сообщение обратно на транспортный уровень.

Шаг 5) На этом этапе транспортный уровень отправляет сообщение с результатом клиентскому транспортному уровню, который возвращает сообщение клиентской заглушке.

Шаг 6) На этом этапе клиентская заглушка демаршаллизирует (распаковывает) возвращаемые параметры в результирующем пакете, и процесс выполнения возвращается вызывающей стороне.

Характеристики RPC

Вот основные характеристики RPC:

  • Вызываемая процедура находится в другом процессе, который, вероятно, находится на другом компьютере.
  • Процессы не разделяют адресное пространство.
  • Параметры передаются только по значениям.
  • RPC выполняется в среде серверного процесса.
  • Он не предлагает доступ к среде вызывающей процедуры.

Особенности RPC

Вот некоторые важные особенности RPC

  • Простой синтаксис вызова
  • Предлагает известную семантику
  • Обеспечить четко определенный интерфейс
  • Он может общаться между процессами на одной и той же машине

Преимущества RPC

Вот плюсы / преимущества RPC

  • Метод RPC помогает клиентам обмениваться данными с серверами путем обычного использования вызовов процедур на языках высокого уровня.
  • Метод RPC смоделирован на вызове локальной процедуры, но вызываемая процедура, скорее всего, будет выполняться в другом процессе и обычно на другом компьютере.
  • RPC поддерживает процессы и ориентированные на потоки модели.
  • RPC делает внутренний механизм передачи сообщений скрытым от пользователя.
  • Усилия, необходимые для переписывания и повторной разработки кода, минимальны.
  • Удаленные вызовы процедур могут использоваться для распределенной и локальной среды.
  • Он фиксирует многие уровни протокола для повышения производительности.
  • RPC обеспечивает абстракцию. Например, передача сообщений в сети остается скрытой от пользователя.
  • RPC позволяет использовать приложения в распределенной среде, а не только в локальной среде.
  • С помощью кода RPC усилия по переписыванию и переработке сводятся к минимуму.
  • RPC поддерживает модели, ориентированные на процессы и потоки.

Недостатки RPC

Вот минусы / недостатки использования RPC:

  • Удаленный вызов процедуры передает параметры только по значениям и значениям указателя, что недопустимо.
  • Время удаленного вызова (и возврата) процедуры (т. Е. Накладные расходы) может быть значительно меньше, чем для локальной процедуры.
  • Этот механизм очень уязвим к сбоям, так как включает в себя систему связи, другую машину и другой процесс.
  • Концепция RPC может быть реализована различными способами, что не является стандартным.
  • Не предлагает никакой гибкости в RPC для аппаратной архитектуры, так как он в основном основан на взаимодействии.
  • Стоимость процесса увеличивается из-за удаленного вызова процедуры.

Резюме:

  • Удаленный вызов процедуры – это метод межпроцессного взаимодействия.
  • Три типа RPC: 1) обратный вызов RPC, 2) широковещательный RPC и 3) RPC в пакетном режиме.
  • Архитектура RPC состоит в основном из пяти компонентов программы: 1) клиент 2) клиентская заглушка 3) RPC Runtime 4) серверная заглушка и 5) сервер
  • В методе RPC процессы не разделяют адресное пространство
  • RPC предлагает простой синтаксис вызова и известную семантику
  • Метод RPC помогает клиентам обмениваться данными с серверами путем обычного использования вызовов процедур на языках высокого уровня.
  • Самый большой недостаток метода RPC заключается в том, что он очень уязвим к сбоям, поскольку в нем задействованы система связи, другая машина и другой процесс.