LogMiddle: Um Middleware P2P para Replicação de Dados em Redes Móveis Ad Hoc

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

Download "LogMiddle: Um Middleware P2P para Replicação de Dados em Redes Móveis Ad Hoc"

Transcrição

1 LogMiddle: Um Middleware P2P para Replicação de Dados em Redes Móveis Ad Hoc Fabricio A. Diógenes, Nabor C. Mendonça Mestrado de Informática Aplicada (MIA) Universidade de Fortaleza (Unifor) Fortaleza CE Brasil Abstract. Advances in personal device technologies, together with the wide adoption of wireless P2P networking technologies, have geared the use of the P2P paradigm in the mobile computing area. An interesting and challenging environment where P2P technologies could be employed is represented by mobile ad hoc networks (MANETs). However, many of the issues dealt with by classical wired P2P systems are not applicable in such environments. Developers have to deal with a new set of problems caused by mobility, such as low bandwidth and loss of connectivity. During disconnections, users typically update local replicas of shared data, possibly generated by peers. Possible inconsistencies need to be reconciled upon reconnection. To support building mobile applications that share data over ad-hoc networks, this paper presents LogMiddle, a P2P middleware for mobile computing. LogMiddle belongs to class of solutions that focuses on replication as the key mechanism for sharing data over MANETs, and uses the concept of a single data log to reduce replica management and storage costs in each device. Resumo. Avanços nas tecnologias de dispositivos pessoais e a adoção em massa das tecnologias de redes sem fio ponto a ponto, têm direcionado o uso do paradigma P2P na área da computação móvel. Um interessante e desafiador ambiente onde a tecnologia P2P pode ser aplicada é representado pelas redes móveis ad hoc (MANETs). Contudo muitas questões tratadas pelos sistemas P2P clássicos não são aplicáveis nesse ambiente. Desenvolvedores têm que tratar com um novo conjunto de problemas causados pela mobilidade, como largura de banda limitada e perda de conectividade. Durante os períodos de desconexão, os usuários tipicamente atualizam réplicas locais de dados compartilhados, possivelmente gerados pelos nós (peers). Possíveis inconsistências devem ser reconciliadas no momento da reconexão. Para dar suporte à construção de aplicações móveis que compartilham dados sobre redes ad hoc, este artigo apresenta LogMiddle, um middleware P2P para computação móvel. O LogMiddle pertence a uma classe de soluções com foco na replicação como mecanismo para compartilhamento de dados em ambientes de MANETs, e utiliza o conceito de log único de dados para reduzir os custos de gerência e armazenamento das réplicas de cada dispositivo. 1. Introdução Os últimos anos têm testemunhado uma drástica redução do tamanho dos computadores pessoais. Essa redução tem revolucionado a forma com que nós usamos a computação e influenciado diretamente no nosso cotidiano. O avanço da tecnologia de dispositivos pessoais, principalmente celulares de terceira geração, possibilitou a disponibilidade de diversas plataformas de software, desde protocolos de comunicação ponto a ponto,

2 como Bluetooth, até linguagens de última geração, como Java. A combinação dessas tecnologias aliada à característica móvel desses dispositivos vem criando um cenário para uma crescente demanda por aplicações distribuídas que enfocam a colaboração ponto a ponto e que utilizam as redes móveis ad hoc (ou MANETs) [Giordano and Urpi 2004] como infra-estrutura. Em sistemas distribuídos fixos, a complexidade envolvida nos aspectos de distribuição é em geral transparente aos desenvolvedores por meio das tecnologias de middleware, que elevam o nível de abstração. Tecnologias de middleware existentes, como RPC e objetos distribuídos, escondem a complexidade e heterogeneidade dos programadores de aplicação, e assim os apóiam na construção e manutenção das aplicações de forma eficaz. Contudo, estas tecnologias foram construídas para redes fixas e são inadequadas para uma configuração móvel [Mascolo et al. 2002] [Capra et al. 2001]. Em particular, primitivas de interação suportadas por esses middlewares, como chamadas de procedimento remoto, requisições a objetos e invocações de método remoto, assumem um ambiente estável de comunicação com alta largura de banda e conectividade constante. Em sistemas móveis, ao invés, desconexões e velocidades de transmissão variáveis são características normais nesse ambiente. Em vista das considerações acima, acreditamos que sistemas de middleware para computação móvel precisam prover diferentes primitivas de interação para acomodar a possibilidade de que componentes móveis fiquem sem comunicação. Por exemplo, muitas aplicações para PDA copiam agendas, listas de tarefas, e registros de endereço, de um desktop para a memória local deles, de forma que eles possam ter acesso independente. Em geral, aplicações móveis devem poder reproduzir informação para ter acesso off-line sobre os dados. A replicação gera a necessidade de haver uma sincronização dos dados quando uma conexão é restabelecida. Esta necessidade não é abordada propriamente por middlewares existentes. O princípio de transparência, comumente usado, impede que o middleware explore o conhecimento que só a aplicação tem, tal como a identificação dos dados que devem ser replicados e a política de reconciliação que deve ser aplicada. A computação P2P [Schollmeier 2001] tem se tornado um paradigma comum para muitas aplicações distribuídas, permitindo um compartilhamento de recursos e dados através de uma comunicação direta entre os nós. Sistemas P2P têm sido inicialmente desenvolvidos para redes com uma infra-estrutura fixa de comunicação, onde é formada uma rede virtual (de overlay) sobre a rede de dados subjacente (IP, no caso da Internet) dos pontos conectados [Oram 2001]. Contudo, esse rico paradigma pode ser naturalmente estendido para uma configuração móvel, onde dispositivos sem fio podem compartilhar informações diretamente entre eles. Entre as soluções propostas que utilizam o paradigma P2P em ambientes móveis, destacamos o projeto Xmiddle [Mascolo et al. 2001], uma das soluções de middleware ponto a ponto pioneira em mecanismos de replicação e reconciliação de dados em redes móveis ad hoc puras (sem o apoio de uma infra-estrutura fixa). A solução aborda características necessárias nesse ambiente, como tratamento de desconexões e percepção de contexto (context-awareness), contudo peca na arquitetura de gerência de réplicas, baseada na manipulação de documentos XML DOM, o que gera um alto custo de armazenamento de dados em memória.

3 Nesse artigo nós apresentamos o LogMiddle, um middleware P2P para computação móvel, que pertence a uma classe de soluções com foco na replicação como mecanismo para compartilhamento de dados em ambiente de MANETs. O LogMiddle foi inspirado no projeto do Xmiddle herdando mecanismos relacionados ao tratamento de inconsistências entre as réplicas, contudo o alto custo da solução de replicação nos motivou a propor uma nova e mais eficiente arquitetura de gerenciamento das réplicas, visando reduzir os custos de armazenamento e processamento, viabilizando também o uso da solução em dispositivos móveis com recursos limitados (PDAs, celulares etc). A idéia chave da nossa abordagem é utilizar o conceito de log único de armazenamento, onde são inseridos os dados e metadados utilizados nos processos de versionamento e reconciliação das réplicas de cada dispositivo. O resto do artigo está organizado como segue. Na seção 2, apresentamos uma visão geral do LogMiddle. Na seção 3, descrevemos a arquitetura de replicação, detalhando os mecanismos de armazenamento, controle de versão e reconciliação. Na seção 4, apresentamos outros trabalhos relacionados. Concluímos o artigo na seção Visão Geral do LogMiddle O LogMiddle é um middleware para computação móvel que permite o compartilhamento ponto a ponto de dados entre dispositivos sobre redes móveis ad hoc puras (sem a presença de qualquer infra-estrutura de rede fixa). Para realizar o compartilhamento dos dados, o LogMiddle utiliza a estratégia da replicação otimista, que consiste em manter múltiplas cópias de dados, uma em cada dispositivos da rede, permitindo operações offline nos dados locais, baseando-se no princípio que eventuais conflitos podem ser resolvidos oportunamente durante o sincronismo das réplicas [Demers et al. 1987]. Um processo de reconciliação é responsável por disseminar as alterações nas réplicas locais para outras réplicas, que as repassam de forma epidêmica para todo o sistema, conduzindo-o para uma eventual convergência dos dados. 2.1 Elementos de Arquitetura A arquitetura do LogMiddle é típica de um sistema de middleware, ou seja, uma camada localizada entre a aplicação e os protocolos de rede, implementando as camadas de sessão e apresentação do modelo ISO/OSI. O protótipo do LogMiddle foi implementado na plataforma J2ME, da Sun, e utiliza o Bluetooth como protocolo de comunicação em virtude da sua natureza ponto a ponto. A Figura 1 apresenta a estrutura de software do LogMiddle. Os principais módulos do LogMiddle são: Middleware Façade. As aplicações somente têm acesso às funcionalidades do middleware através desse componente, criando assim uma abstração aos desenvolvedores do restante dos módulos. Isso é uma característica importante para manter uma visão unificada e de alto nível do middleware. DataSet e Log Manager. São módulos responsáveis pelo armazenamento de dados. O módulo DataSet provê às aplicações primitivas para manipulação dos dados, que são mapeados em entradas no log através do módulo Log Manager.

4 Reconciliation Manager. Responsável pela gerência dos mecanismos de atualização e disseminação das réplicas e pelo protocolo de reconciliação. Session Manager. Gerencia as redes individuais ad hoc formadas pelos peers remotos conectados, e é responsável pelo processo de descoberta de novos nós. Communication Manager. Responsável pela comunicação com as camadas de rede abaixo do middleware. Aplicação Aplicação LogMiddle Storage Management Middleware Façade DataSet Log Manager Reconciliation Manager Núcleo do LogMiddle Session Manager Local Peer Manager Remote Peer manager Communication Manager J2ME Comunicação Sem Fio MIDP JSR 82 Java Libraries (Optional Packs) KVM (CLDC 1.0 ) Pilha Bluetooth Figura 1. Arquitetura de software do LogMiddle Conexões e Desconexões Em geral, o conceito de conexão em sistemas tradicionais ou até mesmo em sistemas nômades, que são compostos por dispositivos móveis que utilizam o suporte de uma infra-estrutura de rede fixa para se comunicarem, está relacionado à comunicação física dos dispositivos com os equipamentos de controle de rede, seja de forma cabeada ou sem fio. No caso de uma formação móvel ad hoc, o controle de conexão ou desconexão deve ser distribuído e tratado por cada dispositivo. O LogMiddle implementa essa característica da seguinte forma: cada aplicação LogMiddle gera e controla uma rede individual que inicialmente considera apenas seu próprio dispositivo como nó dela mesma. À medida que outros dispositivos remotos iniciam mecanismos de descoberta de nós dentro do raio de alcance do sinal, pedidos de conexão são automaticamente disparados ao dispositivo local. Da mesma forma e concomitantemente, o dispositivo local gera requisições de conexão aos dispositivos remotos de forma inversa. Assim, para o LogMiddle, a formação de redes ad hoc é gerenciada individualmente por cada dispositivo, baseada nos equipamentos que solicitaram conexão. O número de redes ad hoc formadas e do número de nós participante de cada uma, está relacionado à visibilidade que cada dispositivo tem dos demais. A Figura 2 apresenta as listas de dispositivos conectados nos nós M X, M Y e M Z.

5 No LogMiddle, as conexões são simétricas mas não são transitivas, ou seja, por um dispositivo X estar conectado com os dispositivos Y e Z não significa que Y e Z estejam necessariamente conectados. Na Figura 2 mostramos um arranjo onde o dispositivo móvel M X está conectado somente ao dispositivo M Y, enquanto que M Y está conectado também as formações ad hoc de M W e M Z. Lista de dispositivos da rede virtual gerenciada por M Z M Z M Y M W M K M Z Lista de dispositivos da rede virtual gerenciada por M Y M Y M Z M W M X Lista de dispositivos da rede virtual gerenciada por M X M X M Y M K M W M Y M X Figura 2. Representação das redes ad hoc formadas de forma aleatória pelos dispositivos M X, M Y e M Z e suas respectivas listas de nós conectados Aspectos de Rede A atual versão do LogMiddle utiliza o RFCOMM [Bluetooth 1999] da pilha Bluetooth para as comunicações entre dois dispositivos. O RFCOMM é um protocolo de transporte simples e leve que roda sobre o protocolo L2CAP e suporta até sessenta conexões simultâneas entre dois dispositivos Bluetooth. É importante ressaltar que o LogMiddle utiliza as conexões fim-a-fim do protocolo RFCOMM somente para a troca de pacotes durante o processo de reconciliação das réplicas. Isso significa que as conexões gerenciadas pelo LogMiddle (nível de aplicação) não estão relacionadas diretamente com as conexões estabelecidas nas camadas mais baixas, evitando assim uma inundação na rede (flooding) com pacotes de controle. Além disso, essa característica permite que, enquanto a aplicação não solicita uma comunicação direta, um dispositivo remoto possa sair temporariamente do alcance do sinal do nó local sem ser desconectado da rede ad hoc. O LogMiddle pode executar sobre outras tecnologias de comunicação, como por exemplo, o TCP/IP sobre WiFi. Para isso, seu framework de implementação disponibiliza uma API que permite a implementação de protocolos de comunicação diferentes dos que foram desenvolvidos para o protótipo atual. 3. Esquema de Replicação O LogMiddle utiliza o conceito de log como estrutura básica para sua arquitetura de gerência das réplicas, similar à utilizada no trabalho de Hupfeld [Hupfeld 2004] para bando de dados distribuído. O aspecto fundamental da eficiência da nossa abordagem é utilizar o conceito de log único de armazenamento, otimizando o espaço útil de dados manipulado. Além disso, exploramos a estrutura em log para embutir no armazenamento dos dados os metadados utilizados no processo de versionamento e reconciliação das

6 réplicas de cada dispositivo do sistema. Outro aspecto importante é que estes metadados são utilizados pelo middleware não somente para a gerência da réplica local, mas também para o controle das réplicas de todos os dispositivos remotos que se conectaram ao dispositivo local Modelo de dados No modelo de dados utilizado pelo LogMiddle, o componente DataSet gerencia o estado corrente do conjunto de dados manipulado localmente pela aplicação. O conjunto de dados é composto por múltiplas tuplas no formato (chave, valores), onde a chave é única para cada item de dado, permitindo distintos valores para cada chave. O estado atual do conjunto de dados pode ser alterado pelas operações disponibilizadas no middleware ou em virtude do processo de reconciliação. Existem três operações básicas: add (chave, valor), remove (chave) e set (chave, valor). Valores distintos podem ser associados apenas uma vez para uma determinada chave, portanto essas operações são idempotentes. Isto significa que adicionar, remover e substituir o mesmo valor mais de uma vez não gera nenhum efeito adicional, isto é, nenhuma tupla a mais será registrada. Alterar um registro é conceitualmente realizado através da operação set, que remove a versão antiga do registro e adiciona uma nova. As operações add e remove são utilizadas para criar e remover registros, respectivamente Registros das Operações no Log Quando a aplicação realiza operações sobre o conjunto de dados corrente, o LogMiddle gera, em paralelo, registros no log de armazenamento. O log é composto por um conjunto ordenado de entradas no formato: ( + /, chave, valor), indicando que um certo valor foi adicionado ( + ) ou removido ( ). Essas entradas no log agem como uma operação de diferença para o estado anterior do conjunto de dados. Apenas as operações que têm efeito no estado atual dos dados são registradas no log. Em virtude da propriedade de idempotência, operações tais como, add com um valor que já está presente, ou um remove de um valor não existente, não alteram o conjunto de dados e portanto não resultam em uma entrada adicional no log. Uma vez que o log só registra alterações efetivas sobre o conjunto de dados, uma operação set é registrada com uma entrada (remove) no log para remover o antigo valor, seguido de uma entrada + (add) no log para o novo valor. Conceitualmente, poderíamos tratar o conjunto de dados, gerenciados pelo DataSet, e os registros no log separadamente. De fato, o log único completo já contém o estado corrente do conjunto de dados embutido nele. Portanto, manter em separado o armazenamento dos dados da aplicação seria armazenar informações redundantes. Utilizando um armazenamento totalmente estruturado em log, que funde o estado corrente dos dados e o log, nós removemos essa redundância na implementação. A Figura 3 apresenta os registros no log gerados por operações no conjunto de dados através de uma aplicação exemplo do LogMiddle para controle compartilhado de uma cesta de compras. Pela figura, notamos que as tuplas do DataSet são de fato implementadas como referências para as entradas no log.

7 Aplicação Móvel LogMiddle Detalhe da aplicação Operações no Log ( +, laranja, 20, 0.80 ) ( +, maça, 10, 0.95 ) ( +, tomate, 7, 1.00 ) (, maça, 20, 0.95 ) (, laranja, 20, 0.80 ) ( +, tangerina, 15, 1.10 ) DataSet 1 <referência> 2 <referência> Figura 3. Estrutura do armazenamento dos dados do LogMiddle Mecanismo de Versionamento Multi-Réplicas As entradas do log são organizadas dentro de regiões. Uma região contém todas as atualizações realizadas no conjunto de dados de um dispositivo entre duas reconciliações. Todas as entradas de uma região compartilham um identificador do dispositivo e um número lógico de versão. O início de uma região é registrado no log através de um marcador no formato: (device-id, logical version), onde device-id é um inteiro utilizado como identificador do dispositivo, e logical version é número seqüencial representando a versão da região em relação à quantidade de reconciliações realizadas pelo dispositivo, gerada no momento da criação da região. As regiões são as unidades de transferência de dados no momento do processo de reconciliação. Elas são criadas no dispositivo local através de alterações locais que são registradas ao final do log ou através de regiões remotas recebidas de outros dispositivos durante a reconciliação. Para iniciar uma reconciliação, uma região deve ser fechada antes de ser enviada a outro dispositivo, de forma que todas aquelas entradas sejam associadas à versão da região. Depois do sincronismo, uma nova região associada ao dispositivo local é criada, e um novo marcador de início de região é gerado. Com a reconciliação, algumas regiões são transmitidas às outras réplicas que adicionam as regiões recebidas ao log. Portanto, o log único é composto por regiões criadas localmente e regiões criadas remotamente por outros dispositivos. O log completo de uma réplica representa a diferença entre o estado corrente e o estado inicial (vazio) do conjunto de dados da réplica, ou seja, ele contém o estado atual (corrente) do conjunto de dados no respectivo dispositivo. O estado corrente é representado em cada dispositivo por um vetor de estado lógico, que contém as versões mais recentes das regiões localmente conhecidas de cada dispositivo remoto. Esse vetor de estado é indexado pelo identificador do dispositivo utilizado no marcador de início das suas regiões. Normalmente, o middleware armazena o vetor de estado na memória para uso em tempo de execução, considerando o pouco espaço ocupado por ele, contudo ele pode ser reconstruído percorrendo o log em ordem cronológica, e identificando e atualizando o vetor de estado com as versões mais recentes das regiões

8 de cada dispositivo conhecido localmente. A Figura 4 mostra o exemplo dos logs dos dispositivos 0 e 1 e seus respectivos vetores de estado. Log com regiões no dispositivo 0 Marcador de início dessa região ( =, 1, 1 ) Versões das regiões mais recentes. ID do Dispositivo Versão da região ID dos dispositivos reconciliados Vetor de estado Log com regiões no dispositivo 1 ID do Dispositivo Versão da região Figura 4. Regiões marcadas nos logs dos dispositivos 0 e 1 e seus vetores de estado Processo de Reconciliação Vetor de estado Essencialmente, o processo de reconciliação visa obter uma versão consistente entre as réplicas de dois dispositivos que se conectaram e realizaram operações off-line. Ele é baseado no uso do conteúdo do log, cujas informações são utilizadas pelo protocolo de reconciliação para trazer um dispositivo remoto a um estado atualizado do seu conjunto de dados em relação às mudanças ocorridas localmente e vice-versa. Destacamos dois aspectos positivos no projeto do protocolo de reconciliação: o primeiro é a preocupação em minimizar a transferência de dados entre os dispositivos, transmitindo apenas as diferenças entre eles (mínimo necessário); a segunda é minimizar o processamento na identificação dessas diferenças. Para isso, utilizamos o vetor de estado dos dispositivos para descobrir, dentre as regiões conhecidas localmente, quais são desconhecidas pelo dispositivo remoto. A reconciliação ocorre em par entre os dispositivos, onde um deles assume o papel de cliente e o outro de servidor. O protocolo de reconciliação consiste em cinco etapas, descritas abaixo. A Figura 5 ilustra as etapas baseando-se no estado corrente dos dispositivos da figura Com o objetivo de minimizar a quantidade de dados para sua atualização o cliente envia no passo 1 o vetor de estado, representando o seu atual estado (Fig. 5, passo1); 2. Usando o vetor de estado recebido, o servidor no passo 2 compara cada entrada do seu vetor com o do cliente. Dessa forma, se uma determinada entrada do seu vetor de estado for maior que a do cliente, ele identifica o intervalo cronológico das regiões que ele deve enviar ao cliente, iniciando com a versão da região seguinte a do cliente, até a atual versão do servidor (Fig. 5, passo 2); 3. O terceiro passo é montar o intervalo das regiões definidas no passo anterior, seguindo a seqüência cronológica de criação e enviar ao cliente. Dessa forma,

9 após aplicar no seu log essas regiões enviadas o cliente estará atualizado. Contudo, para haver o sincronismo entre as réplicas o servidor necessitará ser atualizado também. Assim, como se ele executasse o passo 1 no sentido contrário, o servidor envia junto com as regiões o seu vetor de estado (Fig. 5, passo 3); 4. O quarto passo seria a execução do passo 2 no sentido contrário, isto é, o cliente identifica o intervalo das regiões desconhecidas pelo servidor (Fig. 5, passo 4); 5. O quinto passo seria montar a seqüência de regiões do intervalo e enviar para o servidor (Fig. 5, passo 5); 6. O sexto passo seria adicionar as regiões trocadas no log local de cada dispositivos alcançando um sincronismo entre os logs de ambos. 1 Dispositivo 0 (Cliente) Cli=( 3, 1, 1 ) Envia vetor de estado 2 Identifica regiões 4 no log desconhecidas pelo dispositivo 1 in local 5 Envia regiões em ordem cronológica Peers: Peers: Srv=( 1, 3, 2 ) 3 Dispositivo 1 (Servidor) Identifica regiões no log desconhecidas pelo dispositivo 1 Envia regiões em ordem cronológica junto com o vetor de estado local Figura 5. Etapas do protocolo de reconciliação em par Atualização Epidêmica das Réplicas A atualização do sistema é realizada de forma epidêmica, ou seja, cada dispositivo executa o processo de reconciliação em par com os dispositivos conectados, e esses por sua vez, repassam as atualizações da mesma forma para os dispositivos próximos a ele, e assim por diante. Assim, gradativamente as réplicas vão acompanhando as atualizações otimistas realizadas localmente em cada dispositivo da rede móvel ad hoc. Entretanto, é importante ressaltar que, devido a mobilidade dos dispositivos, a atualização do sistema vai depender da topologia. O processo de disseminação epidêmica é ativado individualmente por cada dispositivo nas seguintes situações: Quando o dispositivo realiza alterações no seu conjunto de dados. Nesse caso, o processo só é iniciado em par com cada dispositivo vizinho em uma das duas situações (a que ocorre primeiro): após um determinado número de operações sobre o conjunto de dados, ou após um período decorrido da última alteração. A definição do período e da quantidade é definida pelo middleware. O objetivo é evitar uma atualização automática do sistema a cada atualização do conjunto de dados, o que poderia reduzir o desempenho da rede; Quando o dispositivo recebe as atualizações de outro dispositivo que solicitou a reconciliação;

10 Quando um dispositivo reconecta a rede após um período desconectado. Independente se ele realizou operações off-line ou não, o dispositivo solicita a reconciliação com seus vizinhos para manter-se atualizado. No caso, se não tiver ocorrido alterações, o processo limita-se apenas a troca de vetores de estado. A Figura 6 ilustra um exemplo de uma atualização epidêmica em um sistema formado por seis dispositivos móveis, onde M B e M E formam uma rede móvel ad hoc entre eles e ao mesmo tempo funcionam como uma espécie de ponte para atualização de outros dispositivos que, em virtude da mobilidade, se distanciaram. Na representação 6(a) da figura, os dispositivos M C e M D iniciam em paralelo uma reconciliação com os dispositivos vizinhos, que da mesma forma ao final também disparam solicitações de reconciliação com seus respectivos vizinhos. Na representação 6(b) da figura, os dispositivos M B e M E identificam diferenças entre seus estados, conseqüência do processo anterior, gerando uma reconciliação entre os dois. Como resultado disso, na representação 6(c), os mesmos dispositivos propagam as alterações recebidas na última reconciliação alcançando um sincronismo das réplicas do sistema. a) M D M A M B M E M C M F b) M D M A M C M B M E M F c) M D M A M C M B M E M F Figura 6. Representação de uma atualização epidêmica do sistema: a) reconciliação ativada pelos dispositivos M C e M D ; b) reconciliação decorrente da anterior (a) ativada pelos dispositivos M B e M E ; c) Reconciliação decorrente da anterior (b) ativada novamente pelos dispositivos M B e M E Tratamento de Conflitos Tratar conflitos envolve detectá-los e resolvê-los. Entretanto, é importante ressaltar que detecção de conflitos é um problema sintático, enquanto que resolução de conflitos é uma questão tipicamente semântica. Os nós podem até comparar suas estruturas de dados, mas não podem resolver conflitos sem saber o que elas representam. A participação da aplicação (application-aware) é fundamental na resolução dos possíveis conflitos. Utilizando o mesmo modelo que o Xmiddle, o LogMiddle usa reflexão e

11 metadados para permitir que o middleware possa decidir transparentemente como se comportar em diferentes situações de conflito. A política de resolução é definida pelo programador da aplicação em conjunto com a definição do modelo de dados em um documento XML. 4. Trabalhos Relacionados Nas seções anteriores, nós descrevemos o LogMiddle e sua solução para replicação de dados em rede P2P móveis. Abaixo comparamos o LogMiddle com algumas soluções para computação P2P em ambientes móveis. Mobile Chedar [Kotilainen et al. 2005] é um middleware para aplicações moveis P2P. Ele é uma extensão da rede P2P Chedar, permitindo que dispositivos moveis acessem a rede Chedar e possam se comunicar com outros nós (peers) Chedar móveis. Ao contrário do LogMiddle, o Mobile Chedar depende do suporte de servidores fixos da rede Chedar e portanto não aborda o ambiente das MANETs. JMobiPeer [Bisignano et al. 2005] e Proem [Kortuem 2001] são middlewares para computação P2P móvel em ambiente de MANETs. A primeira tem como característica principal à interoperabilidade com os protocolos JXME. As duas disponibilizam um framework para o desenvolvimento de aplicações P2P genéricas. Contudo, abordagens específicas, como reconciliação, em aplicações para o compartilhamento de dados, devem ser desenvolvidas pelos programadores. O LogMiddle foca na solução de replicação disponibilizando mecanismos de reconciliação para o sincronismo das réplicas. Da mesma forma que o LogMiddle, o Xmiddle [Mascolo et al. 2001] é um middleware P2P reflexivo para compartilhamento de dados em MANETs. Ele utiliza fortemente a tecnologia XML na sua arquitetura de dados e reconciliação. Nessa área específica, o Xmiddle destaca-se por abordar requisitos funcionais necessários a um middleware em uma configuração de rede puramente ad hoc. Embora ele utilize documentos XML como uma solução estruturada para o modelo de dados, sua solução para gerência de réplicas utiliza um esquema para controle de versão que exige um alto custo de armazenamento, além disso, o protocolo de reconciliação, que utiliza manipulação de documentos XML DOM em memória, elevando significantemente a quantidade de dados mantido em memória, exige ainda um custo elevado de processamento para gerar o documento reconciliado. Em virtude disso, o protótipo atual do Xmiddle só roda na plataforma J2SE. O LogMiddle utiliza uma arquitetura de gerenciamento de réplica otimizada, alcançando um baixo custo de armazenamento, o que permitiu sua implementação na plataforma J2ME para dispositivos limitados. Em [Diogenes 2006] apresentamos um modelo analítico sobre os custos de armazenamento e processamento do LogMiddle e do Xmiddle e mostramos através de uma análise comparativa entre as duas soluções que nos cenários apresentados a nossa solução obtém menores custos. 5. Conclusão Neste artigo, nós apresentamos o LogMiddle, um middleware para compartilhamento de dados ponto a ponto em redes móveis ad hoc com foco em dispositivos limitados. O LogMiddle utiliza a estratégia de replicação otimista como mecanismo para compartilhamento de dados. A arquitetura para gerência de réplicas do LogMiddle é

12 baseada no uso de log único de armazenamento, o que permite um baixo custo de armazenamento e otimiza o custo de processamento durante o processo de reconciliação. O LogMiddle ainda disponibiliza um framework para a construção de aplicações que usam o middleware, elevando assim o nível de abstração em relação aos aspectos distribuídos. O modelo de dados das aplicações é restrito a tipos básicos como valores texto e numéricos. Assim, uma evolução do middleware seria utilizar estruturas de dados mais complexos, como por exemplo, dados binários. Como trabalhos futuros, pretende-se conduzir uma avaliação sistemática da solução proposta, tanto em ambientes de simulação quanto de forma empírica, de forma a podermos correlacionar os resultados analíticos, descritos em [Diógenes 2006], com aqueles obtidos a partir da utilização do modelo na prática. 6. Referências Bisignano, M., Modica, G. D., and Tomarchio, O. (2005), JMobiPeer: a middleware for mobile peer-to-peer computing in MANETs, In Proc. of the 25th IEEE International Conference on Distributed Computing Systems Workshops (ICDCSW 05). Bluetooth (1999), Bluetooth Core Specification v1.2, disponível em: Acesso em: dezembro/2005. Capra, L., Emmerich, W. and Mascolo. C. (2001), Middleware for Mobile Computing: Awareness vs. Transparency, In Int. 8th Workshop on Hot Topics in Op. Systems, May. Demers, A., Greene, D., Hauser, C., Irish, W., Larson, J., Shenker, S., Sturgis, H., Swinehart, D. and Terry, D. (1987), Epidemic Algorithms for Replicated Database Maintenance, In Proc. of the sixth annual ACM Symposium on Principles of distributed computing,, Canada. Diogenes, F. (2006), Logmiddle: Um Middleware para o Compartilhamento de Dados em Redes Móveis Ad Hoc, Dissertação de Mestrado no curso de Mestrado em Informática Aplicada (MIA) na Universidade de Fortaleza, Em preparação. Giordano, S., and Urpi, A. (2004), Self-Organized and Cooperative Ad Hoc Networking, Chapter 13 in Mobile Ad hoc networking, IEEE Press and John Wiley. Hupfeld F. (2004), Log-Structured Storage for Efficient Weakly-Connected Replication, IEEE: 24 th Inter. Conf. on Distributed Computing System Workshops, May, Tokyo, Japan. Kotilainen, N., Weber, M., Vapa, M. and Vuori, J. (2005), Mobile Chedar - A Peer-to-Peer Middleware for Mobile Devices, In Proc. of the 3rd Int. Conf. on Pervasive Computing and Communications Workshops, March. Kortuem, G. (2001), Proem: a peer-to-peer computing platform for mobile ad-hoc networks, In Proc. of the International Conference (UbiComp2001), Atlanta, Georgia, Octuber. Mascolo, C., Capra, L., and Emmerich, W. (2001), An XML-based Middleware for Peer-to- Peer Computing, In Proc. of the Inter. Conf. on P2P Computing, Linkoping, Sweden, Aug. Mascolo, C., Capra, L. and Emmerich, W. (2002) Mobile Computing Middleware, Advanced Lectures on Networking, NETWORKING Conference in Pisa (May 2002), Italy. Oram, A. (2001), Peer-to-Peer: Harnessing the Power of Disruptive Technologies, O Reilly. Schollmeier, R. (2001), A definition of peer-to-peer networking towards a delimitation against classical client-server concepts, In Proc. of the 7th EUNICE Open European Summer School and the IFIP Workshop on IP and ATM traffic management, Paris, September.

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

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

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

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

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

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

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

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

Bancos de Dados III. Replicação de Dados. Rogério Costa rogcosta@inf.puc-rio.br. Replicação

Bancos de Dados III. Replicação de Dados. Rogério Costa rogcosta@inf.puc-rio.br. Replicação Bancos de Dados III Replicação de Dados Rogério Costa rogcosta@inf.puc-rio.br 1 Replicação Processo de criar e manter réplicas de versões dos objetos da base de dados (como tabelas) em um ambiente de banco

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

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

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME Java para Dispositivos Móveis Desenvolvendo Aplicações com J2ME Thienne M. Johnson Novatec Capítulo 1 Introdução à computação móvel 1.1 Computação móvel definições Computação móvel está na moda. Operadoras

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

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

Agregador de feeds RSS para dispositivos móveis

Agregador de feeds RSS para dispositivos móveis Agregador de feeds RSS para dispositivos móveis Disciplina: Computação Móvel Professor: Mauro Nacif Rocha Data: 27/02/2007 Hadriel Toledo Lima 50290 Juliana Pinheiro Campos 47683 Luis Felipe Hussin Bento

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

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

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

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com Modelos de Arquiteturas Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Arquitetura de Sistemas Distribuídos Clientes e Servidores Peer-to-Peer Variações Vários Servidores Proxy Código Móvel

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

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

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

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

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

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede O sistema de nome de domínio (DNS) é um sistema que nomeia computadores e serviços de rede e é organizado em uma hierarquia de domínios.

Leia mais

3 Trabalhos Relacionados

3 Trabalhos Relacionados 35 3 Trabalhos Relacionados Alguns trabalhos se relacionam com o aqui proposto sob duas visões, uma sobre a visão de implementação e arquitetura, com a utilização de informações de contexto em SMA, outra

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

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

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

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

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

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

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

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

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP 1 INTRODUÇÃO Devido ao crescimento da Internet, tanto do ponto de vista do número de usuários como o de serviços oferecidos, e o rápido progresso da tecnologia de comunicação sem fio (wireless), tem se

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

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

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

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

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

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

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto Introdução a computação móvel Monografia: Middlewares para Rede de Sensores sem Fio Uma avaliação na ótica de Adaptação ao Contexto Adriano Branco Agenda Objetivo do trabalho O que é uma WSN Middlewares

Leia mais

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

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013 MC714 Sistemas Distribuídos 2 semestre, 2013 Virtualização - motivação Consolidação de servidores. Consolidação de aplicações. Sandboxing. Múltiplos ambientes de execução. Hardware virtual. Executar múltiplos

Leia mais

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues. bruno@urbano.eti.br

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues. bruno@urbano.eti.br Controle de Versão Prof. Msc. Bruno Urbano Rodrigues bruno@urbano.eti.br Apresentação - Docente Mestre em Ciência da Computação na Universidade Federal de Goiás. Especialista em Gestão de Software pela

Leia mais

Trabalhos Relacionados 79

Trabalhos Relacionados 79 Trabalhos Relacionados 79 6 Avaliação e Testes Neste capítulo são apresentados alguns testes que foram realizados com o a solução de Gerenciamento de Mobilidade (API SIP User Agent) e com o sistema publish/subscribe

Leia mais

2 Atualidade de uma base de dados

2 Atualidade de uma base de dados 2 Atualidade de uma base de dados Manter a atualidade de uma base de dados é um problema que pode ser abordado de diferentes maneiras. Cho e Garcia-Molina [CHO] definem esse problema da seguinte forma:

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

On Scalability of Software-Defined Networking

On Scalability of Software-Defined Networking On Scalability of Software-Defined Networking Bruno dos Santos Silva bruno.silva@ic.uff.br Instituto de Computação IC Universidade Federal Fluminense UFF 24 de Setembro de 2015 B. S. Silva (IC-UFF) On

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC Configurador Automático e Coletor de Informações Computacionais GOVERNO FEDERAL SOFTWARE PÚBLICO software livre desenvolvido pela Dataprev Sistema de Administração

Leia mais

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer lugar e independente da plataforma, bastando para isso

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito - Switch na Camada 2: Comutação www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução A conexão entre duas portas de entrada e saída, bem como a transferência de

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

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

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

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 FileMaker Pro 14 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 2007-2015 FileMaker, Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

Sistemas Distribuídos Aula 2

Sistemas Distribuídos Aula 2 Sistemas Distribuídos Aula 2 Prof. Alexandre Beletti Ferreira Tipos de Sistemas Distribuídos Sistemas de Computação Distribuída Alta Disponibilidade / Balanceamento de carga Alto Desempenho 1 Sistemas

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Tecnologia de Redes de Computadores - aula 5

Tecnologia de Redes de Computadores - aula 5 Tecnologia de Redes de Computadores - aula 5 Prof. Celso Rabelo Centro Universitário da Cidade 1 Objetivo 2 3 4 IGPxEGP Vetor de Distância Estado de Enlace Objetivo Objetivo Apresentar o conceito de. Conceito

Leia mais

5.2 MAN s (Metropolitan Area Network) Redes Metropolitanas

5.2 MAN s (Metropolitan Area Network) Redes Metropolitanas MÓDULO 5 Tipos de Redes 5.1 LAN s (Local Area Network) Redes Locais As LAN s são pequenas redes, a maioria de uso privado, que interligam nós dentro de pequenas distâncias, variando entre 1 a 30 km. São

Leia mais

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 FileMaker Pro 13 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 2007-2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia 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

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet: Comunicação em uma rede Ethernet A comunicação em uma rede local comutada ocorre de três formas: unicast, broadcast e multicast: -Unicast: Comunicação na qual um quadro é enviado de um host e endereçado

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza Continuando o módulo 03 da primeira unidade, iremos abordar sobre

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

2 Fundamentação Conceitual

2 Fundamentação Conceitual 2 Fundamentação Conceitual 2.1 Computação Pervasiva Mark Weiser define pela primeira vez o termo Computação Ubíqua ou Computação Pervasiva (Ubiquitous Computing) em (10). O autor inicia o trabalho com

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

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

Protocolos Hierárquicos

Protocolos Hierárquicos Protocolos Hierárquicos O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações distribuídas Enlaces de comunicação fibra, cobre, rádio,

Leia mais

CS: : Um Simulador de Protocolos para Computação Móvel

CS: : Um Simulador de Protocolos para Computação Móvel MobiCS CS: : Um Simulador de Protocolos para Computação Móvel Daniel de Angelis Cordeiro Rodrigo Moreira Barbosa {danielc,rodbar}@ime.usp.br 7 de outubro de 2004 Motivação O desenvolvimento de aplicações

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Guia do Usuário commanager

Guia do Usuário commanager Guia do Usuário commanager 1 Sumário 1 Introdução 3 2 commanager: 4 2.1. Pré-requisitos: 4 2.2. Arquitetura da aplicação: 4 2.3. Configuração do Monitor e Acesso ao commanager: 5 2.4. Interação do Usuário

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Sistemas Distribuídos. Introdução

Sistemas Distribuídos. Introdução Sistemas Distribuídos Introdução Definição Processos Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Executados

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

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

BlackBerry Mobile Voice System

BlackBerry Mobile Voice System BlackBerry Mobile Voice System Comunicações móveis unificadas O BlackBerry Mobile Voice System (BlackBerry MVS) leva os recursos do telefone do escritório aos smartphones BlackBerry. Você pode trabalhar

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 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE INTRODUÇÃO (KUROSE) A Camada de Rede é uma peça central da arquitetura de rede em camadas A sua função é a de fornecer serviços de comunicação diretamente aos processos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

Leia mais

Itinerários de Ônibus Relatório Final

Itinerários de Ônibus Relatório Final CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...

Leia mais

IBM Managed Security Services for Agent Redeployment and Reactivation

IBM Managed Security Services for Agent Redeployment and Reactivation Descrição de Serviços IBM Managed Security Services for Agent Redeployment and Reactivation EM ADIÇÃO AOS TERMOS E CONDIÇÕES ESPECIFICADOS ABAIXO, ESSA DESCRIÇÃO DE SERVIÇOS INCLUI AS IBM MANAGED SECURITY

Leia mais