• Nenhum resultado encontrado

Comunicação orientada a mensagens

N/A
N/A
Protected

Academic year: 2022

Share "Comunicação orientada a mensagens"

Copied!
25
0
0

Texto

(1)

Comunicação orientada a mensagens

(2)

Sistemas de mensagens

• suporte para ponto a ponto e grupos

• desacoplamento

– temporal

• persistência das mensagens

– espacial

• canais e congêneres

(3)

MPI - message passing interface

• abstrações

– endereços virtuais de processos

• 0, 1, 2, …

– comunicação em grupo

• comunicadores

• aplicações fortemente acopladas

(4)

canais ou filas de mensagens

• desacoplamento espacial

– destinatário é canal e não processo

• desacoplamento temporal

– canal de destino pode sobreviver a execução do processo origem

• exemplo representativo: espaços de tuplas

(5)

Linda

• Carriero and Gelernter, 1986

– Yale

• idéia de um espaço de tuplas compartilhado por diversos processos

• inicialmente voltado para aplicações paralelas

espaço de tuplas

processos

(6)

Linda - primitivas

• out(tuple)

– coloca tupla t no espaço de tuplas

• in (template)

– retorna retirando tupla que “case” com template do espaço de tuplas

– bloqueante

• rd(template)

– como in sem eliminar tupla do et

• eval(t)

– dispara novo processo para calcular tupla e fazer out(t)

• primitivas para C e FORTRAN

• comunicação dentro de uma aplicação fechada

(7)

casamento de tuplas

• endereçamento por conteúdo (ou memória associativa)

– valores e tipos:

int x; float y;

in (3, ?x, "blablabla", ?y)

– dificuldade de implementação x utilidade?

(8)

Linda - exemplo de programa

(9)

exemplo em Linda

real_main (int argc, char *argv[ ]) { int procs, procid, hello( ), j;

procs = atoi (argv[1]);

for (j=0; j<procs; j++)

eval ("worker", hello(j));

for (j=0; j<procs; j++) { in ("worker", ?procid);

fprintf (stdout, "fim do proc %d\n",procid);

} }

hello (int i){

return i;

}

(10)

exemplo do wpp

N. Carriero e D. Gelernter. How to write parallel programs: a guide to the perplexed. ACM Computing Surveys, 21(3), set 1989.

(11)

construção de outras abstrações

• rpc

out (pedido) in (?resposta)

• facilidades para passagem de argumentos

(12)

interpretações do espaço de tuplas

• muitas vezes chamado de espaço virtual compartilhado

espaço compartilhado

processos

(13)

interpretações do espaço de tuplas

• mas também podemos ver como um sistema de canais de comunicação

out("canal1", tx)

out("canal2", tz)

in("canal1", ?t1) out("canal2", t1)

in("canal2", ?t)

out("canal1", ty)

out("canal3", tz)

canal1 canal2 canal3

(14)

espaços de tuplas em Java

• Tspaces e JavaSpaces

– space.write (entry, …) – space.read (template, …) – space.take (template, …) – read e take ainda bloqueantes – eval não existe

• entradas e templates são instâncias de classes

– um objeto encapsula a antiga tupla

(15)

JavaSpaces

• distanciamento de programação paralela e aproximação com sistemas distribuídos

– espaços "ainda mais" persistentes

• aplicação não precisa estar em execução para tupla ser retirada

• desacoplamento maior

– utilização simultânea de diferentes espaços

• uso do registry RMI ou outros mecanismos de localização

– integração com middleware Jini

(16)

implementações

• em geral centralizadas

• algumas implementações distribuídas

– e muita discussão

• replicação completa de espaço, rd e in locais, e out com broadcast

• out local e broadcast de in e rd

(17)

extensões: LIME

• espaços de tuplas para sistemas móveis

– Linda for Mobile Environments

• A. Murphy, G-P. Picco, and G-C. Roman. "Lime: A Coordination Middleware Supporting Mobility of Hosts and Agents". ACM Transactions on Software

Engineering and Methodology (TOSEM), vol. 15, no. 3, pp. 279-328, July 2006

• cada dispositivo mantém seus espaços

• compartilhamentos provisórios de espaços

com mesmo nome

(18)

Coordenação

• separação

– processamento X comunicação e sincronização

• ler...

– Gelernter, D. and Carriero, N. 1992. Coordination languages and their significance. Commun. ACM 35, 2 (Feb. 1992), 97-107.

(19)

comunicação publish/subscribe

inscrições ou assinaturas

publicação de eventos ou mensagens

• notificação aos assinantes

– tipicamente assíncrona

(20)

pub/sub

serviço de pub/sub

P P

P P

A A

P A

A A A

……

→ papéis não precisam ser exclusivos!

(21)

recuperação de mensagens

• modelo pull

– assinantes buscam mensagens explicitamente

• modelo push

– serviço ativamente divulga mensagens – mais usado em pub/sub!

– divulgação pode usar multicast ou comunicação em grupo

(22)

pub/sub e espaços de tuplas

• espaço de tuplas pode ser pensado como um caso especial de pub/sub

• espaços tradicionais utilizam modelo pull

– método notify de JavaSpaces fornece psh parcial

• casamento com multithreading

(23)

pub/sub - filtragem

• por tópico

– novamente relação com comunicação por canais

• por conteúdo

– novamente proximidade com espaços de tuplas – flexibilidade dos filtros permitidos

(24)

implementação de pub/sub

• centralizadas e distribuídas

serviço de pub/sub

serviço de pub/sub

• distribuídas

– arquitetura?

– ordens de difusão de mensagens?

(25)

entrega de mensagens

• diferentes assinantes podem receber mensagens em diferentes ordens

– pode ou não ser importante…

Referências

Documentos relacionados

Grupo 2 – Foco: Pâmela; Daniela; Raquel; Tatiana (Ponte; Rolamento atrás de pernas unidas; Pino; Roda) Grupo 1 – Foco: André; Ana Marta; João Paulo; Filipa; Pedro Costa (Salto

Diferente de Brasília, com suas belas e inovadoras edificações, poucas construções se destacam no desenho local (que já não obedece a uma padronização urbana) de Ceilândia.

Relatório de estágio realizado na Unidade Básica de Saúde Santa Marta como requisito parcial para aprovação na disciplina Estágio Curricular II do curso de

Para saber como o amostrador Headspace 7697A da Agilent pode ajudar a alcançar os resultados esperados, visite www.agilent.com/chem/7697A Abund.. Nenhum outro software

A abordagem mais usual de fadiga, que utiliza a tensão nominal e a classificação de detalhes geométricos para previsão da vida em fadiga, não abrange conexões mais complexas e

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

• Capacitação e Transferência da metodologia do Sistema ISOR ® para atividades de Coaching e/ou Mentoring utilizando o método das 8 sessões;.. • Capacitação e Transferência

A partir de intercâmbio entre pesquisadores, agricultores, estudantes e extensionistas foi possível verificar que o cultivo em sistema agroflorestal, dentre outras práticas adotadas