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


Terminado
Descripción:
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: IT & 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
Experiência nesse tipo de projeto: Sim (Eu já gerenciei esse tipo de projeto)
Disponibilidade requerida: Conforme necessário

Abierto

Presupuesto

2

Propuestas

3

Freelancers interesados

Publicado: Hace un año

Plazo: 2 días

Crea tu propio proyecto

¿Buscas un freelancer para realizar un proyecto similar? Crea tu propio proyecto y recibirás ofertas de los mejores freelancers.


Freelancers que ya aplicaron para este trabajo

Blupink S. Diretora de estúdio de jogos, formada em Ciências da Computação. Nosso estúdio oferece serviços de outsourcing em programação e arte visual. Diversos jogos já lançados no mercado. ÁREAS DE ATUAÇÃO: Desenvolvimento ... + detalles