Protocolo de llamada a procedimiento remoto (RPC) en sistema distribuido
⚡ Resumen inteligente
La llamada a procedimiento remoto (RPC, por sus siglas en inglés) es un protocolo de comunicación entre procesos que permite a un programa ejecutar un procedimiento en otro espacio de direcciones o máquina, ocultando los detalles de la red tras una llamada a función local ordinaria en sistemas distribuidos cliente-servidor.

¿Qué es RPC?
Llamada a procedimiento remoto (RPC) es un comunicación entre procesos Técnica utilizada en aplicaciones cliente-servidor. Las siglas RPC significan Llamada a Procedimiento Remoto. Los mecanismos RPC se utilizan cuando un programa informático ejecuta un procedimiento o subrutina en un espacio de direcciones diferente, codificado como una llamada a procedimiento normal, sin que el programador tenga que especificar explícitamente los detalles de la interacción remota.
Esta llamada a procedimiento también gestiona protocolos de transporte de bajo nivel, como UDP y TCP/IP, para transmitir 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 habilita un paradigma de igual a igual (P2P) entre los procesos participantes. Permite que un proceso actúe tanto como cliente como servidor.
Funciones de devolución de llamada RPC:
- Gestiona problemas de aplicaciones interactivas procesadas de forma remota.
- Proporciona al servidor el identificador del cliente.
- La función de devolución de llamada hace que el proceso del cliente espere.
- Gestiona los interbloqueos de las devoluciones de llamada.
- Facilita un paradigma de igual a igual entre los procesos participantes.
RPC de transmisión
Una llamada a procedimiento remoto (RPC) de difusión es una solicitud de un cliente que se transmite por la red y es procesada por todos los servidores que disponen del método para procesar dicha solicitud.
Funciones de Broadcast RPC:
- Permite especificar que el mensaje de solicitud del cliente debe ser transmitido.
- Puede declarar puertos de transmisión.
- Ayuda a reducir la carga en la red física.
RPC en modo por lotes
El modo RPC por lotes ayuda a poner en cola solicitudes RPC separadas en un búfer de transmisión en el lado del cliente y luego enviarlas a través de una red en un solo lote al servidor.
Funciones de RPC en modo por lotes:
- Minimiza la sobrecarga que supone enviar una solicitud, ya que las envía a través de la red en un solo lote al servidor.
- Este tipo de protocolo RPC solo es eficiente 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:
- Cliente
- Trozo de cliente
- Tiempo de ejecución de RPC
- Trozo de servidor
- Server
RPC Architectura
¿Cómo funciona RPC?
Durante el proceso RPC se llevan a cabo los siguientes pasos:
Paso 1) El cliente, el stub del cliente y una instancia del entorno de ejecución RPC se ejecutan en la máquina del cliente.
Paso 2) El cliente inicia un proceso de cliente stub pasando los parámetros de la forma habitual. El cliente stub se almacena en su propio espacio de direcciones. Además, solicita al entorno de ejecución RPC local que envíe la solicitud al servidor stub.
Paso 3) En esta etapa, el usuario accede a RPC mediante una llamada a procedimiento local estándar. El entorno de ejecución de RPC gestiona la transmisión de mensajes entre el cliente y el servidor a través de la red. También se encarga de la retransmisión, la confirmación, el enrutamiento y el cifrado.
Paso 4) Tras completar el procedimiento del servidor, la ejecución regresa al módulo auxiliar del servidor, que empaqueta (serializa) los valores de retorno en un mensaje. A continuación, el módulo auxiliar del servidor envía el mensaje de vuelta a la capa de transporte.
Paso 5) En este paso, la capa de transporte envía el mensaje de resultado de vuelta a la capa de transporte del cliente, que a su vez devuelve el mensaje al stub del cliente.
Paso 6) En esta etapa, el cliente stub deserializa (desempaqueta) los parámetros de retorno en el paquete resultante, y la ejecución regresa al llamador.
Características de la RPC
Estas son las características esenciales de RPC:
- El procedimiento al que se hace referencia se encuentra en otro proceso, que probablemente reside 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 sencilla.
- Ofrece una semántica conocida.
- Proporciona una interfaz bien definida.
- Puede comunicarse entre procesos en la misma máquina o en máquinas diferentes.
Ventajas de RPC
Estas son las ventajas y beneficios de la RPC:
- RPC ayuda a los clientes a comunicarse con los servidores mediante el uso convencional de llamadas a procedimientos en lenguajes de alto nivel.
- La llamada a procedimiento remoto (RPC) se basa en la llamada a procedimiento local, pero lo más probable es que el procedimiento llamado se ejecute en un proceso diferente y, por lo general, en un ordenador diferente.
- RPC admite modelos orientados a procesos y orientados a hilos.
- RPC oculta al usuario el mecanismo interno de paso de mensajes.
- Compromete muchas de las capas del protocolo para mejorar el rendimiento.
- RPC proporciona abstracción; por ejemplo, la naturaleza de paso de mensajes de la comunicación de red permanece oculta para el usuario.
- La comunicación entre protocolos (RPC) se puede utilizar tanto en entornos distribuidos como locales.
- El esfuerzo necesario para reescribir y rediseñar el código es mínimo.
Desventajas de RPC
Estas son las desventajas/desventajas de usar RPC:
- La llamada a procedimiento remoto pasa los parámetros únicamente por valor; no se permiten valores de puntero (referencia).
- El tiempo de llamada (y respuesta) a un procedimiento remoto —la sobrecarga— es significativamente mayor que el de un procedimiento local.
- Este mecanismo es altamente vulnerable a fallos, ya que implica un sistema de comunicación, otra máquina y otro proceso.
- El concepto RPC se puede implementar de diferentes maneras, por lo que no existe un estándar único.
- No ofrece flexibilidad en cuanto a la arquitectura de hardware, ya que se basa principalmente en la interacción.
- El coste del proceso aumenta debido a la llamada a procedimiento remoto.

