Date post: | 23-Jan-2016 |
Category: |
Documents |
Upload: | imelda-capote |
View: | 218 times |
Download: | 0 times |
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
Sistemas Distribuidos Ing. José L. Simón
Modelos de paso de mensajes
Unicast: uno a uno
Multicast: uno a varios (grupo)
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
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
Sistemas Distribuidos Ing. José L. Simón
Marshalling
Marshalling = Aplanamiento + XDR
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
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
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
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
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
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
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 )
Sistemas Distribuidos Ing. José L. Simón
Cliente-Servidor: interacción
DoOperation()
GetRequest()
SendReply()Bloqueo
Bloqueo
Cliente Servidor
Sistemas Distribuidos Ing. José L. Simón
Argumentos
Formato de mensajes
ID Requerimiento
ID de proceso
ID de tipo Request, Reply
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
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
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
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
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)
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
Sistemas Distribuidos Ing. José L. Simón
Multicast
Un emisor, un mensaje, varios receptores
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
Sistemas Distribuidos Ing. José L. Simón
OrdenamientoE1 R1 R2 R3 E2
t1
Mensaje A
Mensaje B
Para R3 ‘A’ sucede antes que ‘B’
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