View
215
Download
0
Category
Preview:
DESCRIPTION
sistemas distribuidos
Citation preview
Mdulo 2Comunicacin
Facultad de IngenieraDepartamento de Informtica
Universidad Nacional de la Patagonia San Juan Bosco
Sistemas Distribuidos
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Modelos de ComunicacionesPasaje de MensajesModelo Cliente-ServidorLlamadas a Procedimiento Remoto (RPC)Comunicacin en Grupo
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
La comunicacin entre procesos necesita compartir informacin:
a) datos compartidos
b) pasajes de mensajes o copias compartidas
P Q
Area comn
de memoria
compartidaP Q
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Tipos de Comunicacin
Comunicacin Persistente: almacena el mensaje (informacin) enviado por el emisor el tiempo que tomeentregarlo al receptor.
Comunicacin Transitoria: almacena un mensaje slo mientras las aplicaciones del emisor y receptor estn en ejecucin.
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Tipos de Comunicacin
Comunicacin asincrnica: el emisor contina inmediatamente despus de que ha pasado su mensaje para la transmisin.
Comunicacin sincrnica: el emisor es bloqueado hasta que se sabe que su peticin es aceptada.
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Ejemplo de Comunicacin
Sistemas Distribuidos: ComunicacinJRA 2009
Pasaje de Mensajes
Caractersticas deseables de un buen sistema de pasaje de mensajes
Simplicidad Simple y fcil de usar (uso directo) Hacer sin preocuparse de aspectos de la red/sistema
Semntica uniforme en: Comunicaciones locales Comunicaciones remotas
Sistemas Distribuidos: ComunicacinJRA 2009
EficienciaSi no la hay, las IPC son costosasCriterio: reduccin del nmero de mensajes
intercambiados.Optimizacin incluye:
-Evitar el costo de establecer y terminar conexiones entre el mismo par de procesos y cada intercambio de mensajes entre ellos.-Minimizar el costo de mantener la conexin.-Optimizar los reconocimientos cuando hay una serie de mensajes entre el send y receive.
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
ConfiabilidadLa cada del nodo o enlace implica prdida de mensaje.Se usan timeouts (duplicacin de mensajes)
CorrectitudPueden enviarse multicast
-atomicidad-orden de despacho-persistencia
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
FlexibilidadDeben permitir alguna clase de control de flujo entre
procesos cooperativos, incluyendo send/receivesincrnicos y asincrnicos.
SeguridadAutenticacin del receptor de un mensaje por el enviadorAutenticacin del enviador de un mensaje por el receptorEncriptacin del mensaje
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Portabilidad
El sistema de pasaje de mensajes debe ser portable(posible construccin de protocolos de IPC reusando el mismo sistema de mensajes)
Heterogeneidad de mquinas compatibilizacin de representacin.
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Datos
long var
Datos actuales
o punteros
Nmero de
bytes/elementosTipo
#sec o
id del
mensaje
Informacin de estructura Direcciones
recep env
Encabezamiento de longitud fija
El pasaje de mensajes en la intercomunicacin entre procesos
Una estructura de mensajes tpica:
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
El enviador determina el contenido del mensaje.
El receptor tiene en cuenta como interpretar los datos.
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
En el diseo de un protocolo de intercomunicacin entre procesos debe considerarse:
Quin enva ?Quin recibe ?Hay uno o varios receptores ?Est garantizado que el mensaje ha sido
aceptado por el receptor ?Necesita el send esperar una respuesta ?
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Qu se debe hacer si falla el sitio y/o enlace ?Qu sucede si el receptor no est listo para recibir el mensaje ?Si hay varios mensajes esperando en el receptor, puede ste cambiar el orden?
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
No bloqueanteEl receptor conoce la llegada del mensaje
PollingInterrupcin
Bloqueantes sincrnica
Fcil de implementar pero poca concurrencia
Pasaje de Mensajes
Sincronizacin
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin Sincrnica - Mensajes Bloqueantes
ack
mensaje
enviador receptor
Reanuda ejecucin
Send (mns)
Ejecucin
suspendida
Reanuda ejecucin
Send (ack)
Receive (mns)
Ejecucin suspendida
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
BufferingDe buffer nulo a buffer con capacidad ilimitadaNo buffer
Cita (rendez-vous)Descarte
Buffer simpleAdecuado para transferencia sincrnicaCapacidad infinitaAlmacena todo lo que recibe (asincrnica)
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Buffer lmite finitoPuede haber rebalse de buffer
Comunicacin no exitosa (lo hace menos confiable)Comunicacin con flujo controlado (bloquea al enviador hasta que haya espacio)
Buffer mltipleMailbox o prtico
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Mensajes multidatagrama
La mayora tiene un lmite superior en el tamao del dato que puede ser transmitido en algn momento (MTU).
Esto implica que magnitudes mas grandes deben fragmentarse en paquetes.
El ensamblador y desensamblador es responsabi-lidad del sistema de pasaje de mensajes.
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Codificacin y decodificacin de mensajes de datos
Un puntero absoluto pierde significado cuando es transmitido de un espacio a otro.
Diferentes programas objeto ocupan una cantidad de espacio variada.
Se usan, en general, dos representaciones:Representacin etiquetada (MACH)Representacin no etiquetada (SUN XDR)
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Direccionamiento de los procesos
Problema de nombres de las partes involucradas en una interaccin.
Direccionamiento explcitoSend (process-id,msg)Receive(process-id,msg)
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Direccionamiento implcitoNo se explicita el nombre del proceso.Resulta til para cliente-servidor: se menciona un servicio.
Send-any (service-id,msg)Receive-any (proceso-mudo,msg)
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Manejo de fallas
Cada de sitioCada de enlace
Problemas posibles:a) Prdida del mensaje de requerimientob) Prdida del mensaje de respuestac) Ejecucin del requerimiento no exitosa
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
(a) Prdida del mensaje de requerimiento
Send
req
Env Rec
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
(b) Prdida del mensaje de respuesta
Env Rec
Send
req
Send
resp
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
(c) Ejecucin del requerimiento no exitosa
Crash
Env Rec
Send
req
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Protocolos de mensajes confiablesCuatro mensajes
C S
resp
ack
req
ack
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Tres mensajes
C S
req
resp
ack
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Dos mensajes
C S
req
resp
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Pasaje de Mensajes
Comunicacin Persistente
Sistemas Distribuidos: ComunicacinJRA 2009
Arquitectura general de un sistema de mensajes encolados
Relacin entre direcciones a nivel de colas y direcciones a nivel de red.
Bsqueda en nivel
de transporte de la
direccin de la cola
Direccin a nivel
cola
Bsqueda de la
direccin en la base
de datos
Enviador Receptor
SO LocalSO Local
Capa deencolado
Capa deencolado
Direccin a nivel de
transporte
Red
Pasaje de MensajesComunicacin Persistente
Sistemas Distribuidos: ComunicacinJRA 2009
Organizacin general de un sistema de cola de mensajes con routers.
2-29
Aplicacin
Aplicacin
Aplicacin
Aplicacin
Cola recepcin
Receptor B
Mensaje
Cola envo
Enviador A
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
2-30Programa Broker
Red
SO
Broker de
mensajes
SO SO
Capa colas
Cliente destinoCliente fuente
Base de datos con reglas de conversin
Brokers de Mensajes
Organizacin general de un broker de mensajes en un sistema de mensajes encolados
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Primitiva Significado
Socket Crea un nuevo punto final de comunicacin
Bind Adjunta una direccin local a un socketListen Anuncia el deseo de aceptar conexiones
Accept Se bloquea el llamador hasta que llegue un requerimiento de conexin
Connect Intenta activamente establecer una conexin
Send Enva datos sobre la conexin
Receive Recibe algunos datos sobre la conexin
Close Libera la conexin
Primitivas para Sockets en TCP/IP
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Cliente
Servidor
Punto de sincronizacin Comunicacin
Modelo de comunicacin orientado a conexin usando sockets.
Pasaje de Mensajes
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Modelo Cliente - Servidor
Cliente
Kernel
Servidor
Kernel
RED
Requerimiento
Respuesta
Sistemas Distribuidos: ComunicacinJRA 2009
Modelo Cliente-Servidor
Las mquinas cliente son, en general, PC monousuario o puestos de trabajo que ofrecen una interfaz muy amigable para el usuario final. Cada servidor ofrece una serie de servicios de usuario compartidos a los clientes. El servidor permite a los clientes compartir el acceso a la misma base de datos y permite el uso de un sistema de computacin de alto rendimiento para gestionar la base de datos.
Sistemas Distribuidos: ComunicacinJRA 2009
Modelo Cliente-Servidor
ServidorEstacin de trabajo
(cliente)
LAN o WAN o Internet
Entorno genrico cliente/servidor.
Sistemas Distribuidos: ComunicacinJRA 2009
El software bsico es un sistema operativo que se ejecuta en la plataforma del hardware. Las plataformas y los sistemas operativos del cliente y del servidor pueden ser diferentes. Estas diferencias de niveles inferiores no son relevantes en tanto que un cliente y un servidor compartan los mismos protocolos de comunicacin y soporten las mismas aplicaciones.
Modelo Cliente-Servidor
Sistemas Distribuidos: ComunicacinJRA 2009
Modelo Cliente-Servidor
Servidor
Estacin de trabajo cliente
Servicios depresentacin
Software de comunicaciones
Sistema operativocliente
Plataforma hardware
Software decomunicaciones
Sistema operativoservidor
Plataforma hardware
Peticin
Respuesta
Interaccinde protocolos
Lgica de aplicacin (parte del cliente)
Lgica de aplicacin (parte del servidor)
Arquitectura genrica Cliente-Servidor
Sistemas Distribuidos: ComunicacinJRA 2009
Las funciones reales de la aplicacin pueden repartirse entre cliente y servidor de forma que:
Se optimicen los recursos de la red y de la plataforma.Se optimice la capacidad de los usuarios para realizar varias tareas. Se optimice la capacidad para cooperar el uno con el otro en el uso de recursos compartidos.
Modelo Cliente-Servidor
Sistemas Distribuidos: ComunicacinJRA 2009
Aplicaciones de Bases de Datos
El servidor es un servidor de base de datos. La interaccin entre el cliente y el servidor se hace en forma de transacciones:
El cliente realiza una peticin a la base de datos y recibe una respuesta de aquella.
El servidor es responsable de mantener la base de datos.
Sistemas Distribuidos: ComunicacinJRA 2009
Servicios de presentacin
Lgica deaplicacin
Software decomunicaciones
Sistema operativocliente
Plataformahardware
Estacin de trabajocliente
Peticin
Respuesta
Interaccin de protocolo
Software decomunicaciones
Sistema gestorde base de datos
Sistema operativo servidor
Plataforma hardware
Servidor
Lgica de basede datos
Lgica de base de datos
Arquitectura cliente/servidor para aplicaciones de base de datos.
Aplicaciones de Bases de Datos
Sistemas Distribuidos: ComunicacinJRA 2009
Utilizacin de bases de datos cliente/servidor.
Servidor
Cliente
Base de datosde 1.000.000de registros
Consulta inicial
100.000 registros posibles
Consulta siguiente
100.000 registros posibles
Consulta final
Un registro devuelto
(a) Cliente/servidor bien empleado
Aplicaciones de Bases de Datos
Sistemas Distribuidos: ComunicacinJRA 2009
Cliente
Servidor
Base de datosde 1.000.000de registros
Consulta300.000 registros devueltos
(b) Cliente/servidor mal empleado
Utilizacin de bases de datos cliente/servidor.
Aplicaciones de Bases de Datos
Sistemas Distribuidos: ComunicacinJRA 2009
Clases de aplicaciones cliente/servidor
Proceso basado en una mquina central:No es realmente un proceso cliente/servidor. Entorno tradicional de grandes sistemas.
Cliente Servidor
(a) Proceso basado en una mquina central
Lgica de presentacin
Lgica de aplicacinLgica de base de datos
SGBD
Sistemas Distribuidos: ComunicacinJRA 2009
Clases de aplicaciones cliente/servidor
Proceso basado en el servidor:Todo el tratamiento se hace en el servidor.Los puestos de trabajo de los usuarios ofrecen una interfaz de usuario grfica.
Lgica de presentacin
Lgica de aplicacinLgica de base de datos
SGBD
(b) Proceso basado en el servidor
Sistemas Distribuidos: ComunicacinJRA 2009
Clases de aplicaciones cliente/servidor
Proceso basado en el cliente:Casi todo el proceso de la aplicacin se hace en el cliente. Las rutinas de validacin de datos y otras funciones lgicas de la base de datos se realizan en el servidor.
Lgica de presentacin
Lgica de base de datos
SGBD
Lgica de aplicacin
Lgica de base de datos
(d) Proceso basado en el cliente
Sistemas Distribuidos: ComunicacinJRA 2009
Clases de aplicaciones cliente/servidor
Proceso cooperativo:El proceso de la aplicacin se lleva a cabo de forma optimizada. Compleja de instalar y mantener.
Lgica de presentacin
Lgica de base de datos
SGBD
Lgica de aplicacin Lgica de aplicacin
(c) Proceso cooperativo
Sistemas Distribuidos: ComunicacinJRA 2009
Arquitectura cliente/servidor de tres capas
El software de aplicacin est distribuido entre tres tipos de mquinas:
Mquina de usuario:Cliente
Servidor de capa intermedia:Pasarelas.Convierte protocolos.Mezcla e integra resultados de distintas fuentes de datos.
Servidor final (backend).
Sistemas Distribuidos: ComunicacinJRA 2009
Cliente
Servidor de capa intermedia(servidor de aplicaciones)
Servidores finales(servidores de datos)
Arquitectura cliente/servidor de tres capas.
Arquitectura cliente/servidor de tres capas
Sistemas Distribuidos: ComunicacinJRA 2009
Llamadas a Procedimiento Remoto (RPC)Llamadas a Procedimientos Remotos (RPC)
(RPC: Remote Procedure Call)Es un caso especial del modelo general de pasaje de
mensajes.Es un mecanismo ampliamente aceptado para la
intercomunicacin de procesos en sistemas distribuidos.
Sistemas Distribuidos: ComunicacinJRA 2009
El modelo RPCEs similar al bien conocido y entendido modelo de
llamadas a procedimientos usado para transferir control y datos.
El mecanismo de RPC es una extensin del anterior porque habilita a hacer una llamada a un procedimiento que no reside en el mismo espacio de direcciones.
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
La facilidad de RPC usa un esquema de pasaje de mensajes para intercambiar informacin entre los procesos llamador (proceso cliente) y llamado (proceso servidor).
Normalmente el proceso servidor duerme, espe-rando la llegada de un mensaje de requeri-miento.
El proceso cliente se bloquea cuando enva el mensaje de requerimiento hasta recibir la respuesta.
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
Transparencia de RPCTransparencia sintctica: una llamada a procedi-miento
remoto debe tener la misma sintaxis que una llamada local.
Transparencia semntica: la semntica de un RPC es la misma que para una llamada local.
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
Implementacin del mecanismo de RPC
El clienteEl stub clienteEl runtime RPCEl stub servidorEl servidor
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
Ret Llam
Unpck Pack
Receive Send
Llam Ret
Unpck Pack
Receive Send
Cliente Servidor
Runtime
Stub
espera
ejecuta
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
ClienteEs el que inicia el RPC. Hace una llamada que invoca al
stub.Stub clienteRealiza las siguientes tareas:a)Empaqueta la especificacin del procedimiento objetivo y
sus argumentos en un mensaje y pide al runtime local que lo envie al stub servidor
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
b)En la recepcin de los resultados de la ejecucin del proceso, desempaqueta los mismos y los pasa al cliente.
Runtime RPCManeja la transmisin de mensajes a travs de la red entre
las mquinas cliente y servidor.
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
Stub servidorTrabaja en forma simtrica a como lo hace el stub cliente.
ServidorCuando recibe un requerimiento de llamada del stub
servidor, ejecuta el procedimiento apro-piado y retorna el resultado de la misma al stub servidor.
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
Stubs de Cliente y Servidor
Principio de RPC entre un cliente y el programa servidor.
Cliente
Servidor
Llamada al procedimiento remoto
Retorno de lallamada
Llama al procedimientolocal y retorna el resultado
Tiempo
Requerimiento Respuesta
Espera por el resultado
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
Pasaje de Parmetros por Valor
Pasos que involucra hacer una computacin remota por medio de RPC
2-8
Mquina cliente Mquina servidor
proceso cliente
proceso serv
SO cliente SO serv
1.Llamada del cliente al procedimiento
2.El stub construye el mensaje
3.El mensaje es enviado por la red
6.El stub hace una llamada local a add
5.El stub desempaca el mensaje
4.El SO del servidor maneja el mensaje al stub del servidor
Stub cliente
Stub servidor
Implementacin
de add
Llamadas a Procedimiento Remoto (RPC)
Sistemas Distribuidos: ComunicacinJRA 2009
RPC Asincrnico
La interconexin entre cliente y servidor en un RPC tradicional
Cliente espera por resultados
req resp
Llamada al
procedimiento
remoto
Retorno de la
llamada
Servidor Llama al procedimiento local y retorna resultados
tiempo
Sistemas Distribuidos: ComunicacinJRA 2009
RPC Asincrnico
Un cliente y servidor interactuando con dos RPCs asincrnicos
2-13Cliente
Servidor
Llamada al procedimiento remoto
Retorno de la llamada
Llamada al cliente con un RPC en un sentido
req
Ack
acepta req
Retorna
resultados
Espera por
aceptacin
Interrumpe
al cliente
Llamada al procedimiento local Tiempo
Sistemas Distribuidos: ComunicacinJRA 2009
Enlace de un Cliente y un Servidor en RPC
2-15Mquina Directorio
Mquina ClienteMquina Servidor
Servidor
Directorio
ServidorCliente
3.Bsqueda servidor 2.Registro Servicio
1.Registro endpoint5.Haga RPC
4.Bsqueda endpointTabla de
endpoints
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Grupos de comunicacin
Hay tres tipos de grupos de comunicacin:
Uno a muchos Muchos a uno Muchos a muchos
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Uno a muchosEste esquema es conocido como comunicacin multicast.En este caso los procesos receptores de los mensajes
constituyen un grupo, que a su vez pueden ser de dos tipos:Grupos cerradosGrupos abiertos
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Grupos cerradosSolo los miembros del grupo pueden enviar mensajes al
grupo.Un miembro externo solo puede enviar mensajes a un
proceso individual y no al grupo.Grupos abiertosCualquier proceso en el sistema puede enviar un mensaje
al grupo como tal.
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Un sistema de pasaje de mensajes con la facilidad de grupo de comunicacin provee la flexibilidad de crear y borrar grupos dinmicamente y permitir a un proceso agregarse o dejar un grupo.
Un mecanismo para realizar todo esto es un servidor de grupos.
Esta solucin sufre de pobre confiabilidad y pobre escalabilidad.
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
Muchos a unoEnviadores mltiples envian mensajes a un nico receptor.Hay un no determinismo.
Muchos a muchosMltiples enviadores envan mensajes a mltiples
receptores.
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
La cuestin mas importante en este esquema es el ordenamiento de los mensajes.
S0 S1R1 R0
m1
m1
m2
m2
No hay restriccin de
orden
Sistemas Distribuidos: ComunicacinJRA 2009
Comunicacin en Sistemas Distribuidos
S0 S1R1 R0
m1
m1
m2
m2
t2t1
Tiempo
t1
Recommended