Infra-Estrutura de Comunicação (IF678)
Prof.: Paulo Gonçalves
Projeto – 2015-2
Peso: 30%
Especificação: Versão 1.1 de 18/11/2015
Retspan?
1. Objetivo
O objetivo deste projeto é o desenvolvimento de uma aplicação P2P que permita aos seus
usuários baixarem arquivos de outros computadores (pares) participantes da rede P2P.
Para isso, deverá haver um servidor que faça registro (login/senha) dos participantes e
hospede referências de conteúdo compartilhado por eles. O cliente faz uma busca no
servidor pelo arquivo de interesse e o servidor retorna os dados de contato do(s) par(es)
que hospeda(m) o recurso desejado, a localização do conteúdo (caminho) e pasta raiz
compartilhada por ele. Em posse desses dados, o cliente passa a se comunicar
diretamente com um dos pares que hospeda o recurso a fim de iniciar o processo de
download do arquivo. A Figura 1 ilustra uma rede P2P “Retspan?” O cliente também
poderá navegar pela pasta compartilhada pelos pares, selecionar outros arquivos e fazer
o download deles. Todo(s) o(s) protocolo(s) de comunicação deverá(deverão) ser
construído(s) sobre o protocolo TCP. Os requisitos mínimos do projeto estão explicitados
no texto que segue.
Figura 1- Exemplo de Rede
2. Regras mínimas a serem observadas:
i.
a implementação poderá ser em qualquer linguagem;
ii.
a aplicação deverá possuir interface gráfica tanto do lado cliente quanto do lado
servidor;
iii.
o servidor deverá mostrar em sua interface gráfica em tempo real, a lista de
usuários conectados ao serviço, o endereço IP de cada um e o RTT estimado
entre ele o cliente a cada 10 segundos, mas somente quando o cliente estiver
conectado ao servidor;
iv.
o servidor deverá suportar ao menos 2 clientes simultaneamente;
v.
a aplicação cliente poderá solicitar, em paralelo, mais de um arquivo ao mesmo
par;
vi.
a aplicação cliente deverá mostrar, em tempo real, uma barra indicando o
percentual já baixado de cada arquivo solicitado, uma estimativa de tempo para
término do download e uma estimativa do RTT para o par. A medida de RTT
deverá ser atualizada a cada 10 segundos;
vii.
a aplicação cliente deverá permitir que o usuário configure através da interface
gráfica o IP ou nome do servidor bem como a porta de comunicação dele;
viii.
a aplicação cliente deverá permitir ao usuário “iniciar/pausar/cancelar/reiniciar”
o download. O cancelamento do download implica na deleção do trecho já
baixado. O download deverá sempre continuar de onde parou quando reiniciado
(ou do zero caso o trecho tenha sido apagado);
ix.
Um par só poderá aceitar no máximo 4 downloads simultâneos;
x.
O cliente não pode conseguir listar/acessar/manipular conteúdo que esteja fora da
pasta compartilhada. Todo conteúdo da pasta compartilhada, incluindo subpastas
e seus arquivos devem ser listados se o cliente acessar;
xi.
O cliente não pode manipular (mover, apagar, etc) pastas e arquivos dos pares;
xii.
o(s) protocolo(s) de comunicação para a camada aplicação a ser(em) usado(s)
pelos processos deverá(deverão) ser proposto(s) pelo grupo;
xiii.
a aplicação deverá suportar a transferência de arquivos de até 1 Gbyte.
xiv.
serão aceitos grupos de até 6 integrantes. Para os que ainda não fizeram, uma
lista citando os integrantes do grupo deverá ser entregue em sala de aula até o dia
20/11;
xv.
o trabalho deverá ser apresentado durante a aula do dia 16/12 (qualquer GRAD) e
todos os integrantes deverão participar;
xvi.
entregar um relatório que:
a) especifique as linguagens adotadas no projeto;
b) detalhe todas as regras de funcionamento dos protocolos implementados
como a máquina de estados (ou fluxo de mensagens para cada situação),
o tipo, o formato e a semântica das mensagens;
c) apresente claramente o overhead dos protocolos;
d) mostre como foi feito o cálculo da estimativa de tempo para término da
transferência de arquivos;
e) mostre como foi feito o cálculo da estimativa de RTT pelo cliente e pelo
servidor;
f) explicite as diferenças entre o(s) protocolo(s) apresentado(s) no relatório e
o(s) protocolo(s) efetivamente implementado(s);
g) apresente as dificuldades encontradas ao longo do desenvolvimento do
projeto.
3. Avaliação
Serão observados os seguintes itens para a atribuição da nota ao projeto:








Se o software está realmente funcional;
Se os critérios mínimos definidos foram atendidos;
A qualidade da apresentação (não é preciso fazer ppts);
A qualidade da implementação;
A qualidade do relatório;
Acompanhamento do projeto pelo monitor do grupo;
A presença e participação na apresentação do trabalho;
A participação no desenvolvimento do trabalho.
4. Dicas

Não deixe para começar o projeto mais tarde. Comece logo e no mais tardar dia
18/11/2015 :-)

Impossível fazer o projeto de “virada” ... mesmo em duas semanas de “viradas” ;-)

Fazer um cronograma de atividades de desenvolvimento do projeto. Considere
que está na época de provas e potencialmente de desenvolvimento de outros
projetos em outras disciplinas;

Começar o trabalho definindo os protocolos de comunicação. Assim, fica mais fácil
saber o que implementar e como. O tempo de implementação também é
minimizado;

Não esquecer de dar atenção ao relatório! A entrega do mesmo deverá ser no dia
da apresentação, mas antes de começá-la;

Os monitores acompanharão o desenvolvimento dos projetos. Para isso, cada
grupo deverá procurar um dos monitores para apresentar o estágio de
desenvolvimento do projeto conforme datas no item abaixo;

São três acompanhamentos até a apresentação do projeto: o primeiro até o dia
30/11, o segundo até o dia 07/12 e o terceiro até o dia 14/12;

A responsabilidade de ter acompanhamento no projeto é do grupo e não do
monitor. Assim, não espere que os monitores vão “correr atrás” dos grupos.

Cuidado ao dividir as tarefas de implementação do projeto entre os componentes
do grupo. Será necessário integrar tudo depois e isso leva tempo (tipicamente não
menos de 1 semana)!

Lembrem-se da importância do projeto! São até 3 pontos na média parcial!

Certamente a especificação apresentada deixa pontos em aberto. Dúvidas?
Pergunte em sala! Suas dúvidas podem ser também as de outros alunos!
Download

Infra-Estrutura de Comunicação