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
- 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.
- 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.
- 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.
- 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.
- 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:
- 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