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.

