Upload
lucas-dibex
View
100
Download
9
Embed Size (px)
DESCRIPTION
comunicação indireta sistemas distribuidos
Citation preview
+
Sistemas Distribuídos Engenharia da Computação
Prof. Jairson Rodrigues
Comunicação Indireta
FUNDAMENTOS
+
AGENDA Introdução
Comunicação em Grupo
Sistemas Publish/Subscribe
Filas de Mensagens
Memória Compartilhada
FUNDAMENTOS
Comunicação Indireta
+ Comunicação Indireta Introdução
3
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
n Comunicação através de um intermediário
n Não há ligação direta entre um emissor e um ou mais receptores
n Paradigma que suporta comunicação 1 para N
+ Comunicação Indireta Acomplamento Direto
4
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
n Nossos exemplos anteriores n Cliente e Servidor UDP (send/receive) n Cliente e Servidor TPC (send/receive) n RPC n RMI n Comunicação via Web Services
n Problemas da Comunicação Direta n Engessamento para lidar com mudanças n Cliente precisa lidar diretamente com falhas de serviço
n Benefícios da Comunicação Indireta n Desacoplamento Espacial n Desacomplamento Temporal
+ Comunicação Indireta Quadro Comparativo
5
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Acoplamento Temporal
Desacoplamento Temporal
Acoplamento Espacial
Comunicação direta para um ou mais destinatários que precisam existir no mesmo momento de tempo
Comunicação direta para um ou mais destinatários; remetentes e destinatários podem ter linhas de tempo diferentes
Desacomplamento Espacial
Remetente não precisa conhecer a identidade dos destinatários; mas estes precisam existir no mesmo momento de tempo
Remetente não precisa conhecer a identidade dos destinatários; remetentes e destinatários podem ter linhas de tempo diferentes
+Comunicacão em Grupo
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
6
n Mensagem é enviada para um grupo
n Posteriormente a mensagem é enviada para todos os destinatários
n Analogia com a comunicação multicast
+Comunicação em Grupo
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Aplicações
7
n Disseminação de informação para grande número de destinatários
n Suporte a aplicações colaborativas, ex: jogos multi-usuário
n Suporte para estratégias de tolerância a falhas n Replicação de dados
n Replicação de servidores
n Estratégias de balanceamento
+Comunicação em Grupo
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
8
n Unicast versus Multicast versus Broadcast
n Comunicação em Grupo é análogo ao paradigma multicast
n Uma operação multicast versus várias operações “send”
n Exemplo: um computador em Darvaza no Uzbequistão enviando uma mensagem para dois computadores na mesma rede no Timor Leste através de: n Dois send’s separados via UDP
n Um envio multicast
+Comunicação em Grupo
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Grupos de Processos versus Grupos de Objetos
9
n Grupos de Processos n Entidades que se comunicam são: PROCESSOS n Oferta de serviços em baixo nível (análogos a sockets) n Mensagens são arrays não estruturados de bytes
n Grupos de Objetos n Coleção de objetos (às vezes instâncias da mesma classe) que
processam a mesma chamada concorrentemente n Abordagem alto nível para comunicação em grupo n Objetos locais agem como proxy para comunicação em grupo n Mensagens são empacotadas (marshalling) como em RMI
n Ex: Jgroups Toolkit: Paradigma de Grupos de Processos
+Comunicação em Grupo
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Outros conceitos
10
n Grupos abertos versus grupos fechados
n Sobreposição de grupos
n Comunicação síncrona e assíncrona
+Comunicação em Grupo
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Estudo de Caso: JGroups Toolkit
11
n Toolkit para comunicação em grupo escrito em Java
n Suporta grupos de processos nos quais cada entidade pode entrar ou deixar o grupo
n Envio de mensagens n Todo o grupo
n Para um simples integrante
+Comunicação em Grupo
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Estudo de Caso: JGroups Toolkit
12
http://www.jgroups.org/movies/DrawDemoWithState.swf
+Comunicação em Grupo
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Estudo de Caso: JGroups Toolkit
13
http://www.jgroups.org/movies/DrawDemoWithState.swf
+
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
14
SimpleChat - JGroups Tookit
+
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
15
SimpleChat - JGroups Tookit
+
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
16
SimpleChat - JGroups Tookit
+
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
17 SimpleChat - JGroups Tookit
+
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
18 SimpleChat - JGroups Tookit
+ SimpleChat - JGroups Tookit
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
19
+
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
20 SimpleChat - JGroups Tookit
+Sistemas Publicar/Assinar
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Definição
21
n Também conhecidos como “SD’s baseados em eventos”
n Estrutura n Há um serviço de eventos
n Publicadores “publicam” eventos estruturados
n Assinadores “expressam interesse” se registrando
+Sistemas Publicar/Assinar
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Aplicações
22
n Sistemas de informações financeiras
n Suporte para trabalho cooperativo
n Suporte para computação ubíqua n Ex: serviços de localização
n Monitoramento de rede
n Obs: este paradigma é um ponto chave da infraestrutura de notificação de eventos da Google
+Sistemas Publicar/Assinar
n Permite que vários objetos sejam notificados sobre eventos ocorrendo em um dado objeto
n Publicador - Objeto que gera eventos publica os eventos que deseja tornar disponíveis
n Assinador - Objetos interessados em eventos de um dado outro objeto
n Exemplos: n Notificação de alteração em documentos colaborativos
n Notificação de alteração preços de mercado em um sistema financeiro…
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
SD’s baseados em eventos
23
+Sistemas Publicar/Assinar
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Exemplo: Corretora de Ações
24
+Sistemas Publicar/Assinar
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Modelo de Programação
25
+Filas de Mensagens Distribuídas
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Definição
26
n Comunicação em Grupo & Sistemas Publicar/Assinar n Provém comunicação 1 : n
n Filas de mensagens n Desacoplamento espacial e temporal
n Também chamados de Message-Oriented Middleware
n Regras de remoção de mensagens da fila n FIFO (first in, first out)
n Baseadas em prioridades do “leitor”
n Baseadas em seleção de propriedades de mensagens
+Filas de Mensagens Distribuídas
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Modelo
27
n Processos produtores enviam (operação send) mensagens para uma fila
n Processos consumidores recebem (operação receive) mensagens desta fila
n Estilos de “receive” n Receive bloqueante n Receive não-bloqueante (pesquisa de status da fila) n Notificação (emite uma notificação quando uma nova mensagem
está disponível na fila)
n Mensagens são persistentes (permanecem na fila até serem consumidas)
+Filas de Mensagens Distribuídas
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Modelo
28
+Filas versus Modelo Send/Receive
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Comparativo
29
n Modelo send/receive possui filas implícitas n Buffer do remetente e do destinatário
n Filas de Mensagens possuem filas explícitas n São “terceiros” na comunicação
n Estão separados do remetente e destinatário
n Possuem serviços mais elaborados, ex: persistência, segurança etc.
+Java Messaging Service (JMS)
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Conceitos
30
n Especificação padrão para comunicação indireta em programas Java
n Unifica os paradigmas n Publicar/Assinar
n Filas de Mensagens
n Implementações n OW2, Java Messaging from JBoss, Sun’s Open MQ, Apache
ActiveMQ and OpenJMS
+Java Messaging Service (JMS)
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
31
n Cliente JMS – Programa Java que produz ou consome mensagens n Cliente JMS consumidor n Cliente JMS produtor
n Provedor JMS – uma implementação do serviço segundo a especificação
n Mensagem JMS – objeto utilizado para comunicação entre clientes JMS (produtores ou consumidores)
n Destino JMS – dá suporte à comunicação indireta n Tópico – Sistemas Publicar/Assinar n Fila JMS – Filas Distribuídas
n http://www.onjava.com/pub/a/onjava/excerpt/jms_ch2/index.html
Exemplo: http://www.onjava.com/pub/a/onjava/excerpt/jms_ch2/index.html
+Memórias Compartilhadas
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Definição
32
n Abstração utilizada para compartilhar dados entre computadores em espaços de memória diferentes
n Processos acessam memória compartilhada realizando leitura e escrita como se estivem em seus espaços de memória próprios
n Um serviço é responsável por garantir de forma transparente que cada processo tome conhecimento dos updates dos outros processos
+Memórias Compartilhadas
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Definição
33
+Referências
n Sistemas Distribuídos – Princípios e Paradigmas, 2ª Edição – Prentice Hall. Tanenbaum, Andrew; Van Steen, Maarten
n Sistemas Distribuídos – Conceitos e Projeto, 4ª Edição – Bookman. Coulouris, George; Dollimore, Jean; Kindberg, Tim
21/04/15 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Bibliografia, fontes, créditos, imagens…
34