• Nenhum resultado encontrado

Pré-seleção e pré-carga de dados para bancos de dados móveis

N/A
N/A
Protected

Academic year: 2021

Share "Pré-seleção e pré-carga de dados para bancos de dados móveis"

Copied!
82
0
0

Texto

(1)Universidade Federal de Pernambuco Centro de Informática Pós-Graduação em Ciência da Computação. PRÉ-SELEÇÃO E PRÉ-CARGA DE DADOS PARA BANCOS DE DADOS MÓVEIS. DISSERTAÇÃO DE MESTRADO. ESTE TRABALHO FOI APRESENTADO À PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO DO CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIA DA COMPUTAÇÃO.. Aluno Orientadora. Mariano Cravo Teixeira Neto Profª Ana Carolina Salgado. mctn@cin.ufpe.br acs@cin.ufpe.br. Recife Agosto de 2005.

(2) Universidade Federal de Pernambuco Centro de Informática Pós-Graduação em Ciência da Computação. PRÉ-SELEÇÃO E PRÉ-CARGA DE DADOS PARA BANCOS DE DADOS MÓVEIS. DISSERTAÇÃO DE MESTRADO Banca examinadora: Profª Valéria Times CIn – UFPE Prof. Jones Oliveira de Albuquerque UFRPE Profª Ana Carolina Salgado CIn - UFPE. ESTE TRABALHO FOI APRESENTADO À PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO DO CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIA DA COMPUTAÇÃO.. Recife Agosto de 2005. ii.

(3)

(4) Resumo. Um dos principais objetivos do acesso a dados móveis é atingir a ubiqüidade inerente aos sistemas móveis: ter acesso à informação independentemente de local e hora. Devido a restrições de sistemas móveis como, por exemplo, memória limitada e largura de banda estreita, é natural que se pesquisem métodos para amenizar esses problemas. Este trabalho abordará questões relativas ao gerenciamento de cache em bancos de dados móveis, com ênfase em técnicas para reduzir falhas à consulta de dados enquanto o dispositivo móvel esteja conectado, com pouca largura de banda ou fora de uma rede de dados. Dessa forma, espera-se reduzir o consumo de banda e aumentar, durante uma desconexão, a disponibilidade das informações armazenadas. Com o objetivo de aumentar a disponibilidade dos dados no SGBD localizado no cliente móvel, este trabalho propõe selecionar a priori (pré-seleção de dados) um subconjunto dos dados disponíveis no SGBD servidor e copiá-los para o SGBD no cliente móvel. Para a seleção a priori dos dados, este trabalho propõe minerar o histórico de acesso a dados do usuário do cliente móvel.. Palavras-chave: banco de dados móveis, pré-seleção de dados, gerenciamento de cache, mineração de dados, operações desconectadas.. iii.

(5) Abstract. One of the main goals of mobile data access is to reach the ubiquity inherent to the mobile systems: to access information regardless of time and place. Due to mobile systems restrictions such as, for instance, limited memory and narrow bandwidth, it is only natural that researchers expend efforts to soothe such issues. This work will approach issues regarding the cache management in mobile databases, with emphasis in techniques to reduce cache faults while the mobile device is either connected, or with a narrow bandwidth, or disconnected at all. Thus, it is expected to reduce the bandwidth consumption while the mobile device is connected and improve data availability while a disconnection. In order to improve data availability on the DBMS hosted on mobile device side, this work proposes to select a priori a subset of the data available on the server side DBMS and copy them to the mobile device side DBMS. To the a priori data selection, this work proposes to mine the query trace log of the mobile device user.. Keywords: mobile databases, hoarding, cache management, data mining, disconnected operations.. iv.

(6) Agradecimentos. À professora Ana Carolina Salgado, por sua orientação e apoio durante minha vida acadêmica; Ao professor Sérgio Lifschitz, PUC-Rio, por sua colaboração durante os 10 meses de minha estada no Rio de Janeiro; Aos colegas Marcelo Nery, Sérgio Côrtes, Marcos Salles, por suas sugestões; A Wander Teixeira, Petrobras, por seu apoio para conclusão deste trabalho; A minha família, Bárbara e Sofia, pelo amor, apoio, paciência e compreensão constantes, essenciais para a conclusão deste trabalho.. v.

(7) Índice. Resumo ............................................................................................................................ iii Abstract............................................................................................................................ iv Agradecimentos ................................................................................................................ v Índice ............................................................................................................................... vi Figuras ........................................................................................................................... viii Quadros............................................................................................................................ ix Capítulo 1 - Introdução..................................................................................................... 1 1.1 Motivação ............................................................................................................... 2 1.2 Objetivo .................................................................................................................. 3 1.3 Definição do Problema ........................................................................................... 4 1.4 Organização da dissertação .................................................................................... 5 Capítulo 2 – Sistemas de computação móvel ................................................................... 6 2.1 Características de sistemas móveis......................................................................... 6 2.1.1 Portabilidade.................................................................................................... 6 2.1.2 Mobilidade....................................................................................................... 9 2.1.3 Comunicação ................................................................................................. 10 2.1.4 Espaço............................................................................................................ 14 2.1.5 Armazenamento local .................................................................................... 15 2.2 Arquitetura de rede sem-fio.................................................................................. 15 2.3 Arquiteturas de sistemas de computação móvel................................................... 17 2.3.1 Modelo Cliente-Servidor ............................................................................... 17 2.3.2 Modelo Cliente-Agente-Servidor .................................................................. 18 2.3.3 Modelo Cliente-Interceptador-Servidor ........................................................ 19 2.3.4 Modelo Ponto a Ponto (P2P) ......................................................................... 19 2.3.5 Modelo de Agentes Móveis........................................................................... 20 2.4 Sistemas de Gerenciamento de Dados Móveis Existentes ................................... 21 2.4.1 CODA............................................................................................................ 21 2.4.2 Seer ................................................................................................................ 23 2.4.3 Regras de Associação para páginas web em computação móvel .................. 23 2.4.4 Synchrologic iMobile .................................................................................... 24 2.4.5 CIMP ............................................................................................................. 25 2.4.6 STEP.............................................................................................................. 26 2.4.7 Resumo dos trabalhos.................................................................................... 26 Capítulo 3 - Fundamentação teórica............................................................................... 28 3.1 Aprendizagem de máquina ................................................................................... 28 3.1.1 Mineração de dados ....................................................................................... 29 3.1.2 Árvore de decisão .......................................................................................... 31 3.1.3 Regras de classificação.................................................................................. 33 Algoritmo bayesiano ingênuo................................................................................. 34 3.1.4 Regras de associação ..................................................................................... 36 3.1.5 Agrupamentos................................................................................................ 37 3.2 Escolha da técnica de aprendizagem de máquina................................................. 38 3.3 Considerações Finais ............................................................................................ 39 Capítulo 4 – Sistema de pré-seleção e pré-carga de dados em bancos de dados móveis 40 4.1 Arquitetura do Sistema ......................................................................................... 40 vi.

(8) 4.2 Infra-estrutura do SGBD no cliente móvel........................................................... 41 O dispositivo móvel................................................................................................ 41 4.3 Agente interceptador............................................................................................. 45 4.3.1 O servidor fixo............................................................................................... 46 Modelo de comunicação do PostgreSQL ............................................................... 46 Processamento de Consultas no PostgreSQL ......................................................... 48 Componente de pré-seleção de dados..................................................................... 50 4.3.2 Associação entre Dados do Banco................................................................. 52 Decomposição do problema ................................................................................... 52 O algoritmo Apriori ................................................................................................ 53 Geração de candidatos ............................................................................................ 54 Geração das regras de associação fortes................................................................. 55 4.4 O experimento ...................................................................................................... 56 Base de dados ......................................................................................................... 56 Execução dos testes ................................................................................................ 59 Comparação pré-seleção x política LRU................................................................ 61 4.5 Considerações Finais ............................................................................................ 63 Capítulo 5 – Conclusão .................................................................................................. 65 Contribuições desta dissertação.................................................................................. 66 Trabalhos futuros........................................................................................................ 67 Referências ..................................................................................................................... 68. vii.

(9) Figuras Figura 2.1 - Arquitetura geral de um sistema de computação móvel (adaptação da figura 1 de [YD01])........................................................................................................... 16 Figura 2.2 - Modelo Cliente-Servidor [PS98] ................................................................ 18 Figura 3.1- Árvore de decisão indicando se é provável que um consumidor compre um determinado produto ou não. .................................................................................. 32 Figura 4.1 - Diagrama de componentes - Arquitetura do sistema .................................. 41 Figura 4.2 - Arquitetura do HSQLDB ............................................................................ 42 Figura 4.3- Diagrama de classes do pacote JDBC do HSQLDB ................................... 42 Figura 4.4 -Diagrama de seqüência: resolvendo uma consulta ...................................... 44 Figura 4.5 - Processos e módulos do PostgreSQL (adaptado de [Lan00])..................... 47 Figura 4.6 - Processos e módulos do PostgreSQL [Sal04]............................................. 48 Figura 4.7 - Diagrama de classes do Apriori ................................................................. 50 Figura 4.8- Diagrama de seqüência do QueriesHoard.................................................... 51 Figura 4.9 – O algoritmo Apriori [AS94]....................................................................... 54 Figura 4.10- Entidades e relacionamentos da base de dados TPC-W [TPCW02] ......... 57 Figura 4.11 - Diagrama de colaboração. Troca de mensagens entre cliente móvel e servidor fixo............................................................................................................ 60 Figura 4.12 - Cache Hit x Tamanho da cache ............................................................... 62 Figura 4.13 - Banda x tamanho da cache ....................................................................... 63. viii.

(10) Quadros. Quadro 2.1 – Desafios da computação móvel, decorrentes de suas principais propriedades ........................................................................................................... 13 Quadro 2.2 – Comparação entre os sistemas abordados neste trabalho ......................... 27 Quadro 3.1 - Dados de clima .......................................................................................... 30 Quadro 3.2 - Exemplo de conjunto de treinamento........................................................ 31 Quadro 4.1 - Exemplo de dados gerados pelo DBT-1.................................................... 58 Quadro 4.2 - Exemplos de consultas feitas no cliente móvel......................................... 59 Quadro 4.3 - Exemplos de regras de associação ............................................................ 60 Quadro 4.4 - Vantagens e desvantagens......................................................................... 64 Quadro 5.1 - Comparativo entre característica de propostas.......................................... 66. ix.

(11) Capítulo 1 - Introdução A possibilidade de um indivíduo ter acesso à informação em qualquer lugar que ele esteja é uma vantagem adquirida através do uso de dispositivos móveis. Dispositivos, sejam eles telefones celulares, computadores de mão (handheld computers), ou até mesmo notebooks, estão cada vez mais acessíveis dado a avanços tecnológicos de hardware e de rede [Bar99]. Essa crescente necessidade é a motivação de pesquisas e trabalhos no desenvolvimento de mecanismos de acesso a dados móveis. À medida que usuários tornam-se mais dependentes deste tipo de acesso à informação, os repositórios destes dados deverão ser capazes de atender a esta nova demanda. Tendo em vista o amadurecimento do uso de dispositivos móveis, os dados disponíveis em sistemas de arquivos, bancos de dados, e qualquer outro tipo de repositório de dados deverão oferecer uma maneira de serem acessados a partir de programas que estejam sendo executados em dispositivos móveis. Apesar do avanço tecnológico dos dispositivos móveis, estes ainda têm como características restritivas, entre outras, tempo de bateria, tamanho de memória, capacidade de armazenamento e conectividade. A um determinado custo e tecnologia, dispositivos móveis sempre serão mais limitados se comparados a computadores de mesa [Sat96]. Conectividade de rede destes dispositivos, especialmente redes sem-fio que cobrem áreas grandes, tende a variar bastante sua largura de banda, latência, confiabilidade e custo em relação às redes físicas. A energia limitada por baterias requer que atividades do cliente móvel sejam negadas, evitadas ou diminuídas para minimizar o gasto de energia e prolongar o tempo de uso do dispositivo. Todas essas restrições são inerentes a dispositivos móveis, o que implica que mesmo havendo avanços no hardware (p. ex., mais memória, aumento da duração de uma carga de bateria), estes não devem eliminá-las. Um dos problemas que ainda está em aberto no campo de pesquisa em banco de dados móveis é a minimização de falhas no momento em que o dispositivo se encontra desconectado [BBHB+04]. Este trabalho vem propor um mecanismo de gerência de cache em que seus dados são pré-selecionados através da mineração do histórico de uso dos dados do lado do cliente. Com a mineração desses dados, serão geradas regras de associação [AI93] para predizer itens de dados que têm mais probabilidade de serem usados em um futuro próximo pelo usuário do cliente móvel.. 1.

(12) 1.1 Motivação Apesar do hardware e das redes que dão suporte aos clientes móveis já estarem disponíveis no mercado, o software, para lidar com tal paradigma e atender às expectativas de seus usuários, ainda precisa de adaptações e melhorias para que possa desempenhar o seu papel mais adequadamente. Considere, por exemplo, um médico que dê plantão em alguns hospitais e ensine no hospital universitário. Imaginando que nestes locais houvesse uma rede sem fio, o médico teria acesso aos laudos e exames médicos de seus pacientes e a dados relativos a seus alunos residentes através de um computador de mão (handheld) durante suas visitas. Seria interessante, entretanto, que estes dados também estivessem disponíveis enquanto este médico estivesse se locomovendo entre esses locais, mesmo não havendo uma rede sem fio disponível para que ele se conecte. Clientes móveis encaram várias dificuldades no momento de acessar dados de um servidor. Uma vez que estes dispositivos (handhelds e celulares, por exemplo) devem possuir tamanhos reduzidos, recursos como memória e processador são mais escassos comparados a um computador de mesa. Conectividade de rede destes dispositivos, especialmente redes sem-fio que cobrem áreas grandes, tende a variar bastante sua largura de banda, latência, confiabilidade e custo em relação às redes físicas. A energia limitada por baterias requer que atividades do cliente móvel sejam negadas, evitadas ou diminuídas para minimizar o gasto de energia e prolongar o tempo de uso do dispositivo. O custo relativo a acesso de serviços de um servidor muda à medida que o cliente se move. E por fim, um cliente móvel está mais sujeito a roubo, perda e danos que uma máquina de mesa. Todas essas restrições são inerentes a dispositivos móveis, o que indica que avanços de hardware não devem eliminá-las por completo, mas amenizálas. Várias linhas de pesquisa estão sendo abordadas com o intuito de desenvolver mecanismos e técnicas para contornar os problemas que envolvem o acesso à informação em um ambiente de computação móvel [PS98]. Operações desconectadas [Kis93] são um subconjunto destes mecanismos que têm como propósito aumentar a disponibilidade de dados quando o dispositivo estiver intencionalmente ou não desconectado de sua rede. Operações desconectadas referem-se à habilidade do cliente poder continuar operando mesmo estando sem acesso à rede por emular (mascarando) os serviços que estariam disponíveis remotamente. 2.

(13) Desta maneira, resolver questões como: •. que dados devem ser escolhidos para serem trazidos para o cliente móvel,. •. quando estes dados devem ser trazidos, e. •. que quantidade de dados deve ser trazida. são a motivação para estudar técnicas para aumentar a disponibilidade de dados para o usuário de dispositivos móveis. Enfim, estudar métodos eficazes e eficientes para disponibilização transparente de dados ao usuário, de modo que ele possa usar suas aplicações da maneira e no local mais conveniente possível.. 1.2 Objetivo Um dos aspectos trabalhados em acesso a dados móveis é relativo a operações desconectadas. Quanto aos tipos de desconexões, aquelas involuntárias são as que ocorrem em um ambiente de computação móvel quando há um impedimento temporário de comunicação. Este tipo de desconexão pode ocorrer quando houver limitações de ambiente como, por exemplo, a inabilidade do dispositivo móvel operar dentro de um túnel, no subterrâneo, ou estar fora do alcance da rede móvel. Uma desconexão é considerada voluntária quando o usuário deliberadamente não se conecta à rede. Isto pode acontecer para evitar custos de acesso à rede ou para evitar consumo de bateria, por exemplo. As técnicas que comumente envolvem as operações desconectadas de acesso a dados em clientes móveis são [SKM+93]: tornar dados disponíveis localmente em cache nos clientes móveis antes da desconexão; deixar o acesso aos dados da cache transparentes ao usuário; e refletir as alterações feitas nestes dados que estejam em cache no momento que a conexão se re-estabeleça. Inserido neste contexto, o processo de hoarding, ou pré-seleção de dados, envolve escolher que dados estarão disponíveis na cache antes que haja a desconexão. O objetivo desta dissertação é estudar técnicas conhecidas e sugerir uma alternativa para melhorar o desempenho de operações desconectadas em um ambiente de computação móvel, com ênfase em suas políticas de hoarding. Para tanto, foram estudadas diferentes técnicas como: hoarding usando declaração explícita de dados como na implementação do CODA [KS92] da CMU; hoarding baseado em clustering como sugerido por Kuenning [Kue97] e Popek [KP97]; hoarding baseado em regras de. 3.

(14) associação, como sugerido por Saygin [SUE00]; hoarding baseado em análise de grafos, como sugerido por Bürklen [BMR04], entre outras técnicas disponíveis na literatura e implementadas em alguns sistemas.. 1.3 Definição do Problema O problema a ser abordado nesta pesquisa é a minimização de falhas em operações desconectadas. A natureza dessas falhas, neste trabalho, é relativa ao acesso a dados a partir de um dispositivo móvel com acesso a um banco de dados. Em virtude da natureza dos dados (dados estruturados, dados semi-estruturados, arquivos), várias técnicas foram e estão sendo pesquisadas para tornar viáveis operações desconectadas: [SC04], [SUE00], [YD01], [BMR04], [PJFY04], [ZHH03], [Kue97] e [Kis93]. Essas técnicas têm o objetivo comum de escolher quais dados o usuário provavelmente usará e, sendo assim, disponibilizar estes dados em uma cache local no cliente móvel antes que ocorra uma desconexão. Duas técnicas utilizadas são: Pré-carga de dados (pre-fetching): processo de transferência de dados da máquina servidora para o cliente móvel de forma transparente ao usuário. Pré-seleção de dados (hoarding): processo de seleção de dados baseado na análise do acesso aos dados pelo usuário no cliente móvel. A partir dessa análise, é possível realizar pré-carga com dados provavelmente relevantes para o usuário. O problema também envolve a escolha da granularidade em que estes dados deverão ser avaliados para preencher a cache, que no caso de um banco de dados é mais complicado que no caso de arquivos, pois pode ser relativo a atributos [CSL98], páginas [CFZ94], tuplas [Fra96], região semântica 1 [DFJ+96], entre outros [YD01]. Para esta dissertação, serão considerados as seguintes prerrogativas: •. sistemas gerenciadores de banco de dados móveis (BDs móbeis) são SGBDs que estejam instalados e executando em um dispositivo móvel.. •. cache referenciada é cache de software, isto é, um repositório em de dados localizado em um dispositivo móvel que tem como objetivo melhorar o desempenho ao acesso de dados por replicar parte de uma base de dados persistida em discos rígidos (de uma máquina servidora).. 1. Segundo o artigo, o cliente mantém uma descrição semântica dos dados em sua cache, como, por exemplo, uma fórmula, definido como uma consulta residual (remainder query). Região semântica são os grupos de dados definidos por essas consultas residuais.. 4.

(15) 1.4 Organização da dissertação No Capítulo 2, serão discutidas características inerentes à computação móvel, como suas restrições de rede, energia, segurança, entre outros. Também serão abordados modelos de arquitetura de rede e modelos de sistemas de computação móvel. Por fim, serão revisados trabalhos relevantes quanto à gerência de dados móveis. No Capítulo 3, serão abordados os fundamentos de inteligência artificial, em especial técnicas de aprendizagem de máquina. O objetivo deste capítulo é dar embasamento para as escolhas tomadas neste trabalho quanto a técnica de aprendizagem de máquina adotada nesta dissertação. No Capítulo 4, serão apresentadas tanto a proposta de gerenciamento de cache em bancos de dados móveis a partir de pré-seleção e pré-carga em um banco de dados móvel quanto o experimento realizado para a prova de conceito. Em seguida, será exposta a infra-estrutura do SGBD no lado do cliente necessária para a implementação do sistema assim como será discutida a arquitetura de agentes necessária para a comunicação entre o SGBD no cliente móvel e o SGBD na estação fixa. No Capítulo 5, serão mostradas as conclusões deste trabalho, as principais contribuições, limitações e quais atividades poderão ser feitas para dar continuidade ao mesmo.. 5.

(16) Capítulo 2 – Sistemas de computação móvel Neste capítulo, serão apresentados os fundamentos da computação móvel que esta dissertação tomou como base. Primeiramente, serão apresentadas as principais características de sistemas baseados em computação móvel e as restrições impostas por essas características. Em seguida, será revisada uma arquitetura geral de redes sem-fio. A seguir, serão apresentados modelos de arquitetura para sistemas baseados em computação móvel discutidos na literatura. Por fim, serão revisados trabalhos existentes no campo de gerência de dados móveis, abrangendo dados de naturezas diferentes: arquivos, páginas web e relações.. 2.1 Características de sistemas móveis A computação móvel, apesar de trazer benefícios e parecer ser de simples implementação, é campo de várias pesquisas, pois existem muitos fatores que impedem a utilização de todas as possibilidades de uso desta tecnologia. Acesso a informações de qualquer lugar, a qualquer hora, com mais flexibilidade e funcionalidades do que usando telefones celulares ou pagers, é a maior promessa da computação móvel, que tenta ser tão revolucionária para os computadores portáteis quanto foi o advento das redes tradicionais para os computadores de mesa. Os computadores portáteis aos poucos conquistam espaço no mercado de computação e embora ainda não seja notado no Brasil. Na Ásia, por exemplo, o mercado de dispositivos móveis, assim como dispositivos eletrônicos em geral, é bem desenvolvido e disputado. O motivo desta mudança se dar lentamente reside no fato de que a tecnologia de computação móvel enfrenta vários desafios, que vêm sendo vencidos aos poucos. Segundo Forman e Zahorjan [FZ94], estes empecilhos têm origem em 3 propriedades essenciais da computação móvel: portabilidade, mobilidade e comunicação.. 2.1.1 Portabilidade Os computadores comuns não foram projetados para serem carregados, os montadores de tais máquinas, portanto, têm certa liberdade no sentido de espaço para. 6.

(17) disposição dos componentes (tais como discos rígidos, cd-rom e placas) e dissipação de calor, por exemplo. Por sua vez, o projeto de um dispositivo móvel deve levar em conta propriedades de um bom relógio de pulso: pequeno, leve, durável, operacional em uma variedade de condições e que requer o mínimo de consumo de energia, assegurando longa vida útil para a bateria. Algumas concessões podem ser feitas em cada uma dessas áreas para que se chegue a uma boa relação entre funcionalidade e desempenho. Note-se que quando são citadas restrições de computabilidade nesta seção, nem sempre estão incluídos os notebooks, por exemplo, que tendo menor portabilidade que os computadores de mão, têm em seus modelos mais modernos, características que não deixam nada a desejar a desktops comuns. Por exemplo, a Intel lançou, em 2004, o processador para notebooks Intel Pentium M, que chega até a 1,8GHz de clock (comparável atualmente a um desktop), enquanto que alguns PDAs da mais nova geração (HP Ipaq, por exemplo) possuem processador Intel® PXA270 com 624 MHz e interface wireless no padrão IEEE 802.11b e Bluetooth. Porém, o maior poder computacional tem seu preço para os notebooks: o consumo de energia. Nos mais modernos (PowerBook da Apple e o Vaio T350P/S da Sony, por exemplo), a bateria de Lítio-Íon funciona de 5 a 9 horas, enquanto que nos melhores PDAs disponíveis, a autonomia pode chegar a 5 dias com o computador em uso, segundo testes feitos com 6 tipos de PDAs [GMV02]. A seguir, são listadas algumas dificuldades de projeto impostas pela portabilidade de um dispositivo móvel [FZ94]. Energia – Componente mais pesado de um PDA, a bateria enfrenta problemas de tamanho/peso e de necessidade de recarga. Técnicas para minimização do consumo de energia podem aumentar a portabilidade reduzindo o peso e aumentando o tempo de vida da bateria. O consumo de componentes dinâmicos é proporcional a CV2F, onde C é a capacitância do circuito, V, a voltagem e F, a freqüência de clock. Esta função sugere 3 formas de economizar bateria: a capacitância pode ser reduzida por um maior nível de integração VLSI (Very Large-Scale Integration) e por tecnologia de multichips, a voltagem pode ser minimizada através do projeto dos chips e a freqüência de clock pode ser reduzida trocando-se poder computacional por menor consumo de força. O consumo pode ser diminuído também por operações inteligentes no dispositivo móvel, como desligar a tela ao perceber que o computador está ocioso. Além disso, o projeto de software também deve levar em conta o consumo de energia, este tipo de aplicação adaptável voltará a ser abordado na seção 2.3.1. Nas comunicações, transmitir consome 7.

(18) mais que receber dados, desta forma, as estações base podem, por exemplo, freqüentemente enviar mensagens por difusão (broadcast) que normalmente teriam que ser requisitadas pelo dispositivo móvel, o qual gastaria mais energia transmitindo esta requisição; Riscos de perda e extravio de dados – A portabilidade aumenta o risco de danos físicos, acesso não autorizado, perda e roubo do dispositivo móvel, tornando tais computadores menos seguros e confiáveis. Para reduzir estes riscos, o usuário deve ter uma preocupação ainda maior com operações de backup e o armazenamento de dados importantes numa base remota que possa ser acessada quando necessário; Interface com o usuário limitada – É desnecessário lembrar que o uso de mouses é inviável nos PDAs que realizam interface com o usuário através de botões ou canetas stylus. Para as aplicações que necessitam da abertura de várias janelas ao mesmo tempo, estes dispositivos também são inapropriados, levando a desafios de design gráfico, muitas vezes tendo que reduzir funcionalidades; Capacidade de armazenamento em disco – O espaço de armazenamento num computador móvel também é comprometido pelo tamanho físico e energia. E, como drives de disco consomem mais do que chips de memória, vários computadores móveis não os possuem. Algumas estratégias interessantes para contornar o problema do armazenamento são: compressão automática de arquivos, acesso a dados armazenados remotamente, compressão de páginas de memória virtual, compartilhamento de bibliotecas de código. Uma abordagem para reduzir o tamanho do código em programas executando num dispositivo móvel é a interpretação de linguagens de scripts, ao invés de execução de objetos de código, que são tipicamente maiores.. 8.

(19) 2.1.2 Mobilidade A capacidade de mudar de localidade enquanto ainda conectado à rede, aumenta a volatilidade da informação. Alguns dados considerados estáticos para computadores fixos, poderão se tornar dinâmicos em dispositivos móveis. Essa volatilidade levanta questões importantes de custo-benefício como, por exemplo, armazenar um objeto volátil em cache faz pouco sentido. A mobilidade introduz vários problemas: o endereço de rede de um computador móvel muda dinamicamente, o caminho de comunicação aumenta quando o mesmo visita uma célula vizinha, sua localização atual afeta parâmetros de configuração, assim como respostas a consultas. Em [FZ94], são discutidos alguns problemas inerentes à mobilidade de um dispositivo, listados a seguir: Migração de endereço – Na medida em que as pessoas se deslocam, seus computadores móveis usam diferentes pontos de acesso à rede ou “endereços de rede”. Uma vez que um sistema armazena o endereço de um host, este é geralmente colocado em cache com um longo tempo de expiração. Invalidar entradas defasadas está fora de questão, pela quantidade de processamento requerido. No protocolo IP (Internet Protocol), por exemplo, o IP de um host está intrinsecamente ligado a seu endereço de rede. Mover para uma nova localidade significa obter um novo IP. Geralmente, é necessária a intervenção humana para coordenar o uso de endereços. Para serem enviadas a um computador móvel, as mensagens precisam ser enviadas ao seu endereço anterior mais recente. Quatro mecanismos básicos para determinar o atual endereço de um computador são: difusão, serviços centrais, home base e ponteiros de encaminhamento (forwarding pointers). Na difusão, a mensagem é enviada a todas as células da rede e o computador procurado é requisitado a responder com o seu atual endereço. No método de serviço central, o endereço atual de cada computador móvel é mantido numa base de dados, toda vez que o computador muda de célula, envia uma mensagem para atualizar esta base. O home base consiste essencialmente da técnica de serviço central sendo distribuído, isto é, a localização de um dado computador é conhecida apenas por um servidor. O método de ponteiros de encaminhamento consiste em guardar uma cópia do novo endereço do computador móvel na célula anterior toda vez que ele muda de localidade, sendo possível atualizar esse endereço gradualmente para refletir novas mudanças. Estes quatro mecanismos são os blocos de construção das propostas de esquematização do IP móvel [IETF02];. 9.

(20) Informação dependente de localidade – Prover mecanismos que obtenham a configuração de dados apropriada a cada localidade é um desafio importante para a computação móvel. Um computador portátil carregado por um usuário pode ser usado numa grande variedade de domínios administrativos, cada um com suas convenções. Além do problema da configuração, dispositivos móveis necessitam de acesso a mais informações dependentes de localidade para, por exemplo, servir de guia em lugares não familiares a um usuário que procura saber onde fica um posto de gasolina aberto é mais próximo na direção norte de onde ele se encontra. Um grande desafio da computação móvel relacionado a este tópico é que além do custo de comunicação com elementos móveis, há o custo adicional de localizá-los. Muitas outras questões podem surgir como o acesso flexível à informação de localização do usuário sem a violação de sua privacidade; Migração de localidade – Mesmo que um computador móvel tenha a capacidade de achar o servidor mais próximo para um dado serviço, com o tempo, a migração poderá mudar esta condição. A distância física entre dois pontos não reflete necessariamente a distância das duas redes. O tamanho do caminho de comunicação pode crescer desproporcionalmente, levando à existência de mais passos intermediários, aumentando a latência, o risco de desconexão e o consumo da capacidade da rede. Para contornar tais problemas, o serviço de conexões pode ser dinamicamente transferido para servidores que se encontrarem mais próximos da localidade da unidade móvel.. 2.1.3 Comunicação A infra-estrutura de suporte a clientes móveis (disponibilidade de rede e de recursos remotos) sempre será variada, na qual sempre existirão áreas com mais ou menos concentração. Isso se deve ao argumento de sobreposição (overlay argument), que foi aplicado a redes sem-fio pela primeira vez por Katz e Brewer [KB96]. Dispositivos móveis dependem de redes sem fio quando em trânsito. Muitas vezes, podem ser redes distintas, com largura de banda e latências diferentes entre si. Ainda, essas redes tendem a ter baixa largura de banda e alta latência em relação a redes convencionais. O seu baixo desempenho também está sujeito a muita variação devido a efeitos físicos como interferências. Interferências do ambiente na conexão sem-fio variam com o tempo e no espaço, e essas variações são imprevisíveis.. 10.

(21) Redes sem fio se comunicam através de sinais de ondas de rádio, através de satélites, microondas ou pulsos de luz infravermelha, variando bastante a área de alcance. A comunicação através deste meio enfrenta mais obstáculos do que a comunicação através de fios, uma vez que o ambiente interage com os sinais, potencialmente bloqueando a transmissão ou inserindo ruídos e ecos. Desta forma, a comunicação sem fio é caracterizada por uma menor largura de banda, maior taxa de erro e por desconexões indesejadas mais freqüentes. Estes fatores, por sua vez, aumentam a latência de dados na comunicação, resultado de retransmissões, processamento de protocolo de controle de erro e rápidas requisições de reconexão. O custo de implementação de uma rede sem fio é, em geral, maior do que aquele para uma rede comum. O usuário que se conecta a este tipo de rede deve ainda levar em consideração formas de cobrança deste serviço. Alguns acessos são cobrados por tempo de conexão, enquanto outros por mensagens enviadas (packet-radio) [PS98]. Forman e Zahorjan [FZ94] discutem algumas dificuldades do projeto de uma boa comunicação em computação móvel, como: Alta taxa de desconexão – Uma falha na rede pode levar processos que estão rodando em locais diferentes a pararem completamente, potencialmente levando a sérios problemas. Para mascarar algumas falhas de rede, técnicas como operações assíncronas podem ser aplicadas. Em tais operações, o cliente envia várias requisições sem precisar de confirmações de recepção (acknowledgements). Outras operações similares incluem pré-carga (pre-fetching) dos dados, que consiste em transferir dados antes que eles sejam necessários; Alta variação de largura de banda – A variação de banda (bandwidth) nas redes sem fio pode ser de várias ordens de magnitude, dependendo do tipo de conexão que um cliente está usando naquela hora, ou mesmo do número de clientes servidos numa mesma célula. Em números, uma LAN sem fio (Wireless Local-Area Network) pode transmitir numa taxa de 11 Mbps (padrão IEEE 802.11b) até no máximo 54 Mbps (padrão IEEE 802.11g), e com transmissões GSM e CDMA pode-se ter taxas variando de 9,6 Kbps a 384Kbps [IEEE03]. Uma aplicação pode lidar com essa variação através de 3 abordagens: assumindo uma alta largura de banda, assumindo uma baixa largura de banda ou se adaptando aos recursos disponíveis (mais complexa); Rede Heterogênea – Ao contrário da maioria dos computadores estacionários, computadores móveis encontram conexões heterogêneas em vários sentidos. Ao mudar de uma célula para outra, poderá também haver mudanças nos protocolos e velocidades 11.

(22) de transmissão. Em algumas situações, um computador móvel pode solicitar várias conexões como, por exemplo, quando duas células adjacentes se sobrepõem ou quando é possível que os acessos com fio e sem fio ocorram concorrentemente. Pode também haver a necessidade de se trocar a interface de comunicação como, por exemplo, mudando da cobertura celular de uma cidade para cobertura por satélite no campo; Riscos de segurança – Especialmente se a transmissão se estende por uma longa área, a segurança da comunicação sem fio pode ser bem mais comprometida do que nas redes comuns. A segurança se torna ainda mais complicada quando se trata de delegar níveis de acessibilidade a um usuário móvel. A comunicação segura por canais inseguros é alcançada através do uso de criptografia, que pode ser feita por software, ou hardware especializado (melhor desempenho e maior custo). A segurança depende de uma chave criptográfica conhecida apenas pelas partes autorizadas. O WEP (Wired Equivalent Privacy) é o protocolo de segurança mais usado para o padrão 802.11b, mas sua chave de criptografia é fraca e o algoritmo é simples e conhecido, sendo fácil encontrar na Web ferramentas para decifrá-lo. O gerenciamento destas chaves é difícil e pode ser automatizado por um servidor de chaves criptográficas (como o Kerberos, do MIT [MIT02]), no entanto, estes servidores também são suscetíveis a acessos indevidos. Para tornar a rede mais segura, são usados recursos como firewalls, sistemas de detecção de intrusos, uso de ferramentas de criptografia mais sofisticadas. É também importante a conscientização dos usuários que muitas vezes facilitam a abertura de brechas na segurança. O Quadro 1 resume as peculiaridades da computação móvel discutidas acima, decorrentes das suas propriedades e, em seguida, são apresentadas, resumidamente, restrições impostas pelo ambiente de computação móvel.. 12.

(23) Quadro 2.1 – Desafios da computação móvel, decorrentes de suas principais propriedades. Propriedade. Característica. Desafio Peso × tempo de vida da bateria. Consumo de energia. Consumo × desempenho computacional Operações inteligentes. Portabilidade. Perda e extravio de dados. Backup em base remota. Interface limitada. Design gráfico. Capacidade de Armazenamento Migração de endereço. Compressão automática de arquivos Acesso a dados remotos Interpretação de scripts IP móvel Variedade de convenções em diferentes. Mobilidade. Informação dependente. localidades. de localidade. Consultas sensíveis à localidade Preservação da privacidade. Migração de localidade. Transferência dinâmica do serviço de conexão Operações assíncronas. Desconexões freqüentes. Pre-fetching Indicação de indisponibilidade de operação Aplicações assumindo ou baixa ou alta. Comunicação. Variação de largura de. largura de banda. banda. Aplicações que se adaptam a baixas e altas larguras de banda automaticamente. Rede Heterogênea. Protocolos, velocidades de transmissão e cobertura celular potencialmente diferentes Firewalls, sistemas de detecção de intrusão,. Segurança. ferramentas de criptografia Gerenciamento de chaves criptográficas. As quatro características apresentadas no Quadro 2.1 complicam o projeto de sistemas móveis, fazendo com que tenhamos que repensar as abordagens tradicionais para tratar problemas de acesso à informação.. 13.

(24) Para contornar estas restrições e dificuldades, a computação no ambiente móvel deve apresentar certas operações e funcionalidades específicas para lidar com a mobilidade e a migração dentro da rede ou entre redes, adaptar-se à variedade de recursos computacionais disponíveis, sendo as aplicações projetadas para lidar com tal adaptação e fazer com que a qualidade e às vezes inexistência de sinal ou serviço da rede sejam transparentes ao usuário, o máximo possível. Pelo fato de dispositivos móveis operarem em diversas localidades, é necessário uma infra-estrutura muito mais ampla que redes com fio. Isso complica o planejamento de uma rede sem-fio baseado em conhecimento a priori da demanda de uso, além de tornar proibitivo o alto custo de implantação de tais redes. Disponibilizar recursos e serviços remotamente a seus clientes é um dos objetivos de uma rede de computadores. Levando-se em conta que não é realístico esperar que haja uma rede sem-fio de alta qualidade em todos os lugares possíveis, a solução mais direta seria tornar a rede desnecessária, pelo menos por um tempo. Com o intuito de tornar a rede momentaneamente desnecessária, a estratégia é deixar estes recursos disponíveis localmente no cliente, evitando assim que ele tenha que estabelecer uma conexão.. 2.1.4 Espaço. A localidade de muito dos recursos em uma rede é importante: Particularmente, dados compartilhados são a essência da capacidade de computadores se conectarem. A estratégia mais direta para resolver o problema consiste em criar réplicas destes dados em todos os clientes. Esta abordagem assume que os dispositivos móveis terão espaço livre suficiente para armazenar tais dados. Mesmo com dispositivos de memória secundária (discos rígidos, cartões de memória, entre outros) estando disponíveis em versões de tamanho reduzido e sendo capazes de armazenar mais dados a custos cada vez menores, os mesmos ainda não têm espaço suficiente para satisfazer a estratégia de réplica de dados. Historicamente, o tamanho dos dados armazenados tem aumentado bastante, e não há razões para que se acredite na mudança desta realidade. Além do mais, mesmo com memórias maiores, os dispositivos móveis não são capazes de armazenar tantos dados quanto computadores de mesa [Sat96]. A quantidade. 14.

(25) de dados disponível em uma rede é, por natureza, maior do que a que um disco pode armazenar.. 2.1.5 Armazenamento local. Não há necessidade de armazenar toda informação disponível em um dispositivo móvel. Um usuário, normalmente, só acessa a uma pequena fração dos dados disponíveis. Desta forma, o dispositivo móvel só precisa armazenar aquilo que é realmente utilizado. Mesmo assim, a quantidade de dados realmente acessados pelo usuário pode exceder o espaço livre para armazenamento em seu dispositivo móvel. Para contornar este problema, o dispositivo móvel pode implementar um sistema que possibilite replicação seletiva dos dados, e assim só precise manter uma cópia daquilo que ele mais use.. 2.2 Arquitetura de rede sem-fio A arquitetura geral de um sistema de computação móvel e sem fio é formada por entidades ligadas por uma rede fixa e interconectada por fios e por entidades móveis que se comunicam com esta rede. A unidade móvel (mobile host) é um dispositivo capaz de se conectar com a rede fixa através de conexão a rádio (wireless link). Hosts estacionários são conectados através de uma rede de alta velocidade interligada por fios (Fast Ethernet com taxa de 100 Mbps ou Gigabit Ethernet com 1 Gbps, por exemplo) e podem ser hosts fixos ou estações base (base stations). O host fixo é um computador de propósito geral, não equipado para administrar unidades móveis, mas que pode ser configurado para isso [EN00]. A estação base, ou estação rádio-base (ERB), ou ainda estação de suporte à mobilidade, Mobile Support Station [IB93], possui uma interface de comunicação para o acesso de dados feito pelas unidades móveis que se encontram em sua célula, ou seja, que estão na área de cobertura dentro da qual uma estação base consegue captar seu sinal. Quando um computador móvel sai de uma célula e entra em uma nova, ele passa a estar sob o controle de uma nova estação base. Como a comunicação entre eles se dá sem fio, a taxa de transferência de dados varia de poucos kilobits por segundo (Kbps) a. 15.

(26) alguns megabits por segundo (Mbps). Como foi visto na Seção 2.1.3, a variação de largura de banda é um dos desafios da comunicação em computação móvel. Este esquema de arquitetura geral aqui descrito é ilustrado na Figura 1.. Figura 2.1 - Arquitetura geral de um sistema de computação móvel (adaptação da figura 1 de [YD01]). 16.

(27) 2.3 Arquiteturas de sistemas de computação móvel Como já foi visto neste trabalho, as unidades móveis se caracterizam por serem pouco confiáveis, expostas a roubos, danos e falhas de segurança e pobres em recursos. Estes fatores levam a questões como quais funcionalidades devem ser atribuídas a um dispositivo móvel e quais devem permanecer no servidor. Estas razões seriam suficientes para que estes dispositivos fossem tratados como terminais burros que apresentassem apenas uma interface com o usuário e deixassem toda carga de funcionalidade para as estações localizadas em rede fixa. Por outro lado, como também foi visto anteriormente, as redes sem fio são de caro acesso, lentas e pouco confiáveis, o que demanda funcionalidade adicional aos hosts móveis para diminuir sua dependência dos servidores remotos. Embora ainda não haja consenso a respeito do papel dos hosts na computação móvel distribuída, estas considerações contraditórias dão origem a modelos que proporcionam o ajuste flexível das funcionalidades dos hosts móveis [PS98]. Esta seção apresenta a discussão feita por Ito [Ito01] a respeito desses modelos, um estudo mais aprofundado do tema é feito por Pitoura e Samaras [PS98].. 2.3.1 Modelo Cliente-Servidor Em sua forma mais simples, o modelo cliente-servidor, ilustrado na Figura 2.2, resume-se a uma aplicação executando em um computador, o cliente, que requer serviços de outra aplicação rodando em um outro computador, o servidor. No meio móvel, o cliente está sendo executado em um dispositivo móvel, enquanto o servidor está em uma rede fixa. Independentemente do modelo cliente-servidor, o servidor de aplicações pode estar organizado de forma distribuída. Neste caso, apesar do cliente fazer requisições a um servidor, este pode ter suas funcionalidades distribuídas por várias máquinas diferentes, de forma transparente ao cliente. Mesmo que o servidor não seja um sistema distribuído, outra possibilidade é que o servidor de aplicações pode ter réplicas, para aumentar a disponibilidade do serviço.. 17.

(28) Figura 2.2 - Modelo Cliente-Servidor [PS98]. Não há uma divisão clara sobre onde a funcionalidade deve estar: se no cliente móvel ou no servidor na rede fixa. Kistler [KS92] e Satyanarayanan [Sat96] discutem um modelo estendido do cliente-servidor, no qual o cliente emula serviços que são de responsabilidade do servidor no momento da desconexão. Na comunicação cliente-servidor, é comum usar-se RPC (remote procedure call), na qual o cliente faz chamadas a funções que são executadas no servidor. O uso de RPC síncronos é inviável dentro do paradigma móvel: o dispositivo móvel ficará bloqueado no momento que fizer uma chamada remota enquanto esteja desconectado. Para contornar este problema, é indicado o uso de RPC assíncronos, no qual é criada uma fila para tratar as chamadas remotas. Os próximos modelos são adaptações e extensões do modelo cliente-servidor.. 2.3.2 Modelo Cliente-Agente-Servidor. Este modelo introduz uma terceira camada no modelo cliente-servidor: o agente ou proxy, conforme mostra a Figura 2.3. Neste modelo o agente funciona apenas como um intermediário na comunicação entre o cliente móvel e o servidor na rede fixa. O agente também pode assumir algumas funcionalidades, como tratamento ou traduções de mensagens entre o cliente móvel e o servidor.. Figura 2.3 - Modelo Cliente-Agente-Servidor [PS98]. Neste modelo, são melhor trabalhadas operações desconectadas e operações fracamente conectadas. O cliente pode submeter pedidos ao agente e entrar em modo de 18.

(29) espera, para poupar bateria. O servidor, da mesma forma, pode submeter pedidos ao cliente móvel no qual, em caso de desconexão, os pedidos serão enfileirados em um agente, que repassará os pedidos no momento em que se re-estabelecer a conexão.. 2.3.3 Modelo Cliente-Interceptador-Servidor Neste modelo, ilustrado na Figura 2.4, o agente é divido em dois módulos: uma parte do agente está no lado do cliente, e outra parte está no lado do servidor. O agente do lado do cliente intercepta pedidos e executa otimizações ao fazer a retransmissão do pedido para o agente do lado do servidor.. Figura 2.4 - Modelo Cliente-Intercept-Servidor [PS98]. O modelo interceptador é transparente tanto para a aplicação cliente como para o servidor. O protocolo de comunicação entre o agente do cliente e o agente do servidor pode aumentar a eficiência da comunicação entre o cliente e o servidor. Outra característica do modelo é facilitar operações desconectadas: no cliente há a flexibilidade de, por exemplo, se colocar uma cache para minimizar o impacto de uma desconexão. As falhas de cache podem ser acumuladas em uma fila, que seria processada no momento da reconexão, com o objetivo de renovar a cache com dados atualizados. Este modelo demanda mais processamento que os modelos anteriores. O ponto fraco desta abordagem é o fato de ser necessário construir os agentes (do cliente e do servidor) para cada aplicação: por exemplo, aplicação de banco de dados, aplicação de servidor de arquivos, entre outras.. 2.3.4 Modelo Ponto a Ponto (P2P) No modelo P2P, não há distinção entre cliente e servidor, conforme mostra a Figura 2.5. Dispositivos móveis podem assumir a função de clientes e a comunicação pode ser realizada com a estação base que estiver disponível.. 19.

(30) Figura 2.5 - Modelo P2P [PS98]. Esse modelo é mais adequado quando há uma conexão rápida entre os dispositivos móveis, fazendo com que a comunicação seja realizada com maior facilidade e se torne mais acessível do que a realizada com o servidor. Contudo, os custos de comunicação podem ser elevados, no caso das unidades móveis estarem fisicamente distantes do servidor, ou não existir um canal de comunicação entre eles.. 2.3.5 Modelo de Agentes Móveis Agentes móveis são processos enviados a partir de uma máquina para realizar uma determinada tarefa remotamente. Cada agente móvel possui suas próprias instruções, dados e um estado de execução. Além disso, esses elementos possuem características inerentes ao conceito de multi-agentes, que proporcionam um bom desempenho em sistemas de objetos distribuídos. Desta forma, características como cooperação, autonomia, representatividade, entre outras, foram acopladas neste modelo com a finalidade de suprir as necessidades exigidas para o bom funcionamento de modelos que utilizam esse paradigma. A seguir, são descritas algumas características do modelo de agentes móveis [PS98]. No momento em que um agente móvel é transferido, todo o objeto é movido: código, dados, o itinerário para chegar ao servidor necessário, o estado de execução, entre outros. •. Agentes móveis possuem sua própria linha de execução e esta não precisa ser executada de modo síncrono.. •. Agentes móveis interagem com outros agentes móveis ou com objetos estacionários locais. Se necessário, um agente mensageiro é despachado para facilitar a interação com agentes remotos.. 20.

(31) •. Agentes móveis podem executar tarefas mesmo em modo desconectado. Quando se faz necessária a transferência de agentes, aguarda-se até que a conexão seja restabelecida.. •. Execução paralela: múltiplos agentes podem ser enviados para diferentes servidores, com o objetivo de executar tarefas em paralelo.. Nos modelos em que há a presença de um agente entre o cliente e o servidor, muitas vezes se faz referência a uma camada imaginária na qual estas entidades atuam. Ela é chamada de camada intermediária e possui um papel importante nos sistemas gerenciadores de bancos de dados móveis. A arquitetura e o modelo que possuem uma camada intermediária são chamados de computação multicamada (multi-tier) ou em três camadas (three-tier).. 2.4 Sistemas de Gerenciamento de Dados Móveis Existentes Nesta seção, são apresentados trabalhos relevantes à gerência de dados móveis, que influenciaram esta dissertação de mestrado. Eles variam quanto ao tipo de dado manipulado, granularidade do dado, abordagem de gerência de dados durante a desconexão, entre outros. Ao final, é apresentado um quadro que, resumidamente, compara os trabalhos aqui revisados.. 2.4.1 CODA O Coda [SKS87] é um sistema de arquivos distribuídos, desenvolvido no Departamento de Ciência da Computação da Carnegie Mellon University, EUA, desde 1987 sob a coordenação do professor Mahadev Satyanarayanan. No começo da década de 90, o projeto Coda criou o conceito de operações desconectadas e assim passou a tratar mobilidade no sistema de arquivos. Desde então, o projeto Coda passou a ser referência quanto a acesso a dados em um ambiente de computação móvel. Em cada cliente do Coda, existe um gerenciador de cache chamado Venus, que obtém dinamicamente os dados e os põe na cache. Para dar suporte à operação desconectada, o Venus trabalha em três estágios: estado de pré-seleção (hoarding), emulação e reintegração [SKM+93].. 21.

(32) Figura 2.6 - Etapas de hoarding.. O Venus combina duas abordagens no gerenciamento de cache baseado em prioridade (seu estado de pré-seleção): ele combina informações implícitas e explícitas para avaliar quais dados devem estar na sua cache. Implicitamente, o Venus usa um algoritmo tradicional de gerenciamento de cache (no caso, o LRU) para avaliar o histórico de arquivos recentemente usados. Explicitamente, é utilizado um banco de dados de pré-seleção, o HDB, cujo conteúdo são os caminhos dos arquivos que o usuário tem interesse que o Venus mantenha na cache. Para manipular o HDB, o Venus usa um programa chamado hoard profile que atualiza diretamente ou via scripts. O Venus periodicamente avalia a retenção de objetos da cache em um processo de pré-seleção chamado hoard walking. O hoard walking é necessário para que seja atingida a expectativa do usuário em relação à importância da permanência de seus objetos na cache, isto é, se aqueles dados que o usuário espera que estejam na cache de fato encontram-se lá. Quando a cache atinge esta expectativa, é dito que ela está em equilíbrio.. 22.

(33) 2.4.2 Seer O Seer [Kue97] é um sistema de predição de dados, no qual a escolha dos dados que devem estar presentes na cache é feita de forma automática e transparente ao usuário. O Seer não executa a replicação e transferência de arquivos entre servidores e clientes. E em vez disso, ele roda sobre sistemas de arquivos que têm esta funcionalidade (como o Coda, por exemplo). A abordagem do Seer em escolher quais arquivos devem ser mantidos na cache é baseada na observação do comportamento do usuário através do uso de seus arquivos, e faz inferências quanto à relação entre estes arquivos. O Seer é composto de dois módulos: o Observer, que acompanha o comportamento do usuário e seus acessos a arquivos, classificando cada acesso de acordo com um tipo e convertendo caminhos dos arquivos em um formato absoluto, alimentando assim o módulo Correlator. O Correlator avalia as referências dos arquivos, calculado a distância semântica entre eles. Essa distância semântica alimenta um algoritmo de clustering [Kue97], que atribui cada arquivo a um ou mais projetos. A distância semântica é a métrica para relação entre arquivos e, assim, grupos de arquivos necessários para se trabalhar em um determinado projeto são identificados. Desta forma, o Seer prediz os projetos que o usuário está trabalhando e carrega seus arquivos localmente no cliente móvel.. 2.4.3 Regras de Associação para páginas web em computação móvel Em [SUE00], cujo escopo do trabalho é páginas web, foi sugerido o uso de uma técnica de mineração de dados [AS94] para trabalhar o problema de pré-seleção de dados (hoarding) em computação móvel. A extração de regras de associação representada pelo padrão de acessos do cliente pode ser usada para predizer futuras requisições do usuário. O conjunto de requisições preditas (predicted request set) é o que deve ser carregado antes de ocorrer a desconexão de forma que as requisições futuras do cliente sejam atendidas localmente, sem que haja necessidade de estar conectado ao servidor.. 23.

(34) As regras de associação obtidas após a mineração são usadas para determinar o conjunto candidato e o conjunto real do usuário até a desconexão. O conjunto candidato é formado de todas as requisições de um usuário específico, ao passo que o conjunto real são aquelas requisições que de fato são carregadas antes que haja a desconexão. O conjunto candidato é construído a partir de inferências baseadas no conjunto de regras de associação extraídas analisando o comportamento do usuário. Para podar esse conjunto de regras com o intuito de obter o conjunto real, é usada uma heurística baseada em prioridades e tamanho das requisições.. 2.4.4 Synchrologic iMobile O Synchrologic iMobile [YDN00, YDN01], é produto de pesquisa do prof. Shamkant Navathe do Georgia Institute of Technology na qual ele sugere um framework para banco de dados intermitentemente sincronizados. Com o objetivo de reduzir o processamento das atualizações dos dados dos clientes móveis pelo servidor, ele propõe a criação de grupos de atualizações em que caberia a cada cliente a sua inscrição em um grupo. Desta forma, ele pretende reduzir o custo do processamento. A redução do custo se deve ao fato de que, no modelo em que para cada cliente móvel existe um conjunto de dados necessários para a atualização, o custo das atualizações é diretamente proporcional ao número de clientes móveis de quem o servidor é responsável. A formação dos grupos dá-se através de um algoritmo de agrupamento que se baseia em como os dados são distribuídos através da população de clientes, assumindo as seguintes heurísticas: 1. Os grupos devem formar uma partição dos fragmentos do banco de dados servidor. Isto é, cada fragmento deve estar presente em apenas uma vez no conjunto de grupos. 2. A formação dos grupos deve proceder através da seleção dos conjuntos maiores de fragmentos de dados compartilhados, removendo o fragmento da assinatura de cada cliente. Este processo de formação de grupos é repetido até que a condição de parada seja estabelecida. A formação desses grupos dá-se através do uso de um tipo de MST (Maximal Spanning Tree) processando o grafo de dados dos clientes. A aresta com o maior peso indica os dois clientes com a maior quantidade de dados em comum. Assim, o. 24.

(35) procedimento seleciona os dois nós dessa aresta e os funde, chamando de nó raiz. O nó raiz é composto da interseção de dois nós fundidos. Cada aresta conectada ao nó raiz é recomputada segundo o mesmo procedimento. Em um determinado momento, o algoritmo pára e o grupo de fragmentos está formado. Todos os clientes que possuíam algum dos fragmentos computados pelo procedimento aqui descrito se inscrevem para o nó-raiz recém formado. Todos os fragmentos contidos no nó-raiz são removidos de todos os clientes, e é reconstruída a árvore de grupos com todas as novas assinaturas.. 2.4.5 CIMP Song [SC04] propôs realizar a pré-carga (pre-fetching) de dados através da préseleção de dados utilizando um algoritmo de geração de regras de associação similar ao proposto por [AS94] em cima de dois grupos de dados: (i) o grupo de itens de dados que estão freqüentemente na cache, e (ii) um grupo de itens de dados que foram selecionados pelo usuário mas não constavam na cache. Esse esquema de pré-carga baseado em dois grupos de dados foi motivado pelas seguintes observações: 1. Deve-se sempre deixar disponível em cache os dados que são freqüentemente usados pelo cliente móvel, e assim poupar largura de banda de conexão e energia. 2. Uma procura por um item que não está na cache é sempre seguida por várias procuras a itens que não estão na cache. Gerando regras de associação sobre os dados desses dois grupos, é gerado um grupo de itens de dados que tem boa probabilidade de ser usada em um futuro próximo. Dessa forma, minimiza-se a energia gasta com conexões ao servidor (quando há disponibilidade de uma rede) e minimizam-se as falhas de acesso quando fora de uma rede sem fio. Assim, como em [SUE00], o domínio da aplicação do trabalho de [SC04] são páginas web e, portanto, a granularidade dos dados minerados são arquivos html. Nessa abordagem, o processo de análise do histórico de acesso a páginas web do usuário e o processamento para a geração das regras de associação são feitas no cliente.. 25.

Referências

Documentos relacionados

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

determinou, nomeadamente: “III - Salvo prova em contrário, de ocorrência de circunstâncias excecionais, o acordo no qual o sócio e gerente de uma sociedade garante

 Caminho simples que contém todas as arestas do grafo (e,. consequentemente, todos os

a) Sistema de produto: produção integrada: soja, capim e algodão. O capim é cultivado como espécie formadora de palha; não é colhido ou pastejado, correspondendo, portanto, a um

• Doente referenciado para os Cuidados de Saúde Primários antes do atendimento (Grupo #A). Determinou-se que para uma amostra uniforme e significativa deveriam ser incluídos

Os objetivos do tratamento cirúrgico da escoliose idiopática do adolescente são impedir a progressão da curva, atingir uma correção permanente da deformidade, manter uma

Distribuição das respostas dos Ingressantes em cada alternativa das questões objetivas no Componente de Conhecimento Específico, considerando-se a IES, Categoria

Pode haver alguns acordos prévios, como visto na classificação proposta em trabalho anterior (GUERRERO, 2006), mas estes são propostos sempre mantendo elevado