Sistemas Distribuídos
Prof. Marcus Rodrigues
marcus.rodrigues@gmail.com
Comunicação em
Sistemas Distribuídos
Capítulo 2 – Aula 9
Comunicação em Sistemas
Distribuídos
Prof. Marcus Rodrigues

Material baseado no
livro
Distributed Systems:
Principles and Paradigms
Prentice Hall
Copyright © Andrew S.
Tanembaum, Maarten van
Steen, 2001
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Comunicação Orientada a
Mensagem

RMI e RPC contribuem para ocultar detalhes de
comunicação em sistemas distribuídos
Prof. Marcus Rodrigues
•
•
Transparência de acesso ☑
Problemas?
• Tolerância a falha?
“E se o provedor do serviço não estiver funcionando?”
•

• Desempenho em comunicação de natureza síncrona?
Nenhum dos mecanismos é apropriado para qualquer
circunstância
Alternativa?
•
Comunicação por mensagem
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Persistência e Sincronia em
Comunicação (1)

Organização geral de um sistema de comunicação onde as
estações estão conectadas através de uma rede
Prof. Marcus Rodrigues
2-20
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Persistência e Sincronia em
Comunicação (2)

Comunicação persistente
• Uma mensagem submetida a transmissão é
Prof. Marcus Rodrigues
armazenada pelo sistema de comunicação até
que possa ser entregue ao receptor
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Persistência e Sincronia em
Comunicação (3)

Comunicação persistente
• Uma mensagem submetida a transmissão é
Prof. Marcus Rodrigues
armazenada pelo sistema de comunicação até
que possa ser entregue ao receptor

Comunicação transiente
• Uma mensagem é armazenada pelo sistema de
comunicação apenas enquanto as aplicações
transmissoras e receptoras estiverem
executando
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Persistência e Sincronia em
Comunicação (4)

Comunicação assíncrona
• O transmissor continua seu fluxo de execução
Prof. Marcus Rodrigues
imediatamente após submeter mensagem para
transmissão

Comunicação síncrona
• O transmissor é bloqueado até que sua
mensagem seja armazenada em um buffer local
na estação receptora, ou de fato entregue ao
receptor.
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Persistência e Sincronia em
Comunicação (5)
a)
b)
Comunicação persistente assíncrona
Comunicação persistente síncrona
Prof. Marcus Rodrigues
2-22.1
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Persistência e Sincronia em
Comunicação (6)
Prof. Marcus Rodrigues
2-22.2
c)
d)
Comunicação transiente assíncrona
Comunicação baseada em receptor transiente síncrono
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Prof. Marcus Rodrigues
Persistência e Sincronia em
Comunicação (7)
e)
f)
Comunicação baseada na entrega transiente e síncrona
Comunicação baseada na resposta transiente e síncrona
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Comunicação transiente
orientada a mensagem
Prof. Marcus Rodrigues


Muitos sistemas distribuídos e aplicações
são dispostos diretamente sobre um
modelo orientado a mensagem oferecido
pela camada de transporte
Berkeley sockets
• Socket é um ponto de comunicação no qual
uma aplicação pode encrever dados que serão
transmitidos através de um sistema de
comunicação, e a partir do qual dados de
chegada podem ser lidos
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Berkeley Sockets (1)
Prof. Marcus Rodrigues

Primitivas socket para sistemas TCP/IP.
Primitiva
Função
Socket
Cria um novo ponto de comunicação
Bind
Associa o endereço local ao socket
Listen
Notifica disponibilidade para receber conexões
Accept
Aguarda a chegada de uma solicitação de
conexão
Connect
Estabelece uma nova conexão
Send
Envia dados através da conexão
Receive
Recebe dados através da conexão
Close
Libera a conexão
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Prof. Marcus Rodrigues
Berkeley Sockets (2)

Padrão de comunicação orientado a conexão usando sockets
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Message-Passing Interface (MPI)
Prof. Marcus Rodrigues

Primitivas MPI
Primitiva
Função
MPI_bsend
Anexa mensagem de saída ao buffer local de transmissão
MPI_send
Envia uma mensagem e aguarda até que a mensagem seja ao
buffer local ou remoto
MPI_ssend
Envia uma mensagem e aguarda até que receptor seja iniciado
MPI_sendrecv
Envia uma mensagem e aguarda por respota
MPI_isend
Passa referência para mensagem de saída, e continua
MPI_issend
Passa referência para mensagem de saída, e aguarda até que o
receptor seja iniciado
MPI_recv
Recebe uma mensagem; bloqueia em caso de não haver
mensagem
MPI_irecv
Verifica se há uma mensagem recebida, mas não bloqueia
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Prof. Marcus Rodrigues
Modelo de enfileiramento de
mensagens (1)
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Prof. Marcus Rodrigues
Modelo de enfileiramento de
mensagens (2)
Primitiva
Função
Put
Anexa uma mensagem a uma fila específica
Get
Bloqueia até que uma fila específica não esteja vazia, e retira a primeira
mensagem
Poll
Verifica um fila específica, e remove a primeira mensagem. Nunca bloqueia
Notify
Instala um “tratador” a ser chamado quando uma mensagem é inserida em
uma fila específica
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Prof. Marcus Rodrigues
Arquitetura de um sistema de
enfileiramento de mensagens (1)
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Prof. Marcus Rodrigues
Arquitetura de um sistema de
enfileiramento de mensagens (2)
2-29
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Message Brokers

The general organization of a message broker in a
message-queuing system.
Prof. Marcus Rodrigues
2-30
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Exemplo: IBM MQSeries
Prof. Marcus Rodrigues
2-31
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Prof. Marcus Rodrigues
Transferência de mensagem (1)
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Prof. Marcus Rodrigues
Transferência de mensagem (2)
Primitiva
Descrição
MQopen
Abre uma fila (possivelmente remota)
MQclose
Fecha uma fila
MQput
Insere uma mensagem em uma fila aberta
MQget
Retira uma mensagem de uma fila (local)
Sistemas Distribuídos – Capítulo 2 – Comunicação Orientada a Mensagem
Download

Sistemas Distribuídos