Implementação de um Algoritmo para Busca em Redes Peer-to-Peer
|
|
- Yasmin Back Farinha
- 8 Há anos
- Visualizações:
Transcrição
1 Implementação de um Algoritmo para Busca em Redes Peer-to-Peer André Panisson, Maria Janilce Bosquiroli Almeida, Liane Margarida Tarouco, Lisandro Zambenedetti Granville Universidade Federal do Rio Grande do Sul - UFRGS Instituto de Informática Bloco IV Bairro Agronomia Caixa Postal , CEP: Porto Alegre, RS {panisson, janilce, liane, granville}@inf.ufrgs.br Abstract. This paper investigates strategies for traffic distribution on peer-topeer network throughout the implementation of a search algorithm. The search strategies are verified taking into account, mainly, the capacity of the network nodes. The implementation was done changing some structures of the JXTA architecture. According to the strategy used in a search operation on a JXTAbased network, a more proper distribution of search messages can be achieved. Resumo. Este artigo investiga estratégias para distribuição de tráfego em redes peer-to-peer através da implementação de um algoritmo de busca. As estratégias de busca são consideradas levando-se em conta, principalmente, a capacidade de processamento dos nós da rede. A implementação foi realizada através da alteração das estruturas da arquitetura JXTA. De acordo com a estratégia utilizada na busca em redes baseadas em JXTA, pode-se ter uma distribuição mais adequada das mensagens. 1. Introdução O uso de redes Peer-to-Peer (P2P) tem crescido substancialmente nos últimos anos e cada vez mais aplicações são construídas sobre essas estruturas. Com a popularização de sistemas para compartilhamento de arquivos como Napser [Napster 2004], Gnutella [Ripeanu 2001] e Kazaa [Kazaa 2004], a pesquisa em redes P2P tornou-se imprescindível não apenas para melhorar esses sistemas, mas também para compreender e controlar o uso dos recursos da infra-estrutura (tipicamente redes IP) utilizada por essas redes. O impacto do tráfego P2P pode ser entendido pela seguinte estatística: em algumas situações, a banda consumida pelo seu tráfego pode chegar a mais de 50% da banda total disponível pelos provedores [Sen 2002]. Em uma rede P2P, os recursos compartilhados estão distribuídos entre os seus nós [Sen 2002], diferentemente do que acontece em redes cliente-servidor convencionais, onde os recursos são armazenados de forma centralizada nos servidores. Um dos serviços críticos de uma rede P2P é o serviço de busca de recursos. Tal serviço permite que um usuário localizado em um nó solicite à rede a localização de um conteúdo de interesse. A resposta gerada a uma solicitação de busca é, normalmente, uma lista de nós onde o recurso pode ser encontrado. O nó solicitante pode então ter acesso direto aos nós que
2 disponibilizam o recurso para proceder com seu respectivo acesso. Em redes P2P, os recursos são sempre acessados de forma distribuída entre os nós, mas o serviço de busca não é necessariamente realizado de forma distribuída. Nas primeiras redes P2P existentes, o serviço de busca exigia a existência de um servidor central para indexação dos conteúdos distribuídos nos nós. Um usuário solicitava a busca ao servidor central, e este devolvia a lista de nós que disponibilizavam o recurso de interesse. A abordagem centralizada, apesar de simples, possui um ponto único de falha: se o servidor de indexação falhar, o serviço inteiro é interrompido. Além disso, essa abordagem não é escalável porque o processamento do servidor de busca é dependente do volume de recursos compartilhados, do número de nós da rede P2P e do número de consultas que tais nós podem gerar. Em virtude dos problemas de escalabilidade e tolerância a falhas gerados pelas abordagens centralizadas, torna-se necessário recorrer a abordagens não centralizadas, tais como: modelo de inundação, utilizado pelo Gnutella, DHT (Distributed Hash Tables), e outros algoritmos similares a algoritmos de roteamento, utilizados, por exemplo, pelo sistema FreeNet. Atualmente, uma das abordagens importantes utilizadas na implementação do serviço de busca é o emprego de algoritmos DHT (Distributed Hash Tables) [Ratnasamy 2002]. Tais algoritmos permitem que se tenha uma busca distribuída estruturada e eficiente. Os conteúdos a serem disponibilizados recebem um valor associado (hash) e os nós da rede são distribuidamente consultados passando-se o valor associado. Entretanto, o algoritmo não permite busca por similaridade. Para os algoritmos baseados em DHT, o sistema tem um desempenho melhor quando a rede é bastante homogênea, dado que a distribuição de recursos é feita de forma igual a todos os nós da rede. Neste artigo é apresentada a análise realizada, através de uma implementação, de um algoritmo de busca alternativo proposto por Lv et al [Lv et al 2002]. Também propõese o aperfeiçoamento desse algoritmo, somando a ele características de distribuição de tráfego adaptativa e gerenciável, através da avaliação de funções de distribuição de mensagens. O algoritmo resultante é escalável, descentralizado e baseado em controle de fluxo e adaptação da topologia de busca da rede P2P. O algoritmo também considera que a rede P2P é uma rede heterogênea, onde os nós têm capacidades diferenciadas de processamento, armazenamento e banda disponível. Para uma análise prática, o algoritmo foi implementado dentro da plataforma de código aberto JXTA da Sun [Gong 2001] que possui uma arquitetura de protocolos para a implementação de aplicações P2P. Os resultados obtidos pela implementação permitem observar que o algoritmo proposto possui vantagens sobre as outras abordagens porque considera uma distribuição da consulta que leva em conta as características particulares de cada nó da rede. O restante deste artigo está assim dividido. A Seção 2 apresenta os fundamentos da arquitetura JXTA, discute os algoritmos de busca em redes P2P, apresenta o algoritmo proposto por Lv et al e os aperfeiçoamentos propostos. A Seção 3 introduz a modelagem do algoritmo na plataforma JXTA. Na Seção 4 é apresentada a implementação do algoritmo de busca, enquanto na Seção 5 as estratégias de distribuição de mensagens desse algoritmo são discutidas. A Seção 6 apresenta os resultados obtidos a partir dos testes realizados com a implementação. Finalmente, na Seção 7 são apresentados as conclusões e os trabalhos futuros.
3 2. Trabalhos Relacionados As duas funções importantes que um sistema P2P deve desempenhar são a descoberta de recursos e o acesso a estes. O fato de os sistemas P2P serem descentralizados faz com que o processo de acesso seja inerentemente escalável. A dificuldade, entretanto, está no processo de descoberta dos recursos de interesse. Essa operação deve ser escalável de forma que o processo de busca não seja afetado pelas dimensões da rede P2P Soluções para descoberta de recursos Soluções centralizadas são vulneráveis porque implementam ponto único de falha, além de serem de difícil expansão em sistemas da ordem de milhões de usuários. Porém, serviços de procura como Yahoo e Google, apesar de não serem sistemas P2P, demonstraram que é possível construir tais soluções centralizadas. Isso, no entanto, demanda investimentos significativos em infra-estrutura, em servidores e em alta largura de banda. Em redes P2P, também há a existência de alta volatilidade dos peers e a constante entrada e saída de informações no sistema. Isso torna o modelo P2P de busca completamente diferente do modelo utilizado para pesquisa em páginas Web. Tais problemas levaram à adoção de soluções descentralizadas. Essas soluções envolvem tipicamente a organização dos peers em redes sobrepostas, sobre as quais as requisições de procura são passadas de peer para peer. Dessa maneira, os sistemas atuais criam novos e diferentes problemas de escalabilidade. Por exemplo, no Gnutella [Ripeanu 2001], as mensagens de busca são repassadas por inundação. Neste processo, um peer, quando precisa encontrar algum recurso na rede, envia uma mensagem de busca aos seus vizinhos. Estes, por sua vez, repetem o processo, passando adiante as mensagens. Esse processo de inundação em cada requisição não é escalável, pois o número de mensagens circulando na rede cresce exponencialmente. Motivados pelos problemas de escalabilidade nos sistemas P2P, muitos grupos de pesquisa investigam a viabilidade de uma solução escalável para o problema de localização de recursos em redes P2P. Como resultado, têm sido propostos sistemas altamente estruturados. Um exemplo desses sistemas, descrito por Helder [Helder et al. 2002], é um modelo próximo a um algoritmo de roteamento, e tem grandes aplicações em comunicação multicast. Nesses sistemas altamente estruturados, a topologia da rede é extremamente controlada, e os recursos da rede (ou referências aos recursos) são distribuídos em lugares específicos. Esses sistemas fornecem um mapeamento entre os identificadores de recursos e sua localização, de forma que as buscas sejam eficientemente roteadas até os peers com os recursos desejados. Esses sistemas, dessa forma, oferecem uma solução escalável para pesquisas de busca. Muitos sistemas altamente estruturados utilizam algoritmos DHT (Distributed Hash Table), e vários projetos estão propondo a construção de facilidades na Internet feitas sobre algoritmos DHT. Os algoritmos mais conhecidos de roteamento baseado em DHTs são: Tapestry [Zhao et al. 2001], Pastry [Rowstron et al. 2001], Chord [Stoica et al. 2001] e CAN (Content Adressable Networks) [Ratnasamy 2002]. Porém é preciso considerar que as buscas podem ser feitas via DHT se for possível fazer uma busca exata. Essas buscas são as chamadas exact match query, que diferem consideravelmente das buscas feitas por aproximação, comuns em sistemas de bancos de dados modernos.
4 Sistemas altamente estruturados são também caracterizados por serem menos flexíveis em um ambiente com população de usuários muito transitória, pois há um custo alto para manter a estrutura necessária para seu funcionamento. Considerando todas estas questões, Lv, Ratnasamy e Shenker [Lv et al 2002] propõem um algoritmo de busca que visa resolver esses problemas. Esta solução utiliza caminhamento aleatório, onde cada nó escolhe aleatoriamente um vizinho e envia as mensagens a ele. O algoritmo aproveita bem as características de heterogeneidade reveladas por redes P2P. Nas implementações do presente trabalho propõe-se um aperfeiçoamento desse algoritmo, aproveitando as suas características de adaptabilidade da rede, e somando características de distribuição de tráfego adaptativa através da avaliação de funções de distribuição de mensagens A plataforma JXTA O projeto JXTA [Gong 2001] é um projeto de código aberto concebido inicialmente pela Sun Microsystems e atualmente sob a responsabilidade de um grupo independente. O principal objetivo do JXTA é definir uma rede P2P genérica que possa ser usada para a implementação de uma grande variedade de aplicações e serviços P2P. Os peers da rede JXTA se organizam em grupos chamados peergroups, compostos por peers com interesses e serviços comuns. Além disso, todo e qualquer recurso da rede JXTA é representado por um anúncio, ou advertisement, e identificado por um ID. Através de anúncios, o problema de encontrar peers e recursos da rede se reduz ao problema de encontrar anúncios que os descrevem. Os peers guardam, publicam e trocam anúncios a fim de descobrir e alocar os recursos disponíveis. O projeto JXTA define um conjunto de seis protocolos [JXTA 2003] para o desenvolvimento de aplicações P2P (Figura 1). Esses protocolos estabelecem uma rede virtual sobre a rede física, e fornecem primitivas simples que permitem que um peer se comunique com qualquer outro peer da rede. O Endpoint Routing Protocol (ERP) fornece mecanismos para determinar rotas até um peer, permitindo que haja comunicação através de camadas de transporte incompatíveis. O Peer Resolver Protocol (PRP) trata do envio e recebimento de mensagens através de queries, definindo um protocolo para o envio de queries e para o processamento de queries recebidas. Pipes são construções que enviam ou recebem dados de um peer remoto. Os serviços da plataforma JXTA utilizam tipicamente o PRP ou pipes a fim de comunicar-se com outros peers. O Pipe Binding Protocol (PBP) define um conjunto de mensagens (queries e responses) que um peer pode usar a fim de relacionar um pipe a um peer remoto. O Rendezvous Protocol (RVP) é responsável pela propagação de mensagens via peers especiais chamados rendezvous. O RVP fornece o serviço de rendezvous a outros peers da rede, o que forma o serviço de propagação de mensagens. Atualmente, o algoritmo de busca definido no JXTA encontra-se no RVP. A propagação de mensagens na rede através do RVP original é feita através de inundação e o escopo das mensagens é controlado através do controle de loops e TTL. O Peer Information Protocol (PIP) permite que os peers possam obter informações sobre o estado de outros peers (ex.: tempo de funcionamento, quantidade de conexões, tráfego, etc.). O Peer Discovery
5 Protocol (PDP) é um protocolo que define como é feita a requisição de anúncios (advertisements) de outros peers, e como cada peer responde às requisições recebidas. Peer Local Peer Remoto Peer Discovery Protocol Peer Discovery Protocol Peer Information Protocol Peer Information Protocol Pipe Binding Protocol Pipe Binding Protocol Peer Resolver Protocol Peer Resolver Protocol Rendezvous Protocol Rendezvous Protocol Endpoint Routing Protocol Endpoint Routing Protocol Camada de Transporte Camada de Transporte Figura 1. A pilha de protocolos JXTA Há projetos para modificação do RVP, como o algoritmo apresentado por Bernard Traversat [Traversat 2003]. Em seu artigo, é proposto um algoritmo baseado em DHT, em que cada rendezvous possui uma lista interna de todos os outros rendezvous do grupo, ordenados por seu identificador. Esta lista é atualizada periodicamente através de troca de mensagens, de forma a manter uma consistência entre todas as listas existentes. A partir desta lista, é gerada então a tabela de hash distribuída (DHT), e cada peer é responsável por manter um subconjunto das mensagens anunciadas. Quando um peer qualquer faz uma busca por um anúncio A, o serviço rendezvous faz então uma busca direta no peer responsável pelo anúncio, via função de hash H(A). Desta forma, escapa-se do modelo de inundação e assegura-se a disponibilidade das informações através da duplicação dos anúncios. Porém, esta solução não é totalmente escalável, pois o custo para a manutenção da consistência da DHT é alto, e o custo para armazenamento da DHT em sistemas com um número grande de peers também é alto. Além disso, todos os peers são tratados como se possuíssem igual quantidade de recursos de armazenamento e rede. Outro problema é que o algoritmo baseado em DHT exige que seja usada a função de hash H(A) para localização dos recursos, o que inviabiliza outra pesquisa que não seja por busca exata. 3. O Algorimo de Lv, Ratnasamy e Shenker O algoritmo proposto por Lv et al. [Lv et al 2002] utiliza controle de tráfego distribuído e construção de topologia com as seguintes características: - Restringe o tráfego de consultas em um determinado peer de modo que ele não se torne sobrecarregado; - Faz com que a topologia da rede evolua dinamicamente, de modo a direcionar as mensagens aos nós que possuem capacidade suficiente para tratá-las.
6 Sobre essa topologia, utiliza-se um caminhamento aleatório com pesos, de modo que os nós com maior capacidade tenham mais probabilidade de receber mensagens. A combinação dessas funcionalidades resulta em um sistema cujas mensagens são rapidamente direcionadas a nós com maior capacidade, além de, através da replicação de objetos na rede, aumentar a probabilidade de encontrar as respostas desejadas. O resultado é uma organização semi-hierárquica em que os nós com maior capacidade ficam nos níveis mais altos da hierarquia. Essa hierarquia, porém, não é explícita; ela é adquirida através de um algoritmo distribuído, adaptativo e auto-organizável Controle de tráfego e adaptação da topologia A capacidade de um nó i é dada por C i (número máximo de mensagens que um nó i pode processar em um intervalo de tempo T). Um nó i é conectado a um conjunto de nós vizinhos viz (i). Para cada nó j viz(i), i mantém as seguintes informações: - in [ j, i] : número de mensagens que chegaram de j para i no último intervalo T. A taxa total de mensagens recebidas por i é in [, i] = in[ j, i] ; j viz ( i) - out [ i, : número de mensagens que i enviou a j no último intervalo T; - outmax [ i, : número máximo de mensagens que i pode enviar a j por intervalo T. Quando um novo nó i entra na rede, ele é conectado a um conjunto aleatório de nós. Para cada novo vizinho j, i inicializa: outmax [ i, = in [ j, i] = 0 out[ i, = 0 C i Cada nó i conta o número de mensagens que recebe e transmite a cada vizinho j. Periodicamente, o nó i verifica se está sobrecarregado (a taxa de recebimento de mensagens excede sua capacidade). Se sobrecarregado, o nó i tenta adaptar a topologia de forma a reduzir sua taxa de recebimento - o nó i seleciona um nó p com alta taxa de envio (alto in [ p, i] ) e redireciona a outro vizinho q com sobra na taxa de recebimento. A sobra na taxa de recebimento do nó q é calculada por in[, q]. Intuitivamente, a regra de adaptação de topologia anterior cria uma conexão direta entre um nó com alta taxa de envio de mensagens (p) e um nó com alta capacidade (q) e tira do caminho o nó sobrecarregado. Se o nó sobrecarregado i não puder encontrar um nó q apropriado (isto é, todos os seus vizinhos estão perto de sua capacidade máxima), o nó i envia um pedido ao nó p para que reduza o número de mensagens enviadas ao nó i. Nota-se que todas as decisões sobre controle de tráfego e ajuste de topologia são baseadas em informações locais (referente ao nó e a seus vizinhos somente). Além disso, se a capacidade do nó sofrer uma rápida modificação, ou se o nó sair do sistema, a topologia se adaptará automaticamente a fim de acomodar as mudanças. C q
7 3.2. Algoritmo de Busca O algoritmo de busca da solução usa TTL a fim de terminar o caminhamento, e guarda o estado da busca pelos nós onde passou, a fim de acelerá-la. O nó passa as mensagens adiante ao seu vizinho com maior valor em outmax. Isso faz com que as buscas rapidamente cheguem aos nós com maior capacidade. Em resumo, um nó i que recebe uma mensagem, repassa a seu vizinho j com maior valor em outmax [ i, entre todos os j viz(i) de forma que out [ i, < outmax[ i, e i não enviou a mesma mensagem ao nó j. A fim de aumentar o desempenho do algoritmo, utilizam-se estratégias de replicação. Quando um nó quer oferecer um recurso a ser compartilhado, este recurso (ou uma referência a ele) é replicado em diversos outros nós. As cópias serão distribuídas entre os nós, porém a probabilidade de essa replicação ser feita em um dado nó será proporcional à sua capacidade. Assim, um nó com alta capacidade de transferência acaba por consumir mais recursos de armazenamento Aperfeiçoamentos Uma das limitações do algoritmo acima é o fato de que a única regra de distribuição de mensagens entre os vizinhos é que elas são enviadas sempre para o vizinho com o valor máximo em outmax. As mensagens rapidamente se movem para os nós com alta capacidade, fazendo com que um reduzido número de nós tenha uma alta carga de mensagens. Em uma rede de grande porte, esse comportamento pode tornar um número reduzido de nós sobrecarregado, enquanto que uma boa parte dos nós da rede estão com pouca ou nenhuma carga. Propõe-se então que se faça uma distribuição da carga entre todos os nós, de maneira adaptável e gerenciável, através do uso de funções de distribuição que podem ser configuradas em tempo de execução nos nós da rede. Essa distribuição é feita definindo-se uma ordem total (representada por ) entre os peers vizinhos em função da capacidade outmax de cada vizinho. Seja uma função (i), sendo i a colocação do peer na ordem. A partir de (i) será feita a distribuição das mensagens. Faz-se assim uma distribuição de mensagens em que os vizinhos com maior capacidade recebem mais mensagens que os vizinhos com menor capacidade. Essa distribuição pode possuir vários formatos, dependendo da função (i) escolhida. Outras modificações ainda foram feitas tirando proveito dos conceitos disponibilizados pela arquitetura JXTA. Por exemplo, na arquitetura JXTA não há diferença entre o comportamento de uma mensagem de busca ou uma mensagem de anúncio de recursos. Assim, o mesmo algoritmo usado para a busca de recursos é também usado para o anúncio dos recursos disponibilizados pelo peer, sem a necessidade de implementação de um protocolo diferenciado para as duas operações. Este é o algoritmo a que este trabalho se propõe implementar e discutir seus problemas e outras melhorias, utilizando a API de programação da plataforma JXTA.
8 4. Implementação do protocolo RVP Dado que a plataforma JXTA está dividida em camadas independentes, torna-se simples criar uma nova implementação de uma dessas camadas e substituir a camada original por sua nova implementação. O fato de o projeto JXTA ter código fonte aberto também possibilita que a programação seja feita tendo como base a implementação padrão disponível. Por isso, a partir do conjunto de classes Java do protocolo RVP disponíveis, procedeu-se à implementação da camada RVP da plataforma, a fim de não haver nenhuma modificação nas outras camadas da arquitetura. O protocolo RVP consiste em uma interface Java (RendezVousService), acessada por outras camadas, e sua classe de implementação (RendezVousServiceImpl). Três principais métodos se encarregam da publicação e da busca: o método propagateingroup se ocupa da propagação de mensagens aos outros rendezvous, enquanto propagate e propagatetoneighbors fazem a propagação apenas no escopo da rede local. A classe RendezVousServiceImpl possui a classe interna RendezVousManager, que mantém as informações de todos os peers vizinhos. Na implementação do algoritmo proposto, a classe RendezVousManager foi alterada através de inclusão de uma lista ordenada de objetos da classe chamada AddressElement. Cada objeto de AddressElement armazena informações sobre um peer vizinho j nas propriedades: in (quantidade de mensagens recebidas de j), out (quantidade de mensagens enviadas para j) e outmax (quantidade máxima de mensagens que podem ser enviadas a j). Para manter a lista ordenada de objetos AddressElement, é definida uma ordem total ( ) entre os peers vizinhos que é função da capacidade outmax de cada vizinho. Essa lista é recuperada através do método getaddresses da classe RendezVousManager. O método propagateingroup da classe RendezVousService é chamado no momento da publicação de um recurso. A partir desse método, é feito o envio das mensagens, e, por isso, ali será feita a implementação da função de distribuição de mensagens (i) Distribuição de mensagens A partir da função (i) é possível controlar a distribuição de mensagens entre os peers vizinhos. Quatro principais esquemas de distribuição são considerados. No primeiro esquema, se (i) = 2 -i, tem-se que a quantidade de mensagens em cada peer será proporcional a 2 -i, com i = ordem do vizinho na fila de vizinhos. O gráfico de distribuição de mensagens é exponencial decrescente, conforme apresentado na Figura 2. Distribuição (%) 50% 40% 30% 20% 10% 0% Ordem (i) Figura 2. Distribuição exponencial de mensagens para cada vizinho Uma segunda opção de distribuição de mensagens usa uma descida linear da quantidade n i + 1 de mensagens. A função de distribuição é dada por ( i) =, onde n é a quantidade P
9 p 2 n + n de vizinhos da lista e P é o somatório n. Se P =, chegando-se à função n= i ( i ) = 1 implementada. A Figura 3 apresenta o gráfico considerando n = 8. n n + 1 Distribuição (%) 25% 20% 15% 10% 5% 0% Ordem (i) Figura 3. Distribuição linear de mensagens para cada peer Uma terceira opção é tentar fazer com que a quantidade de mensagens seja inversamente proporcional ao quadrado da colocação do vizinho na lista. A distribuição das mensagens 1 1 é dada pela função ( i ) = i i + 1 (Figura 4). Distribuição (%) 50% 40% 30% 20% 10% 0% Ordem (i) Figura 4. Distribuição de mensagens recebidas proporcional ao inverso do quadrado da ordem i A quarta e última opção é uma distribuição que obedeça uma curva logística decrescente, L onde ( i ) = L, em que L, k e a são parâmetros dos quais depende a ki+ a 1+ e configuração da curva. Distribuição (%) 50% 40% 30% 20% 10% 0% Ordem (i) Figura 5. Distribuição logística A função descrita pelo gráfico da Figura 5 é desse tipo, e seria uma boa alternativa para distribuição de mensagens pois concentra grande parte dos anúncios em um número definido de peers de alta capacidade, o que pode vir a melhorar bastante o desempenho.
10 4.2. Implementação da distribuição das mensagens A construção do algoritmo para distribuição das mensagens entre os peers é feita da seguinte forma: a fim de que a distribuição seja estatística, é gerada uma função escolha f (r) que escolhe o peer destino da mensagem. A partir do número aleatório r, f (r) retorna um valor que será o ordenamento i do peer escolhido. Essa função f (r) deve ser tal que, para uma distribuição randômica de r, a distribuição de i obedeça à função (i) escolhida. Por exemplo, se a função de distribuição for i = log 2 (1 r). escolha i 2 i ( ) =, deve-se usar a função O resumo do algoritmo de distribuição de mensagens para busca e publicação é descrito a seguir: // n = número de peers vizinhos; // f: função de escolha; // mensagem = mensagem a ser enviada; r = Número aleatório entre 0 e 1; peers = Lista de endereços dos vizinhos; i = f(r); if (i > n) i = n; EnviaMensagem(mensagem, peers[i]); 4.3. Testes da plataforma implementada Durante sua execução, a plataforma emite um relatório que resume as operações efetuadas. A análise abaixo foi feita sobre a execução de uma aplicação em uma rede JXTA com oito peers utilizando o protocolo RVP implementado, usando para distribuição de mensagens a função de distribuição exponencial. A quantidade de mensagens recebidas e enviadas por cada peer da rede em relação ao total de mensagens é apresentada na Tabela 1. Tabela 1. Estatísticas de informações de um conjunto de peers utilizando o novo algoritmo de busca Nome do peer OUTMAX IN OUT RDV1HC % 49% RDV2HC % 25% RDV1MC % 13% RDV2MC 102 5% 6% RDV3MC 51 4% 3% RDV1LC 11 4% 1% RDV2LC 11 3% 1% Utilizando essa função, os peers vizinhos com maior capacidade recebem mais mensagens que os outros. Essa distribuição pode ser interessante se é desejado que os primeiros peers da lista recebam muito mais mensagens do que os últimos. É apropriada, portanto, se for considerado que os peers obedecem a uma distribuição de Power Laws, como sugere o trabalho de Jovanovic [Jovanovic et al. 2001]. Um anúncio publicado será sempre enviado a um número reduzido de peers, e a busca será feita exatamente nesses peers, que constituem o conjunto com maior
11 capacidade. A rede é automaticamente estruturada como uma hierarquia, em que os peers com maior capacidade estão em seu topo. Na segunda função implementada, que usa uma descida linear da quantidade de mensagens, o gráfico de distribuição de mensagens foi similar ao apresentado na Figura 3. O principal problema encontrado nesse caso é que, apesar de parecer uma função simples, sua implementação é bastante complexa, pois envolve laços que também tornam sua execução mais lenta. Na função em que a quantidade de mensagens é inversamente proporcional ao quadrado da posição do vizinho na lista, há a vantagem de que a implementação é simples. Porém, como a quantidade de vizinhos não é infinita, o último vizinho acaba recebendo as mensagens restantes, resultando em um gráfico com muitas mensagens alocadas ao último elemento da lista, o que não é desejável. Uma maneira de contornar esse problema é através do envio das mensagens restantes ao primeiro vizinho da lista. Na quarta e última função implementada, a distribuição logística, foram encontradas várias vantagens, devido ao uso dos parâmetros L, k e a. Esses parâmetros podem ser facilmente configurados e até mesmo alterados em tempo de execução através de troca de mensagens entre os peers. Quando o comportamento da rede não for satisfatório, um gerente pode usar a própria infra-estrutura da rede para modificar esses parâmetros. Uma vez que todos os peers da rede recebam as mensagens de reconfiguração e alterem seus parâmetros, imediatamente o comportamento da rede é alterado, seguindo as regras estabelecidas pelo gerente. 5. Conclusões Este artigo apresentou a implementação de um algoritmo de busca em redes P2P através de modificações na plataforma JXTA. Estratégias diferentes de distribuição de mensagens foram também consideradas. Torna-se uma vantagem poder adaptar a topologia da rede de forma a distribuir o tráfego de uma forma planejada e gerenciável. Com esse planejamento, escolher a melhor distribuição para o tipo de rede escolhido e mesmo modificar seu comportamento em tempo real, se assim for desejável. Pode-se usar distribuições diferentes, como distribuição linear, distribuição exponencial ou de curva logística. O algoritmo permite também que sejam feitas pesquisas aproximadas, que são custosas em redes altamente estruturadas como as que utilizam algoritmos DHT. Um dos problemas a serem resolvidos no algoritmo implementado é a descoberta automática da largura de banda disponível em cada peer (no protocolo implementado, a capacidade de cada peer foi configurada manualmente). Soluções para esse problema foram estudadas e há propostas que podem ser usadas nessa implementação [Roesler et al. 2003]. Uma funcionalidade a ser implementada é o redirecionamento de conexões, descrito no algoritmo de Lv, Ratnasamy e Shenker. Quando um peer da rede começa a se tornar sobrecarregado, este peer deve passar a redirecionar as suas conexões a outros peers da rede menos carregados. Por fim, o algoritmo descrito oferece um sistema de busca por caminhamento aleatório que pode retornar uma resposta após um número grande de passos. Para diminuir esse número de passos e fazer com que a busca retorne mais rapidamente, é possível melhorar o algoritmo fazendo com que o peer que gera a busca, ao invés de enviá-la a apenas um peer, envie a dois ou mais.
12 6. Referências Gong, L. (2001) JXTA: A Network Programming Environment, In: IEEE Internet Computing, Vol. 5, issue 3, p Helder, D. A. et al (2002) End-host Multicast Communication Using Switch-tree Protocols, In: Proceedings of the Workshop on Global and Peer-to-Peer Computing on Large Scale Distributed Systems (GP2PC), Maio. Jovanovic, M., Annexstein, F., Berman, K. (2001) Modeling Peer-to-Peer Network Topologies through Small-World Models and Power Laws, In: IX Telecommunications Forum, Dezembro. JXTA (2003), JXTA v2.0 Protocols Specification, Sun Microsystems Inc. Novembro. Kazaa (2004), Kazaa Media Desktop, Lv, Q., Ratnasamy, S., Shenker, S. (2002) Can Heterogeneity Make Gnutella Scalable? In: International Workshop on Peer-To-Peer Systems (IPTPS), Março. Napster (2004), Napster, Ratnasamy, S. (2002) A Scalable Content Addressable Network, Ph.D. Thesis, University of California at Berkeley, EUA. Outubro. Roesler, V. et al. (2003) Análise do mecanismo de pares de pacotes visando estimar a banda da rede via UDP. In: 21º Simpósio Brasileiro de Redes de Computadores (SBRC 2003), Natal, Brasil. Maio. Ripeanu, M. (2001) Peer-to-Peer Architecture Case Study: Gnutella Network, In: Proceedings of International Conference on Peer-to-peer Computing. Agosto. Rowstron, A.; Druschel, P. (2001) Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems, In: Proc. of the 18th IFIP/ACM International Conference on Distributed Systems Platforms (Middleware 2001). Heidelberg, Alemanha. Novembro. Sen, S.; Wong, J. (2002) Analyzing peer-to-peer traffic across large networks, In: Proceedings of ACM SIGCOMM Internet Measurement Workshop. Novembro. Stoica, I. et al. (2001) Chord: A scalable peer-to-peer lookup service for internet applications, In: Proceedings of SIGCOMM Agosto. Traversat, B. et al (2003) Project JXTA: A Loosely-Consistent DHT Rendezvous Walker, Sun Microsystems, Inc. Março. Zhao, B. Y. et al (2001) Tapestry: An Infrastructure for Fault-tolerant Wide-area Location and Routing, Technical Report UCB/CSD , University of California at Berkeley, Computer Science Department. Abril.
Sistemas Distribuídos
Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Membership Grupos dinâmicos Membros entram e saem dos grupos Membros podem falhar (crash) Grupos são criados e destruídos em tempo
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 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 maisJXTA. Alessandro Vasconcelos Ferreira de Lima. avfl@cin.ufpe.br
JXTA Alessandro Vasconcelos Ferreira de Lima Roteiro Motivação Introdução Arquitetura de JXTA Elementos de JXTA Os Protocolos Comparações e Desvantagens Conclusão Motivação Limitações do Modelo Cliente
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 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 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 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 maisPeer-to-Peer. Introdução. Motivação. Definição. Definição. Definição. Everton Flávio Rufino Seára Murilo R. de Lima
Introdução Peer-to-Peer Everton Flávio Rufino Seára Murilo R. de Lima Peer-to-Peer (P2P) é a base da operação de sistemas distribuídos como SETI@home e Kazaa; caracterizada por compartilhamento direto
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 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 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 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 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 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 mais3 Arquitetura do Sistema
3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo
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 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 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 mais1 http://www.google.com
1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou
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 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 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 maisUFF-Fundamentos de Sistemas Multimídia. Redes de Distribuição de Conteúdo (CDN)
Redes de Distribuição de Conteúdo (CDN) Objetivos da Apresentação Apresentar as arquiteturas de Redes de Distribuição de Conteúdo (CDN) com a ilustração de aplicações em ambientes corporativos e residenciais.
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 maisBancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info
Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds
Leia maisChord. 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 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 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 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 maisConsiderações no Projeto de Sistemas Cliente/Servidor
Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis
Leia maisGT Computação Colaborativa (P2P)
GT Computação Colaborativa (P2P) Djamel Sadok Julho de 2003 Este documento tem como objetivo descrever o projeto de estruturação do grupo de trabalho GT Computação Colaborativa (P2P), responsável pelo
Leia maisMultiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação
Multiplexadores Permitem que vários equipamentos compartilhem um único canal de comunicação Transmissor 1 Receptor 1 Transmissor 2 Multiplexador Multiplexador Receptor 2 Transmissor 3 Receptor 3 Economia
Leia maisBC-0506: Comunicação e Redes Internet e Web como redes complexas
BC-0506: Comunicação e Redes Internet e Web como redes complexas Santo André, 2Q2011 1 Agenda Internet e Web como redes complexas Estrutura da Internet como uma Redes Complexa Ligação entre páginas Web
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 maisCurso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento
Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados
Leia maisRoteamento e Comutação
Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede
Leia mais4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?
Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer
Leia maisUm Driver NDIS Para Interceptação de Datagramas IP
Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para
Leia maisISO/IEC 12207: Gerência de Configuração
ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que
Leia maisIntrodução ao Active Directory AD
Introdução ao Active Directory AD Curso Técnico em Redes de Computadores SENAC - DF Professor Airton Ribeiro O Active Directory, ou simplesmente AD como é usualmente conhecido, é um serviço de diretórios
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 maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para
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 maisMRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior
MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de
Leia maisUtilização de Sistemas Distribuídos em MMOGs (Massive MultiPlayer Online Games) Mauro A. C. Júnior
Utilização de Sistemas Distribuídos em MMOGs (Massive MultiPlayer Online Games) Mauro A. C. Júnior Tópicos Abordados Um pouco sobre MMOGs Aplicação e Importância Dificuldades e Soluções Tendência Um pouco
Leia mais4 Um Exemplo de Implementação
4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação
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 maisSistemas Distribuídos. Nomeação. Nazareno Andrade. Universidade Federal de Campina Grande 02/2008
Sistemas Distribuídos Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Fundamentos Coordenando processos Construíndo sistemas Sistemas construídos 2 Fundamentos Coordenando processos
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 mais2 Trabalhos Relacionados
2 Trabalhos Relacionados Este capítulo apresenta trabalhos relacionados ao problema da travessia de firewalls/nat por aplicações CORBA, alguns dos quais tiveram grande influência no desenvolvimento desta
Leia maisUNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS
UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS PROFESSOR: CARLOS BECKER WESTPHALL Terceiro Trabalho
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Modelo cliente e servidor Slide 2 Nielsen C. Damasceno Modelos Cliente - Servidor A principal diferença entre um sistema centralizado e um sistema distribuído está na comunicação
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias
Leia maisProf. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2014
MC714 Sistemas Distribuídos 2 semestre, 2014 Nomeação Nomeação Compartilhar recursos, identificar entidades de maneira única, fazer referência a localizações... Resolução de nomes Espaço de nomes e implementação
Leia maisSMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback
SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisTRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.
Leia maisRedes de Computadores
Redes de Computadores Camada de Aplicação P2P Camada de Transporte Slide 1 P2P O compartilhamento de arquivos P2P é um paradigma de distribuição atraente porque todo o conteúdo é transferido diretamente
Leia maisCurso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2
Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing
Leia maisPARANÁ GOVERNO DO ESTADO
A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro
Leia maisCONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES
CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás
Leia maisArquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo
Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante
Leia maisDisciplina de Banco de Dados Introdução
Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.
Leia maisProjeto de Arquitetura
Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os
Leia maisSistemas Distribuídos
Sistemas Distribuídos Aula 2 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Por que definir uma arquitetura?
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 maisConsistência Eventual - Sistemas Distribuidos e Tolerância a Falhas
Consistência Eventual Sistemas Distribuidos e Tolerância a Falhas Marco Bernardo Departamento de Informática Universidade da Beira Interior 25 de Maio de 2009 Descrição Geral 1 Introdução O Problema Definições
Leia maisUniversidade de Brasília
Universidade de Brasília Introdução a Microinformática Turma H Redes e Internet Giordane Lima Porque ligar computadores em Rede? Compartilhamento de arquivos; Compartilhamento de periféricos; Mensagens
Leia maise-ping - Padrões de Interoperabilidade de Governo Eletrônico www.governoeletronico.gov.br www.eping.e.gov.br
e-ping - Padrões de Interoperabilidade de Governo Eletrônico www.governoeletronico.gov.br www.eping.e.gov.br e PING: Segmentação Interconexão Segurança Meios de acesso Organização e intercâmbio de informações
Leia maisCapítulo 4 - Roteamento e Roteadores
Capítulo 4 - Roteamento e Roteadores 4.1 - Roteamento Roteamento é a escolha do módulo do nó de origem ao nó de destino por onde as mensagens devem transitar. Na comutação de circuito, nas mensagens ou
Leia maisServidor Proxy armazenamento em cache.
Servidor Proxy Servidor Proxy Um modo bastante simples de melhorar o desempenho de uma rede é gravar páginas que foram anteriormente acessadas, caso venham a ser solicitadas novamente. O procedimento de
Leia maisVORONOI STATE MANAGEMENT FOR PEER-TO-PEER MASSIVELY MULTIPLAYER ONLINE GAMES
VORONOI STATE MANAGEMENT FOR PEER-TO-PEER MASSIVELY MULTIPLAYER ONLINE GAMES Juan J. Jaramillo, Fabio Milan, R. Srikant, Department of Computer Science and Information Engineering National Central University,
Leia maisGerência de Redes. Arquitetura de Gerenciamento. filipe.raulino@ifrn.edu.br
Gerência de Redes Arquitetura de Gerenciamento filipe.raulino@ifrn.edu.br Sistema de Gerência Conjunto de ferramentas integradas para o monitoramento e controle. Possui uma interface única e que traz informações
Leia maisIMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET
1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com
Leia mais3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.
Entregue três questões de cada prova. Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor
Leia maisSistemas distribuídos:comunicação
M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.
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 maisRedes de Computadores
Redes de Computadores Roteamento IP Redes de Computadores Objetivo Conhecer o modelo de roteamento da arquitetura TCP/IP Entender os conceitos básicos de algoritmo, métrica, tabela e protocolos de roteamento
Leia maisTeleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010
Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Prof. Silvana Rossetto (DCC/IM/UFRJ) 1 13 de julho de 2010 Questões 1. Qual é a diferença fundamental entre um roteador
Leia maisO modelo ISO/OSI (Tanenbaum,, 1.4.1)
Cenário das redes no final da década de 70 e início da década de 80: Grande aumento na quantidade e no tamanho das redes Redes criadas através de implementações diferentes de hardware e de software Incompatibilidade
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 maisCapítulo 8 - Aplicações em Redes
Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos
Leia maisArquitetura de uma Rede JXTA
Page 1 of 6 Redes de Proteção SP Produtos de Rede Confiança e credibilidade. fone Produtos TrendNet: qualidade, (011) 6197-0707 garantia e ótimo custo/benefício. www.tudoderedesdeprotecao.com.br http://www.trendware.com.br
Leia maisTópicos Especiais em Redes de Telecomunicações
Tópicos Especiais em Redes de Telecomunicações Redes definidas por software e Computação em Nuvem Prof. Rodrigo de Souza Couto PARTE 1 REDES DEFINIDAS POR SOFTWARE (SDN) 2 Bibliografia Esta aula é baseada
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 mais3 SCS: Sistema de Componentes de Software
3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário
Leia maisFaculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.
Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos
Leia maisSistemas Distribuídos
Sistemas Distribuídos Modelos e arquitecturas 14/15 Sistemas Distribuídos 1 Modelos arquitecturais 14/15 Sistemas Distribuídos 2 Camadas de Software: o Middleware Aplicações Middleware Sistema Operativo
Leia maisDesenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos
Leia maisRedes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. alexandref@ifes.edu.br. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim
Redes TCP/IP alexandref@ifes.edu.br O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações Enlaces de comunicação: fibra, cobre, rádio,
Leia mais5 Estudo de caso: utilizando o sistema para requisição de material
61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de
Leia mais04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.
MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância
Leia maisConceitos de Banco de Dados
Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir
Leia maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia maisGlossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.
Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis
Leia mais