You are on page 1of 28

Comunicación Indirecta

Contenido
1. Introducción
2. Acoplamiento en tiempo y espacio
3. Comunicación en grupo
4. Sistemas de publicación-subscripción
5. Colas de mensajes
6. Enfoques de memoria compartida
a. Memoria Compartida Distribuida
b. Espacios de tuplas
Introducción
La comunicación indirecta se define como la comunicación entre
entidades de un sistema distribuido a través de un intermediario
sin acoplamiento directo entre el emisor y el receptor o los
receptores.
Muchos paradigmas de comunicación indirecta apoyan
explícitamente la comunicación uno-a-muchos.
Acoplamiento de Espacio y tiempo en sistemas distribuidos

Acoplado en tiempo Desacoplado en tiempo

● Comunicación dirigida a ● Comunicación dirigida a


receptor(es); receptor(es);
● receptor(es) deben existir en ● emisor(es) y receptor(es)
Acoplado en
ese momento de tiempo. pueden tener tiempos de
espacio
vida independiente.
Ejemplo: pase de mensajes,
invocación remota
● Emisor no necesita conocer ● Emisor no necesita conocer
la identidad de receptor(es); la identidad de receptor(es);
Desacoplado ● receptor(es) deben existir en ● emisor(es) y receptor(es)
ese momento de tiempo. pueden tener tiempos de
en espacio
vida independiente.
Ejemplo: IP Multicast.
Comunicación en grupo
Algunas veces necesitamos que múltiples procesos se
comuniquen entre ellos . ( Por ej. Un grupo de servidores de
archivos cooperando para ofrecer un único servicio de archivos
tolerante a fallas )
Comunicación en Grupos ( Group Communication)
Colección de Procesos que actúan juntos en un cierto sistema o
alguna forma determinada por el usuario.
El propósito de la introducción de este paradigma es permitir a los
procesos tratar con una colección de procesos como una única
abstracción . Esto es , un proceso puede enviar un mensaje a un
grupo de servidores sin tener que saber cuantos son y donde están
.
Comunicación en grupo

La comunicación es entre un grupo de procesos.


Cuando un emisor envía el mensaje lo reciben todos los
miembros de un grupo.
Los grupos se entienden como dinámicos, se pueden crear y
destruir.
Un proceso puede ser miembro de varios grupos, se puede unir
a uno y dejar otro.
Algunas redes permiten diferentes tipos de broadcasting, lo que
facilita la implementación de comunicación en grupo.
Áreas claves de aplicación
Representan una abstracción para la comunicación multidifusión
y puede implementarse sobre IP-Multicast.
● Diseminación confiable de información a un número de usuarios
potencialmente grande
● Soporte a aplicaciones colaborativas
● Soporte para estrategias de tolerancia a fallas
● Soporte para el monitoreo y administración
Comunicación Grupal - Modelo de Programación
Grupos Abiertos y Cerrados
Consideraciones para Implementación de
Servicios de Grupos
Confiabilidad en multidifusión:
∙ Integridad (distribución correcta), Validez (garantía de entrega) y

Acuerdo (si se distribuye a uno, también a todos)

Ordenamiento en multidifusión:
• Ordenamiento FIFO
• Ordenamiento Causal: msj suceden-primero-que msj
• Ordenamiento Total: si un mensaje es distribuido antes de
otro mensaje en un proceso, entonces se preserva el mismo
orden para todos los procesos
Administración de la Membresía de un grupo

Group
address
expansion

Group Leav
send e

Multicast Group membership


communication Fail management

Joi
n
Process group
La Arquitectura de Jgroups
http://www.jgroups.org/
Java class FireAlarmJG
import org.jgroups.JChannel;
public class FireAlarmJG {
public void raise() {
Try {
JChannel channel = new Jchannel();
channel.connect("AlarmChannel");
Message msg = new Message(null, null,
"Fire!");
channel.send(msg);
}
• catch(Exception e) {
}
}
Java class FireAlarmConsumerJG

import org.jgroups.JChannel;
public class FireAlarmConsumerJG {
public String await(){
try {
JChannel channel = new JChannel();
channel.connect("AlarmChannel");
Message msg = (Message)
channel.receive(0);
return (String) msg.GetObject();
}catch(Exception e) {
return null;
}
}
}
Sistemas de Publicación-Suscripción
Sistemas de Publicación-Suscripción se llaman también Sistemas
Distribuidos basados en Eventos.
Publicadores de eventos
Suscriptores de eventos
Aplicaciones: Sistemas Financieros, datos en tiempo de real
(RSS), computación ubicua, monitoreo de redes y en general,
trabajos cooperativos.
Componente importante de infraestructura Google Ads
Sistemas de Casas de Comercio
Dealer’s computer External Dealer’s computer
source

Dealer Notification Notification Dealer

Notification Information
provider Notification

Notification
Notification
Notification
Dealer’s computer Dealer’s computer
Notification
Information
provider
Notification
Dealer Notification
Dealer
External
source
Características del Sistemas de Publicación-
Suscripción
Heterogéneo. Pueden operar los componentes de un SD que no
fueron hechos para trabajar juntos

Asíncronos: Las notificaciones son enviadas asíncronamente


por los publicadores de eventos

Garantía de distribución: examinar el modelo de fallos


dependiendo del protocolo escogido.
El paradigma del sistema publica-suscribe
Consideraciones de Implementación:
Centralizado o Distribuidos
La arquitectura de sistema publicación-
suscripción distribuido
Rutina basada en Filtrado (Filtering-based
routing)

upon receive publish(event e) from node x 1


matchlist := match(e, subscriptions) 2
send notify(e) to matchlist;
3
fwdlist := match(e, routing); 4
send publish(e) to fwdlist - x; 5
upon receive subscribe(subscription s) from node x 6
if x is client then 7
add x to subscriptions; 8
else add(x, s) to routing; 9
send subscribe(s) to neighbours - x;
10
Rutina basada en el encuentro (Rendezvous-
based routing)

upon receive publish(event e) from node x at node i


rvlist := EN(e);
if i in rvlist then begin
• matchlist :=match(e, subscriptions);
• send notify(e) to matchlist;
end
send publish(e) to rvlist - i;
upon receive subscribe(subscription s) from node x at node i
rvlist := SN(s);
if i in rvlist then
• add s to subscriptions;
else
• send subscribe(s) to rvlist - i;
Ejemplo de sistema publicación-suscripción
El paradigma de la cola de mensajes
La Abstracción de Memoria Compartida
Distribuida - MCD
La Abstracción del espacio de tuplas. ( tuple
space)
Otra visión: Particionamiento en el nucleo York
del modelo Linda
Resumen de estilos de comunicación indirecta
Bibliografía
Coulouris George. Sistemas Distribuidos: Conceptos y diseño. 5ta
Edición.

You might also like