Realizado

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

Publicado em 24 de Junho de 2017 dias na TI e Programação

Sobre este projeto

Aberto

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.

Categoria TI e Programação
Subcategoria Outros
Tamanho do projeto Pequeño
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Experiência nesse tipo de projeto Sim (Eu já gerenciei esse tipo de projeto)

Prazo de Entrega: 26 de Junho de 2017

Habilidades necessárias