DThor Distribuição de Torrents por DHT
|
|
- Jessica Cabreira Alvarenga
- 8 Há anos
- Visualizações:
Transcrição
1 DThor Distribuição de Torrents por DHT André Braz João Leite Trabalho realizado sob a orientação de Rui Pedro Lopes Engenharia Informática 2013/2014
2
3 DThor Distribuição de Torrents por DHT Relatório da UC de Projeto Licenciatura em Engenharia Informática Escola Superior de Tecnologia e de Gestão André Braz, João Leite 2013/2014 iii
4 A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas neste relatório. iv
5 Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Rui Pedro Lopes Orientador Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Arguente Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Arguente Aceite para avaliação da UC de Projeto v
6 vi
7 Dedicatória Este projecto é dedicado a todos os nossos familiares e amigos por todo o apoio que nos deram durante este período da nossa vida. vii
8 viii
9 Agradecimentos Em primeiro lugar gostaríamos de agradecer ao nosso orientador Rui Pedro Lopes pelo acompanhamento e paciência que teve connosco ao longo do projecto. Queremos também agradecer aos nossos pais por nos proporcionar as condições necessárias para a vida académica. Finalmente agradecemos aos nossos amigos que estiveram sempre ao nosso lado e que sempre nos apoiaram. ix
10 x
11 Resumo As redes Peer-to-Peer são constituídas por vários nós que partilham recursos. Este tipo de redes também conhecidas como P2P, são construídas por elementos idênticos que se organiza de forma a permitir a escalabilidade e a robustez das aplicações. O protocolo BitTorrent assenta no princípio das redes P2P para potenciar a distribuição de quantidades massivas de dados na Internet. Cada cliente (ou peer) tem a possibilidade de partilhar e de descarregar ficheiros, recorrendo, para o efeito, a um ficheiro específico, denominado.torrent. Este ficheiro será utilizado pelos peer destino para configurar a rede de forma a obter o ficheiro, potencialmente a partir de vários peer em simultâneo. As Distributed Hash Tables (DHTs) permitem armazenar e pesquisar pares (chave, valor), de forma semelhante a uma tabela de hash sendo os valores armazenados em nós distribuídos na Internet. Tirando partido destas tecnologias propõe-se uma aplicação para armazenar, consultar e eliminar.torrents específicos, associados a cada utilizador. Palavras-chave: P2P, DHT, BitTorrent, torrent. xi
12 xii
13 Abstract The Peer-to-Peer networks are comprised of multiple nodes that share resources. Such networks also known as P2P are constructed with identical elements that are organized to allow scalability and robustness. The BitTorrent protocol is based on the principle of the P2P networks to enhance the distribution of massive amounts of data on the Internet. Each cliente (or peer) has the ability to share and download files, using for this purpose a specific file called torrent. This file will be used by the destination peer to configure the network to obtain the file, potentially from multiple concurrent peers. The Distributed Hash Tables (DHTs) can store and search pairs (key, value), similar to a hash table with the values stored in nodes distributed in the Internet. Taking advantage of the technologies we propose an application to store, search and delete torrents associated with each user. Keywords: P2P, DHT, BitTorrent, torrent xiii
14 xiv
15 Conteúdo 1 Introdução Objetivos Estrutura do documento Peer-To-Peer Organização dos nós Arquitectura P2P Estruturada Arquitectura P2P Não Estruturada BitTorrent Ficheiro Torrent DHTs Mecanismo Genérico Armazenamento de Valores Kademlia Indexação Crawling Lucene DThor Análise Diagrama de Classes Diagrama de Casos de Uso Diagrama de Estados Diagramas de Sequência Desenvolvimento Java NetBeans TomP2P Jetty GitHub Aplicação Testes Distribuição de Torrents na DHT Tempo de Pesquisa Conclusões xv
16 xvi
17 Lista de Figuras Figura.1 Diagrama de Classes - DThor Figura.2 Diagrama de Classes Motor de Pesquisa Figura.3 Diagrama de Casos de Uso Figura.4 Diagrama de Estados Figura.5 Diagrama de Sequências - Conectar Figura.6 Diagrama de Sequências - Pesquisar Figura.7 Diagrama de Sequências - Eliminar Figura.8 Arquitetura da Aplicação Figura.9 Página Inicial Figura.10 Página de Upload Figura.11 Página de Resultados Figura.12 Página de Confirmação para eliminar Figura.13 Gráfico do Cenário Figura.14 Gráfico do cenário Figura.15 Gráfico do cenário Figura.16 Gráfico do tempo médio por pesquisa xvii
18 xviii
19 Capítulo 1 1 Introdução Na década de 60 quando surgiu a internet todos os computadores ligados tanto eram servidores como clientes, o que se encaixa na perfeição na definição de uma rede peer-topeer. Ao longo dos anos a sua estrutura foi-se alterando tornando-se como a conhecemos hoje, com a estrutura cliente-servidor. Contudo esta estrutura tem-se tornado um problema. Conforme a quantidade de informação disponível na internet aumenta apenas uma pequena parte está disponível através de mecanismos de pesquisa por indexação. Nos sistemas cliente-servidor os recursos estão concentrados em um pequeno número de nós (servidores) que fornecem serviços aos clientes de forma contínua e confiável. Uma alternativa a este sistema são os sistemas peer-to-peer. Neste sistema, cada peer (nó) funciona como cliente e servidor ao mesmo tempo. 1.1 Objetivos O objetivo principal é estudar e desenvolver uma aplicação, recorrendo a DHTs, para armazenar, consultar e eliminar ficheiros.torrent específicos, associados a cada utilizador. Cada utilizador pode aceder a estes ficheiros de forma escalável e de qualquer lado em qualquer momento. 19
20 1.2 Estrutura do documento Este documento está organizado em cinco capítulos Introdução, Peer-to-Peer, Indexação, DThor e Conclusões: Capítulo 1 - Introdução Este capítulo tem como objetivo uma abordagem introdutória ao tema, bem como os seus objetivos. Capítulo 2 Peer-To-Peer Este capítulo descreve o funcionamento das redes P2P bem como alguns protocolos usados. Capítulo 3 - Indexação Este capítulo aborda os conceitos de indexação e o processo de crawling. Capítulo 4 - DThor Este capítulo apresenta as tecnologias usadas para o desenvolvimento da aplicação, a sua arquitetura geral e os detalhes da implementação da mesma de modo a atingir a aplicação final. Capítulo 5 - Conclusões Este capítulo descreve as conclusões obtidas e a sumarização do trabalho realizado. 20
21 Capítulo 2 2 Peer-To-Peer O P2P é o resultado do desenvolvimento e disponibilidade da tecnologia para a criação de redes maiores. Nas últimas décadas com o aumento de utilizadores as redes informáticas tornaram-se cada vez maiores e mais poderosas e por sua vez a largura de banda tornou-se mais barata e de fácil acesso. Como consequência desse crescimento foram criadas aplicações baseadas na arquitectura P2P o que despertou o interresse da comunidade. Um exemplo dessas aplicações foi o Napster que se tornou o sistema P2P mais popular do dia para a noite. O Napster era um software que podia ser obtido na Internet e que permitia o download de qualquer música gratuitamente causando assim grandes prejuízos à indústria fonográfica. Desde o aparecimento do Napster sugiram muitos outros sistemas P2P como Gnutela, KaZaa e WinMP. Na verdade o P2P surgiu da tecnologia utilizada nos tempos da Usenet e da FidoNet. Eram duas redes totalmente descentralizadas, e sistemas como o DNS. O DNS tornava-se uma necessidade uma vez que já existiam milhões de hosts na Internet. Nessa altura a forma de navegar na Internet era através de um ficheiro.txt denominado hosts.txt. Como a Internet cresceu, este sistema tornou-se impraticável surgindo assim o DNS. Atualmente cada nó é conhecido como peer e funciona tanto como cliente e servidor. Quantos mais peers existirem na rede mais estável, autónoma e eficiente esta se torna. [2] 21
22 2.1 Organização dos nós Os nós encontram-se organizados numa rede overlay. Na rede overlay os nós são formados pelos processos e as ligações são representadas pelos possíveis canais de comunicação. Um processo apenas pode enviar mensagens para outro processo através dos canais de comunicação disponíveis. Dois nós vizinhos numa rede overlay não são necessariamente vizinhos na rede física. A localização dos nós é processada na rede overlay através de um algoritmo de encaminhamento distribuído implementado na camada de aplicação. O encaminhamento permite que qualquer nó tenha acesso a um qualquer objeto na rede overlay. Os sistemas P2P armazenam várias réplicas do mesmo objeto aumentado assim a disponibilidade. As redes overlay dividem-se em duas categorias: Estruturadas e Não Estruturadas Arquitectura P2P Estruturada Numa rede P2P estruturada a rede overlay é construída através de um algoritmo determinístico. O algoritmo mais utilizado é estruturar os processos numa DHT em que os dados recebem uma chave aleatória e os nós da rede recebem um identificador. O maior desafio num sistema baseado em DHTs é estruturar um esquema eficiente que permita mapear unicamente a chave de um objeto para o identificador do nó que pretende aceder ao objeto Arquitectura P2P Não Estruturada Os sistemas P2P não estruturados normalmente baseiam-se em algoritmos aleatórios para construir a rede overlay. Este sistema baseia-se na construção de uma tabela de vizinhos que é gerada de forma aleatória em que cada nó e os dados também são armazenados de forma aleatória nos nós. 22
23 Quando é necessário fazer a pesquisa de um objeto a rede é inundada com a pesquisa. Se dois nós estiverem muito afastados na rede as pesquisas podem não ser respondidas uma vez que existem mecanismos que impedem que mensagens se propaguem indefinidamente na rede. Outra desvantagem é que a pesquisa é lenta uma vez que é gerado um grande volume de tráfego ao inundar a rede. Os sistemas P2P não estruturados mais conhecidos são o BitTorrent e o Gnutella.[2] 2.2 BitTorrent O BitTorrent é um protocolo de rede que permite a partilha de ficheiros em redes P2P. Este protocolo foi criado em Abril de 2001 pelo programador Bram Cohen, a versão inicial foi lançada em 2 de Julho de 2001 e a versão final foi lançada em Os clientes BitTorrent estão disponíveis numa grande variedade de plataformas e sistemas operativos. O protocolo BitTorrent pode ser usado para reduzir o impacto na rede ao distribuir ficheiros de grandes dimensões. Ao invés de descarregar um ficheiro a partir de único servidor o BitTorrent permite aos utilizadores participarem num swarm de hosts para realizarem o download e o upload em simultâneo. Usando o protocolo BitTorrent vários computadores convencionais podem substituir servidores durante a distribuição de ficheiros para os clientes permitindo um menor uso de largura de banda que ajuda a evitar picos de tráfego na Internet em uma determinada área, mantendo a velocidade da Internet mais alta para todos os utilizadores em geral. Quando um utilizador pretende fazer upload de um ficheiro é necessário primeiro criar um ficheiro.torrent. Os utilizadores que tiverem esse ficheiro podem atuar como peers ou leechers. O ficheiro a distribuir é divido em segmentos denominados peças (pieces). Como cada peer recebe uma nova peça, este torna-se uma fonte para outros peers aliviando assim a carga do peer original de ter que enviar a peça para outros utilizadores que o requisitem. Com o BitTorrent a tarefa de distribuir o ficheiro é partilhada por aqueles que o querem. Cada peça é criptografada com uma hash contida no ficheiro.torrent garantindo que qualquer alteração na peça seja detetado de forma confiável. Um peer que possua o ficheiro.torrent pode verificar a autenticidade do ficheiro que recebe. 23
24 As peças geralmente são transmitidas de forma não sequencial e são reorganizadas na ordem correta pelo cliente BitTorrent, que monitoriza quais as peças que necessita e quais pode enviar para os outros utilizadores. À medida que mais utilizadores se juntam ao swarm a probabilidade que o download seja bem sucedido é maior.[1] Ficheiro Torrent Um ficheiro.torrent é um ficheiro que contém metadados sobre ficheiros, pastas a serem distribuídos e ainda a localização na rede dos trackers usados pelo protocolo BitTorrent. Este ficheiro não contém o conteúdo a ser distribuído, apenas contém informação acerca dos ficheiros, tais como, nome, tamanho e valores de hash para verificar a integridade do ficheiro.[11] Um ficheiro torrent é um dicionário bencoded com as seguintes chaves: Announce: É o URL do tracker. Info: Mapeia as chaves que são dependentes de um ou mais ficheiros para um dicionário. o Name: Sugere um nome para o ficheiro/pasta onde o ficheiro vai ser guardado. o Piece Length: Número de bytes por piece. o Pieces: Lista de hashs. o Length: Tamanho do ficheiro em bytes. o Files: Lista de dicionários onde cada um corresponde a um ficheiro, cada dicionário contém as seguintes chaves: Path: Lista de strings correspondente ao nome do subdirectório onde a última corresponde ao nome do ficheiro. Length: Tamanho do ficheiro em bytes. 24
25 2.3 DHTs As DHTs (Distributed Hash Tables) são uma classe de sistemas distribuídos descentralizados que fornecem um serviço de pesquisa semelhante a uma tabela de hash. Os pares (chave, valor) são armazenados na DHT e qualquer nó pode aceder o valor associado a uma chave. O mapeamento das chaves é distribuído entre os nós. A investigação das DHTs foi motivada inicialmente por sistemas P2P como a Freenet, Gnutella, BitTorrent e Napster, que tirou partido de recursos distribuídos através da Internet para fornecer uma aplicação útil. O Napster foi o primeiro sistema de distribuição de conteúdo P2P em larga escala. Era necessário um servidor central e cada peer ao entrar iria enviar uma lista dos ficheiros mantidos localmente para o servidor que iria efetuar pesquisas e remeter os resultados das pesquisas. Este componente central deixou o sistema vulnerável a ataques e ações judiciais. No Gnutella cada pesquisa resultava em uma mensagem a ser transmitida para todas as máquinas na rede. Este método mostrou-se menos eficaz do que o Napster. A Freenet é totalmente distribuída em que cada ficheiro está associado a uma chave e ficheiros com chaves semelhantes tendem a agrupar-se em um conjunto semelhante de peers. Na pesquisa as mensagens devem ser encaminhadas através da rede para um tal conjunto sem a necessidade de visitar muitos peers mas no entanto não é garantido que os dados sejam encontrados. As DHTs usam um mecanismo de encaminhamento baseado em chaves mais estruturado no sentido de alcançar a descentralização da Freenet e do Gnutella e a eficiência e garantia de resultados do Napster. Uma desvantagem é que as DHTs apenas suportam pesquisas de correspondência exata, em vez de pesquisa de palavras-chave.[3] Mecanismo Genérico Uma DHT apenas precisa uma operação o Lookup(k). Esta operação faz a pesquisa do nó responsável pela chave K. Para inserir um novo valor na DHT é feito o lookup, e uma vez que seja encontrado o nó é armazenado a chave e o valor. 25
26 Para armazenar um arquivo com um determinado nome e conteúdo em uma DHT realizam-se os seguintes passos: 1) É realizado o hash SHA1 do nome do arquivo gerando uma chave K de 160 bits. 2) É enviada uma mensagem lookup(k) para um qualquer nó participante da DHT. 3) A mensagem é encaminhada de nó em nó ao longo da rede até encontrar o nó responsável pela chave K. 4) Uma vez encontrada a referencia para o nó responsável armazena-se o conteúdo do arquivo. No caso de um cliente querer acessar um arquivo realizam-se os seguintes passos: 1) É realizado o hash SHA1 do nome do arquivo gerando uma chave K de 160 bits. 2) É enviada uma mensagem lookup(k) para um qualquer nó participante da DHT. 3) A mensagem é encaminhada de nó em nó ao longo da rede até encontrar o nó responsável pela chave K. 4) Uma vez encontrada a referencia para o nó responsavel pela chave K o conteudo é enviado para o cliente Armazenamento de Valores A maioria das DHTs utiliza uma variante de uma hash consistente para mapear as chaves para os nós. Cada nó possui uma chave (ID). Um nó com o ID i é o dono de todas as chaves para as quais o i é o ID mais próximo. São usados diferentes esquemas para mapear as chaves de modo a balancear a carga entre os nós e a redirecionar um lookup por uma chave para um nó mais próximo do nó responsável. O Chord usa a diferença matemática entre as chaves. O Pastry e o Tapestry usam o número de bits em comum nas duas chaves. O Kademlia usa o XOR (ou exclusivo). 26
27 2.3.3 Kademlia Para uma melhor percepção no funcionamento de uma DHT vamos dar como o exemplo o Kademlia. O Kademlia é uma DHT criada em 2002 por Petar Maymounkov e David Mazières. Os nós comunicam entre si usando o protocolo UDP. A rede formada pelos nós participantes é designada rede overlay. Cada nó é identificado por um ID, este não serve apenas para identificação mas também para localizar valores. Na verdade o ID do nó fornece um mapa direto para a hash do ficheiro e esse nó guarda informação de onde obter o ficheiro. Ao pesquisar por algum valor o algoritmo de pesquisa necessita de conhecer a chave associada e explora a rede em várias etapas. Cada etapa vai encontrar os nós que estão mais perto da chave até que o nó contactado devolve o valor ou até quando não existem nós mais perto. Este método é muito eficiente uma vez que o Kademlia apenas contacta log(n) nós durante a pesquisa sendo n o número total de nós do sistema. A distância entre dois nós é calculada através do ou exclusivo dos seus IDs resultando um número inteiro. As chaves e os IDs têm o mesmo formato e comprimento de modo a que a distância possa ser calculada entre eles. As tabelas de encaminhamento do Kademlia consistem em uma lista para cada bit do ID do nó. Cada entrada na lista contém os dados necessários para localizar outro nó. Os dados em cada lista normalmente são o endereço IP, a porta e o ID do nó. Quando os nós são encontrados na rede estes são adicionados às listas. Isto inclui operações de armazenamento e de recuperação e até mesmo ajudar outros nós a encontrar uma chave. Como o conhecimento de um novo nó é dinâmico a rede mantém-se constante atualizada aumentando a resistência a falhas e ataques. Cada vez que um nó pretende juntar-se à rede primeiro deve passar por um processo de inicialização. Nesta fase o nó que pretende ingressar a rede precisa de saber o endereço IP e a porta de um outro nó de inicialização que já participa na rede Kademlia. O nó de ingresso insere então o nó de inicialização nas suas tabelas de encaminhamento. É efetuado de seguida um pedido ao nó de inicialização que fará com que o ID do nó de ingresso seja adicionado às tabelas de encaminhamento dos restantes nós e por consequência o nó de ingresso vai adicionar os IDs dos outros nós às suas proprias tabelas de encaminhamento.[4] 27
28 Capítulo 3 3 Indexação Information retrieval é o processo de obter recursos de informação relevante a partir de um conjunto de recursos. As pesquisas podem ser baseadas em metadados ou em conteúdo (indexação). Para obter a informação de interesse para o utilizador, o utilizador deverá traduzir uma necessidade de informação em uma pesquisa. Esta pesquisa é um conjunto de palavras chaves que são utilizadas para recuperar informação numa coleção. A formulação da pesquisa consiste em determinar quais são as palavras chaves que resumem a informação desejada pelo utilizador. Como resultado de uma pesquisa, a presença de informação não relevante nos resultados é praticamente certa. Assim o objetivo da IR é retornar o mair número possível de informação relevante e o menor possível de informação não relevante. Para ser eficaz na tarefa de recuperar informação associada a uma pesquisa os sistemas IR ordena a informação de acordo com o seu grau de relevância com a consulta do utilizador.[6] 3.1 Crawling Um crawler é um programa autónomo ou um script que metódicamente procura ou crawls através da internet informação relevante para indexação. Existem diversas utilidades para este tipo de programas, sendo a principal motores de pesquisa. Os crawlers não indexam a informação apenas a retorna para um parser que prepara os documentos para serem indexados. O parser divide os documentos em diversas partes, identificando campos e normalizando a informação para ser mais facilmente indexada.[10] 28
29 3.2 Lucene O Lucene é uma biblioteca IR que permite pesquisar e indexar informação. É um projeto open-source implementado em Java. Para o Lucene a origem dos dados e o seu formato não são relevantes desde que estes possam ser convertidos para texto. Existem duas etapas principais no Lucene, indexação e pesquisa. A indexação processa os dados originais gerando um estrutura de dados inter-relacionada eficiente para a pesquisa baseada em palavras-chave. A pesquisa, por sua vez, consulta o índice pelas palavras-chave inseridas em uma consulta e organiza os resultados pela similaridade de texto com a consulta. No Lucene existe uma palavra chave em todo o processo denominado índice. O índice é uma estrutura ordenada de texto ou pedaços de texto (tokens) o que torna a pesquisa mais eficiente. Ao lermos texto para o Lucene este será primeiro submetido a um processo chamado analisador (analyzer) que trata o texto. De seguida é criado um índice que pode ser baseado no disco rígido ou na memória RAM. Tendo criado o índice há que criar um index writter de modo a preenche-lo com informação. Por último insere-se os documentos, criando os campos que forem necessários. Por vezes pode haver a necessidade de guardar alguns campos para posteriormente serem devolvidos ao utiliador, mas outros campos podem ser fúteis e são apenas guardados tokens dos mesmos. Estes tokens são fragmentos de texto e não estão disponíveis para futuras recuperações. Quando se pretende efetuar uma pesquisa é usado um indexsearcher, um QueryParser e a localização do índice. Esta pesquisa vai depender do nome do campo a pesquisar e do analisador igual ao usado na construção do índice. Os resultados são ordenados por ordem de relevância, o Lucene tem este mecanismo que dá mais peso a documentos com maior frequência do termo e a termos pouco comuns.[5][8] 29
30 Capítulo 4 4 DThor O DThor é uma aplicação distribuída baseada em DHTs que permite adicionar, eliminar e descarregar ficheiros.torrent de uma forma simplificada. É compatível com o Windows, Linux, Mac OS X e em outros sistemas operativos que suportem Java. 4.1 Análise Diagrama de Classes O diagrama de classes que representa as entidades da aplicação DThor é ilustrado na figura 1 e as entidades do motor de pesquisa estão representadas na figura 2. O DThor é constituído pelas classes DThorTorrent, DThorTomP2P, TorrentParser, DThorConfig, JettyServer, DThorReplyKeys, TorrentUpload, TorrentSearch, TorrentDelete. O motor de pesquisa é constituído pelas classes DThorTorrent, DThorTomP2P, TorrentParser, DThorConfig, DThorCrawling, JettyServer, LuceneServer, TorrentDoc, RemoteTorrentSearch, TorrentSearch, TorrentDelete. 30
31 Figura.1 Diagrama de Classes - DThor. A classe DThorTorrent têm um conjunto de atributos que define um ficheiro.torrent. É usada para guardar a informação sobre o ficheiro.torrent. A classe TorrentParser têm como objetivo fazer o parsing (análise) do conteúdo do ficheiro.torrent. Esta classe permite ainda converter um objeto DThorTorrent para um ficheiro.torrent. A interface IDThor é usada para definir assinaturas de métodos que posteriormente são implementadas na classe DThorTomP2P. A classe DThorTomP2P é responsável pelas principais funcionalidades da aplicação tal como a gestão da DHT. Os principais métodos desta classe são: addtorrent(), searchtorrent() e deletetorrrent() que permitem adicionar, pesquisar e remover torrents respetivamente. A classe DThorReplyKeys tem um método responsável que aguarda e responde a pedidos feitos pelo motor de pesquisa quando necessário. Quando recebe um pedido este obtém as chaves conhecidas e retorna as. 31
32 A classe DThorConfig é responsável por carregar o ficheiro de configuração que contém informação de inicialização da aplicação. A classe JettyServer inicializa o servidor Web. As servlets TorrentUpload, TorrentSearch e TorrentDelete são responsáveis respetivamente por carregar, pesquisar e eliminar ficheiros.torrent. Figura.2 Diagrama de Classes Motor de Pesquisa. Uma vez que algumas classes já foram referidas anteriormente, não existe a necessidade de serem referidas novamente. A classe LuceneServer é responsável pela gestão do motor de pesquisa. Tem as seguintes funcionalidades: indexação, pesquisa e remoção de índices associados a uma chave. A classe TorrentDoc é fundamental para a indexação uma vez que faz o parsing dos campos necessários para indexar um objeto DthorTorent. Por fim a clase DThorCrawling tem como objetivo percorrer todos os peers da rede e requisitar as chaves associados a cada um. 32
33 4.1.2 Diagrama de Casos de Uso Figura.3 Diagrama de Casos de Uso. Este diagrama demonstra as principais atividades da aplicação. O cliente pode inserir, pesquisar e eliminar torrents. Para eliminar um ficheiro.torrent é necessário primeiro efetuar uma pesquisa do torrent pretendido. Ao se eliminar um torrent da DHT é necessário ainda eliminar o índice da chave associado a esse torrent do motor de pesquisa uma vez que este já não se encontra disponível para download. 33
34 4.1.3 Diagrama de Estados Figura.4 Diagrama de Estados. A aplicação inicialmente encontra-se num estado de inicialização do peer onde em primeiro lugar é carregado o ficheiro de configuração, em seguida o peer liga-se à rede e por fim é inciado o servidor Web. Caso este processo inicial seja bem sucedido a aplicação fica num estado de espera até o utilizador decidir qual a operação que pretende realizar. Caso o utilizador pretenda fazer o upload de um ficheiro.torrent este é submetido e validado e caso seja um ficheiro válido este vai ser adicionado à DHT. 34
35 Caso deseje pesquisar ou eliminar é necessário efetuar uma pesquisa onde é submetido um pedido ao motor de pesquisa e onde este vai devolver os resultados ao utilizador. Por fim caso o utilizador deseje fazer o download de um ficheiro este é obtido na DHT. Se por outro lado o utilizador pretender eliminar um ficheiro este terá que inserir a chave de eliminação. Caso a chave seja válida o ficheiro será eliminado da DHT e o índice respetivo a esse ficheiro será eliminado no motor de pesquisa Diagramas de Sequência Figura.5 Diagrama de Sequências - Conectar. Conectar Peer Fluxo Principal 1. O peer contacta o super peer. 2. O peer executa o processo de bootstrap. 3. O super peer retorna a lista dos peers conhecidos. 35
36 4. O peer conecta-se aos outros peers da rede. 5. O peer inicia o seu servidor Web. Figura.6 Diagrama de Sequências - Pesquisar. Pesquisa Fluxo Principal 1. O peer envia um mensagem ao motor de pesquisa contendo a query de pesquisa. 2. O motor de pesquisa retorna o resultado da pesquisa. 3. O utilizador seleciona o ficheiro.torrent que pretende obter e esse é procurado na DHT. 4. É devolvido o ficheiro para download ao utilizador. 36
37 Figura.7 Diagrama de Sequências - Eliminar. Eliminar Fluxo Principal 1. O peer envia uma mensagem ao motor de pesquisa contendo a query de pesquisa. 2. O motor de pesquisa retorna o resultado da pesquisa. 3. O utilizador seleciona o ficheiro que pretende eliminar. 4. É pedido ao utilizador a chave de eliminação do ficheiro. 5. O peer efetua o pedido de eliminação. 6. A chave é validada e o torrent é eliminado. 7. O peer pede ao motor de pesquisa para eliminar o índice relativo ao torrent que foi eliminado. Fluxo de Exceção Caso a chave de eliminação seja inválida o utilizador terá a necessidade de a inserir novamente até que esta seja válida. 37
38 4.2 Desenvolvimento Pretende-se com o presente trabalho, desenvolver uma aplicação para adicionar, eliminar e descarregar ficheiros.torrent. Na figura 8 é apresentada a arquitectura geral do sistema implementado. Figura.8 Arquitetura da Aplicação. Para o desenvolvimento deste projeto foi utilizado o IDE Netbeans, recorreram-se às bibliotecas TomP2P, Jetty e Lucene. Esta aplicação foi implementada em Java devido ao facto da sua compatibilidade com vários dispositivos Java É uma linguagem de programação concorrente baseada em classes e orientada por objetos. Foi especialmente desenhada para que quando for executada numa plataforma, não necessita 38
39 de ser recompilada. As aplicações Java são compiladas em bytecode que pode correr em qualquer máquina virtual Java (JVM) independentemente da arquitetura do computador NetBeans O NetBeans é um IDE gratuito e open source para programadores de software. É executado em várias plantaformas como Windows, Linux, MacOS. O NetBeans oferece aos programadores as ferramentas necesárias para criar aplicações profissionais, empresariais, Web e móvel TomP2P O TomP2P é uma biblioteca de DHTs que permite armazenar informação em pares(chave, valor). Cada peer tem uma tabela que guarda os seus valores. Tem por base a framework Java NIO para comunicar, o que permite suportar várias conexões em simultâneo. Permite configurar o NAT automaticamente. Se um peer não estiver acessível pelo endereço externo, o TomP2P vai tentar configurar o encaminhamento de portas no router usando UPnP e NATPMP. É possível detetar se já existe uma regra de encaminhamento de portas existente no local. Primeiro o peer que se encontra atrás do NAT precisa de contatar um peer conhecido, tipicamente o peer de bootstrap. Este peer relata como o peer é visto, e com essa informação o peer que se encontra atrás do NAT pode descobrir como fazer o encaminhamento. No TomP2P existem dois tipos de replicação de dados, directa e indireta. A replicação direta pode ser descrita pela constante atualização do conteúdo pelo qual é responsável. Caso um peer abandone a rede todo o seu conteúdo é eliminado. Na replicação indereta a replicação pode ser descrita como a distribuição de conteúdo de uns peers para outros. O peer mais proximo da chave de um ficheiro é considerado o peer responsável por esse ficheiro e replicao se necessário.[12] 39
40 4.2.4 Jetty O Jetty é um servidor HTTP(Web) que suporta Java Servlets. É usado normalmente para comunicações entre máquinas e suporta as últimas versões da Java Servlet API. É um projeto open source e faz parte da fundação Eclipse.[9] GitHub O GitHub é um serviço de Web Hosting Git para gestão de revisões de projetos. Oferece uma interface gráfica na Web, desktop e integração móvel. Fornece controlo de acesso e várias funcionalidades de colaboração, tais como wikis, gestão de tarefas, acompanhamento de bugs e solicitações de recursos. O GitHub tornou-se extremamente importante que a comunidade de desenvolvimento open source começou a considerá-lo como um substítuto ao currículo convencional e alguns empregadores exigem que os requerentes forneçam um link para a sua conta do GitHub a fim de se qualificar para um emprego.[7] Aplicação Página Inicial Quando a aplicação é iniciada é apresentada a página inicial representada na figura Figura.9 Página Inicial.
41 Página de Upload Figura.10 Página de Upload. Página de Resultados Figura.11 Página de Resultados. 41
42 Janela de confirmação para eliminar Figura.12 Página de Confirmação para eliminar. 4.3 Testes Distribuição de Torrents na DHT Para um melhor conhecimento acerca da distribuição dos torrents ao longo da DHT foi realizado um teste com três cenários onde foi determinado o número de torrents armazenado por cada peer. A diferença entre os três cenários reside no número e peers na rede em que cada um continha, 10, 100 e 1000 peers respetivamente. Em ambos os cenários foram adicionados torrents aleatoriamente na rede. As figuras que se seguem apresentam os resultados obtidos. 42
43 Figura.13 Gráfico do Cenário 1. Figura.14 Gráfico do cenário 2. 43
44 Figura.15 Gráfico do cenário 3. Com base nos resultados obtidos podemos observar que a distribuição dos torrents não é uniforme isto deve-se ao facto de que cada peer armazena as chaves com o ID mais próximo do seu ID e posteriormente o peer responsável por esse chave vai replicá-la para os peers mais próximos. Em média cada peer armazena 60000, 6000 e 600 torrents respetivamente em cada cenário o que leva a concluir que cada torrent inserido é replicado 6 vezes na rede Tempo de Pesquisa Para avaliar o desempenho da DHT em termos de pesquisa foi realizado um teste com três cenários onde foi medido o tempo médio de pesquisa. A diferença entre os três cenários reside no número de peers na rede em que cada um continha 10, 100 e 1000 peers respetivamente. Em ambos os cenários foram adicionados torrents aleatóriamente na rede. Com a realização deste teste foi obtido o gráfico da figura
45 Figura.16 Gráfico do tempo médio por pesquisa. Com base nos resultados obtidos podemos observar que existem variações no tempo médio de pesquisa entre os três cenários. Isto deve-se ao facto de que os torrents encontram-se mais dispersos na DHT logo é necessário percorrer mais peers para encontrar o peer responsável pelo ficheiro.torrent. 45
46 Capítulo 5 5 Conclusões De um modo geral os objetivos inicialmente definidos foram cumpridos com sucesso. Depois de um grande estudo sobre a temática geral do projeto, o conhecimento sobre esta matéria ficou bem assimilado uma vez que nos era praticamente desconhecido e despertou-nos bastante interesse. Uma vez que a DHT apenas permite pesquisas do tipo (valor, chave) exatas optamos por melhorar o projeto inicial implementando um motor de pesquisa permitindo assim pesquisas do tipo palavra-chave. Com o motor de pesquisa a aplicação tornou-se mais funcional e flexível. Durante a realização do projeto ocorreram alguns entraves, tais como, a falta de documentação de algumas bibliotecas utilizadas e a consequente dificuldade de compreensão da sua utilização. 46
47 Referências bibliográficas [1] BitTorrent, Wikipedia, the Free Encyclopedia. [2] Peer-to-Peer, Wikipedia, the Free Encyclopedia. [3] Distributed Hash Table, Wikipedia, the Free Encyclopedia. [4] Kademlia, Wikipedia, the Free Encyclopedia. [5] Lucene, Wikipedia, the Free Encyclopedia. [6] Information Retrieval, the Free Encyclopedia. [7] GitHub, the Free Encyclopedia. [8] McCandless, Michael, Erik Hatcher, e Otis Gospodnetic. Lucene in Action, Second Edition: Covers Apache Lucene edition. [9] Jetty (web Server), Wikipedia, the Free Encyclopedia. [10] Web Crawler, the Free Encyclopedia. [11] Torrent File, the Free Encyclopedia. [12] TomP2P, A P2P-based high performance key-value pair storage library 47
Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com
Chord Tecnologias de Middleware 2006/2007 Fernando Martins - fmp.martins@gmail.com Tópicos Objectivo Motivação Peer-To-Peer Chord Descrição Geral Características Distintivas Comparação DNS Modelo do Sistema
Leia maisArquitetura de Rede de Computadores
TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador
Leia maisRoteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido
Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura
Leia maisSistemas de Nomes Planos
Sistemas de Nomes Planos November 2, 2009 Sumário Sistemas de Nomes Planos e DHTs Chord Sistemas de Nomes Planos Tipicamente, sistemas de nomes à escala da Internet usam nomes estruturados hierarquicamente.
Leia maisAplicações P2P. André Lucio e Gabriel Argolo
Aplicações P2P André Lucio e Gabriel Argolo Tópicos Internet Peer-to-Peer (Introdução) Modelos (Classificação) Napster Gnutella DHT KaZaA Razões para o Sucesso da Internet Capacidade de interligar várias
Leia maisUSO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP
USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Comunicação coletiva Modelo Peer-to-Peer Slide 6 Nielsen C. Damasceno Introdução Os modelos anteriores eram realizado entre duas partes: Cliente e Servidor. Com RPC e RMI não é possível
Leia maisProtocolo Bittorrent
Fundamentos Básicos Principais problemas Impacto na Rede Considerações Finais maxfaria@uniriote.br LETRA - UNIRIO 1 Fundamentos Básicos Bittorrent é um protocolo peer-to-peer para compartilhamento de arquivos
Leia maisICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET
INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve
Leia maisDefinição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar
Redes Peer- Redes Peer- (P2P) São sistemas distribuídos nos quais os membros da rede são equivalentes em funcionalidade Permitem que os pares compartilhem recursos diretamente, sem envolver intermediários
Leia maisEntendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
Leia maisIntrodução ao Modelos de Duas Camadas Cliente Servidor
Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos
Leia maisMÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos
MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada
Leia maisComo funciona a MEO Cloud?
Boas-vindas O que é a MEO Cloud? A MEO Cloud é um serviço da Portugal Telecom, lançado a 10 de Dezembro de 2012, de alojamento e sincronização de ficheiros. Ao criar uma conta na MEO Cloud fica com 16
Leia maisResumo. Introdução História Caracteristicas Exemplos Arquitetura Distribuição Vertical vs Distribuição Horizontal Segurança Conclusão
Peer 2 Peer (P2P) Resumo Introdução História Caracteristicas Exemplos Arquitetura Distribuição Vertical vs Distribuição Horizontal Segurança Conclusão O que é P2P? Introdução Tipo de arquitetura de rede
Leia maisExistem muitos assuntos relacionados com o Skype. Logo, esta apresentação focar-seá essencialmente nos aspectos mais importantes sobre a arquitectura
1 Existem muitos assuntos relacionados com o Skype. Logo, esta apresentação focar-seá essencialmente nos aspectos mais importantes sobre a arquitectura da rede e as funcionalidades do Skype. 2 3 4 PRÓS:
Leia maisADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia
ADDRESS RESOLUTION PROTOCOL Thiago de Almeida Correia São Paulo 2011 1. Visão Geral Em uma rede de computadores local, os hosts se enxergam através de dois endereços, sendo um deles o endereço Internet
Leia maisRedes de Comunicações Capítulo 6.1
Capítulo 6.1 6.1 - Técnicas de Comutação 1 WAN s Wide Area Networks Uma WAN é uma rede dispersa por uma grande área física, sob o controlo de uma administração única e baseada em circuitos dedicados (exemplo:
Leia maisDefinição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar
Redes Peer-to-Peer Redes Peer-to to-peer Arquitetura de Redes P2P Integridade e Proteção Redes Peer-to-Peer (P2P) São sistemas distribuídos nos quais os membros da rede são equivalentes em funcionalidade
Leia maisIP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.
Endereços IP Endereços IP IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.) precisam ter endereços. Graças
Leia maisSIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)
SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010) OBJETIVO GERAL Este trabalho possui o objetivo de exercitar a lógica de programação dos alunos do Terceiro ano do Curso de BSI e também desenvolver
Leia maisArquitetura dos Sistemas de Informação Distribuídos
Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa
Leia maisSistemas Distribuídos
Sistemas Distribuídos Comunicação de Grupos Peer to Peer Comunicação de Grupos Modelos Anteriores - Comunicação envolvia somente duas partes. RPC não permite comunicação de um processo com vários outros
Leia maisRedes de Computadores
Redes de Computadores Técnicas de comutação Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Maio de 2006 WAN s Wide Area Networks Uma WAN é uma rede dispersa por uma grande área
Leia maisAplicação Prática de Lua para Web
Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio
Leia maisPesquisa e organização de informação
Pesquisa e organização de informação Capítulo 3 A capacidade e a variedade de dispositivos de armazenamento que qualquer computador atual possui, tornam a pesquisa de informação um desafio cada vez maior
Leia maisSISTEMAS DISTRIBUÍDOS
Arquiteturas www.pearson.com.br capítulo 2 slide 1 2.1 Estilos Arquitetônicos Formado em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre
Leia maisAcronis Servidor de Licença. Manual do Utilizador
Acronis Servidor de Licença Manual do Utilizador ÍNDICE 1. INTRODUÇÃO... 3 1.1 Descrição geral... 3 1.2 Política de licenças... 3 2. SISTEMAS OPERATIVOS SUPORTADOS... 4 3. INSTALAR O SERVIDOR DE LICENÇA
Leia mais18/05/2014. Problemas atuais com o IPv4
Problemas atuais com o IPv4 Fundamentos de Redes de Computadores Prof. Marcel Santos Silva Falhas de segurança: A maioria dos ataques contra computadores hoje na Internet só é possível devido a falhas
Leia maisTabela de roteamento
Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar
Leia maisFerramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl
Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração
Leia mais2 de maio de 2014. Remote Scan
2 de maio de 2014 Remote Scan 2014 Electronics For Imaging. As informações nesta publicação estão cobertas pelos termos dos Avisos de caráter legal deste produto. Conteúdo 3 Conteúdo...5 Acesso ao...5
Leia maisSISTEMAS DISTRIBUIDOS
1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização
Leia maisPEER DATA MANAGEMENT SYSTEM
PEER DATA MANAGEMENT SYSTEM INTRODUÇÃO, INFRA-ESTRUTURA E MAPEAMENTO DE ESQUEMAS AGENDA Data Management System Peer Data Management System P2P Infra-estrutura Funcionamento do PDMS Mapeamento de Esquemas
Leia maisConceitos de relação de confiança www.jpinheiro.net jeferson@jpinheiro.net
Conceitos de relação de confiança www.jpinheiro.net jeferson@jpinheiro.net Procedimento para criar uma árvore O procedimento usado para criar uma árvore com o Assistente para instalação do Active Directory
Leia maisDarkStat para BrazilFW
DarkStat para BrazilFW ÍNDICE Índice Página 1 O que é o DarkStat Página 2 DarkStat e a inicialização do sistema Página 2 DarkStat e a finalização do sistema Página 2 Tela Principal do DarkStat Página 3
Leia maisLICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER
LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER V14 de BricsCAD vem com um novo sistema de licenciamento, com base na tecnologia de licenciamento de Reprise Software. Este novo sistema oferece um ambiente
Leia maisMódulo 8 Ethernet Switching
CCNA 1 Conceitos Básicos de Redes Módulo 8 Ethernet Switching Comutação Ethernet 2 Segmentação de Redes Numa Ethernet o meio de transmissão é compartilhado Só um nó pode transmitir de cada vez. O aumento
Leia maisSistemas Distribuídos Arquitetura de Sistemas Distribuídos Aula II Prof. Rosemary Silveira F. Melo Arquitetura de Sistemas Distribuídos Conceito de Arquitetura de Software Principais elementos arquiteturais
Leia maisNa Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:
Tutorial de TCP/IP - Parte 6 - Tabelas de Roteamento Por Júlio Cesar Fabris Battisti Introdução Esta é a sexta parte do Tutorial de TCP/IP. Na Parte 1 tratei dos aspectos básicos do protocolo TCP/IP. Na
Leia maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Arquiteturas Capítulo 2 Agenda Estilos Arquitetônicos Arquiteturas de Sistemas Arquiteturas Centralizadas Arquiteturas Descentralizadas Arquiteturas
Leia maisSistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor
Leia maisGereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo
Leia maisFileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13
FileMaker Pro 13 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 2007-2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,
Leia maisREDES DE COMPUTADORES
REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores
Leia maisA camada de rede do modelo OSI
A camada de rede do modelo OSI 1 O que faz a camada de rede? (1/2) Esta camada tem como função principal fazer o endereçamento de mensagens. o Estabelece a relação entre um endereço lógico e um endereço
Leia maisP HC XL - Nem calcula o produto que temos para si...
P HC XL - Nem calcula o produto que temos para si... Documento FAQs Poderão ser contemplados campos de utilizadores da ML? Essa possibilidade não existe. Os campos disponíveis são os campos base da tabela
Leia maisTECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite
Leia maisManual de utilização do Moodle
Manual de utilização do Moodle Iniciação para docentes Universidade Atlântica Versão: 1 Data: Fevereiro 2010 Última revisão: Fevereiro 2010 Autor: Ricardo Gusmão Índice Introdução... 1 Registo no Moodle...
Leia mais3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança
3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade
Leia maisCONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;
CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.
Leia maisSatélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br
Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História
Leia maisIntranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO
Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial
Leia maisQUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013
QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 Prezados Senhores da comissão de licitação da UENF, seguem alguns questionamentos acerca do edital de concorrência 01/2013 para esclarecimentos: 1. ANEXO
Leia maisCapacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB
Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha
Leia maisDocumento de Análise e Projeto VideoSystem
Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento
Leia maisUm sistema SMS 1 simplificado
1 Introdução Um sistema SMS 1 simplificado Projecto de Redes de Computadores I - 2007/2008 LEIC IST, Tagus Park 10 de Setembro de 2007 Pretende-se com este projecto que os alunos implementem um sistema
Leia maisCapítulo 7 CAMADA DE TRANSPORTE
Capítulo 7 CAMADA DE TRANSPORTE INTRODUÇÃO (KUROSE) A Camada de Rede é uma peça central da arquitetura de rede em camadas A sua função é a de fornecer serviços de comunicação diretamente aos processos
Leia mais481040 - Programador/a de Informática
481040 - Programador/a de Informática UFCD - 0770 Dispositivos e periféricos Sessão 4 SUMÁRIO Disco Rígido; Sistema de ficheiros Uma unidade de disco rígido é composta por um conjunto de discos sobrepostos,
Leia maisCapítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de 2007 - Página
Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento IP 1 História e Futuro do TCP/IP O modelo de referência TCP/IP foi desenvolvido pelo Departamento de Defesa dos Estados Unidos (DoD). O DoD exigia
Leia maisRede de Computadores (REC)
Rede de Computadores (REC) Aula 04 Camada de Aplicação Prof. Jackson Mallmann dcc2jm@joinville.udesc.br Exemplos de requisição via telnet. iniciar / executar / cmd (Windows) telnet endereço telnet 192.168.1.3
Leia maisMÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA
MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA Através dos elementos que fazem parte do projeto do sistema é que podemos determinar quais as partes do sistema que serão atribuídas às quais tipos
Leia maisArquitetura de Computadores. Sistemas Operacionais IV
Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo
Leia maisSUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2
SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2
Leia maisUnidade Curricular: SCOM Ano letivo: 2014/2015 Alunos: Diogo Guimarães 100503158 Pedro Brito 100503279
Unidade Curricular: SCOM Ano letivo: 2014/2015 Alunos: Diogo Guimarães 100503158 Pedro Brito 100503279 Resumo Redes Peer-to-Peer Características Tipos Arquitetura Vantagens Desvantagens Aplicações Skype
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisRede de Computadores
Escola de Ciências e Tecnologia UFRN Rede de Computadores Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso
Leia maisAULA 5 Sistemas Operacionais
AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento
Leia maisFTP Protocolo de Transferência de Arquivos
FTP Protocolo de Transferência de Arquivos IFSC UNIDADE DE SÃO JOSÉ CURSO TÉCNICO SUBSEQUENTE DE TELECOMUNICAÇÕES! Prof. Tomás Grimm FTP - Protocolo O protocolo FTP é o serviço padrão da Internet para
Leia maisMANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.
PROGRAMA EMBRAPA DE MELHORAMENTO DE GADO DE CORTE MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. MANUAL DE INSTALAÇÃO: 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS
Leia maisMÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS
MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares
Leia maisENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro
ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE André Esteves nº3412 David Monteiro INTRODUÇÃO É proposto uma arquitectura de servidor Web dividida que tolera perfeitamente tanto falhas na
Leia maisTecnologia de Redes de Computadores - aula 5
Tecnologia de Redes de Computadores - aula 5 Prof. Celso Rabelo Centro Universitário da Cidade 1 Objetivo 2 3 4 IGPxEGP Vetor de Distância Estado de Enlace Objetivo Objetivo Apresentar o conceito de. Conceito
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura
Leia maisGoogle Drive. Passos. Configurando o Google Drive
Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.
Leia maisRedes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A
Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A Número: Nome: Duração: 1 hora O teste é sem consulta O teste deve ser resolvido
Leia maisArquitecturas de Sistemas. Arquitecturas Descentralizadas de Sistemas
Arquitecturas de Sistemas Centralizadas Descentralizadas Híbridas Arquitecturas Descentralizadas de Sistemas Dividir aplicações cliente-servidor em três camadas (interface, processamento, dados): distribuição
Leia maisEngenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto
LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software e Sistemas Distribuídos 2 o Semestre 2014/2015 Enunciado Geral do Projecto O que se segue é uma descrição geral do domínio do projecto a desenvolver
Leia maisA máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:
Fundamentos: A máscara de pode ser usada para dividir uma rede existente em "s". Isso pode ser feito para: 1) reduzir o tamanho dos domínios de broadcast (criar redes menores com menos tráfego); 2) para
Leia maisProtocolos em Redes de Dados. Enquadramento histórico. Modo de funcionamento FEC. Antecedentes IP Switching Tag Switching. Exemplo de.
Multiprotocol Label Switching Aula 07 FCUL 2005-20056 Objectivo: Conciliar as tecnologias baseadas em comutação (switching) com o encaminhamento IP. Aplicações: Aumentar o desempenho. Engenharia de tráfego.
Leia maisAula 08 MPLS 2004-2005 FCUL. Protocolos em Redes de Dados. Luís Rodrigues. Enquadramento. Modo de funcionamento. Antecedentes MPLS.
Aula 08 FCUL 2004-2005 Multiprotocol Label Switching Objectivo: Conciliar as tecnologias baseadas em comutação (switching) com o encaminhamento IP. Aplicações: Aumentar o desempenho. Engenharia de tráfego.
Leia maisUniversidade da Beira Interior
Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação
Leia mais2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Leia maisHá dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:
Comunicação em uma rede Ethernet A comunicação em uma rede local comutada ocorre de três formas: unicast, broadcast e multicast: -Unicast: Comunicação na qual um quadro é enviado de um host e endereçado
Leia maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução
Leia maisFAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO
FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver
Leia maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Nomes, Identificadores, Endereços Nomeação Simples Capítulo 5 Agenda Nomes, Identificadores e Endereços Definição Nomeação Simples Soluções Simples
Leia maisISEP. Instituto Superior de Engenharia do Porto. Análise de Sistemas Informáticos
ISEP Instituto Superior de Engenharia do Porto Análise de Sistemas Informáticos Armazenamento de Dados em Rede A Revolução do Armazenamento Partilhado A crise económica e a crescente necessidade de armazenamento
Leia mais3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio
32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio
Leia maisFTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02. Prof. Gabriel Silva
FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02 Prof. Gabriel Silva Temas da Aula de Hoje: Revisão da Aula 1. Redes LAN e WAN. Aprofundamento nos Serviços de
Leia maisFileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14
FileMaker Pro 14 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 2007-2015 FileMaker, Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,
Leia maisProtocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:
Protocolo TCP/IP Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados: Número IP Máscara de sub-rede O Número IP é um número no seguinte formato: x.y.z.w Não podem existir
Leia maisUNIVERSIDADE FEDERAL DE PELOTAS
Usando um firewall para ajudar a proteger o computador A conexão à Internet pode representar um perigo para o usuário de computador desatento. Um firewall ajuda a proteger o computador impedindo que usuários
Leia mais5 Mecanismo de seleção de componentes
Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações
Leia maisNoções de. Microsoft SQL Server. Microsoft SQL Server
Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados
Leia maisFault Tolerance Middleware for Cloud Computing
Fault Tolerance Middleware for Cloud Computing W. Zhao & P. Melliar-Smith & L. Moser Sistemas Distribuídos e Tolerância a Falhas Ivan Pires m3797 Gilberto Melfe m4088 Introdução A cloud computing tem por
Leia mais