RPC

Llamadas a procedimientos remotos

Funcionamiento

RPC= Remote Procedure Call

Híbrido entre llamadas a procedimientos y paso de mensajes

Constituyen el núcleo de muchos sistemas distribuidos

Llegaron a su culminación con DCE

Evolucionaron hacia orientación de objetos

Proceso llamada : empaquetar argumentos en mensajes, envío a otro proceso, resultado.

Proceso ejecución: extraer argumentos de mensaje, realizar llamada local, obtener resultado, enviar de vuelta al proceso llamada.

Objetivo: acercar la semántica de las llamadas a procedimiento convencional a un entorno distribuido.

TRANSPARENCIA

Llamadas y mensajes en una RPC

image

Suplentes(STUBS)

Se generan automáticamente por el software de RPC

En el cliente

En el servidor

Localizan al servidor

Empaquetan los parámetros y construyen los mensajes

Envían mensaje al server

Espera la recepción de mensaje

Aspectos de diseño de las RPC

Lenguaje de definición de interfaces. Generador de suplentes.

Transferencia de parámetros

Enlace dinámico (binding)

Semántica de las RPC en presencia de fallos

Lenguaje de definición de interfaces

Nombres de procedimientos y parámetros (entrada y salida)

Interfaz: Especifica un nombre de servicio que utilizan los clientes y los servidores

Integrado con un lenguaje de programación (Cedar, Argus)

Lenguaje de definición de interfaces específico para describir las interfaces entre los clientes y servidores

Aplanamiento

image

Enlace Dinámico

Permite localizar objetos con nombre en un sistema distribuido, en concreto, servidores que ejecutan las RPC

Establecimiento de la comunicación en una RPC

Problemas que pueden pasar en un RPC

image

El cliente no es capaz de localizar al servidor

Se pierde el mensaje de petición del cliente al servidor

Se pierde el mensaje de respuesta del servidor al cliente

El servidor falla después de recibir una petición

El cliente falla después de enviar una petición

image

image

image

§ El servidor puede estar caído

§ El cliente puede estar usando una versión antigua del servidor

§ La versión ayuda a detectar accesos a copias obsoletas

§ Es la más fácil de tratar

§ Se activa una alarma (timeout) después de enviar el mensaje

§ Si no se recibe una respuesta se retransmite

§ Más difícil de tratar

Algunas operaciones pueden repetirse sin problemas

Solución con operaciones no idempotentes es descartar peticiones ya ejecutadas

El servidor no ha llegado a ejecutar la operación

El servidor ha llegado a ejecutar la operación

El cliente no puede distinguir los dos

La computación está activa pero ningún cliente espera los
resultados

PROGRAMACIÓN CON RPC

image

EJEMPLOS

§ RPC de Sun (1990) utilizado en NFS

§ RPC del proyecto ANSA (1989) desarrollado por Architecture Project Management Ltd. (Cambridge, Inglaterra)

§ RPC de DCE (1990), estándar desarrollado por Open Software Foundation