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 2022/ERE5
Cache em Tabela Hash
Entrega: Todos os trabalhos deverão estar disponibilizados até sexta-feira dia 22 de abril de 2022;
não
serão aceitos trabalhos disponibilizados após esta data.
Atenção, são 2 semanas de prazo,
organize-se!
Os alunos devem informar por e-mail a URL do trabalho, usando o subject "TP REDES II 2022-ERE5"
O trabalho deve 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.
Descrição do Trabalho
- Você tem 3 servidores de temperatura em lugares extremos do mundo:
ou normalmente muito frios ou normalmente muito quentes. Cada um destes
servidores recebem uma requisição e simplemente manda uma resposta com
um número inteiro que mais se aproxima da temperatura medida.
- Um cliente não acessa os servidores individualmente, e sim uma cache
que mantém os últimos valores recebidos dos 3 servidores. Assim evitamos que o
cliente tenha que fazer 3 acessos muito distantes, para fazer 1 acesso mais próximo.
- A cache mantém uma tabela cache com os dados, com um prazo de validade para cada entrada
de 30 segundos. Implemente o cliente. Implemente também a tabela cache da maneira eficiente que foi apresentada em sala de aula.
Quando chega uma requisição e algum valor expirou, deve ser feita nova consulta ao servidor original.
- Para os 3 servidores, a dupla pode tanto implementá-los como servidores do trabalho, utilizando
número aleatórios dentro de uma faixa razoável para os valores de temperatura ou, alternativamente,
obter as informações adequadamente na Web.
- Devem ser apresentados logs para múltiplas execuções. Mostre com clareza situações em que uma requisição
de usuário encontra/não encontra a cache com informações válidas.
Cada dupla pode fazer a implementação na linguagem que escolher, o professor
sugere Python pela produtividade, mas são muito bem vindos trabalhos em C, C++, Java
ou qualquer outra linguagem.
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
- 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.
- Como neste semestre a turma não está grande, todos os 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!
Prof. Elias P. Duarte Jr.
 
 
Departamento de Informática
 
 
UFPR