Vous êtes sur la page 1sur 28

SD

Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Sistemas Distribudos

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar

Prof. Alexandre S. Nery

Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao

IME Instituto de Matem


atica e Estatstica
DICC Ci
encia da Computac
ao

Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Conjunto de slides baseado nos livros de G. Coulouris e A.


Tanenbaum

1 / 28

Introducao

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Comunicacao indireta
I

Comunicac
ao entre entidades de um sistema distribudo por
meio de um intermedi
ario
N
ao tem qualquer acoplamento direto entre o remetente e
um ou mais destinat
arios

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem

1. Comunicac
ao em grupo: comunicac
ao e feita por meio de
uma abstrac
ao de grupo, sem que o remetente saiba a
identidade dos destinat
arios
2. Sistemas publicar-assinar: disseminar eventos para v
arios
destinat
arios por meio de um intermedi
ario
3. Sistemas de fila de mensagens: mensagens s
ao direcionadas
para a conhecida abstrac
ao de fila, com os destinat
arios
extraindo mensagens dessas filas
4. Mem
oria compartilhada: apresentam uma abstrac
ao de
mem
oria compartilhada global para os programadores

Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

2 / 28

Introducao

SD
Alexandre S. Nery
Introduc
ao

Duas propriedades interessantes que resultam do uso de um


intermediario:
I

Desacoplamento espacial: o remetente n


ao sabe ou n
ao
precisa saber a identidade do destinat
ario e vice-versa. Por
causa disto, o desenvolvedor de sistemas tem muitos graus de
liberdade para lidar com alteraco
es: os participantes
(remetentes ou destinat
arios) podem ser substitudos,
atualizados, duplicados ou migrados.
Desacoplamento temporal: o remetente e o destinat
ario
podem ter tempos de vida independentes, ou seja, o
remetente e o destinat
ario n
ao precisam existir ao mesmo
tempo para se comunicar. Isso tem vantagens importantes,
por exemplo, em ambientes mais vol
ateis, onde remetentes e
destinat
arios podem ir e vir.

Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Desvantagem:
I

Inevitavelmente haver
a uma sobrecarga no desempenho

3 / 28

Introducao

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Figure: Acoplamento espacial e temporal em sistemas distribudos.

4 / 28

Comunicacao em grupo

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Servico onde uma mensagem e enviada para um grupo e


entao entregue a todos os membros do grupo

O remetente nao conhece a identidade dos destinatarios

Areas
de aplicacao:

Disseminac
ao confi
avel de informaco
es para n
umeros
potencialmente grandes de clientes
Suporte para aplicativos colaborativos, em que os eventos
precisam ser disseminados para v
arios usu
ario a fim de
preservar uma vis
ao comum
Suporte para diversas estrategias de toler
ancia a falhas (ex:
atualizac
ao coerente de dados replicados)
Suporte para monitoramento e gerenciamento de sistemas
(ex: balanceamento de carga)

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

5 / 28

Comunicacao em grupo

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

O conceito central e o de um grupo com atribuic


oes de
membros
I
I

Processos podem ingressar ou sair do grupo


Processos podem enviar uma mensagem para o grupo e,
ent
ao, ela e propagada para todos os seus membros

Implementa comunicacao por multicast


I

I
I

Um processo executa somente uma operac


ao de multicast
para enviar uma mensagem para cada processo de um grupo
de processos
aGroup.send(aMessage)
Permite o uso eficiente de largura de banda (suporte do
hardware para multicast)

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

6 / 28

SD

Comunicacao em grupo
I

Alexandre S. Nery
Introduc
ao

Grupos fechados e abertos:


I

Um grupo e fechado se somente membros do grupo podem


enviar mensagem para ele. Um processo em um grupo
fechado entrega para si mesmo qualquer mensagem que envie
para o grupo.
Um grupo e aberto se processos de fora do grupo podem
enviar mensagens para ele.

Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Closed group

Open group

Figure: Grupos abertos e fechados.

7 / 28

Comunicacao em grupo

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar

Grupos sobrepostos e nao sobrepostos:


I

Nos grupos sobrepostos, as entidades (processos ou objetos)


podem ser membros de v
arios grupos (em sistemas reais esta
e a norma)
Nos grupos n
ao sobrepostos as entidades podem pertencer a
no m
aximo um grupo

Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

8 / 28

Problemas de implementacao

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Todos os membros de um grupo devem receber c


opias das
mensagens enviadas para o grupo
I

Com garantias de entrega (exige um grande esforco de


engenharia)

Confiabilidade:
I

I
I

integridade: a mensagem recebida e a mesma que foi enviada


e nenhuma mensagem e entregue duas vezes
validade: qualquer mensagem enviada e entregue
acordo: se a mensagem e entregue para um processo, ent
ao
ela e entregue para todos os processos do grupo

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

9 / 28

Gerenciamento da participacao no grupo

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

I
I

Entidades podem ingressar, sair ou mesmo falhar


Manutencao de uma visao precisa da participacao como
membro atual
I

Interface para mudancas de participac


ao: operac
oes para
criar e destruir grupos de processos e para adicionar ou retirar
um processo do grupo
Detecc
ao de falha: monitora os membros do grupo para o
caso de falha por colapso e tambem para o caso de se
tornarem inacessveis devido a uma falha de comunicac
ao; ele
exclui um processo como membro se houver suspeita de que
ele falhou ou se tornou inacessvel
Notificac
ao dos membros sobre mudancas: notifica os
membros do grupo quando um processo e adicionado ou
quando um processo e excludo

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

10 / 28

Gerenciamento da participacao no grupo

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo

Group
address
expansion
Group
send
Multicast
communication

Sistemas
publicar-assinar
Problemas de
implementac
ao

Leave

Filas de mensagem

Fail

Group membership
management

Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada

Join

Problemas de
implementac
ao

Process group

Figure: O papel do gerenciamento da participac


ao como membro do
grupo.

11 / 28

Sistemas publicar-assinar

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Sistemas baseados em eventos distribudos


I
I

Potencial de entrega de um evento para muitos assinantes


(multicast)
Aplicac
oes:
I
I
I
I
I

Publicadores divulgam eventos estruturados


Assinantes expressam interesse em eventos especficos

Aplicaco
es de monitoramento
Sistema financeiro
Live feed of real-time data
Trabalho cooperativo
etc.

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Componente chave da infraestrutura Google


I

Disseminac
ao de eventos relacionados a propagandas

12 / 28

SD

Sistemas publicar-assinar

Introduc
ao

External
source

Dealers computer
Dealer

Alexandre S. Nery

Dealers computer

Notification

Notification

Notification

Information
provider Notification

Dealer

Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem

Notification

Problemas de
implementac
ao

Notification

Notification
Dealers computer

Dealers computer

Problemas de
implementac
ao

Notification

Notification

Estrat
egias de mem
oria
compartilhada

Information
provider
Notification

Dealer

Dealer
External
source

Figure: Sistema de central de negociaco


es
13 / 28

Sistemas publicar-assinar

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo

Central de negociac
oes:
I

I
I

Negociadores de aco
es usam computadores para obter
informaco
es atualizadas sobre uma ac
ao especfica do
mercado de aco
es
O preco de uma ac
ao e representada por um objeto
A informac
ao chega `
a sala de negociaco
es a partir de
diferentes fontes externas, sob a forma de atualizac
oes de
alguns ou de todos os objetos que representam as aco
es
A informac
ao e coletada pelos Provedores de Informaco
es

Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

14 / 28

Sistemas publicar-assinar

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Processos que implementam duas ac


oes diferentes:
I

O provedor de informac
oes continuamente recebe
informaco
es de uma fonte externa. Cada atualizac
ao e um
evento. O provedor publica tais eventos no sistema
publicar-assinar, para que sejam entregues a todos os
negociadores que expressam interesse por uma ac
ao
especfica. Geralmente h
a um provedor de informaco
es para
cada fonte externa.
O processo do negociador cria uma assinatura no sistema
para cada ac
ao de interesse. Cada assinatura expressa o
interesse em eventos relacionados a uma ac
ao do mercado. O
assinante recebe ent
ao todas as informaco
es enviadas a ele
em forma de notificac
oes.

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

15 / 28

Sistemas publicar-assinar

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Figure: O modelo arquitetural do sistema publicar-assinar.

16 / 28

Sistemas publicar-assinar

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Modelo de programacao baseado em um pequeno conjunto de


operac
oes
Publicadores disseminam um evento enquanto Assinantes
expressam interesse em um conjunto de eventos
I
I

I
I

publish(e): dissemina (publica) um evento e


subscribe(f): expressa interesse em eventos, utilizando um
filtro f para selecionar um conjunto particular de eventos
unsubscribe(f): revoga o interesse em eventos, tambem
utilizando um filtro f para selecionar um conjunto particular
de eventos
notify(e): eventos s
ao entregues ao assinante
advertise(f): declara o estilo de eventos que ser
ao gerados
(propaganda)
unadvertise(f): revoga as propagandas

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

17 / 28

Problemas de implementacao

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo

Sistemas publicar-assinar: garantir que eventos sejam


entregues a todos os assinantes (cujos filtros se enquadram
aos eventos)
Podem existir requisitos adicionais em termos de:
I
I
I
I

Seguranca
Tratamento de falhas
Concorrencia
Qualidade de Servico

Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

18 / 28

Problemas de implementacao

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Modelo centralizado:
I
I
I

Um processo servidor u
nico age como um sistema de eventos
Publicadores publicam eventos no servidor
Assinantes enviam assinaturas ao servidor e recebem
notificaco
es em troca
Interaco
es no sistema ocorrem por meio de uma serie de
troca de mensagens ponto-a-ponto
Pode ser implementado usando interface de passagem de
mensagem ou invocac
ao remota
simples e direto, mas apresenta problemas de escalabilidade
E
e resiliencia
I
I

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Ponto u
nico de falha
Gargalo de desempenho

19 / 28

Problemas de implementacao

SD
Alexandre S. Nery
Introduc
ao

Modelo distribudo:
I
I
I

O servidor central e substitudo por uma rede de negociadores


Potencial para sobreviver a falhas
Operam bem na escala Internet (escal
aveis)

Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Figure: Rede de negociadores.

20 / 28

Filas de mensagem

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Servico de comunicacao indireto ponto-a-ponto


I
I

Processo envia uma mensagem para a fila


Processo remove uma mensagem da fila

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Figure: O modelo de comunicac


ao de filas de mensagem.

21 / 28

Filas de mensagem

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Modelo de programacao produtor-consumidor


I

Processos produtores podem enviar (send) mensagens para


uma fila especfica
Processos consumidores podem receber (receive) mensagens
de uma fila
Tres estilos de recebimento:
I

Bloqueante: a operac
ao
e bloqueada at
e que uma mensagem
apropriada esteja disponvel
N
ao-bloqueante: checa o status da fila e retorna se existem
ou n
ao mensagens disponveis (operac
ao de pooling)
Notificac
ao: dispara uma notificac
ao quando a mensagem
estiver disponvel na fica associada

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

22 / 28

Filas de mensagem
I

Poltica FIFO (First-in-First Out)


I

Tambem podem implementar prioridades

N processos podem inserir/remover mensagens na/da mesma


fila
Processos consumidores podem selecionar mensagens de
uma fila baseado nas propriedades da mensagem
Mensagens:
I
I

Tamanho configur
avel (ordem de 100MB)
Uma mensagem consiste de:
I
I

Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Modelo persistente
I

Um destino: identificador u
nico designando a fila de destino
Metadados: modo de entrega, prioridade da mensagem,
corpo da mensagem

SD
Alexandre S. Nery

As filas ir
ao armazenar as mensagens indefinidamente (ate
que sejam consumidas)

Commit das mensagens em disco para entrega confiavel


I

Sistemas de fila garantem que as mensagens ser


ao entregues
(exatamente uma vez)
S
o n
ao garantem quando
23 / 28

Problemas de implementacao
I

Centralizada
I
I

Introduc
ao

Uma ou mais filas gerenciadas por um gerenciador de filas


Simples e direto, porem pode ser ponto de falha e gargalo de
desempenho

Distribuda (WebSphere MQ.)


I
I

SD
Alexandre S. Nery

Message Queue Inteface (MQI)


Clientes se comunicam com o gerenciador de fila atraves do
canal do cliente
Comandos MQI s
ao enviados ao canal do cliente e
redirecionados para o gerenciados execut
a-los usando RPC

Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Figure: Topologia WebSphere MQ.


24 / 28

Estrategias de memoria compartilhada

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo

Desenvolvida principalmente para computacao paralela

Utilizado para o compartilhamento de dados entre


computadores que nao compartilham mem
oria fsica

Processos leem e atualizam dados no que parece ser uma


mem
oria comum dentro do espaco de enderecamento

Um sistema de coerencia garante que os processos


executando em diferentes maquinas enxergam as atualizam
feitas uns pelos outros
como se os processos tivessem acesso a uma mem
E
oria u
nica
compartilhada, quando na verdade suas mem
orias fsicas
estao distribudas

Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

25 / 28

Estrategias de memoria compartilhada

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo

Dispensa o programador de qualquer responsabilidade de


troca de mensagens
A comunicacao se da atraves da leitura/c
opia de dados no
espaco de mem
oria compartilhado
I
I

Acesso a dados compartilhados usando locks


O sistema DSM e que faz a troca de mensagens (send/recv
por debaixo dos panos)
O sistema DSM gerencia dados replicados:
I

Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Cada computador mant


em uma c
opia local de dados
recentemente acessados (para melhor desempenho)

26 / 28

Estrategias de memoria compartilhada

SD
Alexandre S. Nery
Introduc
ao
Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Figure: Abstrac
ao de mem
oria compartilhada distribuda.

27 / 28

Problemas de implementacao

SD
Alexandre S. Nery
Introduc
ao

Definicao clara da granularidade dos dados compartilhados


I
I

Semantica para acesso concorrente aos dados precisa ser


claramente especificada
I

bytes, kbytes?
P
aginas do S.O.?

Programadores precisam entender modelos de consistencia de


dados
Dados em cache para aumentar desempenho
o

Reducao de atraso n msgs para implementar acesso


concorrente
I
I

Comunicac
ao em
grupo
Problemas de
implementac
ao
Gerenciamento da
participac
ao no grupo
Sistemas
publicar-assinar
Problemas de
implementac
ao
Filas de mensagem
Problemas de
implementac
ao
Estrat
egias de mem
oria
compartilhada
Problemas de
implementac
ao

Software DSM sempre em controle da comunicac


ao
Programadores n
ao podem otimizar suas soluco
es

Controle DSM em software ou em hardware

As implementac
oes em DSM nao conseguem ser mais
eficientes que passagem de mensagens (ex: MPI)

28 / 28

Vous aimerez peut-être aussi