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 2023/2

Um Serviço de Stream de Dados

Entrega: Todos os trabalhos deverão estar disponibilizados quarta-feira dia 8 (oito) de novembro de 2023; não serão aceitos trabalhos disponibilizados após esta data. Atenção, são mais de 4 semanas de prazo, organize-se!

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

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

  1. Neste trabalho você vai implementar um servidor de streams. Eles são cada vez mais comuns, por exemplo o Netflix tem servidores de stream de vídeo; bolsas de valores tem servidores atualizando cotações continuamente; agências metereológicas produzem streams de previsões.
  2. No caso do trabalho, cada dupla vai definir a natureza do stream, podendo inclusive ser multimídia (lembre-se que os trabalhos devem poder ser defendidos aqui no laboratório). Concretamente, o stream consiste de uma sequência de mensagens de um determinado tipo, com campos específicos. O número de campos é no mínimo 2, pois obrigatoriamente cada pacote informa sua ordem no stream, começando por 1. Deve ser possível configurar via linha de comando o intervalo de tempo em que cada mensagem do stream é transmitida.
  3. Vários clientes podem se registrar no servidor para receber o stream. A comunicação entre clientes e servidores é sobre UDP/IP. Ao encerrar o cliente ele deve produzir estatísticas sobre o uso do UDP: quantos pacotes foram perdidos e quantos chegaram fora de ordem.
  4. O cliente deve implementar uma operação sobre os dados recebidos. Esta operação é definida pela dupla tendo em vista o serviço oferecido. Por exemplo, esta operação pode retornar os dados mais populares ou menos populares, ou a soma de todos os dados recebidos, ou listar todos os pacotes para um determinado valor de campo Por exemplo, todas as previsões metereológicas para Curitiba.
  5. Devem ser apresentados logs para múltiplas execuções. Pelo menos uma das execuções deve ter obrigatoriamente 3 clientes recebendo o stream.

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:

  1. 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.
  2. 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
  3. 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:




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