Protocolo de llamada a procedimiento remoto (RPC) en sistema distribuido

¿Qué es RPC?

Llamada a procedimiento remoto (RPC) Es una técnica de comunicación entre procesos. La forma completa de RPC es llamada a procedimiento remoto. Se utiliza para aplicaciones cliente-servidor. Los mecanismos RPC se utilizan cuando un programa informático hace que un procedimiento o subrutina se ejecute en un espacio de direcciones diferente, que se codifica como una llamada a procedimiento normal sin que el programador codifique específicamente los detalles de la interacción remota.

Esta llamada a procedimiento también gestiona el protocolo de transporte de bajo nivel, como el protocolo de datagramas de usuario, Transmission Protocolo de control/Protocolo de Internet, etc. Se utiliza para transportar los datos del mensaje entre programas.

Tipos de RPC

Tres tipos de RPC son:

  • RPC de devolución de llamada
  • RPC de transmisión
  • RPC en modo por lotes

RPC de devolución de llamada

Este tipo de RPC permite un paradigma P2P entre procesos participantes. Ayuda a que un proceso sea tanto servicio de cliente como de servidor.

Funciones de devolución de llamada RPC:

  • Problemas de aplicaciones interactivas procesadas remotamente
  • Ofrece servidor con identificador de clientes.
  • La devolución de llamada hace esperar el proceso del cliente
  • Gestionar bloqueos de devolución de llamadas
  • Facilita un paradigma de igual a igual entre los procesos participantes.

RPC de transmisión

Broadcast RPC es una solicitud de un cliente, que se transmite en la red, procesada por todos los servidores que tienen el método para procesar esa solicitud.

Funciones de Broadcast RPC:

  • Le permite especificar que el mensaje de solicitud del cliente debe transmitirse.
  • Puede declarar puertos de transmisión.
  • Ayuda a reducir la carga en la red física.

RPC en modo por lotes

El modo por lotes RPC ayuda a poner en cola y separar las solicitudes RPC en un búfer de transmisión en el lado del cliente y luego enviarlas a través de una red en un lote al servidor.

Funciones de RPC en modo por lotes:

  • Minimiza la sobrecarga involucrada en el envío de una solicitud, ya que las envía a través de la red en un lote al servidor.
  • Este tipo de protocolo RPC sólo es eficaz para aplicaciones que necesitan tasas de llamadas más bajas.
  • Necesita un protocolo de transmisión confiable.

RPC Architectura

La arquitectura RPC tiene principalmente cinco componentes del programa:

  1. Cliente
  2. Trozo de cliente
  3. Tiempo de ejecución de RPC
  4. Trozo de servidor
  5. Server
RPC Architectura
RPC Architectura

¿Cómo funciona RPC?

Durante el proceso RPC se llevan a cabo los siguientes pasos:

Paso 1) El cliente, el código auxiliar del cliente y una instancia de tiempo de ejecución de RPC se ejecutan en la máquina cliente.

Paso 2) Un cliente inicia un proceso de código auxiliar de cliente pasando parámetros de la forma habitual. El código auxiliar del cliente se almacena dentro del propio espacio de direcciones del cliente. También solicita al tiempo de ejecución de RPC local que envíe de vuelta al código auxiliar del servidor.

Paso 3) En esta etapa, el usuario accede a RPC mediante la realización de una calibración procedimental local regular. El entorno de ejecución de RPC administra la transmisión de mensajes entre la red a través del cliente y el servidor. También realiza el trabajo de retransmisión, reconocimiento, enrutamiento y cifrado.

Paso 4) Después de completar el procedimiento del servidor, regresa al código auxiliar del servidor, que empaqueta (ordena) los valores devueltos en un mensaje. Luego, el código auxiliar del servidor envía un mensaje a la capa de transporte.

Paso 5) En este paso, la capa de transporte devuelve el mensaje de resultado a la capa de transporte del cliente, que devuelve un mensaje al código auxiliar del cliente.

Paso 6) En esta etapa, el código auxiliar del cliente descomprime (desempaqueta) los parámetros de retorno, en el paquete resultante, y el proceso de ejecución regresa al llamador.

Características de la RPC

Estas son las características esenciales de RPC:

  • El procedimiento llamado se encuentra en otro proceso, que probablemente resida en otra máquina.
  • Los procesos no comparten espacio de direcciones.
  • Los parámetros se pasan sólo por valores.
  • RPC se ejecuta dentro del entorno del proceso del servidor.
  • No ofrece acceso al entorno del procedimiento de llamada.

Características de RPC

Estas son las características importantes de RPC:

  • Sintaxis de llamada simple
  • Ofrece semántica conocida.
  • Proporcionar una interfaz bien definida
  • Puede comunicarse entre procesos en la misma o en diferentes máquinas.

Ventajas de RPC

Aquí están las ventajas y ventajas de RPC:

  • El método RPC ayuda a los clientes a comunicarse con los servidores mediante el uso convencional de llamadas a procedimientos en lenguajes de alto nivel.
  • El método RPC se basa en la llamada al procedimiento local, pero es más probable que el procedimiento llamado se ejecute en un proceso diferente y, por lo general, en una computadora diferente.
  • RPC admite modelos orientados a procesos y subprocesos.
  • RPC oculta el mecanismo interno de transmisión de mensajes al usuario.
  • El esfuerzo necesario para reescribir y desarrollar el código es mínimo.
  • Las llamadas a procedimientos remotos se pueden utilizar para fines de entorno distribuido y local.
  • Compromete muchas de las capas del protocolo para mejorar el rendimiento.
  • RPC proporciona abstracción. Por ejemplo, la naturaleza de transmisión de mensajes de la comunicación en red permanece oculta para el usuario.
  • RPC permite el uso de las aplicaciones en un entorno distribuido que no es sólo el entorno local.
  • Con el código RPC, se minimiza el esfuerzo de reescritura y desarrollo.
  • Soporte de modelos orientados a procesos y orientados a subprocesos por RPC.

Desventajas de RPC

Estas son las desventajas/desventajas de usar RPC:

  • La llamada a procedimiento remoto pasa parámetros solo por valores y valores de puntero, lo cual no está permitido.
  • El tiempo de llamada (y devolución) de un procedimiento remoto (es decir, gastos generales) puede ser significativamente menor que el de un procedimiento local.
  • Este mecanismo es muy vulnerable a fallas ya que involucra un sistema de comunicación, otra máquina y otro proceso.
  • El concepto RPC se puede implementar de diferentes maneras, lo cual no es estándar.
  • No ofrece ninguna flexibilidad en RPC para la arquitectura de hardware, ya que se basa principalmente en la interacción.
  • El costo del proceso aumenta debido a una llamada a procedimiento remoto.

Resumen

  • Una llamada a procedimiento remoto es una comunicación entre procesos la técnica.
  • Tres tipos de RPC son 1) RPC de devolución de llamada, 2) RPC de transmisión y 3) RPC en modo por lotes.
  • La arquitectura RPC tiene principalmente cinco componentes del programa: 1) Cliente 2) Stub del cliente 3) Tiempo de ejecución de RPC 4) Stub del servidor y 5) Servidor
  • En el método RPC los procesos no comparten espacio de direcciones
  • RPC ofrece una sintaxis de llamada sencilla y una semántica conocida
  • El método RPC ayuda a los clientes a comunicarse con los servidores mediante el uso convencional de llamadas a procedimientos en lenguajes de alto nivel.
  • El mayor inconveniente del método RPC es que es muy vulnerable a fallas, ya que involucra un sistema de comunicación, otra máquina y otro proceso.