Universidade Federal do Paraná
Departamento de Informática
Bacharelado em Ciência da Computação
Prof. Elias P. Duarte Jr.

Trabalho Prático de Redes de Computadores II - Turma 2012/1

ALA: Application Layer Anycast

Entrega: Todos os trabalhos serão acessados quarta-feira dia 6 de junho de 2012; não serão aceitos trabalhos disponibilizados após esta data. Atenção, são 3 semanas de prazo, organize-se!

O trabalho deve preferencialmente ser feito em dupla; o código, os testes e o relatório devem ser feitos por ambos os membros da dupla. Use esta oportunidade para melhorar sua habilidade de trabalhar em equipe.

Os alunos devem informar por e-mail a URL do trabalho, usando o subject "URL TP REDES II 2012-1"

Descrição do Trabalho

Implemente um sistema cliente-servidor no qual o serviço é provido, na realidade, por um grupo de servidores. Na comunicação anycast quando uma requisição é feita ao grupo, ela é atendida por um dos membros do grupo. Tradicionalmente o anycast é suportado pela camada de rede, mas neste trabalho, vamos implementar o anycast na camada de aplicação.

Além do cliente e do servidor, deve ser implementada uma entidade intermediária, o dispatcher, que recebe as requisições dos clientes e a reenvia para um dos membros do grupo. O dispatcher mantém uma tabela com todos os membros do grupo. Devem ser implementados dois critérios para a seleção do membro que grupo que vai atender uma requisição: aleatório e round-robin. No método round-robin primeiro é escolhido o membro 1, depois o membro 2, até chegar ao último membro, N, após o que é escolhido novamente o membro 1, e assim por diante.

Mostre o funcionamento do sistema nos dois modos de seleção de membros. Teste com grupos de no mínimo 3 membros, além do dispatcher.

OPCIONAL: sugere-se que o trabalho seja feito considerando IPv6. Basta usar os recursos adequados do socket. Cada dupla pode escolher o protocolo de transporte usado pelo dispatcher, TCP ou UDP, bem como o serviço que será oferecido. Outros detalhes, como configuração, mensagens e o que não estiver especificado aqui deve ser definido e documentado no relatório. Interface, organização, criatividade são valorizadas! Capriche!

ENTREGA DO TRABALHO

Deve ser construída uma página Web, que contém em documentos HTML, os seguintes itens:

  • Relatório de como foi feito o trabalho e quais foram os resultados obtidos. Use desenhos, diagramas, figuras, todos os recursos que permitam ao professor compreender como a dupla estruturou o trabalho e quais resultados obteve. O objetivo é o professor entender como a dupla fez o trabalho, como o trabalho funciona.
  • Código Fonte comentado. ATENÇÃO: acrescente a todo programa a terminação ".txt" para que possa ser diretamente aberto em um browser. Exemplos: cliente.py.txt ou servidor.c.txt ou dispatcher.py.txt
  • Logs de execução dos processos cliente/servidores, que demonstrem a execução correta destes processos. Os testes devem ser exaustivos até o ponto que demonstrem com clareza a funcionalidade correta do sistema.

    Observações:

  • Não serão aceitos trabalhos impressos, nem em meio ótico/magnético.
  • Alguns trabalhos serão defendidos no laboratório, portanto certifique-se que seu trabalho funciona aqui.
  • Pode ser usada qualquer linguagem de programação. A diversidade é bem vinda! O professor recomenda que os alunos usem esta oportunidade para aprender a linguagem Python.


    Prof. Elias P. Duarte Jr.     Departamento de Informática     UFPR