En los sistemas distribuidos, la comunicación y el manejo de procesos son componentes esenciales. La comunicación entre procesos puede seguir diferentes paradigmas como cliente-servidor, RPC y comunicación en grupo.
Los procedimientos de la API de sockets realizan llamadas al sistema operativo para operar con sockets.
Un socket es un punto de referencia para enviar o recibir mensajes.
Comunicacion en grupo
membresia de grupo, direccionamiento, primitivas de comunicacion, atomicidad, ordenamiento de mensajes, escalabilidad.
aspectos de diseño: grupos cerrados, abiertos, de compañeros, jerarquicos
tecnicas de implementacion: transmision de multidifusion, transmision completa, transmision punto a punto.
grupos dinamicos
comunicacion uno a muchos o mucho a muchos
modelo cliente - servidor
deficiencias: orientado a E/S, falta de transparencia, responsabilidades del programador en transferencia de mensajes y E/S
implementacion a traves de librerias PVM o sockets
caracteristicas del software cliente y servidor
transferencia de mensajes en el nucleo
servidor: espera pasivamente, realiza el trabajo y devuelve resultados
cliente: inicia la comunicacion y espera respuesta
comunicacion uno a uno
servidores
servidores de datos, archivos, impresion, correo, etc.
reutilizables y relocalizables
componentes clave del middleware
pueden arrancar estatica o dinamicamente
operan continuamente
posicion reactiva
proporcionan funcionalidades en sistemas distribuidos
hilos
unidad de codigo mas pequeña
llamada a procedimiento multihilo
clientes y servidores
tipos de flujo de hilos
unico y multiple
comunicacion orientada a conexion
El socket original permanece abierto para aceptar nuevas solicitudes.
Después de accept(), se crea un nuevo socket para la comunicación con el cliente.
El servidor espera pasivamente hasta que recibe una solicitud del cliente.
Requiere establecer una conexión antes del intercambio de datos.
interfaz de programacion de aplicaciones
ejemplos: BSD socket, Sun’s RPC/XDR, librería PVM, Windows Sockets.
define procedimientos para interactuar con protocolos de comunicacion
especifica detalles de comunicacion para aplicaciones cliente-servidor
llamada de procedimiento remoto (RPC)
pasos de operacion: cliente llama al resguardo, este envia mensaje al servidor, servidor procesa y devuelve resultado al resguardo, y este lo entrega al cliente.
transparencia: la llamada a procedimiento remoto se asemeja a una llamada local.
permite llamar a procedimiento en maquinas remotas.
variante del paradigma cliente-servidor
comunicacion entre procesos
Conceptos fundamentales: aplanamiento de datos, representación uniforme, empaquetamiento, operaciones de send/receive, modo de comunicacion (bloqueante/no bloqueante), abstraccion del paso de mensajes, confiabilidad (TCP vs UDP)
paradigmas de comunicacion: cliente-servidor, RPC, comunicacion en grupo.
clave en sistemas distribuidos
cliente
inicia, realiza y finaliza operaciones
interactua a traves de interfaces graficas
postura proactiva
solicita y utiliza servicios en sistemas distribuidos
introduccion a la comunicacion entre procesos
ausencia de necesidad de memoria compartida
fundamentos de la comunicación basada en el paso de mensajes