Completed

Cópia de Disseminação Eficiente de Arquivo- Linguagem Java

Published on the June 24, 2017 in IT & Programming

About this project

Open

Obrigatorio utilização : API Sockets; Sistema Linux; Linguagem JAVA

Deverá ser projetado um programa para disseminação eficiente de arquivo, inspirado no protocolo Bittorrent, com a comunicação entre os processos realizada através da api sockets (fluxo de bytes tcp e/ou datagramas udp). O programa deverá utilizar arquitetura par-a-par e apresentar uma escalabilidade melhor do que protocolos de transferência de arquivos que utilizem arquitetura cliente/ servidor (ex.: ftp, http)

requisitos do sistema:
o programa deverá prover as seguintes funcionalidades básicas:
• projetar o formato do arquivo de metadados (dica: inspire-se no formato de arquivo .torrent);
• Implementar mecanismo de transferência de arquivo entre pares (par-a-par) que receba como entrada o arquivo de metadados e obtenha completamente o arquivo desejado por meio dos pares;
• Implementar mecanismos de verificação e garantia da integridade do arquivo;
• Prover alguma interface com o usuário (cli ou gui) para acesso às funcionalidades do programa;

o programa deverá prover as seguintes funcionalidades intermediárias:
• implementar política de seleção de peças (partes do arquivo), que garanta uma boa distribuição das partes do arquivo entre os pares que estejam compartilhando-o;
• implementar mecanismo de rastreamento para que os pares que estejam compartilhando um mesmo arquivo (enxame) encontrarem-se dinamicamente;
• implementar mecanismos de incentivo, visando evitar congestionamento da rede e free-riders;
• prover uma disseminação eficiente do arquivo a partir de uma fonte inicial (semeador inicial);
• garantir a escalabilidade do sistema, evitando a degradação na taxa de dados (bytes/seg.) Pelo aumento da quantidade de pares compartilhando o mesmo arquivo;

O programa opcionalmente poderá prover as seguintes funcionalidades avançadas:
• o programa pode ser capaz de realizar controle de fluxo, ajustando a taxa do transmissor à taxa de um receptor mais lento;
• o programa pode implementar um limitador de taxa de dados (quantidade de dados enviada por unidade de tempo), evitando o congestionamento da rede;
• o programa pode ser capaz de permitir que pares que estejam em lans diferentes possam se encontrar e conectar, lidando com peculiaridades da infraestrutura de rede.

Category IT & Programming
Subcategory Other
Project size Small
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
Experience in this type of projects Yes (I have managed this kind of project before)

Delivery term: June 26, 2017

Skills needed