Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Projeto Integrador II Seminário Final Compartilhamento nas nuvens para redes locais baseado em P2P Jerônimo Feijó Noble da Rosa Sumário • • • • • • • Introdução; Bittorrent; Idéia Inicial; Distribuição de Pedaços; Localização de vizinhos; Construção de índices; Ferramentas Utilizadas. 2 Introdução 1. Facilidade de uso; 2. Tolerância à falhas; 3. Desempenho; 4. Redução de desperdício; 5. Portabilidade. 3 Bittorrent 1 X X X X 1. Download do arquivo torrent; 2. Conexão com o rastreador; 3. Informações de vizinhos; 4. Conexão para troca de Informação de blocos e para download. 4 Idéias Inicial Não funcionaria X 5 Distribuição de Pedaços 6 Distribuição de Pedaços 1. Sorteio || Hosts 2 3distribuição 4 Teste1de 2. Salto 3. Segundo Pedaço P1 Hosts 243 P2 1__ Requisitos: • Mínimo de 50% da rede ativa; • Um host não deve receber mais de um pedaço igual; • Hosts que sobram são utilizados no pedaço seguinte. | ----X---| Host 1 2 1 2 7 Idéia Inicial • Broadcast X Distribuição de Arquivos • Multicast Idéia Interessante 8 Descobrindo Hosts • Envio de informações no formato: Id msg.:Nome do host:Uptime:Endereço IP:Porta:IP do índice raiz:Validade do registro • • • • • • 1:Host1:999999999:192.168.0.1:8000:1024:192.168.0.50:9000000 Tipo de mensagem Nome do Host Uptime Endereço e porta IP do índice Validade do registro 9 Idéias Índice de arquivos Distribuição de Arquivos Multicast 10 Índice • Criação de índices de arquivos e diretórios; • Criação de grupos e usuários; • Mantendo/atualizando índice; 11 Interface do Usuário Interface modo texto: Interface de usuário:(simulação) Interface para envio:(simulação) 12 Ferramentas de desenvolvimento Porque o Python? • Portabilidade; • Linguagem Orientada a Objetos; • Grande quantidade de documentação; • Grande número de bibliotecas disponíveis; • Porquê o Monks disse. 14 Base de Dados - SQLite • Zero-configuration; • Código fonte aberto; • Grande capacidade de armazenamento; • Patrocinado pela Oracle,Nokia, Mozilla e etc. 15 Referências • • • • • • Foundation, P. S. (2011). Python documentation. http://www.python.org/doc/. último acesso em 01 maio de 2010. Goerzen, J. (2004). Foundations of Python Network programming. Apress, 1th edition. Kurose, J. F. and Ross, K. W. (2007). Redes de computadores e a internet: uma abordagem top-down. Pearson Education, 3th edition. Lutz, M. and Ascher, D. (2008). Aprendendo Python. O’ Reilly, 2th edition. Mizrahi, V. V. (1994). Treinamento em Linguagem C++ Modulo 2. Pearson Education, 2th edition. Rhodes, B. and Goerzen, J. (2010). Foundations of Python Network programming. Apress, 2th edition. 16