La llamada a procedimiento remoto o RPC es una técnica poderosa para construir aplicaciones distribuidas basadas en cliente-servidor. También se conoce como llamada a función o llamada a subrutina. Una llamada a procedimiento remoto ocurre cuando un programa de computadora hace que un procedimiento se ejecute en un espacio de direcciones diferente, codificado como una llamada a procedimiento local, sin que el programador indique explícitamente los detalles de la interacción remota. El programador escribe esencialmente el mismo código ya sea que la subrutina sea local para el programa en ejecución o remota. Esta es una forma de interacción cliente-servidor implementada a través de un sistema de paso de mensajes de solicitud-respuesta.
El modelo RPC implica transparencia de ubicación que los procedimientos de llamada son en gran medida los mismos, ya sean locales o remotos. Normalmente no son idénticos, por lo que se pueden distinguir las llamadas locales de las llamadas remotas. Las llamadas remotas suelen ser mucho más lentas y menos confiables que las llamadas locales, por lo que es importante distinguirlas.
Los RPC son una forma de comunicación entre procesos (IPC), en la que diferentes procesos tienen diferentes espacios de direcciones. Tienen distintos espacios de direcciones virtuales en la misma máquina host, aunque el espacio de direcciones físicas sea el mismo. Mientras que si están en diferentes hosts, el espacio de direcciones físicas es diferente.
Cómo realizar una llamada a procedimiento remoto
El entorno de llamada se suspende, los parámetros del procedimiento se transfieren a través de la red al entorno donde se ejecutará el procedimiento y el procedimiento se ejecuta allí.
Cuando el procedimiento finaliza y produce sus resultados, se transfiere de nuevo al entorno de llamada, donde se reanuda la ejecución como si regresara de una llamada a un procedimiento normal.
NOTA: RPC es especialmente adecuado para la interacción cliente-servidor (por ejemplo, consulta-respuesta) en la que el flujo de control alterna entre la persona que llama y el destinatario. Conceptualmente, el cliente y el servidor no se ejecutan simultáneamente; en cambio, el hilo de ejecución salta de la persona que llama a la persona que llama y luego regresa.
Tipos de RPC
Hay tres tipos de llamada a procedimiento remoto (RPC) en un sistema operativo, como por ejemplo:
1. 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. Callback RPC tiene las siguientes funciones, como:
strep c
- Problemas de aplicaciones interactivas procesadas remotamente.
- Ofrece servidor con control de clientes.
- La devolución de llamada hace que el proceso del cliente espere.
- Gestionar los puntos muertos de devolución de llamadas.
- Facilita un paradigma de igual a igual entre los procesos participantes.
2. RPC de transmisión
Broadcast RPC es la solicitud de un cliente transmitida en la red, procesada por todos los servidores con el método para procesar esa solicitud. Broadcast RPC tiene las siguientes funciones, tales como:
- 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.
3. RPC en modo por lotes
RPC en modo por lotes ayuda a poner en cola, separar solicitudes RPC, en un búfer de transmisión, en el lado del cliente, y luego enviarlas en una red en un lote al servidor. RPC en modo por lotes tiene las siguientes funciones, como:
- Minimiza la sobrecarga involucrada en el envío de una solicitud enviándola a través de la red en un lote al servidor.
- Este tipo de protocolo RPC sólo es eficaz para una aplicación que necesita tasas de llamadas más bajas.
- Necesita un protocolo de transmisión confiable.
¿Qué hace RPC?
Cuando las declaraciones de programa que utilizan el marco RPC se compilan en un programa ejecutable, se incluye un código auxiliar en el código compilado que representa el código del procedimiento remoto.
Cuando se ejecuta el programa y se emite la llamada al procedimiento, el código auxiliar recibe la solicitud y la reenvía a un programa de ejecución del cliente en la computadora local. La primera vez que se invoca el código auxiliar del cliente, se pone en contacto con un servidor de nombres para determinar la dirección de transporte donde reside el servidor.
El programa de ejecución del cliente sabe cómo dirigirse a la computadora remota y a la aplicación del servidor y envía el mensaje a través de la red que solicita el procedimiento remoto. De manera similar, el servidor incluye un programa de ejecución y un código auxiliar que interactúa con el procedimiento remoto en sí, y los protocolos de solicitud de respuesta se devuelven de la misma manera.
Características de RPC
En un sistema operativo, la llamada a procedimiento remoto (RPC) tiene las siguientes características, tales como:
- RPC oculta al usuario la complejidad del proceso de paso de mensajes.
- RPC sólo utiliza capas específicas del modelo OSI como la capa de transporte.
- Los clientes pueden comunicarse con el servidor utilizando lenguajes de nivel superior.
- RPC funciona bien tanto con entornos locales como remotos.
- El programa de RPC está escrito en código simple y el programador lo entiende fácilmente.
- El sistema operativo puede manejar fácilmente procesos y subprocesos involucrados en RPC.
- El sistema operativo oculta las abstracciones de RPC al usuario.
¿Cómo funciona RPC?
Cuando se invoca una llamada a un procedimiento remoto, el entorno de llamada se suspende, los parámetros del procedimiento se transfieren a través de la red al entorno donde se ejecutará el procedimiento y luego el procedimiento se ejecuta en ese entorno.
Cuando finaliza el procedimiento, los resultados se transfieren nuevamente al entorno de llamada, donde se reanuda la ejecución como si regresara de una llamada a un procedimiento normal.
convertir cadena a int java
Una llamada a procedimiento remoto (RPC) funciona en los siguientes pasos en un sistema operativo:
Paso 1: El cliente, el código auxiliar del cliente y el 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 empaquetado de los parámetros del procedimiento se llama ordenar . El código auxiliar del cliente se almacena dentro del propio espacio de direcciones del cliente y también solicita al tiempo de ejecución de RPC local que lo envíe de vuelta al código auxiliar del servidor.
Paso 3: En esta etapa, el usuario puede acceder a RPC mediante una llamada de procedimiento local periódica. RPC Runtime gestiona la transmisión de mensajes entre la red entre el cliente y el servidor, y también realiza el trabajo de retransmisión, reconocimiento, enrutamiento y cifrado.
Etapa 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.
Problemas de llamada a procedimiento remoto (RPC)
En un sistema operativo, la llamada a procedimiento remoto o RPC enfrenta algunos problemas que deben abordarse, como por ejemplo:
objeto en programación java
1. Tiempo de ejecución de RPC
El sistema de ejecución RPC es una biblioteca de rutinas y servicios que manejan las comunicaciones de red que subyacen al mecanismo RPC. En el curso de una llamada RPC, el código de los sistemas de ejecución del lado del cliente y del lado del servidor maneja el enlace, establece comunicaciones a través de un protocolo apropiado, pasa datos de llamadas entre el cliente y el servidor y maneja los errores de comunicación.
kajal agarwal
2. trozo
La función del código auxiliar es proporcionar transparencia al código de la aplicación escrito por el programador.
3. Encuadernación
¿Cómo sabe el cliente a quién llamar y dónde reside el servicio?
La solución más flexible es utilizar enlace dinámico y encontrar el servidor en tiempo de ejecución cuando se crea el RPC por primera vez. La primera vez que se invoca el código auxiliar del cliente, se pone en contacto con un servidor de nombres para determinar la dirección de transporte en la que reside el servidor. La encuadernación consta de dos partes:
4. La semántica de llamadas asociada con RPC
Se clasifica principalmente en las siguientes opciones,
Características de la RPC
Estas son las características esenciales de la llamada a procedimiento remoto:
- 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.
Ventajas de RPC
A continuación te presentamos algunas ventajas o beneficios de RPC, como por ejemplo:
- 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 lo más probable es que el procedimiento se ejecute en un proceso diferente y, normalmente, 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 la distribución y el entorno 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 minimizan los esfuerzos de reescritura y desarrollo.
- Modelos orientados a procesos y orientados a subprocesos compatibles con RPC.
Desventajas de RPC
A continuación se muestran algunas desventajas o inconvenientes del uso de RPC, como por ejemplo:
- 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 interacción.
- El costo del proceso aumenta debido a una llamada a procedimiento remoto.