LogMiddle: Um Middleware P2P para Replicação de Dados em Redes Móveis Ad Hoc
|
|
- Amália Leão Benke
- 8 Há anos
- Visualizações:
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 Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa
Leia maisSISTEMAS 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 maisSistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor
Leia maisArquitetura de Rede de Computadores
TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador
Leia maisMÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos
MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada
Leia maisFaculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.
Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos
Leia maisUNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS
UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS PROFESSOR: CARLOS BECKER WESTPHALL Terceiro Trabalho
Leia maisAula 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 maisBancos 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 maisRoteamento e Comutação
Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede
Leia mais1 http://www.google.com
1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou
Leia maisJava. 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 maisRoteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido
Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Comunicação coletiva Modelo Peer-to-Peer Slide 6 Nielsen C. Damasceno Introdução Os modelos anteriores eram realizado entre duas partes: Cliente e Servidor. Com RPC e RMI não é possível
Leia maisSistemas Distribuídos Arquitetura de Sistemas Distribuídos Aula II Prof. Rosemary Silveira F. Melo Arquitetura de Sistemas Distribuídos Conceito de Arquitetura de Software Principais elementos arquiteturais
Leia maisAgregador 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 maisSoftware 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 maisUm Driver NDIS Para Interceptação de Datagramas IP
Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para
Leia mais4 Um Exemplo de Implementação
4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação
Leia maisIW10. 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 maisModelos 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 maisSISTEMAS DISTRIBUÍDOS
Arquiteturas www.pearson.com.br capítulo 2 slide 1 2.1 Estilos Arquitetônicos Formado em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre
Leia maisCurso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2
Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing
Leia maisEntendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
Leia maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Arquiteturas Capítulo 2 Agenda Estilos Arquitetônicos Arquiteturas de Sistemas Arquiteturas Centralizadas Arquiteturas Descentralizadas Arquiteturas
Leia mais3 Arquitetura do Sistema
3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo
Leia maisProfessor: 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 mais3 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 maisConsiderações no Projeto de Sistemas Cliente/Servidor
Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis
Leia maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia mais2 Trabalhos Relacionados
2 Trabalhos Relacionados Este capítulo apresenta trabalhos relacionados ao problema da travessia de firewalls/nat por aplicações CORBA, alguns dos quais tiveram grande influência no desenvolvimento desta
Leia mais3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança
3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade
Leia mais3 SCS: Sistema de Componentes de Software
3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário
Leia maisISO/IEC 12207: Gerência de Configuração
ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que
Leia maisBancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info
Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds
Leia maisArquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo
Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante
Leia mais1 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 maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Modelo cliente e servidor Slide 2 Nielsen C. Damasceno Modelos Cliente - Servidor A principal diferença entre um sistema centralizado e um sistema distribuído está na comunicação
Leia maisSistemas Distribuídos. 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 mais3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio
32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio
Leia maisArpPrintServer. 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 maisIntrodução ao Active Directory AD
Introdução ao Active Directory AD Curso Técnico em Redes de Computadores SENAC - DF Professor Airton Ribeiro O Active Directory, ou simplesmente AD como é usualmente conhecido, é um serviço de diretórios
Leia maisIMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET
1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com
Leia maisAPLICAÇÃ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 mais5 Mecanismo de seleção de componentes
Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações
Leia maisIntroduçã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 maisProf. 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 maisControle 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 maisTrabalhos 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 mais2 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 maisPEER DATA MANAGEMENT SYSTEM
PEER DATA MANAGEMENT SYSTEM INTRODUÇÃO, INFRA-ESTRUTURA E MAPEAMENTO DE ESQUEMAS AGENDA Data Management System Peer Data Management System P2P Infra-estrutura Funcionamento do PDMS Mapeamento de Esquemas
Leia maisOn 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 maisEngenharia 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 maisA 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 maisSistemas 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 maisMANUAL 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 maisA 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 maisSistemas 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 maisProf. 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 maisMÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS
MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares
Leia mais04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.
MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância
Leia maisIntrodução ao Modelos de Duas Camadas Cliente Servidor
Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos
Leia maisFileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14
FileMaker Pro 14 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 2007-2015 FileMaker, Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,
Leia maisUNIVERSIDADE. 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 maisSistemas 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 maisCurso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento
Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados
Leia maisHardware (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 maisTecnologia de Redes de Computadores - aula 5
Tecnologia de Redes de Computadores - aula 5 Prof. Celso Rabelo Centro Universitário da Cidade 1 Objetivo 2 3 4 IGPxEGP Vetor de Distância Estado de Enlace Objetivo Objetivo Apresentar o conceito de. Conceito
Leia mais5.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 maisFileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13
FileMaker Pro 13 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 2007-2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,
Leia maisNoções de. Microsoft SQL Server. Microsoft SQL Server
Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados
Leia maisHá dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:
Comunicação em uma rede Ethernet A comunicação em uma rede local comutada ocorre de três formas: unicast, broadcast e multicast: -Unicast: Comunicação na qual um quadro é enviado de um host e endereçado
Leia maisSistemas Distribuídos
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 maisSUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2
SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2
Leia maisESTUDO 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 maisOrientaçã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 mais2 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 maisSMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback
SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada
Leia maisMANUAL 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 maisProtocolos 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 maisCS: : 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 maisServiç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 maisGuia 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 maisUFG - 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 maisSistemas 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 maisDocumento de Análise e Projeto VideoSystem
Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento
Leia maisADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia
ADDRESS RESOLUTION PROTOCOL Thiago de Almeida Correia São Paulo 2011 1. Visão Geral Em uma rede de computadores local, os hosts se enxergam através de dois endereços, sendo um deles o endereço Internet
Leia maisNa 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 maisBlackBerry 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 maisCapítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de 2007 - Página
Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento IP 1 História e Futuro do TCP/IP O modelo de referência TCP/IP foi desenvolvido pelo Departamento de Defesa dos Estados Unidos (DoD). O DoD exigia
Leia maisCapítulo 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 maisSistemas 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 maisIntroduçã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 maisCapí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 maisProjeto 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 maisItinerá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 maisIBM 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