Implementação de um Algoritmo para Busca em Redes Peer-to-Peer

Tamanho: px
Começar a partir da página:

Download "Implementação de um Algoritmo para Busca em Redes Peer-to-Peer"

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

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 mais

Definiçã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

Definiçã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 mais

Definiçã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

Definiçã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 mais

JXTA. Alessandro Vasconcelos Ferreira de Lima. avfl@cin.ufpe.br

JXTA. 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 mais

Resumo. Introdução História Caracteristicas Exemplos Arquitetura Distribuição Vertical vs Distribuição Horizontal Segurança Conclusão

Resumo. 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 mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS 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 mais

Sistemas 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 mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. 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 mais

Peer-to-Peer. Introdução. Motivação. Definição. Definição. Definição. Everton Flávio Rufino Seára Murilo R. de Lima

Peer-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 mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas 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 mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura 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 mais

PEER DATA MANAGEMENT SYSTEM

PEER 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 mais

SISTEMAS DISTRIBUIDOS

SISTEMAS 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 mais

Aplicações P2P. André Lucio e Gabriel Argolo

Aplicaçõ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 mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS 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 mais

3 Arquitetura do Sistema

3 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 mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introduçã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 mais

Tabela de roteamento

Tabela 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 mais

Entendendo como funciona o NAT

Entendendo 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 mais

1 http://www.google.com

1 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 mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓ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 mais

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

ADDRESS 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 mais

Sistemas Distribuídos

Sistemas 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 mais

UFF-Fundamentos de Sistemas Multimídia. Redes de Distribuição de Conteúdo (CDN)

UFF-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 mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓ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 mais

Bancos 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. 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 mais

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

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 mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas 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 mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noçõ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 mais

Arquitetura de Rede de Computadores

Arquitetura 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 mais

Considerações no Projeto de Sistemas Cliente/Servidor

Consideraçõ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 mais

GT Computação Colaborativa (P2P)

GT 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 mais

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Multiplexador. 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 mais

BC-0506: Comunicação e Redes Internet e Web como redes complexas

BC-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 mais

5 Mecanismo de seleção de componentes

5 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 mais

Curso: 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 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 mais

Roteamento e Comutação

Roteamento 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 mais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. 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 mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um 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 mais

ISO/IEC 12207: Gerência de Configuração

ISO/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 mais

Introdução ao Active Directory AD

Introduçã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 mais

Sistemas de Nomes Planos

Sistemas 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 mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas 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 mais

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

SIMULADOR 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 mais

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

MRP 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 mais

Utilizaçã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 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 mais

4 Um Exemplo de Implementação

4 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 mais

Sistemas Distribuídos

Sistemas 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 mais

Sistemas 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 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 mais

3 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 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 mais

2 Trabalhos Relacionados

2 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 mais

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

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 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 mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS 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 mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS 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 mais

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2014

Prof. 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 mais

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

SMTP, 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 mais

Tabela 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. 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 mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃ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 mais

Redes de Computadores

Redes 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 mais

Curso 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 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 mais

PARANÁ GOVERNO DO ESTADO

PARANÁ 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 mais

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CONCURSO 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 mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura 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 mais

Disciplina de Banco de Dados Introdução

Disciplina 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 mais

Projeto de Arquitetura

Projeto 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 mais

Sistemas Distribuídos

Sistemas 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 mais

Unidade 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 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 mais

Consistência Eventual - Sistemas Distribuidos e Tolerância a Falhas

Consistê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 mais

Universidade de Brasília

Universidade 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 mais

e-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 - 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 mais

Capítulo 4 - Roteamento e Roteadores

Capí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 mais

Servidor Proxy armazenamento em cache.

Servidor 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 mais

VORONOI STATE MANAGEMENT FOR PEER-TO-PEER MASSIVELY MULTIPLAYER ONLINE GAMES

VORONOI 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 mais

Gerência de Redes. Arquitetura de Gerenciamento. filipe.raulino@ifrn.edu.br

Gerê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 mais

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

IMPLEMENTAÇÃ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 mais

3. 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.

3. 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 mais

Sistemas distribuídos:comunicação

Sistemas 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 mais

Protocolo 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: 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 mais

Redes de Computadores

Redes 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 mais

Teleprocessamento 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 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 mais

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

O 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 mais

Capí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. 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 mais

Capítulo 8 - Aplicações em Redes

Capí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 mais

Arquitetura de uma Rede JXTA

Arquitetura 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 mais

Tópicos Especiais em Redes de Telecomunicações

Tó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 mais

Documento de Análise e Projeto VideoSystem

Documento 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 mais

3 SCS: Sistema de Componentes de Software

3 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 mais

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Faculdades 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 mais

Sistemas Distribuídos

Sistemas 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 mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo 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 mais

Redes 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. 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 mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 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 mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/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 mais

Conceitos de Banco de Dados

Conceitos 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 mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteú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 mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossá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