FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃO JOAO CARLOS XENOFONTE MATIAS Análise Comparativa de Sistemas de Banco de Dados Em Ambientes de Dispositivos Móveis FORTALEZA, 2010 JOAO CARLOS XENOFONTE MATIAS Análise Comparativa de Sistemas de Banco de Dados Em Ambientes de Dispositivos Móveis Monografia apresentada para obtenção dos créditos da disciplina Trabalho de Conclusão do Curso da Faculdade Farias Brito, como parte das exigências para graduação no Curso de Ciência da Computação. Orientador: Ricardo Wagner Cavalcante Brito, MSc. FORTALEZA, 2010 3 ANÁLISE COMPARATIVA DE SISTEMAS DE BANCO DE DADOS EM AMBIENTES DE DISPOSITIVOS MÓVEIS João Carlos Xenofonte Matias PARECER __________________ NOTA: FINAL (0 – 10): _______ Data: ____/____/_________ BANCA EXAMINADORA: ___________________________________ Ricardo Wagner Cavalcante Brito, MSc. (Orientador) ___________________________________ Nome e titulação (Examinador) __________________________________ Nome e titulação (Examinador) 4 AGRADECIMENTOS Agradeço primeiramente à Deus, que sempre esteve presente em minha vida me dando forças pra conseguir meus planos e objetivos. Aproveito para dedicar este trabalho a toda minha família, em especial a minha tia Maria Matias, que contribuiu na construção desse trabalho, aos meus queridos pais que sempre me apoiaram na minha vida e foram e sempre serão fundamentais para a minha existência. Agradeço também a todos os professores e colegas de graduação da Faculdade Farias Brito que contribuíram nesse trabalho, em especial ao meu orientador Ricardo Wagner Cavalcante Brito pela sua paciência, compromisso e seriedade sempre demonstrado ao longo do desenvolvimento desse trabalho. Por fim, agradeço a todos que colaboraram diretamente ou indiretamente na realização deste trabalho. 5 RESUMO O conceito de mobilidade, no que se refere à área de computação, vem se tornando cada dia mais utilizado em nosso cotidiano. Já são inúmeras as opções de dispositivos e de aplicativos disponíveis para os usuários e essa quantidade só tende a crescer ainda mais. Em conjunto com as aplicações que estão sendo desenvolvidas faz-se necessária a utilização de sistemas de bancos de dados que sejam adequados nesse cenário. Este trabalho tem como objetivo geral analisar algumas características de alguns dos principais Sistemas Gerenciadores de Bancos de Dados Móveis existentes no mercado, realizando um estudo comparativo baseado em certos critérios previamente estabelecidos. Essa análise irá contribuir com uma avaliação de desempenho desses sistemas e um documento que pode ser utilizado como fonte de escolha do sistema que mais se aplica em determinadas situações. 6 SUMÁRIO INTRODUÇÃO ....................................................................................................................................................... 9 1. COMPUTAÇÃO MÓVEL......................................................................................................................... 12 1.1 - CARACTERÍSTICAS DA COMPUTAÇÃO MÓVEL ............................................................................................ 15 1.1.1 Portabilidade....................................................................................................................................... 15 1.1.2 – Comunicação .................................................................................................................................... 16 1.1.3 – Mobilidade........................................................................................................................................ 17 1.1.4 – Adaptação......................................................................................................................................... 18 1.1.5 – Gerência de Energia......................................................................................................................... 20 1.1.6 – Conectividade Fraca ........................................................................................................................ 20 1.1.7 – Replicação de Dados ........................................................................................................................ 21 2. AMBIENTES DE BANCO DE DADOS MÓVEIS.................................................................................. 24 2.1 - ARQUITETURA DE BANCO DE DADOS MÓVEIS ............................................................................................ 25 2.1.1– Arquitetura Cliente-Servidor ............................................................................................................. 25 2.1.2– Agentes Móveis .................................................................................................................................. 27 2.2 - PARADIGMAS DE ACESSO AOS DADOS ......................................................................................................... 27 2.2.1 – Difusão de dados (Broadcast) .......................................................................................................... 28 2.2.2 – Caching de dados...................................................................................................................... 28 2.3 - GERENCIAMENTO DE TRANSAÇÕES MÓVEIS ................................................................................................ 29 2.3.1 – Modelos de transações móveis.................................................................................................. 30 2.4 - PROCESSAMENTOS DE CONSULTAS ............................................................................................................. 31 2.5 - REPLICAÇÕES DE DADOS ............................................................................................................................. 32 2.6 - RECUPERAÇÕES DE FALHAS ........................................................................................................................ 33 3. SISTEMAS GERENCIADORES DE BANCO DE DADOS MÓVEIS ................................................. 34 3.1 - ORACLE LITE .............................................................................................................................................. 35 3.2 - DB2 EVERYPLACE ...................................................................................................................................... 36 3.3 - MICROSOFT SQL SERVER 2005 MOBILE EDITION ...................................................................................... 39 3.4 - SYBASE SQL ANYWHERE ........................................................................................................................... 41 4. ANÁLISE COMPARATIVA DOS SISTEMAS DE BANCO DE DADOS MÓVEIS COMERCIAIS44 4.1 RECUPERAÇÃO DE FALHAS ........................................................................................................................... 44 4.1.1 DB2 Everyplace ........................................................................................................................... 44 4.1.2 Sybase SQL Anywhere Studio ...................................................................................................... 45 4.1.3 Oracle Lite ................................................................................................................................... 46 4.1.4 SQL Server CE............................................................................................................................. 47 4.1.5 Tabela Comparativa de Recuperação de Falhas......................................................................... 48 4.2 SEGURANÇA ............................................................................................................................................ 49 4.2.1 Oracle Lite ................................................................................................................................... 49 4.2.2 DB2 Everyplace ........................................................................................................................... 49 4.2.3 SQL Server Compact Edition....................................................................................................... 50 4.2.4 SQL Anywhere Studio .................................................................................................................. 51 4.2.5 Tabela Comparativa da Segurança dos Bancos de dados Móveis .............................................. 52 4.3 PERFORMANCE ........................................................................................................................................ 53 4.3.1 DB2 Everyplace ........................................................................................................................... 54 4.3.2 Oracle Lite ................................................................................................................................... 54 4.3.3 Sybase SQL Anywhere Studio ...................................................................................................... 55 4.3.4 SQL Server Compact Edition 2000.............................................................................................. 55 4.2.5 Tabela Comparativa do Desempenho dos Bancos de dados Móveis ........................................... 56 5. CONCLUSÃO............................................................................................................................................. 57 6. REFERÊNCIAS BIBLIOGRÁFICAS...................................................................................................... 58 7 LISTA DE FIGURAS Figura 1 Componentes fundamentais da computação móvel.............................................. 13 Figura 2 Arquitetura da Computação Móvel.................................................................. 14 Figura 3 Os estados de uma operação de desconexão.................................................... 21 Figura 4 Modelo de reintegração de dados..................................................................... 22 Figura 5 Ambiente de computação móvel em uma arquitetura Cliente / Servidor 25 clássica...................................................................................................... Figura 6 Estratégias de transmissão por difusão pull-based e push- based.................................................................................................... 28 Figura 7 Replicação de dados – Base Consolidada e base remota.................................. 32 Figura 8 Visão geral dos componentes da Oracle Lite................................................... 36 Figura 9 Desenvolvimento e sincronização do DB2 Everyplace.................................... 38 Figura 10 Arquitetura do SQL Server Mobile................................................................ 40 Figura 11 Relacionamento entre o servidor e o cliente .................................................. 41 8 LISTA DE TABELAS Tabela 1 Resumo das principais características dos produtos analisados em relação à recuperação de falhas.................................................................................. 48 Tabela 2 Resumo das principais características dos produtos analisados em relação à segurança dos dados.................................................................................... 53 Tabela 3 Resumo das principais características dos produtos analisados em relação à 56 performance dos bancos de dados móveis.................................................. 9 INTRODUÇÃO Sendo a área da computação móvel ainda relativamente recente, percebe-se um crescimento no interesse por parte dos usuários em relação à utilização dos benefícios que essa tecnologia pode oferecer, a qual depende diretamente de dispositivos portáteis de alta eficiência e acesso às informações através de redes sem fio. Sendo assim, a junção de dispositivos móveis com redes sem fio está conquistando novos espaços, beneficiando e proporcionando importantes melhorias aos usuários que utilizam essa tecnologia (MATEUS, 2004). Segundo PITOMBEIRA (2006), devido à crescente popularização dos dispositivos móveis e o advento de redes de transmissão sem fio cada vez mais rápidas e mais presentes em nosso cotidiano, a computação móvel está sendo cada vez mais utilizada por usuários que trabalham ou necessitam dos benefícios que essa tecnologia computacional pode oferecer. A característica que mais se destaca na computação móvel é que ela possibilita que usuários possam estabelecer comunicação com outros usuários e gerenciar seu trabalho enquanto se deslocam fisicamente, podendo se comunicar com outros dispositivos móveis, independente da localização física. Sendo assim, é importante que a abrangência da comunicação sem fio e a popularização dos dispositivos portáteis estejam cada vez mais disponíveis para os usuários (MATEUS, 2004). Tal característica é especialmente importante para organizações geograficamente dispersas. Podemos tomar como exemplos o policiamento de trânsito, serviços de previsão do tempo, serviços de táxi, comunicações sobre o mercado financeiro e aplicações sobre agências de informação (ELMASRI; NAVATHE, 2002). Em aplicações dessa natureza, os usuários freqüentemente precisam efetuar processos de sincronização entre os dispositivos móveis e os sistemas desktop. Assim, todas as 10 informações presentes no dispositivo são sincronizadas com as informações da estação-base. Essas informações estão normalmente armazenadas em arquivos de banco de dados. Com isso, o usuário pode se deslocar fisicamente para desempenhar sua atividade enquanto todas as novas informações recolhidas in loco são persistidas em seu dispositivo. Ao final da tarefa, o usuário pode submeter essas novas informações para o servidor, tanto de forma remota, através de algum canal de comunicação, ou local, através do processo tradicional de sincronização. As informações presentes nas aplicações dos usuários dos dispositivos móveis eram, inicialmente, armazenadas em arquivos simples, sem qualquer característica de banco de dados. Com o passar dos anos, varias aplicações foram surgindo (PITOMBEIRA et al 2004) e a utilização de bancos de dados relacionais para dispositivos móveis tornou-se de fundamental importância para as aplicações. Atualmente, várias empresas que trabalham com sistemas de banco de dados convencionais, dentre elas a Oracle, IBM, Microsoft e Sybase, já apresentam versões específicas de seus bancos para dispositivos móveis, respectivamente, Oracle Lite, DB2 Everyplace, Microsoft SQL Server 2005 Mobile Edition e o Sybase SQL Anywhere. Este último, segundo uma pesquisa do Gartner Dataquest de 2002, publicada na PC Magazine, estava sendo utilizado na época em aproximadamente 65% do mercado de banco de dados móveis (GONÇALVES, 2005). No entanto, para que essa tecnologia esteja plenamente ativa na sociedade, existe a dependência de alguns fatores, tais como, a diminuição do custo dos dispositivos portáteis de alto desempenho e uma melhoria na estrutura física e abrangência das redes sem fio. Outro importante fator para que os usuários que acessam informações remotamente é escolha de quais bancos de dados irá utilizar, já que eles podem afetar diretamente o desempenho do acesso aos dados (PITOMBEIRA, 2006). Uma importante motivação para muitos trabalhos atuais nessa área é a análise de como a limitação de recursos computacionais dos dispositivos móveis pode ser minimizada. Apesar dos diversos trabalhos acadêmicos e comerciais atualmente sendo desenvolvidos com esse objetivo, essa característica dos dispositivos móveis continua sendo um fator limitante para a maior parte das aplicações. 11 Apesar dos avanços conquistados nos últimos anos, os dispositivos móveis ainda são menos seguros e confiáveis do que os ambientes dekstop tradicionais, já que eles podem ser perdidos ou roubados com mais facilidade e a própria natureza da rede sem fio oferece menos segurança de informação. Esses dispositivos ainda apresentam recursos computacionais mais limitados, tais como restrição de energia, reduzida área de memória e baixo poder de processamento, influenciando diretamente na decisão do usuário na utilização da computação móvel (ITO, 2003). Assim, o mais determinante na escolha de pesquisa e estudos relativos a tipos de banco de dados móveis é que estes estão diretamente relacionados com as novas tecnologias de computação móvel que estão surgindo e sendo cada vez mais aprimorados a fim de ter melhor desempenho para seus usuários. Deste modo, novos desafios estão sendo pesquisados, tais como: melhores transmissões de dados, maior integridade dos dados compartilhados, e principalmente a segurança de informações sigilosas, já que dispositivos portáteis têm baixa segurança de seus dados (GONÇALVES, 2005). O presente trabalho justifica-se na medida em que visa analisar determinadas características importantes dos principais Sistemas Gerenciadores de Banco de Dados Móveis e propor um estudo comparativo entre esses sistemas conforme uma série de critérios previamente estabelecidos, os quais são: Recuperação de Falhas, Segurança de Dados e Performance. 12 1. COMPUTAÇÃO MÓVEL A computação móvel surgiu motivada pela necessidade do usuário de poder trabalhar com seu sistema computacional enquanto se locomove fisicamente. Assim, a computação móvel se caracteriza por permitir que seus usuários abstraiam a questão da localização física e possam continuar trabalhando com seus dispositivos computacionais mesmo estando em trânsito. Para que essa funcionalidade seja possível, faz-se necessário que toda uma infraestrutura computacional esteja presente. A comunicação wireless (sem-fio), por exemplo, é um dos requisitos fundamentais dessa tecnologia, já que ela é usada em locais onde o uso das redes estacionárias não é possível ou é economicamente inviável. Existindo esse tipo de comunicação, o usuário pode acessar uma página web dentro de um avião ou mandar um email enquanto está dentro de um carro em um congestionamento. Obviamente, isso não seria possível se o usuário necessitasse do cabeamento físico em seu dispositivo. Sendo uma ampliação da computação distribuída por utilizar a comunicação sem fio, a computação móvel compõe-se por uma arquitetura basicamente formada por computadores fixos. Tais equipamentos, ao contrário dos dispositivos móveis, fazem parte da rede estacionária a qual localização não pode ser alterada. Dessa maneira, as aplicações para a computação móvel são projetadas considerando a mobilidade do usuário, limitação de energia do dispositivo e variações de latência e largura de banda de redes sem fio (ENDLER; SILVA, 2000). Apresentando fatores como a mobilidade e a praticidade, que fazem da computação móvel um paradigma recente da computação, segundo Pitombeira (2006), os elementos que compõem esse ambiente móvel são: elementos relacionados ao software como os agentes 13 móveis, aplicações e serviços que suportam a mobilidade; os elementos de hardware compostos pelos dispositivos móveis como telefones celulares e notebooks; e os usuários que interagem com este ambiente acessando serviços e solicitando informações. A computação móvel, conhecida também como computação nômade, é a junção de três importantes propriedades: computação, comunicação e mobilidade, conforme mostrado na Figura 1. No componente computação, encontram-se os dispositivos portáteis que realizam as operações móveis junto ao usuário. Já, na comunicação, manifesta-se a troca de mensagens através da rede do tipo wireless entre os elementos desse ambiente. Por fim, a mobilidade está relacionada à troca de localização feita pelo usuário móvel (LIU, MARLEVI & MAGUIRE, 1996). Figura 1 – Componentes fundamentais da computação móvel. Assim como a grande maioria dos aplicativos baseados em sistemas desktop, os principais Sistemas Gerenciadores de Bancos de Dados (SGDBs) também já foram popularizados nos ambientes móveis. Segundo Gonçalves (2005), os principais desenvolvedores de tais sistemas já estão presentes no mercado da computação móvel, fazendo com que esses softwares busquem uma integração dos dados destas aplicações com os servidores de bancos de dados localizados na rede fixa. Conforme podemos identificar na Figura 2, nota-se a presença de três elementos constantes na arquitetura da computação móvel: os computadores fixos, os quais são dispositivos que não alteram sua localização dinâmica; as estações base, caracterizadas como estações que apresentam suporte à mobilidade e possuem interface wireless e, por fim, os dispositivos móveis, os quais podem ser agrupados em sub-redes ou células que deverão estar ligadas às estações base. 14 Os host móveis (computadores portáteis) se comunicam com as estações base e vice-versa através de canais sem fios de largura de banda limitada. Sendo assim, cada estação base gerencia os dispositivos móveis que estão dentro de sua célula, isto é, no interior do seu domínio geográfico. Se o computador portátil mudar sua localização, alterando a estação base, o processo de recuperação de dados não é afetado, já que a arquitetura é projetada de forma a emular uma arquitetura cliente/servidor (ELMASRI, 2005; SILBERCHATZ, 1999). Figura 2 – Arquitetura da Computação Móvel. Fonte: (BRAZ, 2002). É interessante ressaltarmos a existência das redes ad hoc (MANET) que pode ser chamada também de rede móvel independente a qual oferece um ambiente dinâmico onde os nós da rede, os quais são os servidores e clientes móveis, tem autonomia de sair e entrar na rede. É importante destacar também que em uma rede ad hoc, segundo Holanda (2007), cada dispositivo móvel funciona como um roteador se interligando com outros computadores móveis, dessa maneira a comunicação entre dois hosts é possível mesmo que o host origem e o 15 destino não estejam na área de cobertura um do outro, neste caso, os pacotes de informações são conduzidos através de outros hosts que estejam no caminho até que cheguem ao destino. É perceptivo que a diferença e vantagem entre as redes sem fio infra-estruturada e as redes ad hoc é que uma rede MANET de uma infra-estrutura de rede pré-estabelecida ou de qualquer tipo de equipamento fixo (HOLANDA, 2007). 1.1 - Características da Computação Móvel A seguir, serão descritas algumas das características da computação móvel consideradas como problemas ou limitações e que representam importante objeto de pesquisa e desenvolvimento nesta área. 1.1.1 Portabilidade Segundo Trasel (2005), os computadores comuns não foram feitos para ser portáteis e assim as montadoras desses dispositivos tiveram mais liberdade em relação ao espaço de cabeamento e dissipação de calor para esses equipamentos. Em se tratando dos dispositivos portáteis, devem ser levados em conta alguns fatores e propriedades como: durabilidade, leveza, consumo de energia, dentre outros. Nesse sentido, algumas concessões podem ser feitas para que se chegue a uma boa relação de funcionalidade/desempenho. Amado (2002) elenca algumas dificuldades da computação móvel estabelecidas pela portabilidade: - Energia: relacionada ao tempo limitado de duração da bateria do dispositivo móvel. Nos últimos anos, essa dificuldade vem sendo minimizada, já que novas tecnologias estão sendo estudadas e implantadas, como por exemplo, alguns dispositivos móveis sendo fabricados com telas LED; - Segurança de dados e riscos de perda: com o aumento da praticidade de locomoção e da portabilidade crescem os riscos de danos físicos, de perda ou roubo do dispositivo móvel. Além disso, os dados podem ser mais fáceis de ser manipulados já que esses computadores são menos seguros e confiáveis; - Interface com o usuário: devido as reduzidas dimensões da tela desses dispositivos, aplicações que precisam de abertura de várias janelas ao mesmo tempo 16 são inviáveis para alguns computadores portáteis, fazendo com que algumas funcionalidades sejam diminuídas. - Espaço de armazenamento: há uma sensível diferença no tamanho físico de armazenamento entre os computadores portáteis e fixos, tendo como importante causa o custo financeiro. Contudo, algumas estratégias tecnológicas estão sendo utilizadas para reduzir esse problema, tais como, a compressão automática de arquivos e o acesso a dados remotamente, dentre outros, além da utilização de outros tipos de memória como é o caso da memória Flash. 1.1.2 – Comunicação Considerando que a mobilidade é um principio básico da computação móvel, a comunicação sem fio é um fator fundamental na implantação dessa tecnologia, sendo preciso que ela esteja presente em todos os lugares, a fim de garantir a conectividade do usuário com outros dispositivos. Apresentando um custo de implantação maior do que de uma rede comum, faz-se importante ainda ressaltar que essas redes sem fio se comunicam através de sinais, podendo sofrer interferências, ruídos ou ecos. Como exemplos dessa tecnologia podem ser destacados o Bluetooth, WiFi e a telefonia celular. Amado (2002) apresenta algumas dificuldades para que haja uma boa comunicação sem fio na computação móvel, dentre elas podemos destacar: - Desconexão: nas redes sem fio são mais frequentes as desconexões do que nas redes cabeadas, podendo assim interferir em processos e aplicações que precisam estar conectados na rede. Segundo Pitombeira (2006), essa desconexão pode ser voluntária, ocorrendo quando o usuário não deseja se conectar à rede, ou pode ser forçada, quando o usuário deseja se conectar à rede, mas ela não está disponível por questão de cobertura do sinal ou a falta do canal de comunicação; - Variação de largura de banda: os fatores que podem conduzir a uma alta variação na largura de banda podem também acarretar uma desconexão do dispositivo na rede, já que esses fatores ocasionam alterações nas taxas de erro, sendo que, à medida que essas taxas de erro aumentam mais e mais pacotes são perdidos; 17 - Riscos de segurança: é possível perceber que quanto mais uma rede se estende, mais a segurança é comprometida. Isso se torna ainda mais complicado quando se tem que fornecer níveis de acessibilidade a um usuário móvel. 1.1.3 – Mobilidade Sendo essa característica marcada pela capacidade do equipamento móvel de mudar de localização conectada a rede, alguns dados que são considerados estáticos para dispositivos fixos podem se tornar dinâmicos a fim de atender a esses computadores móveis. Dessa maneira, segundo Cunha (2003), um dos grandes desafios presente no ambiente móvel, diz respeito à tentativa de obter uma diminuição de custo de comunicação formada quando se deseja conseguir a localização de uma unidade móvel conectada a rede. Então é esperado o surgimento de novos algoritmos e estruturas de dados que venham a minimizar este problema. Também não podem ser desprezadas as questões relacionadas à segurança dos dados manipulados na rede, já que as redes sem fio tendem a ser mais vulneráveis à interceptação de mensagens e ao rastreamento de estações móveis, ficando, assim, com a segurança dos dados mais comprometida do que uma rede fixa. Conforme Cunha (2003), existem diversos cenários que envolvem a computação móvel, dependendo da mobilidade de cada elemento, os quais podem ser destacados: - Computação nômade, na qual o hardware pode se mover; - Computação sem fio, onde o usuário móvel pode se locomover por um limite de estações conectadas à rede; - Código e Agente Móvel, em que a aplicação pode se mover; - Computação Pervasiva (pervasive computing) onde o usuário móvel se move executando aplicações com códigos e dados móveis. Através da mobilidade, percebe-se que o usuário móvel passa a obter diferentes taxas de transmissão de dados, dependendo assim da localidade em que ele se encontra. Para Mateus e Loureiro (1998), essa mudança depende de vários fatores, tais como: interferências nas transmissões de dados, segurança, energia disponível no dispositivo móvel, heterogeneidade, disponibilidade de canais de comunicação e a determinação da localidade de um host móvel. 18 Ainda conforme identificados nos estudos de Cunha (2003), quando o usuário pode se mover por um conjunto fixo de estações conectado à rede (computação sem fio), a mobilidade pode inserir alguns problemas, tais como: - Migração de endereço: com a constante variação da localização dinâmica do usuário, diversos pontos de acesso à rede vão ser acessados, e, assim, um sistema distribuído deve ser capaz de guardar o endereço de um host sem afetar o desempenho do processamento; - Informação dependente da localidade: como o endereço de rede de um dispositivo móvel altera constantemente, o caminho de comunicação sofre um aumento, quando o mesmo visita um domínio (célula) vizinho, fazendo com que sua localização atual interfira nos parâmetros de configuração, como respostas a consultas; - Migração de localidade: como o caminho de comunicação pode crescer sem proporções, poderá ocorrer à existência de ações que aumentem a latência e os riscos de desconexões. 1.1.4 – Adaptação Segundo Cunha (2003), uma das características que a computação móvel possui é a habilidade de operar sobre um ambiente de computação sem fio, sendo que, nesse ambiente estão presentes várias propriedades diferentes das encontradas nas redes fixas, como maior taxa de erros e menor taxa de transmissão de dados. Sendo assim, os dispositivos móveis utilizados na computação móvel, usualmente, apresentam limitações quanto à velocidade do processamento dos dados e a capacidade de armazenamento. Conforme Menkhaus (2002), para obterem serviços aceitáveis em um ambiente móvel, os dispositivos portáteis necessitam de algum mecanismo de gerenciamento de alterações do ambiente. Nesse sentido, esse fornecimento de serviços pode ser feito pela adaptação, significando a capacidade de um algoritmo fornecer várias saídas apropriadas, dependendo das características onde se encontra a unidade do cliente. Frente a esta realidade, nota-se que essa característica da computação móvel não se encontra muito presente nas redes fixas, já que as características desse ambiente são praticamente estáveis, ao contrário das redes sem fio, as quais têm o seu ambiente mutável, fazendo com que a presença da adaptação seja muito importante para garantir que as operações sejam finalizadas com sucesso. 19 Seguem três planos de adaptação conforme apresentado em (SATYANARAYANAN, NARAYANAN,1999): - Laissez-Faire: ocorre quando a aplicação é responsável por toda a adaptação necessária; - Aplicação Transparente: acontece quando o gerenciamento fixo é responsável pela adaptação, ficando transparente para a aplicação; - Aplicação Aware: junção dos modelos apresentados acima, pois a adaptação é feita tanto pela aplicação móvel como pelo o sistema fixo. Para a definição de uma arquitetura de adaptação, em um ambiente móvel, podem ser observados alguns aspectos os quais fazem com que a aplicação possa se adaptar melhor ao ambiente. Seguem descritos, a seguir, alguns desses aspectos (CUNHA, 2003): - Disponibilidade de recursos: os recursos disponíveis na rede móvel precisam reunir funcionalidades limitadas, adaptando-se às restrições de processamento e energia, enquanto um host servidor, por exemplo, deve ser capaz de processar de forma rápida, de modo que não seja comprometido o funcionamento dos dispositivos móveis; - Dados: para cada tipo de dados transmitidos há um tipo de adaptação exclusiva. Podemos tomar como exemplo a transmissão de dados em um serviço FTP (protocolo de transferência de arquivos), em que as variações da taxa de transmissões não afetam a aplicação, enquanto nas transmissões de dados multimídias torna-se necessária a realização de adaptações dependendo da largura de banda disponível; - Desempenho: uma adaptação tem que ser planejada, de forma a não causar uma perda geral do sistema. No surgimento de incapacidades, é importante que o usuário móvel receba notificações. É importante também que a transferência dos dados apresente técnicas que reduzam seu volume, adaptando-se às condições de comunicações e diminuindo a velocidade de transmissão. - Broadcast/Multicast: o motivo que mais se destaca em relação à utilização das técnicas broadcast e multicast é que elas evitam que um mesmo dado seja enviado várias vezes em um ambiente onde a largura de banda é pequena. Vale ressaltar que as comunicações, na maior parte das redes fixas, são feitas através de transmissões unicast. 20 1.1.5 – Gerência de Energia Enquanto os computadores fixos foram produzidos para ficar conectados todo o tempo a uma fonte de energia, nos equipamentos móveis isso não ocorre. Tais equipamentos possuem uma bateria que influencia no seu peso e no seu tamanho, necessitando de recarga frequentemente, de acordo com a utilização das funcionalidades desse equipamento móvel. O aproveitamento ideal de energia é fundamental nos dispositivos móveis, considerando-se que as baterias normalmente têm uma duração de carga reduzida, comprometendo, assim, a disponibilidade do recurso de hardware (FLINN & SATYANARAYANAN, 1999). Esse fato torna-se um importante desafio para os projetistas dessas unidades móveis, tornando-se fundamental que ocorra uma diminuição de consumo de energia durante o funcionamento desse equipamento móvel. 1.1.6 – Conectividade Fraca Para Cunha (2003), na computação móvel pode haver momentos em que os equipamentos estejam temporariamente desconectados da unidade móvel. Tal estado pode ocorrer em decorrência de problemas, na variação de taxas de ruído, pela energia disponibilizada pela unidade móvel ou pela distribuição da largura de banda de rede de comunicação, dentre outros. Conforme Pitoura e Samaras (1998), as operações de desconexões envolvem três estados distintos, descritas abaixo e ilustradas na Figura 3: - Hoarding: nesse estado há um pré-carregamento de itens de dados nos dispositivo móvel, podendo assim ter uma replicação de dados no cache local, ficando inacessível para outros componentes da rede; - Operações locais: nessa situação a unidade está desconectada da rede fixa, e assim ela realiza operações sobre os dados localizados na memória local, após o acontecimento do hoarding; - Reconciliação: no momento da reconexão, os dados são atualizados nos computadores fixos de acordo com os elementos decorrentes dos nós que operam sobre esses dados, gerando uma situação de concorrência e garantindo a não existência de inconsistências nos dados atualizados. 21 Figura 3 - Os estados de uma operação de desconexão. Segundo Cunha (2003), quando a conexão é frequentemente perdida entre os componentes de rede pode haver uma influência nas execuções de operações, ocasionando em perda de desempenho. Para Mateus e Loureiro (1998), quando há uma alternância em períodos de transferência de dados entre dispositivos móveis e fixos ou há uma falta total de conectividade entre esses elementos, ocorre uma fraca conectividade, fazendo com que haja a interrupção da execução de operações, sendo estes impedidos de serem finalizados com sucesso. Assim, para a solução desses problemas, são apresentados alguns protocolos de comunicação, os quais, sendo utilizados adequadamente, dão suporte a esses problemas referentes à fraca conectividade, tais como os ressaltados abaixo por Cunha (2003): - Protocolo de desconexão: garante que o dispositivo móvel continue atuando sobre os dados mesmo durante um período de desconexão; - Protocolo de desconexão parcial: possui a propriedade que dispõe de condições independentes precipitadas para um possível estado de desconexão que possa ocorrer no dispositivo móvel; - Protocolo de handoff: possui a característica de retransmitir as informações pertencentes ao equipamento móvel, que se desloca entre os domínios de uma área de cobertura; 1.1.7 – Replicação de Dados A computação móvel incide na manutenção das funcionalidades, que são disponibilizadas pelos dispositivos portáteis enquanto se deslocam fisicamente, migrando em diferentes localizações, fazendo-se necessária a conservação da conectividade entre os componentes do sistema de forma transparente para o usuário móvel. Para isso, torna-se 22 adequado que exista a probabilidade do usuário manipular cópias de banco de dados sem estar conectados na rede sem fio (Cunha, 2003). Para Barbará (1999), a criação de réplicas de um arquivo ou conjuntos de arquivos tem como objetivo central o crescimento da disponibilidade de dados e um melhor desempenho das aplicações sobre essas informações, nos dispositivos móveis, fazendo com que essas unidades móveis carreguem cópias redundantes, armazenadas no banco de dados. Essa técnica pode ser considerada estratégica e importante, já que aperfeiçoa os recursos de rede e hardware, aumentando a flexibilidade e escalabilidade em ambientes heterogêneos. A base consolidada é a base de dados que contém os itens a serem replicados, enquanto as bases remotas são aquelas que contêm um subgrupo dos dados da base consolidada em um host. Ainda, conforme Cunha (2003), a reconciliação apresenta-se como o caminho contrário dos dados copiados, pois, conforme a Figura 4, é possível identificar que, após serem feitas operações de inserção, atualização ou exclusão dos dados, nas réplicas que estão na unidade móvel, estas modificações são reintegradas na base de dados consolidada. Figura 4 – Modelo de reintegração de dados. Fonte: (BADRINATH & PHATAK, 1998). Como percebido na Figura 4, é notada a presença de um quadro chamado Hoard, manifestando um procedimento que traz o acúmulo das alterações realizadas no host móvel, para assim serem propagadas juntamente como no instante da reintegração com o servidor. Tal 23 estrutura visa tanto diminuir a quantidade de requisições entre os componentes do sistema como os custos envolvidos com a comunicação de rede (CUNHA, 2003). 24 2. AMBIENTES DE BANCO DE DADOS MÓVEIS Com a expansão da computação móvel, várias características dessa tecnologia vêm sendo aperfeiçoadas para melhor beneficiar a sociedade, pois com o grande avanço tecnológico presente nos dispositivos portáteis, em relação ao tamanho, processamento e disco rígido do equipamento, consequentemente há o crescimento dos usuários adeptos a essa tecnologia. Segundo Galliano (2007), há um crescimento no número de problemas relacionados à manutenção das propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) na presença das mobilidades pessoal e terminal. Assim, as propriedades ACID de uma transação devem ser mantidas em todas as atividades de gerenciamento de dados para que os mecanismos de controle de concorrência e os esquemas de recuperação de banco de dados assegurem isso. Sendo assim, faz-se necessário entender os efeitos da mobilidade na distribuição de dados e nas propriedades ACID das transações. Com a mobilidade dos dispositivos portáteis, a utilização de banco de dados, em ambiente de computação móvel, tornou-se muito importante e desperta curiosidades, tendo em vista a possibilidade de manipulação de dados tanto sob a forma conectada quanto sob a fórmula desconectada, já que a manutenção de informações localmente admite uma ampla independência da unidade móvel em relação à rede fixa (BRAZ, 2002). Nesse capítulo, serão descritos alguns tópicos sobre a arquitetura dos bancos de dados móveis, sendo também abordadas algumas características presentes nos bancos de dados móveis, tais como: formas de acesso aos dados, gerência de transações, processamento de consultas, replicação de dados e recuperação de falhas. 25 2.1 - Arquitetura de Banco de Dados Móveis A arquitetura dos bancos de dados móveis constitui-se basicamente por plataformas de aplicação, um servidor e a comunicação entre eles. Essa plataforma é formada por um dispositivo móvel, um software para o gerenciamento do sistema e a aplicação do banco de dados móvel. Já no servidor encontra-se o armazenamento de quase todos os dados, que poderão ser buscados pelos usuários móveis a fim de atualizar, consultar ou inserir informações, onde são coordenados por um sistema de gerenciamento (ITO, 2003). A seguir serão apresentados alguns tipos de arquitetura existentes em um ambiente móvel. Essas arquiteturas têm como base o estudo realizado por Pitoura e Samaras (1998), os quais demonstram algumas opções de modelos da computação móvel. 2.1.1– Arquitetura Cliente-Servidor Sendo essa uma arquitetura tradicional, segundo Braz (2002), pode-se encontrar na unidade cliente uma aplicação que está sendo executada, a qual emite requerimentos de dados para o servidor central. Vale ressaltar, considerando que estamos descrevendo essa arquitetura em um ambiente móvel, que o servidor central pode estar localizado em uma rede estacionária. Nesse caso, as informações e funcionalidades se encontram espalhadas através de vários servidores em diferentes hosts fixos, os quais podem se comunicar para atender as necessidades requisitadas pela unidade cliente, aumentando, assim, a disponibilidade no caso da ocorrência de falhas na rede de comunicação. Na Figura 5, mostra-se um ambiente de computação móvel em uma arquitetura tradicional Cliente-Servidor. Figura 5 – Ambiente de computação móvel em uma arquitetura Cliente / Servidor clássica 26 Extensões da tradicional arquitetura Cliente-Servidor são importantes para dar apoio a operações desconectadas ou de fraca conectividade além de prover componentes para implementação de otimizações adequadas possibilitando assim o mínimo possível de mudanças nos clientes e nos servidores (PITOURA E CHRYSANTHIS, 2000 APUD CÔRTES E LIFSCHITZ, 2002). 2.1.1.1 – Arquitetura Cliente-Agente-Servidor Essa arquitetura surge de expansões da convencional arquitetura Cliente-Servidor, existindo a presença de um agente, o qual representa o cliente na rede estacionária, ocorrendo a transferência de carga de processamento do equipamento móvel para o servidor de rede fixa. Através do agente, a unidade pode emitir suas requisições que forem necessárias para o servidor e ficar no modo de espera, pois a responsabilidade de ter sucesso, nas respostas das requisições do cliente, fica sob responsabilidade do agente. No momento da reativação do cliente, as informações solicitadas são entregues ao cliente através do agente. Vale observar que essa arquitetura não suporta o trabalho desconectado, fazendo com que as requisições solicitadas pela unidade móvel, quando ela estiver desconectada sejam enfileiradas pelo agente e, após a reconexão, sejam enviadas as informações para o cliente (BRAZ, 2002). 2.1.1.2 – Arquitetura Cliente-Interceptador-Servidor A principal característica que se destaca nessa arquitetura é que ela resolve a impossibilidade do trabalho desconectado da arquitetura Cliente-Agente-Servidor. O elemento agente foi “copiado” tanto para o lado do cliente quanto para o lado servidor, podendo assim interceptar tanto as requisições do cliente como do servidor, trabalhando de forma associativa no atendimento de cada solicitação (BRAZ, 2002). Através de uso do cache no lado do cliente, surge a possibilidade de se poder trabalhar com desconexões, já que, durante esse período, as unidades móveis têm suas solicitações atendidas através da utilização desses caches, mantidos pelo cliente. Sendo assim, se esses dados não estiverem disponíveis por esses caches, essas requisições serão enfileiradas e, quando houver a reconexão, serão entregues ao cliente pela responsabilidade do agente do lado do servidor. 27 2.1.2 – Arquitetura Par-Par Nessa arquitetura, a principal característica diz respeito à impossibilidade de diferenciar quem é cliente e quem é servidor. Todos que estão nessa arquitetura são clientes e servidores, pois tanto solicitam informações como são solicitados por outros que estão nessa rede. Sendo assim, segundo Braz (2002), a desconexão nessa arquitetura apresenta-se como uma grande dificuldade, já que a indisponibilidade de um site, por exemplo, pode afetar uma transação por completo. Esse problema pode ser amenizado com a inserção, nessa arquitetura, de elementos agentes que podem representar as unidades no momento em que ocorra uma desconexão. 2.1.2– Agentes Móveis Segundo Trasel (2005), os agentes móveis são processos de um computador raiz para realizar algum serviço em outro equipamento, possuindo instruções, informações e um estado de execução, sendo processados de forma autônoma e independente de seu emitente. Quando atingem um servidor ou um cliente, têm a capacidade de cooperação com outros agentes a fim de realizar a tarefa a que foram designados. Nesse sentido, destacam-se dois fatores que motivam a utilização desses agentes móveis na computação móvel: primeiro, podese observar que esses agentes oferecem um procedimento assíncrono competente localizando dados ou funcionalidades espalhadas na rede. Sendo assim, clientes são arremessados na rede a procura, por toda parte, por informações ou serviços desejáveis. Seguidamente, é possível notar que esses agentes podem suportar redes lentas e equipamentos com poucos recursos, deixando a utilização desses agentes móveis bastante atrativos na computação móvel. No período em que ocorre a desconexão, a unidade cliente móvel envia um agente móvel para a rede fixa, fazendo com que esse tenha a responsabilidade de buscar os dados requisitados e, logo após, a conexão entregará essas informações ao cliente. 2.2 - Paradigmas de acesso aos dados Como o acesso a dados, segundo Braz (2002), em ambientes móveis, apresenta uma série de limitações, como restrições na capacidade de armazenamento de informações e a 28 possibilidade de desconexão, serão mostradas, a seguir, as principais proposições para trabalhar com estas limitações, que são a difusão de dados (broadcast) e o caching de dados. 2.2.1 – Difusão de dados (Broadcast) Difusão de dados, segundo Barbará (1999), significa a entrega de dados de um conjunto de provedores para um amplo número de clientes, sem a necessidade de que os dados estejam envolvidos em uma requisição anteriormente feita por outro cliente. Sendo assim, esse procedimento de entrega fica caracterizado pela assimetria nas comunicações, já que a largura de banda da rede é bem maior no sentido servidor – cliente do que no sentido inverso. Observa-se que existem duas estratégias por disseminação de dados, o pull-based e o push-based. O primeiro caracteriza-se pelo papel de ativo praticado pelo cliente, solicitando dados ao servidor através do envio de mensagem. Já o push-based manifesta-se de forma contrária do pull-based, pois as requisições partem do servidor, transportando os dados pela rede. Vale lembrar que, nessa estratégia, o cliente se comporta somente como receptor (Figura 6). Figura 6 - Estratégias de transmissão por difusão pull-based e push-based 2.2.2 – Caching de dados 29 Visando também aumentar a disponibilidade de informações ao cliente móvel que se encontra numa base remota, o caching oferece benefícios de poder armazenar dados em cache (disco local). Conforme Ito (2001) apud Amado (2002), para melhor empregar a classificação dos dados são usadas duas regiões distintas: a região quente e a fria. Como previsto, a região quente é aquela que apresenta as informações que, usadas frequentemente, enquanto a região fria mostra os dados que são usados com menos frequência. Segundo Braz (2002), o uso de memória cache para a execução de operações de atualizações de itens de dados e consultas, coopera para a diminuição da utilização dos recursos disponíveis nos dispositivos móveis, fazendo com que o cliente possa guardar as informações necessárias e trabalhar sob forma desconectada. Faz-se importante ressaltar que, quando os dados consultados não são encontrados no cache, é necessário realizar uma requisição ao servidor, podendo esta ser total, quando o cliente solicita todos os dados para realizar uma consulta, ou parcial, quando já existem no cache alguns dados que possam atender a consulta. 2.3 - Gerenciamento de transações móveis A definição formal de transação dá-se por uma unidade lógica de processamento de banco de dados, que inclui uma ou mais operações de acesso à base. Entre essas operações estão: inserção, exclusão, alteração e consulta as informações (Elmasri e Navathe, 2000 apud Amado, 2002). Com a concorrência de transações acessando a mesma base, problemas como a perda de consistência dos dados vêm se tornando cada vez mais frequentes. Por isso, o controle de concorrência e a recuperação de falhas possuem algumas propriedades importantes a fim de evitar erros, as quais são chamadas de propriedades ACID (Elmasri e Navathe, 2000 apud Amado, 2002). As propriedades ACID podem ser descritas pelo o conjunto das seguintes características: - Atomicidade: faz com que cada transação seja tratada como uma unidade de operação, ou seja, todas as ações de transação são executadas ou nenhuma delas será; - Consistência: descreve que nenhuma operação do banco de dados de uma transação pode ser incompleta; - Isolamento: apresenta que outras transações não podem visualizar os resultados de outras transações concorrentes quando elas estão em andamento; 30 - Durabilidade: garante a permanência dos resultados de uma transação efetivada no banco de dados; Segundo (BRAZ, 2002), com a característica da mobilidade, onde as transações móveis acessam dados de localização diferentes e, muitas vezes, de posições imprecisas, é permitido que a execução de uma transação móvel possa ocorrer de forma distribuída. Portanto, uma parte é executada em um host fixo e outra parte em um host móvel. Sendo assim, através das transações efetuadas é possível manter a consistência do banco de dados, a atualização e a recuperação de dados. 2.3.1 – Modelos de transações móveis Serão apresentados alguns modelos de transações móveis que demonstram estratégias de como as transações de informações se comportam e um ambiente de computação móvel com base em Adiba et. al (2001). - Transação Kangaroo: propõe um modelo de transação móvel, que inclui movimento em sua estratégia de execução. Nesse sentido, como a unidade móvel se desloca, o gerenciamento da transação, que é desempenhado pela unidade fixa, também se locomove. Essa mudança de localização acontece por conta da divisão durante o handoff, pois a transação é dividida em pequenas transações, que podem ser executadas independentes do sistema de banco de dados da rede fixa. - Clustering: neste modelo acontece a divisão do banco de dados em cluster (agrupamento), sendo armazenados nesses agrupamentos informações de semântica relativa ou de localização aproximada. Sendo assim, transações podem ser consideradas: transações strict ou weak. A execução da transação strict só acontecerá, quando os hosts estiverem fortemente conectados, enquanto a transação weak ocorrerá quando os equipamentos móveis estiverem desconectados. -Semântica Baseada (Semantics Based): este modelo trabalha com a divisão (fragmentação) de objetos a fim de obter uma melhor solução de problemas de concorrência e de conexão nas unidades móveis. Sendo assim, é proposta a fragmentação de objetos grandes e complexos em menores, podendo ser alocados em cache ou gerenciados independentemente. Assim, quando solicitado, o servidor disponibiliza esses fragmentos para a unidade móvel. - MDSTPM (Multidatabase Transaction Processing Manager): este modelo trabalha com um ambiente que oferece suporte a submissões de transações de equipamentos 31 móveis em um ambiente de banco de dados múltiplos. O MSDTPM tem a capacidade de coordenar a execução de transações globais, agendar e monitorar os processos de confirmação de transações. 2.4 - Processamentos de Consultas Como no ambiente móvel a localização da unidade móvel é estática, os resultados de consultas executadas, nesse ambiente, podem depender tanto da localização do usuário onde a consulta foi emitida quanto ao tráfego de dados a partir do equipamento móvel. Esses fatores são enfatizados e detalhados, conforme descrito por Nassu e Finger (2000) apud Manganelli e Romani (2004): - O tempo de transmissões de dados pode ser alto, pois a baixa transmissão de informações e a baixa confiabilidade podem gerar retransmissões frequentes, influenciando diretamente nesse tempo. - O tempo da execução da consulta pode ser influenciado também pela demora da localização da unidade móvel, principalmente nas grandes metrópoles, que possuem um grande número de avenidas e informações concentradas. - O tempo de resposta à consulta pode ser modificado, quando a unidade móvel cliente está desconectada da rede, por vontade própria ou não, podendo esse período de desconectividade ser longo, aumentando assim o andamento de execução da consulta no banco de dados. Como já descrito, algumas consultas podem depender da localização da unidade móvel no momento da consulta realizada. Segue abaixo, conforme Imielinski e Badrinath (1993), alguns exemplos desse tipo de consulta: a) “encontre o policial mais próximo da minha localização”; b) “encontre X, Y e Z de forma que eles estejam localizados no mesmo edifício e Y esteja entre X e Z”. 32 2.5 - Replicações de dados Segundo Trasel (2005), a replicação é uma operação onde um arquivo ou um conjunto de arquivos é copiado de seu lugar de origem para outras máquinas dentro de um sistema, fazendo com que as unidades móveis possam carregar esses dados replicados, aumentando assim a disponibilidade das informações e a performance de aplicações que atuam sobre esses dados. Como a replicação é uma técnica que otimiza recursos, tanto de hardware como de rede, a base de dados contém a base consolidada e a base remota. A base consolidada demonstra os dados a serem replicados enquanto a base remota contém um subconjunto de informações da base consolidada (Figura 7) e, geralmente, possuem localização distante fisicamente desta. Figura 7 – Replicação de dados – Base Consolidada e base remota. Um dos principais benefícios de se praticar a replicação dos dados, em um ambiente móvel, é a disponibilidade dos dados armazenados em cache local dos equipamentos móveis, possibilitando, assim, a realização de operações mesmo essas unidades estando desconectadas ou com conexão fraca. É possível destacar um aumento no tempo de resposta de requisições de operações, pois não há necessidade de conexão a bases distintas. Em relação aos principais desafios, podemos observar que os dados replicados estejam consistentes e que haja integridade das transações em cada banco replicado. Baseado no trabalho de Ito (2001), são descritos a seguir brevemente alguns dos principais modelos de replicação de dados: 33 - Replicação Par-a-Par (Peer-to-Peer): neste modelo todas as cópias de um determinado banco são idênticas, fazendo com que a comunicação entre os dispositivos móveis aconteça sem a interferência do servidor encontrado em uma rede estacionária; - Replicação Cliente-Servidor: neste modelo de replicação a atualização dos dados é executada no sentido servidor->cliente, fazendo com que a comunicação entre os clientes, ao contrário do modelo anterior, seja possível somente através da intervenção do servidor da rede estacionária; - Modelo WARD (Wide Area Replication Domain): conjunto de estações próximas conectadas e pertencentes a uma mesma área geográfica, como já era esperado este modelo pode ser considerado como uma combinação entre os modelos apresentados anteriormente (Peer-to-Peer e cliente-servidor) já que possui características semelhantes a esses modelos em determinadas situações (BRAZ, 2002). 2.6 - Recuperações de falhas Conforme descrito em Ito (2001) apud Amado (2002) o processo de recuperação de falhas pode ser conceituado como a capacidade que um sistema possui em preservar a consistência do banco de dados após falhas no sistema, de transações ou dos meios de comunicação. Como descrito em Pitoura e Samaras, (1998) apud Amado,(2002), em sistemas distribuídos existem pontos de recuperação de recuperação de falhas conhecidos como checkpoints. Então, quando ocorrem falhas ou desconexões, a aplicação usa o último checkpoint salvo para reiniciar sua execução, sendo esse papel desempenhado pela unidade móvel. Portanto, é importante que o equipamento móvel sempre esteja informado em qual célula ele se encontra, pois em momentos de mudança de células ou período de desconexões ela gera um checkpoint. Através do estudo observado em (TRASEL, 2005) foi possível perceber a existência de um componente chamado checkpoint global, o qual consiste em um conjunto de checkpoints locais. Foi possível também notar a existência dos estados globais, os quais são usados para recuperação de falhas dos sistemas contendo o estado de cada processo que faz parte daquela aplicação, podendo também conter algumas mensagens. 34 3. SISTEMAS GERENCIADORES DE BANCO DE DADOS MÓVEIS Com o desenvolvimento tecnológico mundial, principalmente na computação móvel, os sistemas de bancos de dados móveis estão sendo cada vez mais aperfeiçoados para seus usuários. Mas, segundo Galliano (2007), vários desafios ainda são encontrados nessa tecnologia. Dentre estes, é possível destacar o crescimento do número de problemas relacionados à manutenção das propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade), na presença das mobilidades pessoal e terminal, fazendo com que os mecanismos de controle de concorrência e os esquemas de recuperação de banco de dados tenham suas funções desempenhadas corretamente. Por aumento da usabilidade da computação móvel, atualmente vários desenvolvedores de sistemas de banco de dados comerciais estão disponibilizando produtos para a computação móvel. Segundo Gonçalves (2005), uma característica comum entre esses softwares é que eles agem quando há uma desconexão dos clientes, atuando como banco de dados locais necessitando assim de uma carga antecipada dos dados a fim de ajudar as aplicações. Neste capítulo serão abordadas as principais características de alguns sistemas de banco de dados relacionais, dentre eles o Oracle Lite, DB2 Everyplace, Microsoft SQL Server 2005 Mobile Edition e o Sybase SQL Anywhere. 35 3.1 - Oracle Lite O Oracle Lite é um sistema de banco de dados produzido pela Oracle, voltado para ambientes de dispositivos móveis. Esse SGBD pode ser executado em várias plataformas como o Windows 98/NT/2000/XP, Palm OS e Embedded Linux e pode trabalhar com JDBC, ODBC, ADO.NET e SODA (Simple Object Data Access) (ORACLE a, 2005). Segundo Pitombeira (2006), além desse software permitir a integração de estruturas de banco de dados com a rede mundial, ela ainda faz o acesso a dados independentes da plataforma utilizada. Esse sistema de banco de dados, por suportar todo um conjunto de desenvolvimento de aplicações móveis, pode ser uma solução para empresas que trabalham com uma base de dados totalmente distribuída. Assim, em companhias que trabalham com vendas, os funcionários podem ficar in loco junto ao cliente, podendo transferir para seus dispositivos portáteis as informações que cada profissional precisa, podendo ainda consultar, inserir, alterar ou até mesmo sincronizar as informações guardadas em um servidor central. Algumas características principais do Oracle Lite são: - Suporte a múltiplas conexões simultâneas; - Suporte para sincronização em redes sem fio; - Suporte a Stored Procedures e Triggers; - Replicação bidirecional de dados; - Vasto leque de plataformas e dispositivos suportados; - Compatibilidade com o Oracle Database Server; - Suporte a tabelas, visões e índices; - Suporte ao SQLJ e SQL padrão; - Suporte para criptografia para a segurança dos dados. - Possibilidade de utilização de múltiplas ferramentas de desenvolvimento como: Visual C++, Visual Coffee, Oracle JDeveloper e Developer, Delphi, SatelLite Forms, CodeWarrior; Conforme ilustrado na Figura 8, segundo Pitombeira (2006), o sistema de banco de dados móvel Oracle Lite é formado por três camadas: a camada do servidor, a camada 36 intermediária e a camada do cliente. Podem ser destacados ainda os principais componentes dessas camadas: - Oracle Lite Database: sistema de banco de dados projetado para dispositivos portáteis; - Mobile Server: mecanismo responsável pela sincronização dos dados entre os dispositivos móveis e a estação base central; - Life Cycle Management: realiza distribuição, instalação e gerenciamento das aplicações, dados e arquivos no dispositivo móvel, promovendo ainda o gerenciamento de usuários, dispositivos e sistema; - Rapid Application Development: responsável pelo desenvolvimento de aplicações para várias plataformas (PITOMBEIRA, 2006). Figura 8 – Visão geral dos componentes da Oracle Lite (ORACLE a). 3.2 - DB2 Everyplace O DB2 Everyplace é um banco de dados relacional, que tem como objetivo principal fazer a sincronização bidirecional entre os dados que são acessados pelos dispositivos móveis em um servidor central de dados (IBM). 37 Segundo Gonçalves (2005), as principais características que se destacam nesse banco de dados são: - Possui softwares que podem ser utilizados em várias plataformas; - Possui sincronização em redes sem fio; - Ocupa pouco espaço em disco no cliente; - Suporta as funcionalidades da SQL padrão como Join, Group by e Order by; - Oferece suporte as linguagens C/C++ e Java. - Suporte de transações; - Suporta criptografia de dados; - Possui Query-By-Example (QBE) como interface de consulta. Segundo Pitombeira (2006), esse banco de dados possui dois importantes componentes, que são o DB2 Everyplace Sync Server, software que gerencia a sincronização bidirecional dos dados entre os dispositivos móveis e a estação base e o Everyplace Sync Client, programa que é colocado nos dispositivos portáteis a fim de que se possa inserir, remover ou modificar dados e informações no servidor central. O DB2 Everyplace Sync Server comporta-se como um software que trata a sincronização dos dados presentes em um servidor central que estão sendo solicitados por algum dispositivo móvel (IBM a). Na Figura 9, mostra-se o desenvolvimento de aplicativos e a sincronização de dados compartilhados entre uma estação base e um dispositivo portátil. Faz-se necessário estar o banco de dados DB2 Everyplace executando no dispositivo móvel, para que ele possa acessar e editar uma cópia dos dados localmente, através das aplicações destes dispositivos. Para iniciar a sincronização dos dados, obtidos através de uma comunicação entre os dispositivos móveis e um servidor central, é necessário que o componente DB2E Sync Client presente no dispositivo realize um pedido para se comunicar com o DB2E Everyplace Sync Server, para só assim o sistema camada intermediária (Mid-tier) realizar a comunicação com a fonte de dados centralizada (PITOMBEIRA, 2006). 38 Figura 9 - Desenvolvimento e sincronização do DB2 Everyplace (IBM a). Em relação à sincronização dos dados, o Sync Server observa quais as mudanças que foram realizadas em cópias locais pelos usuários para a estação base. Mas como o Sync Server é um servidor de sincronização bidirecional, os usuários passam a receber as modificações que foram feitas no servidor e não em suas cópias de banco de dados locais. Assim, dá-se a sincronização dos dados do cliente para com o servidor (IBM b). Com a sincronização dos dados com o DB2 Everyplace Sync Server, problemas como conflitos, compressão e criptografia de dados podem ser resolvidos. Além desses benefícios, o Sync Server ainda utiliza uma ferramenta chamada de Mobile Devices Administration Center que gerencia e fornece serviços de sincronização de dados, permitindo definir subconjuntos de dados e arquivos que vão ser acessados por grupos de usuários (PITOMBEIRA, 2006). Segundo a IBM, uma grande variedade de tipos de banco de dados é suportada pelo DB2 Everyplace Sync Server, dentre eles podemos destacar (IBM b): - Oracle 9i e 10g; - DB2 Universal Database V7.1 e V8.1 para z/OS; - Microsoft SQL Server 2000 com Service Pack 3a (V8.00.760) (com SQL Server Driver para JDBC); - Sybase Adaptive Server Enterprise 11.93 (com Sybase J-Connect 5.5 para JDBC). Como é executado nos dispositivos móveis, o Everyplace Sync Client, além de gerenciar as operações que são feitas localmente pelos usuários, manuseia a sincronização 39 bidirecional dos dados corporativos com o DB2 Everyplace existente no dispositivo móvel (PITOMBEIRA, 2006). Segundo a IBM, o Sync Client pode ser voltado para várias plataformas, dentre elas podemos destacar: - Linux; - Palm OS 3.5, 4.1 e 5.0 ou versões superiores; - Windows CE 3.0, PocketPC, PocketPC2002, HandheldPC, Windows CE.Net, e Windows Mobile 2003 para PocketPC; - Java 2 Micro Edition Mobile Information Device Profile virtual machine. 3.3 - Microsoft SQL Server 2005 Mobile Edition Com novas funções de sincronizar, armazenar e processar consulta de dados, o Microsoft SQL Server Mobile Edition (SQL Server Mobile) foi lançado em 2005 com o objetivo de tornar-se mais popular aos usuários da computação móvel. Novas características como criptografia de dados, gerenciador de transações, garantia da ACID (atomicidade, consistência, isolamento e durabilidade) e gerenciador de buffer foram adicionadas nessa versão do SQL Server. A arquitetura do SQL Server Mobile é formada pela camada de desenvolvimento, cliente e servidor. Conforme pode ser visto na Figura 10, a camada do desenvolvimento é composta pelos componentes Microsoft Visual Studio 2005 juntamente com o NET, podendo assim ser formadas aplicações em Microsoft Visual Basic, Microsoft Visual C# ou Microsoft Visual C++ para os dispositivos portáteis (MICROSOFT a). Já a camada do cliente forma-se pelas aplicações que precisam se conectar ao SQL Server Mobile, sendo também possível ter acesso ao SQL Server Mobile, através do Microsoft ActiveSync (PITOMBEIRA, 2006). 40 Figura 10 - Arquitetura do SQL Server Mobile (MICROSOFT a). Como descrito em Pitombeira (2006), a camada do servidor compõe-se pelo Microsoft Internet Information Services (IIS) e pelo Microsoft SQL Server, sendo que o IIS é que fica responsável pela conexão entre os dispositivos móveis e a estação base. Conforme ilustrado na Figura 11, a camada cliente possui uma aplicação para acessar os dados e um aplicativo, o SQL Mobile, para gerenciar a conectividade e o acesso aos dados no servidor (MICROSOFT a). O IIS (Internet Information Services) além de fazer a integração com servidores web e gerenciar alguns protocolos da Internet, permite que dispositivos móveis possam transferir dados, através do protocolo RDA (Remote Database Access - Acesso a Banco de Dados Remotos) a fim de obter uma conectividade segura com o SQL Server Mobile. Quando um servidor recebe solicitações de informações do cliente, ele se conecta ao servidor SQL e retorna os dados requeridos para o cliente, através de um protocolo, que nesse caso é o HTTP. O servidor ainda possui o SQL Server que realiza o gerenciamento relacional dos dados com seus componentes (PITOMBEIRA, 2006). 41 Figura 11 – Relacionamento entre o servidor e o cliente (MICROSOFT a) Já que o SQL Server pode acessar e editar dados ou informações, tanto referentes ao cliente quanto ao servidor, seguem abaixo as principais características do Microsoft SQL Server CE. - Possui otimização de consultas e processamento de transações; - Possui tamanho em torno de 1 Mb; - Permite criação, edição e exclusão de tabelas e dados; - O espaço em disco ocupado pelo no cliente varia entre 800 Kb-3 Mb; - Utilização de comandos das linguagens DML e DDL; - Suporte ao acesso remoto de dados (RDA); - Suporte a criptografia e senha de proteção para os bancos de dados. 3.4 - Sybase SQL Anywhere Sendo uma solução embutida no pacote de software SQL Anywhere Studio da Sybase, que provê a gerência de dados, o Sybase UltraLite está presente nos dispositivos móveis a fim de manipular e gerenciar dados (SYBASE a). Podem ser destacadas algumas características desse banco de dados (GONÇALVES, 2005): - Podem ser utilizados em várias plataformas dentre elas o Windows 95/98/Me, NT, 200, XP e Palm Computing Platform; 42 - Oferece criptografia dos dados; -As funções do SQL oferecem processamento de transações, integridade e operações de junções de tabelas; - O tamanho máximo do banco de dados é de 2Gb. O SQL Anywhere é composto por alguns componentes de grande importância para este banco de dados, dentre eles podemos destacar: Adaptive Server Anywhere, UltraLite, MobiLink e SQL Remote (SYBASE b). O Adaptive Server Anywhere foi projetado para realizar tarefas tanto em ambientes com vastos recursos computacionais como em ambientes com limitações de processamento e área de memória (PITOMBEIRA, 2006). O Adaptive Server Anywhere, além de oferecer suporte de mobilidade aos sistemas de bancos de dados, possibilita o gerenciamento e o armazenamento dos dados e a inclusão do banco de dados na rede. Este componente possui duas versões: a pessoal, que trabalha diretamente com o usuário para que este tenha acesso a informações localmente e a rede, que disponibiliza acesso do cliente através da rede trabalhando com a plataforma cliente-servidor (SYBASE c). Além de tratar o gerenciamento e a sincronização dos dados com um banco de dados centralizado, o UltraLite ainda provê o armazenamento e a recuperação de dados, permitindo trabalhar com funções SQL com intuito de laborar tabelas, restrições de integridade e algumas operações de transações (SYBASE c). Conforme Pitombeira (2006), se mais de uma aplicação for usada para se conectar no mesmo banco de dados, torna-se adequado utilizar o Adaptive Server Anywhere, sendo que o Ultra Lite é indicado para ser usado em dispositivos de pequeno porte. Tendo uma sincronização em tempo real, o MobiLink é indicado para ser utilizado em ambientes que fazem conexões com banco de dados UltraLite e Adaptive Server Anywhere, sendo que essas conexões podem acontecer através de protocolos TCP/IP ou até mesmo por ondas de rádio (SYBASE f). Conforme descrito em Pitombeira (2006), no MobiLink existem algumas características importantes, dentre as quais pode ser destacado o método de sincronização baseado em sessões e sincronização bidirecional. 43 O SQL Remote consiste em um banco de dados central, que armazena uma cópia dos bancos existentes nos dispositivos móveis, tendo sua sincronização baseada em mensagens como e-mail ou compartilhamento de arquivos (SYBASE e). Segundo Pitombeira (2006), no SQL Remote existe um agente de mensagem, que envia uma mensagem de replicação para o banco de dados central, quando há uma alteração ou modificação nos dados. Ao ocorrer uma modificação nas informações em outros bancos de dados locais, esse mesmo agente passa a receber uma mensagem desses bancos a fim de atualizarem os dados da estação base. Uma diferença importante entre o MobiLink e o SQL Remote é que este último tem a sincronização baseada em mensagem e não em sessão, como é o MobiLink, e o SQL Remote não oferece suporte ao Oracle, Microsoft e a IBM, enquanto o MobiLink suporta. 44 4. ANÁLISE COMPARATIVA DOS SISTEMAS DE BANCO DE DADOS MÓVEIS COMERCIAIS Neste capítulo serão abordados alguns critérios importantes para a análise comparativa proposta neste trabalho entre os sistemas de banco de dados anteriormente definidos. 4.1 Recuperação de Falhas Uma das principais características de um SGBD consiste na capacidade deste se recuperar após a ocorrência de uma falha durante algum processo de atualização dos dados. Esse é um fator importante porque a não recuperação de uma falha pode resultar em um estado inconsistente do banco de dados. De forma similar, apesar de características ligeiramente distintas, os sistemas gerenciadores de bancos de dados móveis também precisam levar em consideração esse critério. As seções seguintes discutem e analisam de que forma os SGBDs tratados neste trabalho oferecem recursos para o processo de recuperação de falhas. 4.1.1 DB2 Everyplace Conforme descrito no capítulo anterior, o DB2 Everyplace é uma base de dados relacional que realiza a extensão da troca de dados de um ambiente desktop para um 45 dispositivo portátil. Este componente se utiliza do conceito de arquivos de log circular a fim de suportar a recuperação de falhas. Dessa maneira, os arquivos são reutilizados, fazendo com que a recuperação ocorra somente para as falhas de sistema. Outro formato de log que o DB2 utiliza é o arquivo log retain. Nesse caso, os arquivos de log não são reaproveitados, tendo a possibilidade da ocorrência dos processos de recuperação rollback e forward. Assim, com a utilização desse formato de arquivo é admitido o gerenciamento tanto das transações confirmadas quanto das pendentes, podendo ter os registros já realizados enviados para um arquivo secundário. Com a possibilidade de manter os dados nos dispositivos portáteis, o DB2 Everyplace faz, através do DB2 Everyplace Sync Server, a sincronização dessas informações atualizadas localmente com o banco de dados central. É interessante ressaltar que, caso ocorra uma interrupção no momento em que está acontecendo a sincronização, o banco será reiniciado a partir do ponto que ocorreu a suspensão do sincronismo. 4.1.2 Sybase SQL Anywhere Studio Como já descrito no capítulo anterior, o Sybase SQL Anywhere Studio é formado pelo banco de dados Sybase Adaptative Server Anywhere e Ultralite e pelas tecnologias de sincronização de dados SQL Remote e Mobilink. Em relação ao tratamento de recuperação de falhas, segundo Braz (2002), o Sybase Adaptative Server Anywhere possui quatro tipos de arquivos para sua execução: arquivo de banco de dados, log de transações, espelho de log de transações e arquivo temporário. No arquivo de banco de dados é possível encontrar informações relativas ao banco de dados, as tabelas e os índices do sistema, elementos indispensáveis para o funcionamento do banco de dados. Já no arquivo de log de transações são mantidos os registros de todas as alterações que foram processadas na base de dados, permitindo assim a recuperação de dados após o acontecimento de uma falha. Como o próprio nome indica, o espelho de log de transações simplesmente contém uma cópia fiel do arquivo de log de transações originais. Em relação ao arquivo temporário, este tem apenas a função de fornecer um local de armazenamento de dados temporário do banco de dados (BRAZ, 2002). 46 As informações armazenadas nesses arquivos são organizadas baseadas em páginas, as quais são espaços de tamanho fixo no disco. Sendo assim, existem dois tipos de páginas destinadas especificamente para a recuperação de falhas do banco de dados: rollback log e checkpoint log Pages (BRAZ, 2002). O rollback log é encontrado a cada conexão feita com o banco de dados, sendo que nesse log encontra-se guardado um registro de todas as modificações enviadas para o banco de dados por uma determinada conexão após o último registro de commit ou rollback. Caso seja enviado um comando rollback ou aconteça alguma falha, o registro dá a possibilidade de que as alterações que não foram confirmadas possam ser canceladas. Uma vez que a transação tenha sido confirmada, o rollback log será apagado e as páginas disponibilizadas poderão ser ofertadas para o uso do banco de dados. Já quando ocorre um registro de checkpoint, as informações armazenadas no arquivo de banco de dados ficam idênticas às informações mantidas no log de transações e, assim, havendo a ocorrência de uma falha, é provável que o servidor não consiga obter um registro de checkpoint antes de um procedimento de shutdown (encerramento). Uma solução para este problema seria a utilização do checkpoint log. Nesse caso, o servidor de banco de dados conserva cópias de todas as páginas que foram modificadas a partir do último checkpoint. Essas páginas são chamadas de páginas de rollback, que, em conjunto, formam o checkpoint log. Em relação ao processo de recuperação, após o servidor voltar ao seu último estado consistente, através da utilização das páginas rollback sobre as páginas do arquivo de banco de dados, realiza-se a aplicação das modificações. Estas são executadas a partir do último checkpoint pela releitura do log de transações, fazendo com que todas as transações não confirmadas sejam revertidas usando os rollback logs (BRAZ, 2002). 4.1.3 Oracle Lite No momento em que uma aplicação se conecta em um banco de dados Oracle Lite é iniciada uma transação com esse banco. Observa-se que o conceito de transação forma-se pelas seguintes propriedades: atomicidade, consistência, independência e durabilidade. Quando tratamos da propriedade da atomicidade, sabe-se que ela é marcada pela não atualização do arquivo até que o banco de dados confirme a transação, pois durante a 47 operação de confirmação (commit), o log undo temporário (relacionado à operação de desfazer) é criado e, assim, o banco de dados atualiza-se. Esse log apresenta-se de fundamental importância, pois caso ocorra uma falha durante esse processo de confirmação, o banco de dados poderá ser restaurado a partir do log undo criado durante a próxima conexão. A propriedade de consistência está relacionada garantia que o estado correto do banco de dados seja mantido. Dessa forma, operações de commit que ocorram em transações só serão realizadas caso não infrinjam alguma restrição de integridade da base de informações. O isolamento das transações é adquirido através de alguns níveis de bloqueios aceitos pelo mecanismo de banco de dados. A idéia central é tratar cada transação de modo independente, como se nenhuma outra transação estivesse sendo executada naquele mesmo instante. Por último, temos a durabilidade, que é garantida após o commit dos efeitos da transação, pois, ocorrendo uma falha logo após a esta confirmação, no banco de dados, os efeitos da transação serão inalteráveis. Caso ocorra uma falha durante o processo de commit ou rollback de uma transação, será utilizado o log undo a fim de levar o banco de dados a um estado consistente. De uma forma geral, caso a transação termine com sucesso, a propriedade garante que o estado correto dos dados não seja alterado. 4.1.4 SQL Server CE Segundo Braz (2002), o Microsoft SQL SERVER 2000 possui pelo menos um arquivo para registro dos dados e outro para o registro das transações, conhecido como log de transação. Sendo assim, os dados que modificam o estado do banco de dados são armazenados de forma sequencial nesse log de transação, permitindo as execuções das operações de redo ou undo das transações, ficando também registrados nesse log de transações os estados das informações antes e depois das alterações. Através de pontos de verificações, chamados de checkpoints, o SQL SERVER 2000 irá garantir que os registros do log sejam inseridos no disco. Sendo assim, durante o processo de recuperação no banco de dados, uma transação precisa ser duplicada somente quando não existir a aprovação de que todas as alterações de informações não foram escritas no disco. Como o ponto de verificação faz com que todas as informações modificadas sejam inseridas no 48 disco, é possível considerar esse ponto o ponto inicial para o processo de recuperação para as transações. A fim de garantir a integridade dos dados, caso ocorra alguma falha na comunicação entre cliente e servidor, por exemplo, estando a transação no estado ativa, o banco de dados irá regressar à transação no instante anterior ao momento em que for identificado a falha no sistema. Já no momento em que o mecanismo de banco de dados é interrompido, podem existir transações incompletas que deverão ser revertidas pelo mecanismo no momento da volta a atividade. Segundo Braz (2002), o SQL SERVER 2000 proporciona suporte às transações distribuídas envolvendo recursos de duas ou mais origens. Dessa maneira, para atender essas transações, esse banco de dados se utiliza de um gerenciador de recursos e um gerenciador de transações, sendo todo esse processo construído com base no protocolo 2PC que tem o papel de controlar a execução das operações distribuídas. 4.1.5 Tabela Comparativa de Recuperação de Falhas Conforme previsto, a seguir é apresentada uma tabela comparativa resumindo as principais diferenças entre os bancos de dados analisados. Tabela 1 - Resumo das principais características dos produtos analisados em relação à recuperação de falhas. 49 4.2 Segurança Devido a características inerentes aos dispositivos móveis, um critério que tem recebido bastante atenção de desenvolvedores e pesquisadores dessa área é a segurança das informações. Tal fator pode ser determinante na escolha do SGBD mais adequado para cada situação. Baseado nisso, este trabalho apresenta nas seções seguintes um estudo comparativo entre os SGBDs pertinentes a este trabalho no que se refere ao critério de segurança dos dados. 4.2.1 Oracle Lite Segundo Alves (2007), o Oracle Lite possui o recurso de encriptação do banco de dados, fazendo com que as informações contidas no banco não possam ser interpretadas pelo por algum mecanismo tradicional. O Oracle Lite utiliza a encriptação AES (Advanced Encryption Standard ou Padrão de Criptografia Avançada). Neste tipo de algoritmo, é preciso criar uma senha para gerar a chave de encriptação de 128 bits. Com essa encriptação, a cada momento que o usuário tentar constituir uma conexão com o banco, deve existir uma senha de acesso válida. Caso essa senha não seja encontrada no sistema, retorna-se a um erro. Faz-se importante ressaltar que o banco de dados Oracle Lite não pode ser encriptado ou decriptado no momento em que uma conexão com o banco estiver aberta. Para fornecer mais segurança, esse banco de dados utiliza-se de determinadas ferramentas a fim de não permitir a intervenção de usuários não autorizados, mesmo os dados estando encriptados. Podemos destacar a ferramenta Secure Sockets Layer (SSL) que é um padrão global em tecnologia de segurança e que protege a integridade dos dados e previne qualquer interceptação de usuários não autorizados. 4.2.2 DB2 Everyplace Como o DB2 Everyplace provê uma solução para que uma aplicação possa implementar uma política de segurança corporativa, sua principal meta consiste na criptografia 50 secreta dos dados guardados no DB2. Para isso, esse sistema se utiliza de métodos tradicionais de criptografia de dados, tais como o DES (Data Encryption Standard ou Padrão de Criptografia de Dados), o qual é uma cifra bastante utilizada. Seu objetivo é codificar um determinado texto recebido como entrada, através de uma série de operações, em um texto codificado de mesmo tamanho. Outra meta do DB2 Everyplace é fornecer um framework específico de segurança com a finalidade de gerenciar as chaves que são usadas para encriptar as informações. Dessa maneira, no momento em que o usuário tentar se conectar ao banco é preciso conter um identificador e uma senha. Feito isso, caso o usuário tente acessar ou criar tabelas criptografadas, deve fornecer ao DB2 Everyplace um ID e senha que não estejam em branco. Caso a autenticação não seja válida, o usuário só poderá ter acesso aos dados que não estejam criptografados (ALVES, 2007). Faz-se importante ressaltar, segundo Alves (2007), que a tabela criptografada é restringida àquele SGBD, não podendo ser alterada para outro DB2 Everyplace existente em outro dispositivo portátil, pois os diferentes bancos de dados possuem diferentes chaves de encriptação e decriptação. Com isso, é possível perceber que se um usuário tem acesso a algumas tabelas criptografadas em um banco, certamente esse usuário não possuirá permissão de acessar um banco utilizando-se do mesmo ID e senha. Além de oferecer mecanismos de verificação da integridade após a sincronização e reparação de problemas ocorridos, o DB2 apresenta uma semelhança com o Oracle Lite, ou seja, o DB2 também se utiliza do SSL para a conexão do servidor. 4.2.3 SQL Server Compact Edition O SQL Server CE, segundo Alves (2007), baseia-se na junção de alguns modelos de segurança, tais como: Microsoft Internet Information Services 5.0 (IIS) ou IIS 4.0, SQL Server 2000 (Service Pack 1 ou mais novos) ou SQL Server versão 7.0 (Service Pack 4 ou mais novos), Microsoft Windows 2000, Microsoft Windows XP Professional, Microsoft Windows NT® 4.0, Microsoft Internet Security e o Acceleration Server 2000 (ISA) [MICROSOFT, 2006]. 51 É possível perceber que o modelo de segurança IIS tanto oferece apoio a criptografia SSL de 128 bits no banco de dados, como dá suporte a três protocolos de autenticação: Anônima, Básica e Integrada. (ALVES, 2007). Na autenticação anônima, como o próprio nome evidencia, ocorre um acesso aos recursos do servidor IIS com o anonimato do cliente, podendo ser usado tanto em ocasiões onde o servidor não precisa armazenar os caminhos percorridos pelos visitantes como, quando as informações disponíveis não precisam ser protegidas. Portanto, este acesso não é indicado para a utilização do banco SQL Server CE, já que não é seguro. Em se tratando do acesso básico, além de confiar em parte do protocolo HTTP 1.0, é indicado que os usuários têm que possuir um login e uma senha válida. Feito isso, o ISS desempenha o login do sistema utilizando-se da conta que proporcionou o acesso. Caso o login seja inválido, a conexão é fechada e um erro é mostrado para o cliente. Basicamente esta autenticação não é segura, já que os logins e senhas são transmitidos na codificação de 64 bits, a qual é relativamente fácil de ser descoberta. Tendo suporte em todos os equipamentos que utilizam o Windows CE, é preferível que a autenticação básica tenha o uso do SSL. Por último, temos a autenticação do Windows, que admite que o usuário faça o login em um site Web, utilizando uma conta de domínio Windows. Por esse motivo, essa autenticação solicita uma conta de usuário, sendo apenas empregada em uma Intranet. Esse protocolo de autenticação usa o algoritmo hashing para proteger os dados do login e senha de transferência. Segundo Alves (2007), por trabalhar com apenas uma senha de segurança, o SQL Server CE dá apoio às senhas de arquivos do banco de dados presentes nos dispositivos, utilizando-se de uma encriptação RSA de 128 bits. 4.2.4 SQL Anywhere Studio Como apresentado no capítulo anterior, sendo uma solução do SQL Anywhere Studio, o SGBD Ultralite pode escolher dois tipos de segurança para seu banco de dados: ofuscação ou encriptação. Vale ressaltar que, segundo Alves (2007), uma vez que escolhido o tipo de segurança que vai ser utilizado, este não poderá mais ser alterado, exceto no caso do banco ser removido e carregado novamente. 52 No caso da encriptação, faz-se necessária a escolha de uma chave que pode ser alterada se preciso. Sendo assim, após a encriptação do banco de dados só é possível acessar os dados com o uso da chave específica, caso contrário, as informações presentes no banco não podem ser acessadas. Já no momento da ofuscação acontece uma “camuflagem” das informações, a fim de se precaver que utilitários revelem esses dados armazenados no banco, ficando transparente apenas para usuários e aplicações. Em relação à autenticação, o Ultralite suporta até quatro ID e suas senhas respectivas, sendo esses IDs criado pelo DBA para garantir acesso aos usuários ao banco de dados, sendo que esse ID uma vez criado não pode ser alterado. Os padrões e protocolos de encriptação usados por SQL Anywhere são baseados nos usados na indústria, como o AES (Padrão de Criptografia Avançada), RSA, ECC (Criptografia curva elíptica) e SSL (Camada de Sockets Protegida), garantindo a segurança do sistema. 4.2.5 Tabela Comparativa da Segurança dos Bancos de dados Móveis Conforme as características relacionadas à segurança dos dados que foram anteriormente descritas, este trabalho apresenta um breve resumo baseado em alguns critérios importantes para os Sistemas Gerenciadores de Bancos de Dados objetos de estudo desse trabalho. A Tabela 2 reúne essas informações, especificando para cada Sistema Gerenciador de Banco de Dados, os componentes responsáveis pelo processo de segurança. Nessa tabela também vai ser possível descrever algumas características de cada banco de dado móvel relacionadas ao espaço de disco ocupado, apresenta também quais as ferramentas que o banco possui e demonstra algumas tecnologias de desenvolvimento e gerenciamento específicos de cada SGBD móvel. 53 Produto Espaço em disco Mecanismos de Segurança Sybase SQL Anywhere Studio 10 150Kb Encriptação AES, RSA; Ofuscação; IBM DB2 Everyplace 150Kb Encriptação DES framework específico de segurança Microsoft SQL Server 2005 Windows CE 1Mb Encriptação RSA e SSL de 128 bits Modelo de Segurança IIS Oracle 10g Lite 350kb Encriptação AES Ferramenta SSL Tabela 2 - Resumo das principais características dos produtos analisados em relação à segurança dos dados. 4.3 Performance Como em qualquer outro sistema computacional, o grau de desempenho alcançado é um fator determinante para os Sistemas Gerenciadores de Banco de Dados. Um SGBD de alto nível deve prover aos seus usuários um ambiente adequado e eficiente de gerenciamento de dados. Dessa forma, qualquer análise comparativa realizada a partir de sistemas dessa natureza deve levar em consideração o critério de desempenho. Esta exigência tornou-se ainda mais significativa com o grande aumento de volume de dados das aplicações. Isto fez com que os bancos de dados móveis aprimorassem uma série de recursos de apoio para prover alta velocidade ao acesso aos dados. É importante observar que a organização física dos dados e os índices de apoio a diferentes métodos são fundamentais para um bom desempenho no banco de dados. Os Sistemas Gerenciadores de Banco de Dados Móveis analisados neste trabalho se utilizam de duas técnicas importantes para prover um incremento de desempenho através do paralelismo de consultas. Essas duas técnicas são conhecidas como paralelismo inter-consulta e paralelismo intra-consulta. Enquanto o paralelismo inter-consulta consiste em uma técnica que tem como objetivo processar diversas consultas simultaneamente, fazendo assim o uso de diferentes nós de cluster, o paralelismo intra-consulta realiza uma "quebra" de uma consulta em várias sub- 54 consultas, fazendo com que sejam distribuídas entre os nós com o objetivo de que os recursos do cluster sejam consumidos de forma homogênea (BELLO, 2009). 4.3.1 DB2 Everyplace Segundo Trasel (2005), como os dispositivos portáteis foram projetados a fim de realizar operações específicas, diferentemente dos computadores pessoais, o banco de dados DB2 Everyplace foi constituído com os recursos mais importantes para a base de dados móveis. Sendo assim, operações tradicionais da linguagem SQL como Join, Group By e Order By foram inseridas, diferentemente de operações como Create views, triggers e stored procedures que não foram incluídas nesse banco. Em relação aos bancos de dados móveis pode-se observar que o DB2 Everyplace fornece uma arquitetura bastante eficiente para aplicações de alta performance, já que possui múltiplos processadores com paralelismos inter-consultas, fazendo com que haja um melhor desempenho nas consultas realizadas nesse banco (IBM c). Outra característica importante do DB2 Everyplace consiste no suporte à indexação. Esse fator é tratado como um importante influenciador do desempenho e as últimas versões desse produto deram forte prioridade às técnicas avançadas de indexação fornecendo um impulso considerável ao desempenho do DB2 Everyplace (TRASEL, 2005). 4.3.2 Oracle Lite Semelhante ao DB2, o Oracle Lite também oferece suporte a paralelismo interconsultas, mas uma diferença observada em relação ao DB2 é que o Oracle Lite tem uma melhor consulta paralela com os dados particionados (ORACLE c). A Oracle priorizou o fator de sincronização das informações a fim de melhorar a performance do Oracle Lite, possibilitando que os dados possam ser replicados de um servidor central para uma base local permitindo aos usuários trabalharem desconectados. Sendo assim, o Oracle Lite Database possui um mecanismo de sincronização assíncrona a fim de permitir que vários usuários possam sincronizar com o servidor ao mesmo tempo, ao contrário da 55 sincronização síncrona que um limite de usuários por causa da limitação da conexão simultânea. Segundo (ORACLE b), como é possível que ocorram alguns conflitos e erros durante a sincronização dos dados nesse banco, para que a sincronização seja eficiente, pois caso não seja o desempenho pode ser afetado, o Oracle Lite pode detectar esses conflitos e fornecer vários mecanismos para resolvê-los. Já em relação aos erros, estes podem ser movidos para uma fila de erros desse banco podendo mais tarde ser eliminados por administradores desse banco. 4.3.3 Sybase SQL Anywhere Studio Em contraste com o DB2 Everyplace e o Oracle Lite, o Sybase SQL Anywhere apresenta um paralelismo de intra-consulta. É importante destacar que nas últimas versões mais aprimoramentos para um bom desempenho foram criados, tais como backups paralelos, alguns métodos adicionais de indexação e vários aperfeiçoamentos internos (SYBASE g, 2006). A Sybase enfatizou a construção de um produto baseado em um bom projeto de banco de dados, já que um bom modelo e seu ambiente podem ser usados para identificar problemas de desempenho em cada camada. Este sistema utiliza ainda um otimizador de consulta, o qual fornece uma análise da consulta e a utilização da indexação mais apropriada para casa caso. É interessante ressaltar que a Sybase disponibiliza um processo chamado ‘sp_sysmon’, o qual fornece informações para se realizar o monitoramento sobre o desempenho interno do Adaptive Server, assim o usuário tem a possibilidade de analisar a saída que é fornecida por esse processo (SYBASE h). 4.3.4 SQL Server Compact Edition 2000 O uso adequado da indexação é fundamental para um melhor desempenho do SQL Server CE, mas também é possível encontrar uma grande preocupação com as consultas que são realizadas nesse banco. Dessa maneira, o SQL Server CE utiliza um otimizador de consultas que tem o objetivo de empregar algumas combinações de transformações heurísticas 56 para reescrever as consultas de uma forma semanticamente equivalente, mas com um melhor plano de execução, melhorando assim o desempenho do banco nas consultas realizadas. Outro ponto bastante observado pela Microsoft em relação ao seu sistema de banco dados móvel é a questão de como suas informações estão sendo armazenadas, pois esse fator pode influenciar diretamente a performance desse sistema. Deste modo, com o objetivo de obter ganhos significativos no desempenho torna-se interessante a utilização de um cache de dados no cliente. Dessa forma, não haveria sentido fazer uma ida e volta completa ao servidor do banco de dados cada vez que o cliente necessitar de informações de pesquisas com atributos como cidade, estado, CEP e assim por diante. É interessante ainda ressaltar que as últimas versões apresentadas desse produto têm incluído e aprimorado vários novos recursos como melhores opções de sincronizações, maior segurança dos dados, aumento da confiabilidade dos dados e o maior desempenho dessa base de dados (MICROSOFT b). 4.2.5 Tabela Comparativa do Desempenho dos Bancos de dados Móveis A tabela 3 tem o objetivo de mostrar resumidamente as principais informações que se destacam em relação aos mecanismos de desempenho e ao tipo de paralelismo tratada por cada banco de dados móvel. Produto Sistemas operacionais suportados Paralelismo Mecanismos de Desempenho Sybase SQL Anywhere Studio Windows 2000, NT, 98, CE, XP. Intra - Consulta Bom projeto de banco de dados e Otimizador de Consulta; IBM DB2 Everyplace Windows 2000, NT, 98, CE, XP. Palm,Symbian. Inter - Consulta Múltiplos Processadores e Suporte a Indexação SQL Server Compact Edition 2000 Windows 2000, NT, 98, CE, XP. Palm,Symbian, EPOC, Linux Intra - Consulta Armazenamento dos dados e Otimizador de Consulta; Oracle 10g Lite Windows 2000, NT,98, CE e XP.Novell, Solaris, Linux, HP-UX, IBM. Inter - Consulta Sincronização das Informações; Tabela 3 - Resumo das principais características dos produtos analisados em relação à performance dos bancos de dados móveis. 57 5. CONCLUSÃO Com o crescimento cada vez maior do número de aplicações, dispositivos e equipamentos voltados para a computação móvel, mais e mais trabalhos tem sido escritos e implementados visando esse cenário. Este trabalho apresentou um levantamento dos principais Sistemas Gerenciadores de Bancos de Dados (SGBDs) Móveis existentes e realizou um estudo comparativo entre esses sistemas conforma alguns critérios importantes previamente definidos, a saber: Recuperação de Falhas, Segurança de Dados e Performance. A partir do estudo comparativo proposto, um usuário pode se valer dessas informações para identificar, com um maior grau de conhecimento, qual o SGBD que mais se aplica a determinados cenários. Dessa forma, a principal contribuição deste trabalho consiste em apresentar esse estudo analítico e comparativo entre importantes SGBDs utilizados no mercado de forma que tais informações sirvam como material útil de pesquisa para futuros trabalhos relacionados ao tema em questão. 58 6. REFERÊNCIAS BIBLIOGRÁFICAS ADIBA, M.; SERRANO-ALVARADO, P.; RONCACIO, C. L. Mobile Transaction Supports for DBMS: An Overview. LSR-IMAG Laboratory,2001. AMADO, Paulo G. F.; 2002. Bancos de Dados Móveis: visão geral, desafios e soluções atuais. Recife. Trabalho de Graduação em Banco de Dados (Graduação em Ciência da Computação – Centro de Informática). Universidade Federal de Pernambuco. ALVES, René Araújo. Um estudo sobre segurança em banco de dados móveis. Universidade Federal de Pernambuco, Recife, março de 2007 BADRINATH, B. R.; PHATAK, Shirish. H. An Architecture for Mobile Databases. Research Work DCS-TR-351 , 1998. BARBARÁ, D. Mobile Computing and Database: A Survey. IEEE Transactions on Knowledge and Data Engineering, p.1-14, 1999. BELLO, Allan Roger; TAMAGI, Willian. Bancos de Dados Paralelos. Graduação curso de Bacharelado em Informática. Universidade Estadual do Oeste do Paraná - Campus de Cascavel. Cascavel, Setembro de 2009. Disponível em: < http://www.inf.unioeste.br/~olguin/4458-semin/G6monografia.pdf >. Acesso em: 12 de maio de 2010. BRAZ, Fernando José. Análise de Mecanismos Para Recuperação de Falhas em Bancos de Dados Móveis. Universidade Federal de Santa Catarina, Florianópolis, outubro de 2002. CÔRTEZ, Sérgio. Um Modelo de Transações para a Integração de SGBD a um Ambiente de Computação Móvel. Tese de Doutorado. Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2004. CÔRTES, Sérgio da Costa; LIFSCHITZ, Sérgio. Sistema de gerência de banco de dados baseados em agentes para um ambiente de computação móvel. Pontifícia Universidade Católica de São Paulo, Junho de 2002. Disponível em: <ftp://ftp.inf.pucrio.br/pub/docs/techreports/02_11_cortes.pdf>. Acesso em: 12 de março de 2009. CUNHA, Daniel Pezzi da. Um Estudo das Estratégias de Replicação e Reconciliação de Banco de Dados Móveis em um Ambiente Wireless. Universidade Federal de Santa Catarina, Florianópolis-SC, Novembro de 2003. ELMASRI, Ramez; NAVATHE, Shamkant. Sistemas de Bancos de Dados – Fundamentos e Aplicações. 3 ed. Rio de Janeiro. LTC, 2002. ELMASRI, RAMEZ; NAVATHE, SHAMKANT B. Sistemas de Banco de Dados. Pearson, Addison Ewsley, 4ª Edição. 2005. ELMASRI, Ramez e NAVATHE, Shamkant B.; 2000. Fundamentals of Database Systems. Addison-Wesley. 59 FLINN, J.; SATYANARAYANAN, M. Energy-aware adaptation for mobile applications. 17th ACM Symposium on Operating Systems Principles, p.48-63, 1999. GALLIANO, Eduardo. Banco de dados móvel. Londrina, 2007. Disponível em: <http://www2.dc.uel.br/nourau/document/?view=459>. Acesso em: 12 de feverreiro de 2009. GONÇALVES, Juliano Lucas. Estudo de Gestão De Dados Não Convencionais Baseada em Metadados Para o Ambiente de Dispositivos Móveis. Universidade Federal do Paraná, Curitiba, 2005. HOLANDA, Maristela Terto de. EIT: Escalonador Inteligente de Transações. Universidade Federal do Rio Grande do Norte, Natal, 2007. IBM a Corporation. DB2 Everyplace Database. Disponível em http://www01.ibm.com/software/data/db2/everyplace/everyplacedb.html. Último acesso em 10 de março de 2009. IBM b Corporation. DB2 Everyplace Database. Disponível em http://www306.ibm.com/software/data/db2/everyplace/everyplacedb.html. Último acesso em 10 de março de 2009. IBM c Corporation. DB2 Everyplace Database. Disponível em http://www.ibm.com/software/data/db2/everyplace/about.html. Último acesso em 10 de maio de 2010. IMIELINSKI, Tomasz;BADRINATH, B. R. Data management for mobile computing. New York, USA, Março de 1993. Páginas34-39, vol. 22.Disponível em: < http://portal.acm.org/citation.cfm?id=156883.156888&dl=GUIDE&dl=ACM&idx=J689&part =periodical&WantType=periodical&title=ACM%20SIGMOD%20Record>.Acesso em: 13 de fevereiro de 2009. ITO, Giani C.; 2001. Bancos de dados móveis: uma análise de soluções propostas para gerenciamento de dados. Florianópolis. Dissertação (Mestrado em Ciência da Computação). Universidade Federal de Santa Catarina. LIU, G.; MARLEVI, A.; MAGUIRE, G. A Mobile Virtual-distributed System Architecture for Supporting Wireless Mobile Computing and Communications. 1st International Conference on Mobile Computing and Networking Communications, p.111-118, 1996. MANGANELLI, Elenice C. e ROMANI, Juliano; 2004. Protocolos De Sincronização De Dados Em Ambientes Wireless: Um Estudo De Caso. Florianópolis. Trabalho de Conclusão de Curso (Ciência da Computação). Universidade Federal de Santa Catarina. MATEUS, G. R.; LOUREIRO, A. A. F. Introdução à computação móvel. Material didático do Departamento de ciências da computação da UFMG. 1998. p.115. Disponível em: <http://www.di.inf.puc-rio.br>. Acesso em: 10/03/2010. 60 MATEUS, G. R.; LOUREIRO, A. A. F. Introdução à computação móvel. Material didático do Departamento de ciências da computação da UFMG. 2004. 120f. Disponível em: <http://www2.dcc.ufmg.br/~loureiro/cm/docs/cm_livro_2e.pdf>. Acesso em: 09/03/2010. MENKHAUS, G. Adaptive User Interface Generation in a Mobile Computing Environment. PhD Thesis, Universität Salzburg, 2002 MICROSOFT a Corporation. SQL Server 2005 Mobile Edition Books Online. 2005. Disponível em http://www.microsoft.com/downloads/. Último acesso em 10/04/2009. MICROSOFT b Corporation. Arquitetura de armazenamento de dados com o SQL Server 2005 Compact Edition. 2007 . Disponível em http://msdn.microsoft.com/ptbr/library/bb380177%28SQL.90%29.aspx. Último acesso em 12 de maio de 2010. NASSU, Eugenio A. e FINGER, Marcelo; 2000. O Significado de “Aqui”em Sistemas Transacionais Móveis. I Workshop SIDAM (Sistemas de Informação Distribuída de Agentes Móveis), Outubro, p. 55-63. Disponível em http://www.ime.usp.br/~sidam/worksidam/ artigos/. Acesso em 01 maio de 2010. ORACLE a Corporation. Oracle Database Lite10g: Technical White Paper. 2005.Disponível em http://www.oracle.com/technology/products/lite/index.html.Acesso em 25/03/2009. ORACLE b Database Lite 10gR3 Technical White Paper. Agosto de 2008. Disponível em : < http://www.oracle.com/technology/products/lite/TWP_Lite_10gR3.pdf >.Acessado em 12 de maio 2010. ORACLE c, Database Lite Developer's Guide 10g (10.2.0). Disponível em : < http://download.oracle.com/docs/cd/B19188_01/doc/B15920/performance.htm>. Acessado em 12 de maio de 2010. PITOMBEIRA, Dorotéa Karine Dias; BRITO, Ricardo Wagner Cavalcante; SILVA, Wendel B.,; AMORIM, Danielle Christina Costa ; SOARES, Marília Mendes ; ALMEIDA FILHO, Magno Prudêncio de; CARVALHO, Thiago Leite e ; OLIVEIRA, Wandré Araújo de; BRAYNER, Ângelo; MENDONÇA, Nabor das Chagas . PDM - Palm Database Manager. In: I Sessão de Demos do XIX Simpósio Brasileiro de Banco de Dados, 2004, Brasília. I Sessão de Demos do XIX Simpósio Brasileiro de Banco de Dados (SBBD), 2004. p. 43-48. PITOMBEIRA, Dorotéa Karine Dias. Uma arquitetura eficiente para armazenamento,gerenciamento e acesso a dados em dispositivos móveis com recursos computacionais limitados. 2006. 137f. Dissertação (Mestrado em Ciência da Computação) Curso de Mestrado em Ciência da Computação, Universidade de Fortaleza, Fortaleza, 2006. PITOURA, E.; CHRYSANTHIS, P. Scalable Processing of Read-Only Transactions in Broadcast Push. 19th IEEE Int'l Conference on Distributed Computing Systems, 2000. PITOURA, E.; SAMARAS, G. Data Management for Mobile Computing. Kluwer Academic Publishers, 1998. 61 SATYANARAYANAN, M.; NARAYANAN, D. Multi-fidelity Algorithms for Interactive Mobile Applications. 3rd International Workshop on Discrete Algorithms and Methods for Mobile Computing and Communications, p.1-6, 1999 SILBERCHATZ, Abraham; KORTH, Henry F. e SUDARSHAN, S.; 1999. Sistema de Banco de Dados. Makron Books. SILVA, F.; ENDLER, M. Requisitos e Arquiteturas de Software para Computação Móvel. I Workshop SIDAM - Sistemas de Informação Distribuída de Agentes Móveis, 2000 SYBASE a, Inc. What’s New in SQL Anywhere Studio. 2004. Disponível em <http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.adaptive_server _anywhere_9.0.2/title.htm>. Último acesso em 16 de maio de 2009. SYBASE b, Inc. Introducing SQL Anywhere Studio. 2004. Disponível em http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.adaptive_server_anywhere _9.0.2/title.htm. Último acesso em 16 de maio de 2009. SYBASE c, Inc. Adaptive Server Anywhere Database Administration Guide. 2004. Disponível em http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase. help.daptive_server_anywhere_9.0.2/title.htm. Último acesso em 16 de maio de 2009. SYBASE d, Inc. UltraLite Database User’s Guide. 2004. Disponível em http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.adaptive_server_anywhere _9.0.2/title.htm. Último acesso em 16 de maio de 2009. SYBASE e, Inc. Synchronization Technologies for Mobile and Embedded Computing. Disponível em http://www.ianywhere.com/downloads/whitepapers/mobilink_sql.pdf. Último acesso em 12 de maio de 2009. SYBASE f, Inc. MobiLink Tutorial. Disponível em http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.adaptive_server_anywhere _9.0.2/title.htm. Último acesso em 16 de maio de 2009. SYBASE g, Inc. New SQL Anywhere facilitates data management in mobile environments, 2006 .Disponível em http://www.sybase.com/detail?id=1060733. Último acesso em 12 de maio de 2010. SYBASE h, Inc. Supporting Thousands of Users - Adaptive Server Enterprise on Windows NT. Disponível em: http://www.sybase.com.br/detail?id=20237. Último acesso em 12 de maio de 2010. TRASEL, Anete Terezinha; VERONEZ, Denise. Banco de Dados Móveis. Universidade Estadual do Oeste do Paraná - Campus de Cascavel, Cascavel, 2005.