Saltar al contenido
Codif铆ca.me | Desarrollo web | Programaci贸n

Modelos de comunicaci贸n indirecta | Sistemas distribuidos

2 junio, 2015

Explicamos los diferentes modelos de comunicaci贸n indirecta, que son las siguientes: los grupos de
comunicaci贸n, publicaci贸n y subscripci贸n, colas de mensajes y sistemas de memoria
compartidas.

Todos ellos para comunicarse realizan comunicaci贸n indirecta, para ello utilizan un
intermediario para realizar la comunicaci贸n entre ellos.

comunicacion indirecto

Group Commmunication

Este tipo de modelo de comunicaci贸n indirecta env铆a un mensaje a un grupo de
usuarios que es entregado sin conocer ni esperar la identidad del grupo de usuarios.

Env铆a los mensajes multicast a todos los miembros del grupo de comunicaci贸n.

Estos grupos tienes las siguientes caracter铆sticas:

– Un sistema de difusi贸n de Informaci贸n confiable para que lleguen los mensajes
a un gran n煤mero de clientes.

– Soportan aplicaciones de colaboraci贸n, como pueden ser los juegos d贸nde los
eventos nuevos deben ser difundidos a todos los usuarios, dando una vista
com煤n a todos ellos.

Tolerancia a fallos, en la que tambi茅n se actualice de manera constante todos
los datos replicados.

– Apoyo a sistemas de gesti贸n para poder supervisar el sistema. Por ejemplo
sistemas de gesti贸n que ayuden a balancear la carga.

Podemos distinguir grupos de comunicaci贸n abiertos y cerrados, los primeros pueden
recibir mensajes desde otros sitios de fuera del grupo, mientras que los segundos no
pueden recibir mensajes de otros miembros que no sean del grupo.

Publish/subscribe

Este modelo de comunicaci贸n est谩 basado en un sistema de publicaci贸n de eventos al
que est谩n subscritos determinados equipos. Cuando se realiza la subscripci贸n al
publicador estos equipos comunican cuales son los eventos a los que ellos quieren
subscribirse en particular.

Cuando el publicador publica un nuevo evento, este env铆a una notificaci贸n a los
equipos que est谩n subscritos a ese evento. As铆 pues los equipos que est谩n subscritos
reciben la notificaci贸n y actualizan los datos que tienen del evento que se acaba de
publicar.

Las caracter铆sticas que tiene este tipo de comunicaci贸n es que es heterog茅neo y
as铆ncrono
. Se env铆an las notificaciones heterog茅neamente a todos los miembros que
est茅n subscritos a este evento por lo que todos los miembros recibir谩n la notificaci贸n.
Es as铆ncrono ya que se env铆an las notificaciones de la publicaci贸n sin necesidad de
una respuesta sincronizada en el subscriptor, adem谩s cada subscriptor recibir谩 x
notificaciones independientemente de los otros subscriptores, recibir谩 solo las
notificaciones para los que est茅 subscrito.

Las subscripciones, se pueden basar en m煤ltiples categor铆as, entre las m谩s comunes
se encuentran las que est谩n basadas en canales de contenido, basados en t贸picos
expresados como t茅rminos, basados en contenidos, basados en tipos de objetos.

Este modelo de comunicaci贸n puede utilizarse en arquitecturas centralizadas y
distribuidas
, en el primero habr谩 un publicador que ser谩 el encargado de realizar la
notificaci贸n al resto de subscriptores, aunque este tipo de arquitectura puede contribuir
a formar cuellos de botella y es poco tolerante a fallos, ya que si falla el publicador el
sistema fallar谩.
En el segundo utilizamos sistemas peer-to-peer d贸nde un mismo
equipo puede realizar las tareas de publicador y el subscripci贸n, solventar谩 que se
formen cuellos de botella y mejorar谩 la tolerancia a fallos.

Como ejemplos de este tipo podemos ver los sistemas de subscripci贸n RSS, o
algunos sistemas de actualizaci贸n de software.

Message queues

A diferencia de los modelos anteriores en los que ambos utilizan sistemas de
publicaci贸n uno a muchos, las colas de mensajes proporcionan una comunicaci贸n uno
a uno, punto a punto. Este modelo utiliza las colas de mensaje como forma indirecta de
env铆o de mensajes.

Los procesos de producci贸n pueden enviar mensajes a una cola de mensajes, desde
aqu铆 los equipos cliente recogen los mensajes.

Existen tres estilos diferentes:

Bloquear al recibir, se bloguear谩 hasta recibir un mensaje de disponibilidad.
Bloqueo al no recibir, comprobar谩 el estado de la cola y devolver谩 un mensaje de
disponibilidad.
Funcionamiento por notificaci贸n, se enviar谩 una notificaci贸n cuando un mensaje est茅
disponible en la cola a la que este asociado.

La mayor铆a de los sistemas que utilizan la cola de mensajes como modelo de
comunicaci贸n utilizan el orden FIFO para ordenar la entrada y salida de mensajes, no
obstante se pueden utilizar otros sistemas de ordenaci贸n que corresponda mejor con
l贸gica de la aplicaci贸n.

Muchos de los sistemas disponibles ofrecen el envio y la recepci贸n de mensajes
contenida dentro de una transacci贸n, para favorecer la integridad y poder realizar una
transacci贸n completa o descartarla completamente.

Tambi茅n es conveniente que soporten los cambios de codificaci贸n de mensaje, para
poder transformarlos de codificaci贸n e incluso entre diferentes sistemas de
intercambios de datos como pueden ser SOAP.

Shared memory systems

Este modelo utiliza los espacios de memoria de sistemas distribuidos virtuales para
poder comunicarse con el resto de equipos que no comparten la misma memoria
f铆sica. Utilizando los espacios de memoria compartidos para que los programas o los
programadores puedan tener accesos de lectura o escritura a espacios de memoria
compartidos
.

Los espacios de memoria se dividen en tuplas, en filas en los cuales cada proceso
puede leer o escribir dependiendo del caso.

Las propiedades generales que poseen las tuplas, es que tienen un espacio
desacoplado y que el tiempo tambi茅n esta desacoplado
, por lo tanto una tupla puede
tener varios procesos que est谩n enviando datos y varios procesos que est谩n
recibiendo esta informaci贸n. La tupla permanecer谩 en ese espacio hasta que sea
eliminada por lo que tanto el receptor como el emisor no tendr谩n problemas por
solaparse en el tiempo.