Você está na página 1de 34

+

Sistemas Distribudos
FUNDAMENTOS
Engenharia da Computao Comunicao Indireta
Prof. Jairson Rodrigues

+
FUNDAMENTOS

Comunicao Indireta
AGENDA
Introduo
Comunicao em Grupo
Sistemas Publish/Subscribe
Filas de Mensagens
Memria Compartilhada

Comunicao Indireta

Introduo
n

Comunicao atravs de um intermedirio

No h ligao direta entre um emissor e um ou mais


receptores

Paradigma que suporta comunicao 1 para N

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

Comunicao Indireta

Acomplamento Direto
n

Nossos exemplos anteriores


n
n
n
n
n

Problemas da Comunicao Direta


n
n

Cliente e Servidor UDP (send/receive)


Cliente e Servidor TPC (send/receive)
RPC
RMI
Comunicao via Web Services
Engessamento para lidar com mudanas
Cliente precisa lidar diretamente com falhas de servio

Benefcios da Comunicao Indireta


n
n

Desacoplamento Espacial
Desacomplamento Temporal

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

Comunicao Indireta
Quadro Comparativo
Acoplamento
Temporal

Desacoplamento
Temporal

Acoplamento
Espacial

Comunicao direta para um


ou mais destinatrios que
precisam existir no mesmo
momento de tempo

Comunicao direta para um ou mais


destinatrios; remetentes e
destinatrios podem ter linhas de
tempo diferentes

Desacomplamento
Espacial

Remetente no precisa
conhecer a identidade dos
destinatrios; mas estes
precisam existir no mesmo
momento de tempo

Remetente no precisa conhecer a


identidade dos destinatrios;
remetentes e destinatrios podem ter
linhas de tempo diferentes

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

Comunicaco em Grupo
n Mensagem

enviada para um grupo

n Posteriormente

a mensagem enviada para todos os

destinatrios
n Analogia

com a comunicao multicast

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

Comunicao em Grupo
Aplicaes
n Disseminao

de informao para grande nmero de

destinatrios
n Suporte

a aplicaes colaborativas, ex: jogos multi-

usurio
n Suporte

para estratgias de tolerncia a falhas

Replicao de dados
Replicao de servidores

Estratgias de balanceamento

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

Comunicao em Grupo
n Unicast

versus Multicast versus Broadcast

n Comunicao

em Grupo anlogo ao paradigma

multicast
n Uma

operao multicast versus vrias operaes send

n Exemplo: um

computador em Darvaza no Uzbequisto


enviando uma mensagem para dois computadores na mesma
rede no Timor Leste atravs de:
n
n

Dois sends separados via UDP


Um envio multicast

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

Comunicao em Grupo
Grupos de Processos versus Grupos de Objetos
n Grupos
n
n
n

Entidades que se comunicam so: PROCESSOS


Oferta de servios em baixo nvel (anlogos a sockets)
Mensagens so arrays no estruturados de bytes

Grupos de Objetos
n
n
n
n

de Processos

Coleo de objetos (s vezes instncias da mesma classe) que


processam a mesma chamada concorrentemente
Abordagem alto nvel para comunicao em grupo
Objetos locais agem como proxy para comunicao em grupo
Mensagens so empacotadas (marshalling) como em RMI

Ex: Jgroups Toolkit: Paradigma de Grupos de Processos

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

10

Comunicao em Grupo
Outros conceitos
n Grupos

abertos versus grupos fechados

n Sobreposio

de grupos

n Comunicao

sncrona e assncrona

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

11

Comunicao em Grupo
Estudo de Caso: JGroups Toolkit
n Toolkit

para comunicao em grupo escrito em Java

n Suporta

grupos de processos nos quais cada entidade


pode entrar ou deixar o grupo

n Envio

de mensagens

Todo o grupo

Para um simples integrante

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

12

Comunicao em Grupo
Estudo de Caso: JGroups Toolkit

http://www.jgroups.org/movies/DrawDemoWithState.swf

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

13

Comunicao em Grupo
Estudo de Caso: JGroups Toolkit

http://www.jgroups.org/movies/DrawDemoWithState.swf

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

14

SimpleChat - JGroups Tookit

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

15

SimpleChat - JGroups Tookit

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

16

SimpleChat - JGroups Tookit

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

+ SimpleChat - JGroups Tookit

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

17

21/04/15

+ SimpleChat - JGroups Tookit

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

18

21/04/15

+ SimpleChat - JGroups Tookit

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

19

21/04/15

+ SimpleChat - JGroups Tookit

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

20

21/04/15

21

Sistemas Publicar/Assinar
Definio
n Tambm

conhecidos como SDs baseados em eventos

n Estrutura
n

H um servio de eventos

Publicadores publicam eventos estruturados

Assinadores expressam interesse se registrando

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

22

Sistemas Publicar/Assinar
Aplicaes
n Sistemas

de informaes financeiras

n Suporte

para trabalho cooperativo

n Suporte

para computao ubqua

Ex: servios de localizao

n Monitoramento

de rede

n Obs: este

paradigma um ponto chave da


infraestrutura de notificao de eventos da Google

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

23

Sistemas Publicar/Assinar
SDs baseados em eventos
n

Permite que vrios objetos sejam notificados sobre eventos


ocorrendo em um dado objeto

Publicador - Objeto que gera eventos publica os eventos que


deseja tornar disponveis

Assinador - Objetos interessados em eventos de um dado


outro objeto

Exemplos:
n
n

Notificao de alterao em documentos colaborativos


Notificao de alterao preos de mercado em um sistema
financeiro

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

24

Sistemas Publicar/Assinar
Exemplo: Corretora de Aes

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

25

Sistemas Publicar/Assinar
Modelo de Programao

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

26

Filas de Mensagens Distribudas


Definio
n Comunicao
n

Provm comunicao 1 : n

Filas de mensagens
n
n

em Grupo & Sistemas Publicar/Assinar

Desacoplamento espacial e temporal


Tambm chamados de Message-Oriented Middleware

Regras de remoo de mensagens da fila


n

FIFO (first in, first out)


Baseadas em prioridades do leitor

Baseadas em seleo de propriedades de mensagens

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

27

Filas de Mensagens Distribudas


Modelo
n Processos

produtores enviam (operao send)


mensagens para uma fila

n Processos

consumidores recebem (operao receive)


mensagens desta fila

n Estilos
n
n
n

de receive

Receive bloqueante
Receive no-bloqueante (pesquisa de status da fila)
Notificao (emite uma notificao quando uma nova mensagem
est disponvel na fila)

Mensagens so persistentes (permanecem na fila at serem


consumidas)

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

28

Filas de Mensagens Distribudas


Modelo

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

29

Filas versus Modelo Send/Receive


Comparativo
n Modelo
n

send/receive possui filas implcitas

Buffer do remetente e do destinatrio

Filas de Mensagens possuem filas explcitas


n
n
n

So terceiros na comunicao
Esto separados do remetente e destinatrio
Possuem servios mais elaborados, ex: persistncia, segurana
etc.

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

30

Java Messaging Service (JMS)


Conceitos
n Especificao

padro para comunicao indireta em


programas Java

n Unifica
n
n

os paradigmas

Publicar/Assinar
Filas de Mensagens

Implementaes
n

OW2, Java Messaging from JBoss, Suns Open MQ, Apache


ActiveMQ and OpenJMS

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

31

Java Messaging Service (JMS)


n

Cliente JMS Programa Java que produz ou consome mensagens


n
n

Cliente JMS consumidor


Cliente JMS produtor

Provedor JMS uma implementao do servio segundo a


especificao

Mensagem JMS objeto utilizado para comunicao entre


clientes JMS (produtores ou consumidores)

Destino JMS d suporte comunicao indireta


n
n

Tpico Sistemas Publicar/Assinar


Fila JMS Filas Distribudas

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

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

32

Memrias Compartilhadas
Definio
n Abstrao

utilizada para compartilhar dados entre


computadores em espaos de memria diferentes

n Processos

acessam memria compartilhada realizando


leitura e escrita como se estivem em seus espaos de
memria prprios

n Um

servio responsvel por garantir de forma


transparente que cada processo tome conhecimento
dos updates dos outros processos

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

33

Memrias Compartilhadas
Definio

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

34

Referncias
Bibliografia, fontes, crditos, imagens
n

Sistemas Distribudos Princpios e Paradigmas,


2 Edio Prentice Hall. Tanenbaum, Andrew; Van
Steen, Maarten

Sistemas Distribudos Conceitos e Projeto, 4


Edio Bookman. Coulouris, George; Dollimore,
Jean; Kindberg, Tim

CCMP0054 - Sistemas Distribudos I - Engenharia da Computao - Prof. Jairson Rodrigues

21/04/15

Você também pode gostar