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
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
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
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
§ 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
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