Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que...

24
Sistemas Distribuidos Ing. José L. Simón Comunicación entre procesos Los procesos (programas que se ejecutan) manejan items de datos estructuras Las redes transmiten mensajes serialización

Transcript of Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que...

Page 1: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Comunicación entre procesos

Los procesos (programas que se ejecutan) manejan items de datos estructuras

Las redes transmiten mensajes serialización

Page 2: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Modelos de paso de mensajes

Unicast: uno a uno

Multicast: uno a varios (grupo)

Page 3: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Conceptos básicos

Paso de mensajesTransparencia de localizaciónProtocolos de pedido y respuestaMulticastPolíticas de reconocimiento y espera

Page 4: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Marshalling - Unmarshalling

Es el aplanamiento de estructuras de datos para transmitirlas por la red

Normalmente implica la conversión de datos a un formato ‘exterior’ estándar

Proceso 2Proceso 1

XDR

Page 5: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Marshalling

Marshalling = Aplanamiento + XDR

Page 6: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Operaciones básicas de mensajes

Send( msg, dest ) envía un mensaje al destino

especificadoRecv( msg, orig )

Recibe un mensaje desde la red. ‘orig’ contiene la información del remitente

Page 7: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Mensajes: modos de operación

Modo bloqueado o sincrónico: El proceso se detiene hasta que se

ejecuta completamente la operación solicitada (send o recv)

Modo asincrónico: El proceso continúa su ejecución sin

esperar la terminación de la operación

Page 8: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Modo asincrónico

Hay varios mecanismos para obtener el resultado de la operación solicitada (send o recv): Encuesta (polling) Señales Interrupciones Completion Ports

Page 9: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Mensajes: extremos

Un canal de mensajes se establece entre dos endpoints que presentan una abstracción de la red subyacente a los procesos intervinientes

Cada endpoint se denomina port

Page 10: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Ports

El modelo de ports implementado puede soportar la transparencia de localización (Amœba, Chorus, Mach) o no (Unix Sockets)

Un mismo proceso puede usar varios ports

Para enviar un mensaje es necesario conocer el port de destino

Page 11: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Unicast

Es el modelo básico aplicado en las arquitecturas Cliente-Servidor

Está basado en protocolos de pedido-respuesta (Request-Reply)

Utiliza tres operaciones primitivas

Page 12: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Primitivas Cliente-Servidor

DoOperation( Port serverPort, Message req, Message rsp )

GetRequest( Port portID, Message req )

SendReply( Port clientPort, Message reply )

Page 13: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Cliente-Servidor: interacción

DoOperation()

GetRequest()

SendReply()Bloqueo

Bloqueo

Cliente Servidor

Page 14: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Argumentos

Formato de mensajes

ID Requerimiento

ID de proceso

ID de tipo Request, Reply

Page 15: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Fallas en la transmisión

Los mensajes pueden perderse por un conjunto de causas: Descartados por emisores, receptores o

nodos intermedios de la red Red particionada Procesos que fallan

Page 16: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Remote Procedure Call

Técnica que permite invocar un procedimiento en un computador remoto

Implica conocer la localización del procedimiento e intercambiar mensajes de pedido y respuesta

Utiliza un protocolo de interacción específico

Page 17: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Protocolos de RPC: R

Request El cliente solicita la ejecución del

procedimiento remoto sin esperar respuesta

Ejemplo: envío de alarmas o mediciones

Page 18: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Protocolos de RPC: RR

Request-Reply El cliente requiere la ejecución de un

procedimiento remoto El servidor recibe el pedido (mensaje R)

y ejecuta el procedimiento Una vez finalizada la ejecución, el

servidor empaqueta los resultados en un mensaje de respuesta (Reply) y lo envía al cliente

Page 19: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Protocolos de RPC: RRARequest-Reply-Acknowlege

El cliente requiere la ejecución de un procedimiento remoto

El servidor recibe el pedido (mensaje R) y ejecuta el procedimiento

Una vez finalizada la ejecución, el servidor empaqueta los resultados en un mensaje de respuesta (Reply) y lo envía al cliente

Cuando el cliente recibe la respuesta, envía una confirmación (ACK)

Page 20: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Comunicación en Grupos

Grupos:

Tolerancia a fallasMejoras en la disponibilidadMejoras en la performanceLocalización de objetosActualizaciones múltiples

Page 21: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Multicast

Un emisor, un mensaje, varios receptores

Page 22: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Tipificación de multicast

Atómico: un mensaje transmitido a un grupo de receptores es recibido por todos o ninguno. Se utiliza con servidores replicados que deben mantener el mismo estado.

Reliable: semántica de ‘mejor esfuerzo’: no garantiza que todos los receptores reciban el mensaje

Page 23: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

OrdenamientoE1 R1 R2 R3 E2

t1

Mensaje A

Mensaje B

Para R3 ‘A’ sucede antes que ‘B’

Page 24: Sistemas DistribuidosIng. José L. Simón Comunicación entre procesos zLos procesos (programas que se ejecutan) manejan items de datos  estructuras zLas.

Sistemas Distribuidos Ing. José L. Simón

Ordenamiento temporal

Ciertas aplicaciones requieren que los mensajes se reciban en el ordenamiento temporal en que fueron emitidos Multicast totalmente ordenado Multicast causal