logo

Llamada a procedimiento remoto (RPC) en el sistema operativo

Llamada a procedimiento remoto (RPC) es una poderosa técnica para construir Aplicaciones distribuidas basadas en cliente-servidor. . Se basa en ampliar la llamada al procedimiento local convencional para que el El procedimiento llamado no necesita existir en el mismo espacio de direcciones que el procedimiento que llama. . Los dos procesos pueden estar en el mismo sistema o pueden estar en sistemas diferentes con una red que los conecta.

Al realizar una llamada a procedimiento remoto:



1. 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í.

ario khan

2. Cuando el procedimiento finaliza y produce sus resultados, sus resultados se transfieren 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 cliente-servidor (por ejemplo, consulta-respuesta) interacción en la que el flujo de control alterna entre la persona que llama y la persona que llama . Conceptualmente, el cliente y el servidor no se ejecutan al mismo tiempo. En cambio, el hilo de ejecución salta de la persona que llama a la persona que llama y luego regresa.

Funcionamiento de RPC



cuanto es 25 de 100

Los siguientes pasos tienen lugar durante un RPC:

  1. Un cliente invoca un procedimiento de resguardo de cliente , pasando parámetros de la forma habitual. El código auxiliar del cliente reside dentro del propio espacio de direcciones del cliente.
  2. El talón del cliente mariscales (paquete) los parámetros en un mensaje. La clasificación incluye convertir la representación de los parámetros a un formato estándar y copiar cada parámetro en el mensaje.
  3. El código auxiliar del cliente pasa el mensaje a la capa de transporte, que lo envía a la máquina del servidor remoto.
  4. En el servidor, la capa de transporte pasa el mensaje a un código auxiliar del servidor, que Demarshalls (descomprimir) los parámetros y llama a la rutina del servidor deseada utilizando el mecanismo de llamada a procedimiento regular.
  5. Cuando se completa el procedimiento del servidor, regresa al código auxiliar del servidor. (por ejemplo, a través de una devolución de llamada a procedimiento normal) , que reúne los valores devueltos en un mensaje. Luego, el stub del servidor entrega el mensaje a la capa de transporte.
  6. La capa de transporte envía el mensaje resultante a la capa de transporte del cliente, que a su vez devuelve el mensaje al código auxiliar del cliente.
  7. El código auxiliar del cliente gestiona los parámetros de retorno y la ejecución regresa a la persona que llama.

Las consideraciones clave para diseñar e implementar sistemas RPC son:

    Seguridad: dado que RPC implica comunicación a través de la red, la seguridad es una preocupación importante. Se deben implementar medidas como autenticación, cifrado y autorización para evitar el acceso no autorizado y proteger los datos confidenciales. Escalabilidad: a medida que aumenta la cantidad de clientes y servidores, el rendimiento del sistema RPC no debe degradarse. Las técnicas de equilibrio de carga y la utilización eficiente de los recursos son importantes para la escalabilidad. Tolerancia a fallos: el sistema RPC debe ser resistente a fallos de red, caídas del servidor y otros eventos inesperados. Medidas como la redundancia, la conmutación por error y la degradación gradual pueden ayudar a garantizar la tolerancia a fallos. Estandarización: existen varios marcos y protocolos RPC disponibles, y es importante elegir uno estandarizado y ampliamente aceptado para garantizar la interoperabilidad y compatibilidad entre diferentes plataformas y lenguajes de programación. Ajuste del rendimiento: es importante ajustar el sistema RPC para obtener un rendimiento óptimo. Esto puede implicar optimizar el protocolo de red, minimizar los datos transferidos a través de la red y reducir la latencia y la sobrecarga asociada con las llamadas RPC.

PROBLEMAS DE RPC :
Cuestiones que deben abordarse:

1. Tiempo de ejecución de RPC:
El sistema de tiempo de ejecución RPC es una biblioteca de rutinas y un conjunto de 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 tiempo de ejecución del lado del cliente y del lado del servidor vinculante, establecer comunicaciones a través de un protocolo apropiado, pasar datos de llamadas entre el cliente y el servidor y manejar errores de comunicaciones.

2. Trozo:
La función del trozo es Proporcionar transparencia al código de aplicación escrito por el programador. .

    En el lado del cliente, el stub maneja la interfaz entre la llamada al procedimiento local del cliente y el sistema en tiempo de ejecución, organizando y desorganizando datos, invocando el protocolo de tiempo de ejecución RPC y, si se solicita, llevando a cabo algunos de los pasos de enlace. En el lado del servidor, el stub proporciona una interfaz similar entre el sistema de ejecución y los procedimientos del administrador local que ejecuta el servidor.

3. Vinculante: ¿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:

  • Nosotros:
  • Localizando:
    Un servidor que tiene un servicio para ofrecer exporta una interfaz para él. Exportar una interfaz la registra en el sistema para que los clientes puedan utilizarla. Un Cliente debe importar una interfaz (exportada) antes de que pueda comenzar la comunicación.

4. La semántica de llamada asociada con RPC:
Se clasifica principalmente en las siguientes opciones:

    Mensaje de solicitud de reintento –
    Si se debe volver a intentar enviar un mensaje de solicitud cuando un servidor falló o el receptor no recibió el mensaje. Filtrado duplicado –
    Elimine las solicitudes duplicadas del servidor. Retransmisión de resultados –
    Reenviar mensajes perdidos sin volver a ejecutar las operaciones en el lado del servidor.

VENTAJAS:

cadena java a carbón
  1. RPC proporciona ABSTRACCIÓN es decir, la naturaleza de transmisión de mensajes de la comunicación de red está oculta para el usuario.
  2. RPC suele omitir muchas de las capas de protocolo para mejorar el rendimiento. Incluso una pequeña mejora en el rendimiento es importante porque un programa puede invocar RPC con frecuencia.
  3. RPC permite el uso de aplicaciones en el entorno distribuido, no solo en el entorno local.
  4. Con el código RPC se minimiza el esfuerzo de reescritura/redesarrollo.
  5. Modelos orientados a procesos y orientados a subprocesos compatibles con RPC.

Referencias: