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 2014/1

O Servidor de Serviços

Entrega: Todos os trabalhos serão acessados no domingo dia 24 de maio de 2014; não serão aceitos trabalhos disponibilizados após esta data. Atenção, são quase 7 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 "TP REDES II 2014-1"

Descrição do Trabalho

Implemente um servidor de serviços: o servidor pode disparar (usando fork() ou threads) diversos serviços diferentes, de acordo com a solicitação do usuário. O servidor escuta em uma porta fixa, definida pelo grupo, e cada serviço tem um identificador que vem no primeiro campo da mensagem de requisição do cliente.

Ao receber uma requisição de um cliente, o servidor identifica qual serviço está sendo solicitado, e abre um processo ou thread que atende aquele serviço. Pode-se usar TCP iterativo.

O grupo deve implementar pelo menos 3 serviços diferentes: uma calculadora, um inversor de strings, e o terceiro serviço é definido pelo grupo. A calculadora recebe como parâmetro a expressão matemática para a qual envia a resposta. O inversor de strings recebe um string, que devolve invertido. O terceiro serviço deve ser especificado cuidadosamente.

A linguagem de programação permitida é de livre escolha dos alunos. Sugere-se Python. Todos os 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