34
+ Sistemas Distribuídos Engenharia da Computação Prof. Jairson Rodrigues Comunicação Indireta FUNDAMENTOS

comunicação-indireta

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