Trabalho 3 - Sistemas Distribuídos

Data de entrega: 28/5

Aplicação em RSSF utilizando roteamento por boatos

Desenvolva um programa TerraNet onde cada nó coleta a temperatura periodicamente e dispare um evento caso a temperatura lida esteja abaixo de um limite mínimo Tmin ou acima de um limite máximo Tmax. Os eventos devem ser propagados pela rede e localizados por interessados usando a técnica de roteamento por boatos (rumor routing).

Como descrito no artigo, para propagar um evento, um nó envia uma mensagem com um "agente" para um vizinho aleatório. Ao começar o programa, então, os nós devem executar um algoritmo para determinar uma lista de vizinhos. Ao receber um agente, cada nó deve registrar em sua tabela o nome do evento, o id do vizinho de quem o recebeu e o número de saltos até a origem do evento, e novamente encaminhar o agente. Caso mais que um nó gere um mesmo evento (temp-alta ou temp-baixa), devem ser tratados como observadores de um único evento.

O artigo só descreve o comportamento da busca até o momento em que encontra uma rota até o evento desejado. No trabalho, faça com que a busca prossiga até o nó N que disparou o evento e em seguida retorne ao nó que originou a busca a temperatura corrente no nó N. Implemente inicialmente o comportamento básico, e apenas se este estiver funcionando corretamente tente implementar a junção de eventos em um único agente e a otimização de caminhos até um evento.

Teste seu programa de duas formas. Na primeira, use eventos hard-coded, isto é, pre-programe sua aplicação para que alguns nós gerem eventos depois de um determinado tempo e outros criem buscas. Na segunda maneira, utilize a capacidade de "alterar" o valor de temperatura lido pelos nós para disparar eventos interativamente. Dispare também as buscas interativamente, utilizando a leitura de outro sensor, por exemplo luminosidade.

Questões de Ordem

Bibliografia