26
Sistemas Distribu´ ıdos e Redes de Sensores Aula 6: Outros Padr˜ oes – dissemina¸ ao e roteamento abril de 2013 Sistemas Distribu´ ıdos e Redes de Sensores

Sistemas Distribu dos e Redes de Sensores - PUC-Rionoemi/sd-13/aula6.pdf · 2013. 4. 12. · simetria do c odigo facilita entendimento do programa algoritmos em execu˘c~ao determinam

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Sistemas Distribúıdos e Redes de SensoresAula 6: Outros Padrões – disseminação e roteamento

    abril de 2013

    Sistemas Distribúıdos e Redes de Sensores

  • Padrões de programas distribúıdos

    padrão cliente-servidor exibe assimetria intŕınseca

    padrões envolvendo processos pares: código idêntico

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

    Sistemas Distribúıdos e Redes de Sensores

  • Notação Andrews

    canais

    desacoplamento em relação a parceiros espećıficos

    tipagem

    Sistemas Distribúıdos e Redes de Sensores

  • exemplos C/S

    monoprocesso

    “monitor”: alocação de recursos de caráter homogêneocontrolador de disco

    pré-alocação

    sessões de uso (continuidade conversacional) e estado

    Sistemas Distribúıdos e Redes de Sensores

  • Padrões p2p

    simetria do código facilita entendimento do programa

    algoritmos em execução determinam padrões de comunicação

    relação entre discussão no artigo Andrews e aplicações maisrecentemente rotuladas como p2p

    Sistemas Distribúıdos e Redes de Sensores

  • Disseminação de informações

    Motivação

    Disseminação de informações de um nó raiz para toda a rede

    Disseminação de informações de todos os nós para todos osnós da rede (ex., problema de descoberta de topologia darede)

    Coleta de dados de todos os nós da rede

    Probe/echo e heartbeat

    Padrões de interação adequados para disseminação de informaçõesquando os nós trocam mensagens apenas com seus vizinhosimediatos.

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmos e padrão da aplicação

    possivel combinação de vários padrões

    algoritmo de disseminação pode ser apenas pequena parte do que écomputado na aplicação

    Sistemas Distribúıdos e Redes de Sensores

  • Disseminação e roteamento

    redes f́ısicas

    redes de overlay

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmos heartbeat

    Cada processo executa uma sequência de iterações, onde cadaiteração compreende:

    1 enviar seu conhecimento local para todos os vizinhos(expansão)

    2 receber o conhecimento dos vizinhos (contração)3 ... e combinar os dados gerando nova versão da informação

    global

    Sistemas Distribúıdos e Redes de Sensores

  • problema exemplo: descoberta de topologia da rede

    Cada nó só se comunica com seus vizinhos;

    Inicialmente cada nó só conhece seus vizinhos imediatos;

    A rede é conexa (todo nó tem ao menos um vizinho);

    Ao final queremos que cada nó (processo) conheça atopologia inteira da rede (grafo de enlaces).

    por exemplo, para tomar decisões sobre roteamento demensagens

    problema representativo em SDs pois reaparece em váriasformas

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmo distribúıdo para descoberta de topologia

    Cada nó pergunta pela topologia de seus vizinhos (enviando erecebendo uma mensagem);

    Depois de uma interação (round), cada nó conhece atopologia no raio de dois saltos;

    Depois de r interações, o seguinte predicado será verdadeiroem cada nó p:

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

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmo heartbeat para descoberta de topologia

    primeira solução: diâmetro da rede (distância em saltos entreos nós mais distantes) conhecido:

    Sistemas Distribúıdos e Redes de Sensores

  • Interface de comunicação p2p

    Interface do enlace

    Module:

    Name: PerfectP2PLink

    Events:

    Request: < Send | dest, msg >

    Indication: < Deliver | src, msg >

    Propriedades do enlace

    mensagens são entregues em ordem, não há criação de mensagens

    Sistemas Distribúıdos e Redes de Sensores

  • Interface para componente de descoberta de topologia (v1)

    (considerando que o diâmetro da rede seja conhecido)

    Module:

    Name: Topologia-v1

    Events:

    Request:

    Indication:

    Sistemas Distribúıdos e Redes de Sensores

  • Ligação entre componentes

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmo heartbeat (parte 1)

    Implements: Topologia-v1

    Uses: PerfectP2PLink

    event 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

    resp := num_vizinhos;

    end

    event do

    top[p][1:n] := vizinhos[1:n];

    num_vizinhos := computa vizinhos;

    call Expande()

    end

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmo heartbeat (parte 2)

    event 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 ;

    else

    call Expande()

    end

    end

    end

    Sistemas Distribúıdos e Redes de Sensores

  • Problemas da solução anterior

    1 Conhecimento a priori do diâmetro D da rede

    2 Troca excessiva de mensagens: nós na região central da redecontinuarão a ex ecutar as interações mesmo depois de játerem terminado de computar a topologia

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmo heartbeat refinado para descoberta de topologia

    Depois de r interações, o nó p conhecerá a topologia dentroda distância r: ∀q : dist(p, q) ≤ r , os vizinhos de q estarãoarmazenados na linha q de top

    Como a rede é conexa, cada nó tem ao menos um vizinho, então onó p terá executado um número suficiente de interações (rounds)para saber a topologia da rede assim que toda linha de top tiver aomenos um valor TRUE

    Nesse ponto, q pode terminar após compartilhar sua topologiafinal com seus vizinhos

    Sistemas Distribúıdos e Redes de Sensores

  • Interface para descoberta de topologia (v2)

    Module:

    Name: Topologia-v2

    Events:

    Request:

    Indication:

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmo heartbeat (parte 1)

    Implements: Topologia-v2

    Uses: PerfectP2PLink

    event do

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

    global resp := 0; num_vizinhos_ativos := 0;

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

    Sistemas Distribúıdos e Redes de Sensores

  • 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

    if (done) then

    trigger ;

    else

    resp := num_vizinhos_ativos;

    end

    end

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmo heartbeat (parte 3)

    event 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

    resp := num_vizinhos_ativos;

    Sistemas Distribúıdos e Redes de Sensores

  • Algoritmo heartbeat (parte 4)

    event 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

    Sistemas Distribúıdos e Redes de Sensores

  • Observações sobre a solução anterior

    O limite superior de mensagens trocadas é: n ∗ 2 ∗m ∗ (D + 1),onde n é o número de nós na rede e m é o número máximo devizinhos de um nó

    Cada nó n executa no máximo D + 1 rodadas nas quais troca 2msgs com cada um dos seus m vizinhos

    Sistemas Distribúıdos e Redes de Sensores

  • Observações sobre o padrão heartbeat

    O loop principal dos algoritmos heartbeat segue sempre amesma estrutura básica (envia msgs para os vizinhos e esperapelas respostas);

    O conteúdo das msgs e como elas são tratadas depende decada aplicação;

    O critério de término e como é verificado depende de cadaaplicação

    no exemplo, cada nó é capaz de identificar o término;em outros casos, o nó precisará:

    interagir com um controlador centraltrocar informações adicionaisou executar o pior caso de número de rodadas

    Sistemas Distribúıdos e Redes de Sensores