• Nenhum resultado encontrado

Sistemas Distribuídos e Redes de Sensores

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Distribuídos e Redes de Sensores"

Copied!
26
0
0

Texto

(1)

Sistemas Distribu´ıdos e Redes de Sensores

Aula 6: Outros Padr˜oes – dissemina¸c˜ao e roteamento

abril de 2013

(2)

Padr˜ oes de programas distribu´ıdos

padr˜ao cliente-servidor exibe assimetria intr´ınseca padr˜oes envolvendo processospares: c´odigo idˆentico

G. Andrews. Paradigms for process interaction in distributed programs. ACM Computing Surveys, 23(1), march 1991, 49-90.

(3)

Nota¸c˜ ao Andrews

canais

desacoplamento em rela¸c˜ao a parceiros espec´ıficos tipagem

(4)

exemplos C/S

monoprocesso

“monitor”: aloca¸c˜ao de recursos de car´ater homogˆeneo controlador de disco

pr´e-aloca¸c˜ao

sess˜oes de uso (continuidade conversacional) e estado

(5)

Padr˜ oes p2p

simetria do c´odigo facilita entendimento do programa

algoritmos em execu¸c˜ao determinam padr˜oes de comunica¸c˜ao

rela¸c˜ao entre discuss˜ao no artigo Andrews e aplica¸c˜oes mais recentemente rotuladas como p2p

(6)

Dissemina¸c˜ ao de informa¸c˜ oes

Motiva¸c˜ao

Dissemina¸c˜ao de informa¸c˜oes de um n´o raiz para toda a rede Dissemina¸c˜ao de informa¸c˜oes de todos os n´os para todos os n´os da rede (ex., problema de descoberta de topologia da rede)

Coleta de dados de todos os n´os da rede Probe/echo e heartbeat

Padr˜oes de intera¸c˜ao adequados para dissemina¸c˜ao de informa¸c˜oes quando os n´os trocam mensagens apenas com seus vizinhos imediatos.

(7)

Algoritmos e padr˜ ao da aplica¸c˜ ao

possivel combina¸c˜ao de v´arios padr˜oes

algoritmo de dissemina¸c˜ao pode ser apenas pequena parte do que ´e computado na aplica¸c˜ao

(8)

Dissemina¸c˜ ao e roteamento

redes f´ısicas redes de overlay

(9)

Algoritmos heartbeat

Cada processo executa uma sequˆencia de itera¸c˜oes, onde cada itera¸c˜ao compreende:

1 enviar seu conhecimento local para todos os vizinhos (expans˜ao)

2 receber o conhecimento dos vizinhos (contra¸ao)

3 ... e combinar os dados gerando nova vers˜ao da informa¸ao global

(10)

problema exemplo: descoberta de topologia da rede

Cada n´o s´o se comunica com seus vizinhos;

Inicialmente cada n´o s´o conhece seus vizinhos imediatos;

A rede ´e conexa (todo n´o tem ao menos um vizinho);

Ao final queremos que cada n´o (processo) conhe¸ca a topologia inteira da rede (grafo de enlaces).

por exemplo, para tomar decis˜oes sobre roteamento de mensagens

problema representativo em SDs pois reaparece em v´arias formas

(11)

Algoritmo distribu´ıdo para descoberta de topologia

Cada n´o pergunta pela topologia de seus vizinhos (enviando e recebendo uma mensagem);

Depois de uma intera¸c˜ao (round), cada n´o conhece a topologia no raio de dois saltos;

Depois derintera¸c˜oes, o seguinte predicado ser´a verdadeiro em cada n´o p:

ROUND:∀q : 1≤q≤n: (dist(p,q)≤r ⇒top[q,∗] j´a preenchida)

(12)

Algoritmo heartbeat para descoberta de topologia

primeira solu¸c˜ao: diˆametro da rede (distˆancia em saltos entre os n´os mais distantes) conhecido:

(13)

Interface de comunica¸c˜ ao p2p

Interface do enlace Module:

Name: PerfectP2PLink Events:

Request: < Send | dest, msg >

Indication: < Deliver | src, msg >

Propriedades do enlace

mensagens s˜ao entregues em ordem, n˜ao h´a cria¸c˜ao de mensagens

(14)

Interface para componente de descoberta de topologia (v1)

(considerando que o diˆametro da rede seja conhecido) Module:

Name: Topologia-v1 Events:

Request: <DescobreTopologia | d, vizinhos[N]>

Indication: <TopologiaAtual | top[N][N]>

(15)

Liga¸c˜ ao entre componentes

(16)

Algoritmo heartbeat (parte 1)

Implements: Topologia-v1 Uses: PerfectP2PLink event <Init> do

global top[1:n][1:n] := false;

global r := 0; resp := 0; num_vizinhos := 0;

proc Expande() do

forall q in top[p] do trigger <Send | q, top>

resp := num_vizinhos;

end

event <DescobreTopologia | d, vizinhos[N]> do top[p][1:n] := vizinhos[1:n];

num_vizinhos := computa vizinhos;

call Expande()

(17)

Algoritmo heartbeat (parte 2)

event <Deliver | q, newtop> do top := top or newtop;

resp := resp - 1;

call Topo();

end

proc Topo() do

if (resp = 0) then r := r + 1;

if (r = d) then

trigger <TopologiaAtual | top>;

else

call Expande() end

(18)

Problemas da solu¸c˜ ao anterior

1 Conhecimento a priori do diˆametro D da rede

2 Troca excessiva de mensagens: n´os na regi˜ao central da rede continuar˜ao a ex ecutar as intera¸c˜oesmesmo depois de j´a terem terminado de computar a topologia

(19)

Algoritmo heartbeat refinado para descoberta de topologia

Depois derintera¸c˜oes, o n´o p conhecer´a a topologia dentro da distˆanciar: ∀q :dist(p,q)≤r, os vizinhos deq estar˜ao armazenados na linha q detop

Como a rede ´e conexa,cada n´o tem ao menos um vizinho, ent˜ao o n´o p ter´a executado um n´umero suficiente de intera¸c˜oes (rounds) para saber a topologia da rede assim que toda linha detoptiver ao menos um valor TRUE

Nesse ponto, q pode terminar ap´os compartilhar sua topologia final com seus vizinhos

(20)

Interface para descoberta de topologia (v2)

Module:

Name: Topologia-v2 Events:

Request: <DescobreTopologia | vizinhos[N]>

Indication: <TopologiaAtual | top[N][N]>

(21)

Algoritmo heartbeat (parte 1)

Implements: Topologia-v2 Uses: PerfectP2PLink event <Init> do

global top[1:n][1:n] := false;

global resp := 0; num_vizinhos_ativos := 0;

global ativos[1:n] := false; done := false;

(22)

Algoritmo heartbeat (parte 2)

proc Topo() do if (resp = 0) then

if (todas linhas de top tem uma entrada true) then done := true;

forall q in ativos do

trigger <Send | q, [done, top]>

if (done) then

trigger <TopologiaAtual | top>;

else

resp := num_vizinhos_ativos;

end end

(23)

Algoritmo heartbeat (parte 3)

event <DescobreTopologia | vizinhos[N]> do top[p][1:n] = vizinhos[1:n];

ativos[1:n] = vizinhos[1:n];

num_vizinhos_ativos := computa vizinhos;

forall q in ativos do

trigger <Send | q, [done, top]>

resp := num_vizinhos_ativos;

(24)

Algoritmo heartbeat (parte 4)

event <Deliver | q, [qdone, newtop]> do if (not done) then

top := top or newtop;

if (qdone) then ativos[q] := false;

num_vizinhos_ativos = num_vizinhos_ativos-1;

end

resp := resp - 1;

call Topo();

end

(25)

Observa¸c˜ oes sobre a solu¸c˜ ao anterior

O limite superior de mensagens trocadas ´e: n∗2∗m∗(D+ 1), onden ´e o n´umero de n´os na rede em ´e o n´umero m´aximo de vizinhos de um n´o

Cada n´o n executa no m´aximoD+ 1 rodadas nas quais troca 2 msgs com cada um dos seusmvizinhos

(26)

Observa¸c˜ oes sobre o padr˜ ao heartbeat

O loop principal dos algoritmos heartbeatsegue sempre a mesma estrutura b´asica (envia msgs para os vizinhos e espera pelas respostas);

O conte´udo das msgs e como elas s˜ao tratadas depende de cada aplica¸c˜ao;

O crit´erio de t´ermino e como ´e verificado depende de cada aplica¸c˜ao

no exemplo, cada n´o ´e capaz de identificar o t´ermino;

em outros casos, o n´o precisar´a:

interagir com um controlador central trocar informa¸oes adicionais

ou executar o pior caso de n´umero de rodadas

Referências

Documentos relacionados

Para a aplica¸c˜ ao de RNAs ao problema de reconheci- mento de padr˜ oes, relacionado ` a detec¸c˜ ao, classifica¸c˜ ao e localiza¸c˜ ao de faltas em linhas de transmiss˜ ao, ´

Levando-se em considera¸c˜ao caracter´ısticas como restri¸c˜oes de recursos, principal- mente energia, a grande quantidade de informa¸c˜oes necess´arias para a representa¸c˜ao

O mecanismo LADS reduz o escopo da inundação das men- sagens de descoberta, uma vez que só enviam mensagens os nós aptos, aqueles que têm velocidade de deslocamento suficiente

Portanto, os autores projetaram um protocolo da camada de transporte, chamado CTCP (Collaborative Transporte Control Protocol) [1, 2], que suporta aplica¸ c˜ oes m´ ultiplas na

O objetivo principal deste trabalho ´ e estudar as transi¸c˜ oes de fase quˆ anticas presentes no modelo de Ising anisotr´ opico com intera¸c˜ oes de segundos vizinhos

Finalmente a constru¸c˜ ao de ambientes com Realidade Aumentada utilizando Sistemas de Part´ıculas proporcionou um novo ciclo de aplica¸c˜ oes com intera¸c˜ ao direta do usu´

Neste trabalho s˜ao apresentados os aspectos relevantes do sistema visual humano, das metodologias para avalia¸c˜ao de v´ıdeo em aplica¸c˜oes de televis˜ao digital em

Introdu¸ c˜ ao Objetivos Metodologia Algoritmos de Roteamento Experimentos/An´ alise de Complexidade Conclus˜ ao/Trabalhos Futuros.. Algoritmos Distribu´ıdos para Roteamento em Redes