Aspectos de diseño
Escalabilidad.
Ejemplo del sistema telefónico francés.
Minitel.
31
Aspectos de diseño
Escalabilidad.
Características de los algoritmos descentralizados:
Ningún nodo conoce el estado completo del sistema.
Las decisiones se toman en base a información local.
La falla de un nodo no compromete el algoritmo.
No existe una hipótesis implícita de la existencia de un reloj global.
32
Remote Procedure Call
Discutamos del paradigma cliente–servidor.
Implicaciones de la E/S y el paso de mensajes.
Birrell y Nelson (1984).
¿Qué propucieron?
33
Remote Procedure Call
34
Remote Procedure Call
La idea parece sencilla, pero existen algunas sutilezas.
Procedimientos en espacios de direcciones diferentes.
Necesidad de transferir parámetros y resultados.
¿Qué ocurre en caso de fallas?
35
RPC – Operación básica
Para entender el funcionamiento de RPC.
Es necesario entender una llamada convencional a procedimiento.
count= read(fd, buf, nbytes);
¿Qué ocurre cuando se invoca a read?
36
RPC – Operación básica
37
RPC – Operación básica
Observaciones en cuanto al pase de parámetros.
Valor.
Referencia.
Copia/restauración.
38
RPC – Operación básica
La idea detrás de RPC es que una llamada a procedimiento remoto se parezca lo más posible a una llamada local.
¿Cómo podemos lograr esto?
Client Stub.
Server Stub.
39
RPC – Operación básica
40
RPC – Operación básica
El cliente invoca al Client Stub.
Client Stub construye un mensaje y realiza una llamada al núcleo.
El núcleo envía el mensaje al núcleo remoto.
El núcleo remoto proporciona el mensaje al Server Stub.
El Server Stub desempaqueta los parámetros y llama al procedimiento.
41
RPC – Operación básica
El procedimiento culmina y regresa el resultado al Server Stub.
El Server Stub empaqueta el resultado y hace una llamada al núcleo.
El núcleo remoto, envía el mensaje al núcleo cliente.
El núcleo del cliente da el mensaje al Client Stub.
El Client Stub desempaqueta el resultado.
42
RPC – Transferencia de parámetros
¿A qué nos referimos con esto?
Ordenamiento de parámetros.
Funcionamiento.
43
RPC – Transferencia de parámetros
44
RPC – Transferencia de parámetros
45
RPC – Transferencia de parámetros
Soluciones.
Ideas.
Forma canónica.
46
RPC – Semántica en caso de falla
Si el trasfondo de RPC es la transparencia.
¿Qué hacer en caso de falla?
Distinguiremos cinco clase de fallas.
El cliente no puede localizar al servidor.
Se pierde el mensaje de solicitud del cliente al servidor.
Se pierde el mensaje de respuesta del servidor al cliente.
El servidor falla antes de recibir una solicitud.
El cliente fallas después de enviar una solicitud.
47
RPC – El cliente no puede localizar al servidor
Razones.
El servidor esta inactivo.
El Server Stub es incompatible con el Client Stub.
¿Cómo solventar este inconveniente?
En C podríamos utilizar un valor especial, p.e: -1.
Implicaciones.
Solución alternativa.
Excepciones.
48
RPC – Pérdida de mensaje de solicitud
Parece más fácil de tratar.
Ideas.
Iniciar un temporizador en el núcleo al enviar la solicitud.
Funcionamiento.
¿Qué pasa si se pierden todos los mensajes?
Regresamos al caso anterior.
49
RPC – Pérdida del mensaje de respuesta
Un poco más compleja de enfrentar.
Ideas.
Solución basada en el caso anterior.
Funcionamiento.
Implicaciones.
Recuperar una porción de un archivo.
Idempotente.
Realizar una transferencia bancaria.
50
Página anterior | Volver al principio del trabajo | Página siguiente |