Buscar

SD parte 03 - Comunicação em SD

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Parte 3
Comunicação em SD
Sistemas DistribuídosSistemas Distribuídos
 A maior diferença entre um sistema monoprocessado e um sistema 
distribuído é a comunicação entre processos.
 Em um sistema monoprocessado:
– Assume-se a existência de memória compartilhada, que é fundamental 
para o funcionamento de soluções para:
● Comunicação entre processos, Exclusão mútua e regiões críticas, 
semáforos, variáveis compartilhadas, etc
 Em sistemas distribuídos:
– A ausência de memória compartilhada (ou a impossibilidade de 
garantir a disponibilidade deste recurso) obriga os componentes dos 
sistemas distribuídos a buscar outra solução para interagir
● Troca de mensagens
● Implica em adotar protocolos de comunicação para permitir que 
ambientes heterogêneos troquem mensagens
Introdução
Protocolos de Comunicação
 Protocolos são regras pré-estabelecidas para comunicação entre 
duas ou mais partes
 O uso de camadas facilita sua implementação e entendimento, já que 
cada camada possui responsabilidades específicas
 Em 1983, a International Standards Organization (ISO) desenvolveu 
um modelo de referência que identifica claramente os vários níveis 
envolvidos e suas atribuições: o “Modelo OSI” (Open Systems 
Interconnection Reference Model)
 Voltado para comunicação entre sistemas abertos
 Um sistema aberto é preparado para se comunicar com qualquer 
outro sistema aberto através de regras que ditam o formato, 
conteúdo e significado das mensagens enviadas e recebidas.
Protocolos de Comunicação
 Modelos de protocolos
 Protocolos orientados à conexão
 Neste modelo, o emissor e o receptor de uma determinada 
mensagem devem estabelecer uma conexão antes que ocorra a 
troca de dados propriamente dita
 Existe possibilidade inclusive de negociação de aspectos do 
protocolo
 Protocolos sem conexão
 Conforme o nome já indica, não há necessidade de que o emissor e 
o receptor de uma determinada mensagem estejam conectados 
para a comunicação acontecer
Protocolos de 
Comunicação
 O Modelo OSI
 Dividido em sete camadas de 
funcionalidade
 Cada camada trata de um 
aspecto da comunicação e 
provê uma interface 
(operações que definem os 
serviços da camada) às 
camadas adjacentes 
 Cabeçalhos e finalizadores 
podem ser acrescentados e 
retirados às mensagens
Características da 
Comunicação entre Processos
 Dependabilidade (qualidade do serviço oferecido por um dado sistema)
– Em geral, sistema é considerado dependável (confiável) se há 
garantia de entrega de mensagens apesar da perda de um número 
“razoável” de pacotes
 Reconhecimento de mensagens
– Reconhecimento positivo (esta é a mensagem esperada)
– Reconhecimento negativo (esta não pode ser a mensagem 
esperada)
 Ordenação
– Alguns sistemas dependem da ordem das mensagens
– Fácil implementar para cliente-servidor ou p2p, porém complexo em 
comunicação multicast
APIs de Comunicação
 APIs de comunicação permitem que as aplicações enviem e 
recebam dados
 Fornecem primitivas de comunicação que podem ser 
chamadas a partir do código
 Oferecem acesso aos serviços de comunicação, que podem 
assim ser usados pelas aplicações
 Exemplos de APIs de comunicação:
– Sockets: Portas de comunicação locais ou de rede (Ex: SSL)
– Suportes de RPC (Remote Procedure Call): Permitem 
chamar procedimentos/métodos remotamente (ex.: Java RMI, 
Sun RPC, ...)
– Canais de eventos: Permitem notificar threads e processos 
dos eventos ocorridos no sistema (Ex.: JMS, CORBA 
Notification Service, …)
Características da 
Comunicação 
entre Processos
 A passagem de 
mensagens entre 
processos pode ser 
suportada por duas 
operações (primitivas):
 SEND – Envio de uma 
sequencia de bytes para 
um destino
 RECEIVE – Recepção de 
uma sequencia de bytes 
enviada
Características da 
Comunicação entre Processos
 Comunicação Síncrona e Assíncrona
 Uma fila é associada a cada destino de mensagem. Os 
processos remetentes adicionam mensagens a essa fila 
(remota) e os processos de destino removem as mensagens 
dessa fila (local).
 Comunicação síncrona
 Os processos remetente e destino são sincronizados a cada 
mensagem, ou seja, SEND e RECEIVE são BLOQUEANTES (causam 
bloqueio no processo até que a operação seja concluída):
 Operações SEND: O processo remetente é bloqueado até que o 
RECEIVE correspondente seja realizado.
 Operações RECEIVE: O processo destino é bloqueado até que a 
mensagem ser entregue.
Características da 
Comunicação entre Processos
 Comunicação Síncrona e Assíncrona (continuação)
 Comunicação assíncrona
 As operações SEND são NÃO BLOQUEANTES, ou seja, o processo 
remetente pode prosseguir seu funcionamento assim que a 
mensagem tiver sido copiada para um buffer local para ser 
transmitida
 As operações RECEIVE podem ser BLOQUEANTES ou NÂO 
BLOQUEANTES
 Bloqueantes: o processo destino é bloqueado até que a mensagem ser 
entregue (como na comunicação síncrona).
 Não Bloqueantes: o processo destino prossegue sua execução após 
disparar o início da recepção da mensagem. A mensagem é armazenada 
em um buffer (isso acontece em background) para tratamento posterior e 
o processo é avisado quando a recepção estiver concluída.
Características da 
Comunicação entre Processos
 Comunicação Síncrona e Assíncrona (continuação)
 A possibilidade do uso de threads dedicadas para a 
comunicação dentro de cada processo pode facilitar a adoção 
de RECEIVE bloqueante, pois o bloqueio será apenas das 
threads envolvidas na comunicação e não do processo inteiro.
 A comunicação não bloqueante pode ser mais vantajosa, mas 
é mais complexa de implementar. Por esse motivo muitos 
sistemas atuais não oferecem RECEIVE não bloqueante.
Características da 
Comunicação entre Processos
 Destinos de Mensagens
 Protocolos internet identificam o destino das mensagens com 
o par [Endereço IP. Porta local].
 Uma porta é o destino da mensagem dentro do computador e 
é identificada por um valor inteiro.
 Cada porta corresponde a um único destino (exceto quando 
se tratam de portas multicast), mas podem ter vários 
processos remetentes.
 Se cada endereço IP é associado a uma máquina, como 
garantir transparência de localização?
 Usar um serviço de nomes ou associação
 Usar identificadores de serviço independentes de localização e 
mapeá-los em um nível mais baixo para entregá-los às portas
Características da 
Comunicação entre Processos
 Confiabilidade
 A confiabilidade de uma mensagem pode ser avaliada a partir 
da validade e integridade da mesma.
 Validade
 Um serviço de mensagens ponto a ponto pode ser dito confiável se 
houver garantia de que as mensagens fora entregues, 
independente de haver ocorrido alguma perda de pacotes. Se não 
há garantia de entrega, não há confiabilidade.
 Integridade
 As mensagens devem chegar não corrompidas e sem duplicação.
Características da 
Comunicação entre Processos
 Ordenamento
 Algumas aplicações exigem que as mensagens sejam 
entregues na mesma ordem em que foram transmitidas pelo 
processo remetente. Nestes casos, mensagens entregues fora 
de ordem são consideradas falhas pela aplicação.
 É importante lembrar que entrega ordenada de mensagem 
não é uma característica obrigatória de aplicações 
distribuídas. Há aplicações cujo funcionamento não é afetado 
por isso.
Comunicação em Grupo
 Um grupo é uma coleção de processos que 
atuam juntos em um sistema
 Para que o grupo funcione bem, é desejável garantir 
que qualquer mensagem enviada ao grupo seja 
conhecida por todos os seus membros
Comunicação em Grupo
 Características de grupos de processos:
 Grupos são dinâmicos:
 Novos grupos podem ser criados e outros podem ser apagados
 Um processo pode se unir a um grupo ou deixar-lo
 Um processo pode pertencer a mais de um grupo
 É preciso haver algum tipo de estratégia de gestão de 
grupos
 A existência de um grupo precisa ser transparente
 Quando um processo envia uma mensagem para o grupo, ele não 
precisasaber o tamanho do grupo e nem a localização dos 
membros
Comunicação em Grupo
 Estratégias de comunicação
 A comunicação em pares (um-para-um) não é o melhor 
modelo para comunicação de um processo com um grupo. O 
emprego da difusão seletiva (multicast) é a solução mais 
indicada
 A adoção de multicast permite a implementação de sistemas 
distribuídos que suportam as seguintes características:
 Tolerância a falhas baseado em serviços replicados
 Localização de serviços de descoberta na interligação de redes
 Melhor desempenho através da replicação de dados
 Propagação de notificações de eventos
Comunicação em Grupo
 Técnicas de Implementação:
 Comunicação do grupo com outros processos 
externos
 Grupos abertos
 Neste tipo de grupo, qualquer processo externo pode enviar 
mensagem para o grupo todo
 É uma abordagem usada tipicamente em casos de replicação 
de serviços
 Grupos fechados
 Neste tipo de grupo, apenas os membros do grupo podem 
mandar mensagem para o grupo todo
 E como alguém de fora fala com o grupo?
 A mensagem é mandada para um único integrante do 
grupo, que se encarrega de repassar aos demais
 É uma abordagem usada tipicamente em processamento 
paralelo
Comunicação em Grupo
Técnicas de Implementação:
Comunicação do grupo com outros processos externos
Comunicação em Grupo
 Técnicas de Implementação:
 Estrutura interna do grupo:
Grupos igualitários
• Todos os processos são iguais e as 
decisões são tomadas 
coletivamente, por isso a tomada 
de decisão e mais complexa.
• É um grupo simétrico, e isso evita a 
existência de um ponto único de 
falha, já que todos os processos são 
iguais e podem desempenhar as 
mesmas funções
Grupos hierárquicos
• Existe algum tipo de hierarquia entre 
os membros. Isso torna a tomada de 
decisão mais simples.
• A organização mais simples (mas não a 
única possível) deste tipo de grupo 
consiste em um processo coordenador e 
outros processos denominados 
trabalhadores. Quando uma requisição é 
feita, o coordenador decide qual 
trabalhador é o mais apropriado para 
realizar a tarefa, ou define que todos 
devem realizar a tarefa
• Possui um ponto único de falha 
(geralmente, o coordenador)
Comunicação em Grupo
 Técnicas de Implementação:
 Controle de Membros:
Usando um servidor de grupo
• Todas as requisições devem ser feitas ao servidor
• O servidor deve manter uma base de dados completa de todos os grupos e seu 
conjunto exato de membros
• É eficiente, direto e fácil de implementar, mas o servidor torna-se uma vulnerabilidade 
da solução
Adotando um controle distribuído
• Cada novo membro deve enviar mensagem a todos os membros atuais anunciando a 
sua presença e, ao sair, deve avisar a todos os outros membros
• É uma solução mais tolerante a falhas
• Quando um membro falha ele deixa de pertencer ao grupo e não há mensagens de 
aviso
• A entrada e a saída do grupo devem ser sincronizadas com a troca de mensagens
Comunicação em Grupo
 Atomicidade
 Quando uma mensagem é enviada para o grupo, ela deverá 
chegar corretamente para todos os membros ou para 
nenhum deles
 Não são permitidas situações onde alguns membros recebem a 
mensagem e outros não (entrega parcial da mensagem)
 Isso torna a programação de aplicações mais fácil, pois quando 
um processo envia uma mensagem para o grupo não precisa se 
preocupar com o fato de alguém não ter recebido a mensagem
 Falhas na entrega são reportadas ao emissor da mensagem
 Sabendo-se que a mensagem falhou, é possível realizar as ações 
necessárias para recuperação da consistência do processamento
Comunicação em Grupo
 Atomicidade
 A implementação da atomicidade não é simples
 A única forma de garantir a entrega da mensagem para 
todos os destinos é através do envio de mensagens de 
reconhecimento
 Tolerância a falhas  É essencial que a atomicidade seja 
mantida mesmo na presença de falhas
 Exemplo de falha:
 O emissor envia uma mensagem para todos os membros do 
grupo e falha em seguida
 Um processo do grupo não recebe a mensagem
 Não há mais um emissor para ser avisado, logo, não existe 
possibilidade de retransmissão da mensagem
 O grupo deve ignorar a mensagem
Comunicação em Grupo
 Ordenação
 Um mecanismo de comunicação em grupo precisa ter uma 
semântica bem definida com relação à ordem em que as 
mensagens serão entregues. 
 A melhor garantia para isto é fazer com que as mensagens 
sejam entregues na mesma ordem em que foram 
enviadas
 Como nem sempre é possível imitar a ordem de envio, 
existem estratégias de ordenação que normalmente são 
implementadas nos mecanismos de comunicação que 
asseguram o funcionamento correto do grupo.
Comunicação em Grupo
 Ordenação: Estratégias
Sem Ordem
• As mensagens são enviadas ao grupo sem a preocupação de ordenamento
• Tem o menor overhead pois não necessita controle algum de sequência
Ordenamento FIFO
• Garante que todas as mensagens de um membro sejam entregues aos demais na 
ordem que o mesmo enviou
• Não garante que todas as mensagens serão ordenadas, apenas ordena por membro
Ordenamento CAUSAL
• Adota o conceito de mensagem dependente de outra
• Se uma mensagem “A” é dependente de outra mensagem “B”, então “A” deve sempre 
ser recebida depois de “B”
Ordenamento TOTAL
• Cada membro do grupo recebe TODAS as mensagens na mesma ordem
Comunicação em Grupo
 Ordenação: O Problema do Ordenamento FIFO
Atividades Complementares
Leitura:
 COULOURIS, George. “Sistemas Distribuídos: 
Conceitos e Projeto”, Capítulos 2 e 4
	Slide 1
	Protocolos de Comunicação_clipboard0
	Slide 3
	Protocolos de Comunicação_clipboard1
	Protocolos de Comunicação
	Slide 6
	Slide 7
	Características da Comunicação entre Processos
	Características da Comunicação entre Processos
	Características da Comunicação entre Processos
	Características da Comunicação entre Processos
	Características da Comunicação entre Processos
	Características da Comunicação entre Processos
	Características da Comunicação entre Processos
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Comunicação em Grupo
	Atividades Complementares

Outros materiais