Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Unioeste – Universidade Estadual do Oeste do Paraná
CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática
Curso de Bacharelado em Informática
Banco de Dados Móveis
Anete Terezinha Trasel Denise Veronez
CASCAVEL
2005
ANETE TEREZINHA TRASEL
DENISE VERONEZ
BANCO DE DADOS MÓVEIS
Trabalho acadêmico apresentado como requisito para obtenção de nota parcial de Banco de Dados II, do Curso de Informática da Universidade Estadual do Oeste do Paraná - Campus de Cascavel.
Professor: Carlos José Maria Olguín
CASCAVEL
2005
LISTA DE FIGURAS
FIGURA 1: A UNIDADE MÓVEL (CARRO) VIAJA DE UMA CÉLULA PARA A OUTRA, AINDA MANTENDO A CONEXÃO,
GRAÇAS AO PROCESSO DE HANDOFF (ADAPTADA DE KUMAR, 2000 APUD AMADO, 2002). ............................ 13 FIGURA 2: ARQUITETURAS DE COMPUTAÇÃO MÓVEL............................................................................................. 14 FIGURA 3: AMBIENTE DE COMPUTAÇÃO MÓVEL EM UMA ARQUITETURA CLIENTE / SERVIDOR CONVENCIONAL.... 15 FIGURA 4: AS BASES REMOTAS POSSUEM RÉPLICAS DOS DADOS DA BASE CONSOLIDADA. ..................................... 20 FIGURA 5: ESTRATÉGIAS DE TRANSMISSÃO POR DIFUSÃO PULL-BASED E PUSH-BASED (FIGURA ADAPTADA DE ITO,
2001 APUD AMADO, 2002)............................................................................................................................ 22 FIGURA 6: QBE CLP SENDO USADO PARA A LOCALIZAÇÃO DE NOMES EM UMA AGENDA...................................... 35
LISTA DE TABELAS
TABELA 1: PROJETOS QUE ABORDAM O GERENCIAMENTO DE DADOS MÓVEIS........................................................ 32
LISTA DE ABREVIATURAS E SIGLAS
SGBD Sistema Gerenciador de Banco de Dados
PDA Personal Digital Assistants (Assistente Pessoal Digital)
LAN Local-Area Network
IEEE Institute of Electrical and Electronic Engineers
GSM Global System for Mobile Communications (Sistema Global para
Comunicações Móveis)
CDMA Code Division Multiple Access (Acesso Múltiplo por Divisão de Código)
IP Internet Protocol (Protocolo da Internet)
ACID Atomicidade, Consistência, Isolamento e Durabilidade
MDSTPM Multidatabase Transaction Processing Manager (Gerenciamento de Processo
de Transação de Multi-banco de dados)
GPS Global Positioning System (Sistema de Posicionamento Global)
SQL Structured Query Language (Linguagem de Consulta Estruturada)
ODBC Open DataBase Connectivity ()
JDBC Java DataBase Connectivity ()
J2ME Java2 Micro Edition
RIM Research In Motion ()
ASA Adaptive Server Anywhere
SBCS Single Byte Character Sets
DBCS Double Byte Character Sets
CLI Call Level Interface
QBE Query By Example
SUMÁRIO
1 INTRODUÇÃO ............................................................................................................................................. 7
2 COMPUTAÇÃO MÓVEL............................................................................................................................ 7 2.1 DESAFIOS DO AMBIENTE MÓVEL ............................................................................................................. 8
2.1.1 Portabilidade................................................................................................................................... 8 2.1.2 Comunicação................................................................................................................................... 9 2.1.3 Mobilidade..................................................................................................................................... 11
2.2 CONCEITOS IMPORTANTES ..................................................................................................................... 12 2.2.1 Adaptação...................................................................................................................................... 12 2.2.2 Operação desconectada ................................................................................................................ 12 2.2.3 Handoff .......................................................................................................................................... 13
2.3 ARQUITETURAS DE COMPUTAÇÃO MÓVEL..........................................ERRO! INDICADOR NÃO DEFINIDO. 2.4 MODELOS DE COMUNICAÇÃO MÓVEL ..................................................................................................... 15
2.4.1 O modelo Cliente/Servidor para Ambiente de Computação Móvel............................................... 15 2.4.2 Modelo de Agentes Móveis ............................................................................................................ 16
3 BANCOS DE DADOS MÓVEIS................................................................................................................ 17 3.1 GERÊNCIA DE DADOS NUM AMBIENTE DA COMPUTAÇÃO MÓVEL.......................................................... 17 3.2 QUESTÕES DE BANCOS DE DADOS NA COMPUTAÇÃO MÓVEL .................................................................. 19
3.2.1 Replicação de dados e sincronização............................................................................................ 20 3.2.2 Caching e difusão de dados........................................................................................................... 21 3.2.3 Gerenciamento de localidade ........................................................................................................ 22 3.2.4 Transações..................................................................................................................................... 23
3.2.4.1 Modelos de Transações Móveis .................................................................................................................25 3.2.5 Processamento de Consultas ......................................................................................................... 26 3.2.6 Recuperação de falhas................................................................................................................... 27 3.2.7 Segurança ...................................................................................................................................... 30
4 PROJETOS DE GERENCIAMENTO DE DADOS MÓVEIS................................................................ 31 4.1 CODA ..................................................................................................................................................... 31 4.2 MOBISNAP ............................................................................................................................................. 31
5 SGBDS (SISTEMAS GERENCIADORES DE BANCO DE DADOS) MÓVEIS................................. 32 5.1 SQL ANYWHERE STUDIO....................................................................................................................... 32 5.2 ORACLE DATABASE LITE 10G ................................................................................................................ 33 5.3 DB2 EVERYPLACE ................................................................................................................................. 34 5.4 SQL SERVER CE.................................................................................................................................... 35 5.5 APLICAÇÕES........................................................................................................................................... 36
6 CONCLUSÃO ............................................................................................................................................. 37
REFERÊNCIAS BIBLIOGRÁFICAS .............................................................................................................. 38
7
1 INTRODUÇÃO
Nos últimos anos, os avanços revolucionários nas tecnologias de hardware e de rede
possibilitaram a evolução dos computadores portáteis. Alguns desses avanços podem ser
notados na comunicação sem fio e celular, na tecnologia de baterias e na constante redução
das dimensões, peso e consumo de energia de vários componentes. Daí a presença de uma
nova geração de máquinas portáteis que vão de computadores de bolso a poderosos laptops. E
apesar de seu tamanho reduzido, estes computadores móveis geralmente possuem a
capacidade de conexão sem fio, possibilitando o acesso não só a computadores fixos como a
outros dispositivos móveis.
A computação móvel traz consigo novas classes de aplicações e vários novos desafios
tecnológicos. Sistemas de informação poderão ser acessados de qualquer lugar, a qualquer
hora buscando consultar ou modificar dados remotamente. Com isto, as aplicações de bancos
de dados ganharão novas funcionalidades e terão novos recursos, desde que feitas devidas
adaptações e modificações.
2 COMPUTAÇÃO MÓVEL
Segundo Geyer et. al (2004), a computação móvel vem surgindo como uma
nova proposta de paradigma computacional advinda da tecnologia de rede sem fio e dos
sistemas distribuídos. Nela o usuário, com os dispositivos móveis, como palmtops e
notebooks, tem acesso a uma infra-estrutura compartilhada independente da sua localização
física. Isto fornece uma comunicação flexível entre as pessoas e um acesso contínuo aos
serviços de rede.
A computação móvel envolve elementos como hardware, dados, aplicações
e usuários que têm a capacidade de se moverem para diferentes localizações. Considera-se
computação móvel, a computação onde todos os elementos do sistema têm a propriedade de
mobilidade. Esta forma de computação pode ser chamada também de pervasive computing
(computação em escala global).
8
2.1 Desafios do Ambiente Móvel
Apesar de aparentemente só trazer benefícios e também parecer de simples
implementação, a computação móvel é ainda alvo de várias pesquisas, pois existem muitos
fatores que impedem a utilização máxima dos recursos desta tecnologia.
A tecnologia de computação móvel enfrenta vários desafios, que segundo
Forman e Zahorjan (1994) apud Amado (2002), têm origem em três essenciais propriedades
da computação móvel: portabilidade, comunicação e mobilidade.
2.1.1 Portabilidade
Os computadores comuns não foram projetados para serem carregados, os
montadores de tais máquinas, têm certa liberdade no sentido de espaço para cabeamento e
dissipação de calor. Por sua vez, o projeto de um PDA (Personal digital assistants- Assistente
Pessoal Digital)1, deve levar em conta propriedades como: pequeno, leve, durável,
operacional em uma variedade de condições e que requer o mínimo de consumo de energia,
assegurando longa vida útil para a bateria. Algumas concessões podem ser feitas em cada uma
dessas áreas para que se chegue a uma boa relação de funcionalidade-performance.
A seguir, são listadas algumas dificuldades de projeto impostas pela
portabilidade de um dispositivo móvel ( Forman e Zahorjan,1994 apud Amado ,2002):
• Energia – Componente mais pesado de um PDA, a bateria enfrenta
problemas de tamanho/peso e de necessidade de recarga. Técnicas para
minimização do consumo de energia podem aumentar a portabilidade
reduzindo o peso e aumentando o tempo de vida da bateria;
• Riscos de perda e extravio de dados – A portabilidade aumenta o risco
de danos físicos, acesso não autorizado, perda e roubo do dispositivo
móvel, tornando tais computadores menos seguros e confiáveis. Para
reduzir estes riscos, o usuário deve ter uma preocupação ainda maior
com operações de backup e o armazenamento de dados importantes
numa base remota que possa ser acessada quando necessário;
1 PDA é um computador de dimensões reduzidas, dotado de grande capacidade computacional, cumprindo as funções de agenda e sistema informático de escritório elementar, com possibilidade de interconexão com um computador pessoal e uma rede informática sem fios
9
• Interface com o usuário limitada – o uso de mouses é inviável nos
PDAs que realizam interface com o usuário através de botões ou
canetas. Para as aplicações que necessitam da abertura de várias janelas
ao mesmo tempo, estes dispositivos também são inapropriados, levando
a desafios de design gráfico, muitas vezes tendo que reduzir
funcionalidades;
• Capacidade de armazenamento em disco – O espaço de armazenamento
num computador móvel também é comprometido pelo tamanho físico e
energia. E, como drives de disco consomem mais do que chips de
memória, vários computadores móveis não os possuem. Algumas
estratégias interessantes para contornar o problema do armazenamento
são: compressão automática de arquivos, acesso a dados armazenados
remotamente, compressão de páginas de memória virtual e
compartilhamento de bibliotecas de código.
2.1.2 Comunicação
Redes sem fio se comunicam através de sinais de ondas de rádio, através de
satélites, microondas ou pulsos de luz infravermelha, variando bastante a área de alcance. A
comunicação através deste meio enfrenta mais obstáculos do que a comunicação através de
fios, uma vez que o ambiente interage com os sinais, potencialmente bloqueando a
transmissão ou inserindo ruídos e ecos. Desta forma, a comunicação sem fio é caracterizada
por uma menor largura de banda, maior taxa de erro e desconexões indesejadas mais
freqüentes. Estes fatores, por sua vez, aumentam a latência de dados na comunicação,
resultado de retransmissões, processamento de protocolo de controle de erro e rápidas
requisições de reconexão. O custo de implementação de uma rede sem fio é em geral maior do
que aquele para uma rede comum.
Forman e Zahorjan (1994) apud Amado (2002), discutem algumas
dificuldades do projeto de uma boa comunicação em computação móvel, como:
• Alta taxa de desconexão – Uma falha na rede pode levar processos que
estão rodando em locais diferentes a pararem completamente,
potencialmente levando a sérios problemas. Para mascarar algumas
10
falhas de rede, técnicas como operações assíncronas podem ser
aplicadas. Em tais operações, o cliente envia várias requisições sem
precisar de confirmações de recepção. Outras operações similares
incluem pré-carregamento dos dados, que consiste em transferir dados
antes que eles sejam necessários;
• Alta variação de largura de banda – A variação de banda nas redes sem
fio pode ser de várias ordens de magnitude, dependendo de que tipo de
conexão um cliente está usando naquela hora, ou mesmo do número de
clientes servidos numa mesma célula. Em números, uma LAN sem fio
(Wireless Local-Area Network) pode transmitir numa taxa de 11 Mbps
(padrão IEEE 802.11b) até no máximo 54 Mbps (padrão IEEE
802.11a), e com transmissões GSM e CDMA pode-se ter taxas variando
de 9,6 Kbps a 384Kbps (Fitzpatrick,2002 apud Amado, 2002) . Uma
aplicação pode lidar com essa variação através de três abordagens:
assumindo uma alta largura de banda, assumindo baixa largura de
banda ou se adaptando aos recursos disponíveis;
• Rede Heterogênea – Ao contrário da maioria dos computadores
estacionários, computadores móveis encontram conexões heterogêneas
em vários sentidos. Ao mudar de uma célula para outra, poderá também
haver mudanças nos protocolos e velocidades de transmissão. Em
algumas situações, um computador móvel pode solicitar várias
conexões como, por exemplo, quando duas células adjacentes se
sobrepõem ou quando é possível que os acessos com fio e sem fio
ocorram concorrentemente. Pode também haver a necessidade de se
trocar a interface de comunicação como, por exemplo, mudando da
cobertura celular de uma cidade para cobertura por satélite no campo;
• Riscos de segurança – Especialmente se a transmissão se estende por
uma longa área, a segurança da comunicação sem fio pode ser bem
mais comprometida do que nas redes comuns. A segurança se torna
ainda mais complicada quando se trata de delegar níveis de
acessibilidade a um usuário móvel. A comunicação segura através de
11
canais inseguros é alcançada através do uso de criptografia, que pode
ser feita através de software, ou de hardware especializado.
2.1.3 Mobilidade
Segundo Amado (2002), a capacidade de mudar de localidade enquanto
ainda conectado à rede, aumenta a volatilidade da informação. Alguns dados considerados
estáticos para computadores fixos, poderão se tornar dinâmicos em dispositivos móveis. Essa
volatilidade levanta questões importantes de custo-benefício como, por exemplo, armazenar
um objeto volátil em cache faz pouco sentido. A mobilidade introduz vários problemas: o
endereço de rede de um computador móvel muda dinamicamente; o caminho de comunicação
aumenta quando o mesmo visita uma célula vizinha; sua localização atual afeta parâmetros de
configuração; assim como respostas a consultas. Em Forman e Zahorjan (1994) apud Amado
(2002) são discutidos alguns problemas inerentes à mobilidade de um dispositivo, listados a
seguir:
• Migração de endereço – Na medida em que as pessoas se deslocam,
seus computadores móveis usarão diferentes pontos de acesso à rede ou
“endereços de rede”. Uma vez que um sistema armazena o endereço de
um host, este é geralmente colocado em cache com um longo tempo de
expiração. No protocolo IP (Internet Protocol), por exemplo, o IP de
um host está intrinsecamente ligado a seu endereço de rede. Mover para
uma nova localidade significa obter um novo IP;
• Informação dependente de localidade – Prover mecanismos que
obtenham a configuração de dados apropriada a cada localidade é um
desafio importante para a computação móvel. Um computador portátil
carregado por um usuário pode ser usado numa grande variedade de
domínios administrativos, cada um com suas convenções. Além do
problema da configuração, dispositivos móveis necessitam de acesso a
mais informações dependentes de localidade. Um grande desafio da
computação móvel é que, além do custo de comunicação com
elementos móveis, há o custo adicional de localizá-los. Muitas outras
questões podem surgir como o acesso flexível à informação de
localização do usuário sem a violação de sua privacidade;
12
• Migração de localidade – Mesmo que um computador móvel tenha a
capacidade de achar o servidor mais próximo para um dado serviço,
com o tempo, a migração poderá mudar esta condição. A distância
física entre dois pontos não reflete necessariamente a distância das duas
redes e o tamanho do caminho de comunicação pode crescer
desproporcionalmente, levando à existência de mais passos
intermediários, aumentando a latência, o risco de desconexão e
consumindo capacidade da rede. Para contornar tais problemas, o
serviço de conexões pode ser dinamicamente transferido para servidores
que se encontrarem mais próximos à localidade da unidade móvel.
2.2 Conceitos Importantes
A seguir são descritos alguns conceitos que envolvem a computação móvel.
2.2.1 Adaptação
À capacidade de ajuste e a possibilidade de produzir resultados apesar de
condições adversas dá-se o nome de adaptação. Dispositivos neste ambiente devem possuir a
capacidade de executar um número crescente de tipos de aplicações e se adaptar a situações
onde há uma demanda por recursos computacionais nem sempre disponíveis e outras, onde os
recursos são abundantes e aparentemente dispensáveis.
As adaptações podem ser feitas em aplicações a fim de minimizar as
restrições da computação móvel. Muitas formas de endereçar este problema são possíveis.
2.2.2 Operação desconectada
Devido à natureza da comunicação móvel sem fio, muitos fatores afetam a
confiabilidade e a qualidade das conexões. No ambiente móvel e sem fio, desconexões
intencionais ou não, ocorrem freqüentemente. Um usuário cujo computador móvel esteja com
a bateria fraca, pode desconectar da rede propositalmente, a fim de poupar energia.
Na operação desconectada, o cliente continua tendo acesso aos dados
durante interrupções temporárias de serviço. Isto é possível devido ao armazenamento dos
dados localmente (em cache).
13
Mas a modificação e a leitura dos dados armazenados localmente causam
alguns problemas como necessidade de recuperação e problemas de consistência dos dados.
Recuperação de dados significa a habilidade de restaurar uma base de dados depois de uma
falha no sistema ou um erro de execução, fazendo com que ela volte a um estado consistente
previamente conhecido. Um princípio simples de recuperação é a redundância de dados, ou
seja, o armazenamento dos mesmos dados múltiplas vezes. Os dados locais armazenados em
cache podem estar desatualizados ou inconsistentes com os da base, mas os dispositivos
móveis não devem ter conhecimento desta situação até que seja re-conectado. Enquanto não
ocorrer a re-conexão, os dados modificados localmente não deverão ser propagados.
A transparência para a aplicação é preservada durante uma desconexão,
porque o sistema tem a responsabilidade de propagar modificações e detectar possíveis
conflitos de atualização, quando a conexão for retomada.
2.2.3 Handoff
Handoff é a capacidade de uma rede de dar suporte dinâmico à migração de
terminais móveis entre suas células. É através desse processo, ilustrado na Figura 1, que
usuários da rede conseguem manter seus dispositivos móveis conectados ao sair de uma célula
para outra vizinha. Ou seja, graças ao handoff é possível perder o contato com uma estação
base numa célula, estabelecendo contato com outra sem, no entanto, haver desconexão, esta
troca deve ocorrer quando o host móvel (o carro da Figura 1) está na região onde as células se
sobrepõem (Kumar, 2000 apud Amado, 2002).
Figura 1: A unidade móvel (carro) viaja de uma célula para a outra, ainda mantendo a conexão, graças ao processo de handoff (adaptada de Kumar, 2000 apud Amado, 2002).
14
A arquitetura geral de um sistema de computação móvel e sem fio é
formada por entidades ligadas por uma rede fixa e interconectada por fios e por entidades
móveis que se comunicam com esta rede.
A unidade móvel (ou host móvel) é um dispositivo capaz de se conectar
com a rede fixa através de um link sem fio (wireless link). Hosts estacionários são conectados
através de uma rede de alta velocidade interligada por fios (Fast Ethernet com taxa de 100
Mbps ou Gigabit Ethernet com 1 Gbps, por exemplo) e podem ser hosts fixos ou estações
base (base stations). O host fixo é um computador de propósito geral, não equipado para
administrar unidades móveis, mas que pode ser configurado para isso (Elmasri e Navathe,
2000 apud Amado,2002). A estação base (também chamada de estação de suporte à
mobilidade, Mobile Support Station (Imielinski e Badrinath,1993 apud Amado, 2002)) possui
uma interface de comunicação para o acesso de dados pelas unidades móveis que se
encontram em sua célula, ou seja, que estão na área de cobertura dentro da qual uma estação
base consegue captar seu sinal. Quando um computador móvel sai de uma célula e entra em
uma nova, está sob o controle de uma nova estação base. Como a comunicação entre eles se
dá sem fio, a taxa de transferência de dados varia de poucos kilobits por segundo (Kbps) a
alguns megabits por segundo (Mbps). O esquema da arquitetura geral é mostrado na Figura 2.
Figura 2: Arquitetura de computação móvel (Adaptado de Côrtes e Lifschitz, 2002).
15
2.3 Modelos de comunicação móvel
O planejamento de modelos apropriados para aplicações estruturadas que
envolvem elementos sem fio é uma questão fundamental no desenvolvimento do software
para a computação móvel. A seguir é apresentado um breve resumo sobre o modelo
cliente/servidor, bem como algumas extensões desse modelo de software para a computação
móvel.
2.3.1 Modelo Cliente/Servidor para Ambiente de Computação Móvel
Na computação móvel, o host móvel atua como um cliente requisitando
serviços dos servidores localizados na rede fixa. Nestes casos, os dados e as funcionalidades
estão distribuídos através de vários servidores em diferentes hosts fixos que podem
comunicar-se entre si para atender as solicitações dos clientes. Em muitos casos, o servidor é
replicado em diferentes sites na rede fixa para aumentar a disponibilidade nos casos de falhas
nos sites ou na rede de comunicação. Pode ser observado na Figura 3, extraída de (Pitoura e
Chrysanthis, 2000 apud Côrtes e Lifschitz, 2002), um ambiente de computação móvel em
uma arquitetura cliente servidor tradicional.
Figura 3: Ambiente de computação móvel em uma arquitetura Cliente / Servidor convencional
(Adaptado de Côrtes e Lifschitz, 2002).
Extensões do tradicional modelo cliente/servidor, como de enfileirar
mensagens RDC (Remote Procedure Call), são necessárias para dar apoio a operações
desconectadas e a fraca conectividade. Otimizações adicionais como compressão e filtros de
16
dados também são importantes. Por estes motivos, o tradicional modelo cliente/servidor deve
ser estendido para prover sérios componentes para implementação de otimizações adequadas
e possibilitar o mínimo possível de mudanças nos clientes e nos servidores. Dentre eles pode-
se citar (Pitoura and Samaras, 1998 apud Côrtes e Lifschitz, 2002):
• Cliente/Agente-Servidor/Servidor;
• Cliente/Agente-Cliente/Servidor;
• Cliente/Agente-Agente/Servidor.
2.3.2 Modelo de Agentes Móveis Agentes Móveis são processos enviados de um computador fonte para
realizar uma tarefa específica em outro computador. São processos que migram associados
com um itinerário (direção) e com uma distribuição dinâmica do seu código e do seu estado.
Após a sua submissão, o agente móvel processa de forma autônoma e independente de seu
emissor. Quando alcança um cliente ou servidor, se integra a um ambiente de execução de
agentes. Possui a capacidade de se transportar para outro cliente ou servidor, gerando novos
agentes ou interagindo com outros agentes. Quando concluído, entrega seus resultados ao
cliente ou ao servidor emissor ou a outro cliente ou servidor. Dois fatores principais motivam
a utilização dos agentes móveis na computação móvel. Em primeiro lugar, os agentes móveis
oferecem um método assíncrono eficiente para procurar informações ou serviços, de forma
rápida em uma rede. Clientes móveis são lançados na rede e procuram em toda parte pela
informação ou serviço desejado. Em segundo lugar, os agentes móveis suportam a
conectividade intermitente, as redes lentas e os equipamentos com poucos recursos. Este
segundo fator torna a utilização dos agentes móveis muito atraente para a computação móvel.
Durante um período de desconexão o cliente móvel envia um agente móvel
para a rede fixa e este agente age como um substituto da aplicação na rede fixa, permitindo
interação durante a desconexão. De forma oposta, o agende móvel é carregado no cliente
móvel, vindo da rede fixa, quando acontece uma nova conexão. Quando em fraca
conectividade, todo o tráfego de comunicação através do link sem fio reduz a possibilidade de
submissão de um grande número de mensagens pelos agentes fixos e na obtenção de seus
resultados. Por este motivo, os agentes móveis deslocam a carga de computação dos clientes
móveis, pobres em recursos, para a rede fixa (Pitoura e Samaras, 1998 apud Côrtes e
Lifschitz, 2002).
17
3 BANCOS DE DADOS MÓVEIS
O sistema de banco de dados móvel é aquele no qual o acesso à base de
dados é realizado através de uma ligação sem fio (Özsu e Valduriez, 1999 apud Amado,
2002). Entre as principais características dos SGBDs (Sistemas Gerenciadores de Banco de
Dados) Móveis podemos destacar:
• Vários bancos de dados interligados por uma rede de comunicação sem
fio;
• Acesso de um computador móvel (host móvel) a um banco de dados
residindo em um computador fixo (host fixo) ou em um computador
móvel;
• O computador móvel pode desempenhar o papel de cliente ou servidor
de banco de dados;
• Os bancos de dados são autônomos, distribuídos e podem ser
heterogêneos.
3.1 Gerência de Dados num ambiente da Computação Móvel
Com relação ao gerenciamento de dados, a computação móvel pode ser
considerada uma variação da computação distribuída. Bancos de dados móveis podem ser
distribuídos em dois possíveis cenários (Elmasri e Navathe, 2000 apud Amado, 2002):
1. Toda a base de dados está distribuída principalmente entre os
componentes ligados por fiação, possivelmente com replicação total ou
parcial dos dados. Uma estação base gerencia sua própria base de dados
com um SGBD com funcionalidades adicionais para localizar unidades
móveis e para gerenciar consultas e transações do ambiente móvel.
18
2. A base de dados é distribuída pelos componentes com e sem fio. A
responsabilidade do gerenciamento dos dados é compartilhada entre as
unidades móveis e as estações base.
Desta forma, muitas das questões de gerenciamento de dados distribuídos
também se aplicam aos bancos de dados móveis, segundo Elmasri e Navathe (2004), desde
que se levem as seguintes considerações adicionais e variações em conta:
• Distribuição de dados e replicação – Os dados, podem estar
desigualmente e irregularmente distribuídos entre unidades móveis e
estações base. As restrições de consistência aumentam o problema de
gerenciamento de dados em cache. Esta deve proporcionar à unidade
móvel acesso àqueles dados mais freqüentemente acessados e
atualizados;
• Modelos de transação – Questões de tolerância à falhas e corretude das
transações são agravadas no ambiente móvel. A transação móvel é
executada seqüencialmente através de diferentes estações base e
possivelmente em múltiplos conjuntos de dados, dependendo da
movimentação da unidade móvel. Não existe coordenação central na
execução de uma transação, por exemplo, quando se tem a base
distribuída pelos componentes com e sem fio. Para isso, as propriedades
ACID (atomicidade, consistência, isolamento e durabilidade) das
transações podem precisar de modificação e novos modelos de
transação podem ser definidos;
• Processamento de consultas – A informação sobre a localização dos
dados é importante e afeta a análise de custo benefício do
processamento de consultas. As respostas às consultas precisam ser
dadas às unidades móveis que mesmo estando em trânsito e cruzando
células, devem receber completamente e corretamente tais respostas;
• Recuperação e tolerância a falhas – O ambiente de bancos de dados
móveis pode apresentar falhas locais (queda da unidade móvel), falhas
de mídia, de transação e de comunicação. Uma falha local ocorre
19
freqüentemente devido à bateria fraca no computador móvel. Se uma
unidade móvel suspende a conexão voluntariamente, isto não deve ser
tratado como falha. Falhas de transação são mais freqüentes durante
operações de handoff. Falhas nas unidades móveis, por sua vez, causam
particionamento da rede e afetam os algoritmos de roteamento;
• Projeto de banco de dados móveis – O problema da determinação do
nome global da unidade (seu número de IP, por exemplo), para a boa
manipulação de consultas, é comprometido por causa da migração de
localidade da unidade e freqüente suspensão de comunicação. O projeto
de banco de dados deve considerar várias questões de gerenciamento de
metadados – por exemplo, a atualização constante da localização da
informação;
• Serviços baseados na localização: Conforme os clientes se movem, a
informação dependente da localização no cache pode se tornar velha.
As técnicas de despejo são importantes neste caso. Alm disso, atualizar
freqüentemente as consultas dependentes da localização, e então aplicar
essas consultas para atualizar o cache, apresenta um problema;
• Divisão do trabalho: Certas características do ambiente móvel forçam
uma mudança na divisão de trabalho no processamento de consultas.
Em alguns casos, o cliente precisa funcionar independentemente do
servidor;
• Segurança: Os dados móveis são menos seguros que os que são
deixados em uma localização fixa. As técnicas formais para o
gerenciamento e autorização de acesso a dados críticos se tornam mais
importantes nesse ambiente. Os dados também são mais voláteis, e as
técnicas precisam ser capazes de compensar sua perda.
3.2 Questões de bancos de dados na computação móvel
Esta subseção procura conceituar e fazer um estudo mais detalhado de
algumas características do banco de dados móveis.
20
3.2.1 Replicação de dados e sincronização
Replicação é o processo pelo qual um arquivo ou grupo de arquivos é
copiado de seu local original para outras máquinas dentro de um sistema distribuído. Para
aumentar a disponibilidade de dados e a performance de aplicações sobre estes dados em
unidades móveis, os dispositivos carregam dados replicados, isto é, cópias redundantes das
informações contidas no banco de dados distribuído. A replicação é uma técnica estratégica
importante que otimiza os recursos de hardware e de rede, maximizando a flexibilidade e a
escalabilidade em ambientes heterogêneos. A base de dados que contém os dados a serem
replicados é chamada de consolidada. As bases remotas são aquelas que contêm um
subconjunto das informações da base consolidada (Figura 4) e geralmente se localizam
distantes fisicamente desta.
Figura 4: As bases remotas possuem réplicas dos dados da base consolidada.
Sincronização é o processo pelo qual os dados distribuídos são mantidos
atualizados, de forma que os usuários em cada local tenham certeza de que estão vendo a
versão mais recente do arquivo. Quando os dados num servidor ou numa base e suas réplicas
são sincronizados, o log de transação de cada volume replicado é usado para verificar se
aqueles dados foram atualizados, inseridos ou removidos da base central. As cópias mais
recentes são então replicadas para todos os outros locais que acessam esses dados
(Novel,1997 apud Amado, 2002).
Os principais benefícios de se fazer replicação de dados num ambiente
móvel estão relacionadas à disponibilidade de dados localmente, ou seja, são os dados
armazenados na cache local das unidades móveis que possibilitam operações desconectadas
21
ou com fraca conexão e aumentam o tempo de resposta das requisições de informações, já que
não há a necessidade de se conectar a bases distantes. As bases fixas também têm um ganho
de performance com a replicação, já que em alguns casos não é necessário requisitar seu
poder de processamento.
Entre os desafios de um sistema de replicação de dados está o de assegurar
que a integridade de transações seja sempre mantida em cada banco de dados e assegurar que
haja consistência dos dados replicados.
Nem sempre os dados necessários a uma aplicação estarão disponíveis na
cache local, por isso, as unidades móveis, geralmente apresentam a necessidade de receber
dados de uma base remota. Uma importante abordagem é a difusão de dados, onde uma
estação base envia informações para todas as unidades móveis localizadas em sua célula de
cobertura (Amado, 2002).
3.2.2 Caching e difusão de dados
O caching e a difusão são dois dos tipos de paradigmas de acesso aos dados
móveis. Ambos visam aumentar a disponibilidade de dados ao usuário móvel que se encontra
numa base remota. Os benefícios de se armazenar os dados em cache (em disco local) são
inúmeros, para a melhor eficiência das operações. Esta abordagem é essencial na economia da
baixa de largura de banda de uma rede sem fio. Para coordenar a classificação dos dados
quanto ao seu uso na cache, são usadas duas regiões distintas, definidas como região quente e
região fria (Ito, 2001 apud Amado, 2002). A região quente contém o conjunto de dados que
são utilizados mais freqüentemente e a fria, o conjunto de dados utilizados com menos
freqüência.
O tipo de caching onde o cliente organiza os dados em sua cache de acordo com
propriedades destes dados e não através de listas de páginas e tuplas, é chamado de caching
semântico e proporciona um ganho de performance nesta operação.
Quando os dados consultados não se encontram na cache, é necessária uma solicitação
de dados ao servidor. Esta solicitação pode ser total, quando o cliente precisa receber todos os
dados do servidor ou parcial, quando alguns dados na base remota podem ser utilizados para
responder à consulta (Ito, 2001 apud Amado, 2002).
22
Segundo Silberchatz, Korth e Sudarshan (1999), existem dois motivos para se usar
difusão de dados. Primeiro, a unidade móvel evita o gasto de energia com a transmissão de
solicitação de dados. Segundo, os dados difundidos podem ser recebidos por um grande
número de unidades móveis de uma só vez, sem um custo adicional, o que é ideal para um
grupo de clientes com as mesmas necessidades de atualizações.
As estratégias de envio de mensagens por difusão se classificam em pull-based,
quando o cliente faz o papel ativo, requisitando dados ao servidor e recebendo estes dados em
seguida e push-based, quando a iniciativa de transmissão de dados é do servidor e o cliente
funciona apenas como receptor (Figura 5).
Figura 5: Estratégias de transmissão por difusão pull-based e push-based (Figura adaptada de Ito, 2001 apud Amado, 2002).
Denise
3.2.3 Gerenciamento de localidade
Na computação móvel, objetos como softwares ou usuários que usam aparelhos sem
fio podem se movimentar de um local para o outro da rede. Informações sobre o atual
posicionamento destes objetos devem ser mantidas em locais específicos da rede. Este
gerenciamento de localidade envolve duas operações básicas: busca e atualização (Pitoura e
Samaras, 2001 apud Amado, 2002).
23
Uma busca é solicitada cada vez que há a necessidade de localizar um objeto, para se
comunicar com usuários móveis ou executar aplicações remotamente. A atualização da
localidade armazenada de um objeto é necessária quando este migra de um local para outro
dentro da rede ou para uma outra rede.
As abordagens de armazenamento de informações sobre localidade têm suas vantagens
e desvantagens. A informação atualizada da exata localização da unidade móvel é mantida em
cada ponto da rede que acessa suas informações. Isto reduz o tempo de uma consulta nesta
unidade móvel, pois sua localização é imediata. A desvantagem desta abordagem é que muitas
atualizações são necessárias. Já na outra abordagem, nenhuma informação é armazenada na
rede a respeito da localização da unidade móvel, eliminando, portanto o custo de atualização
desta informação. Aqui, a desvantagem é o custo da busca do objeto que tem que ser feita
globalmente na rede.
Em termos de disponibilidade, as possibilidades de projeto variam entre dois pontos:
salvar a informação da localização da unidade móvel em todos os pontos da rede e não
disponibilizar esta informação em nenhum local da rede. Há um grande número de critérios
para escolher em que pontos da rede salvar a informação, por exemplo, é interessante manter
os dados sobre a localização de uma unidade móvel nos locais da rede que acessem mais
vezes sua base de dados.
A respeito da precisão da informação, ao invés de manter sua exata localização, os
servidores podem manter um conjunto de possíveis localidades do cliente, a partir do seu
histórico. Há ainda a possibilidade de se configurar uma área maior chamada localidade do
cliente.
Atualidade se refere com que freqüência as atualizações ocorrem a respeito da
localidade do cliente. Por exemplo, para usuários altamente móveis, pode-se abrir mão de
atualização da informação todas as vezes que eles mudam de localidade.
3.2.4 Transações
Uma transação é uma unidade lógica de processamento de banco de dados
que inclui uma ou mais operações de acesso à base. Entre estas operações estão: inserção,
exclusão, modificação e consulta de dados (Elmasri e Navathe, 2000 apud Amado, 2002).
24
A concorrência de transações que acessam a mesma base de dados pode
levar a problemas como a perda de consistência dos dados. Portanto, transações têm que
apresentar algumas propriedades desejáveis a fim de evitar estes erros.
O controle de concorrência e os métodos de recuperação de falhas devem
assegurar estas que são chamadas de propriedades ACID (Elmasri e Navathe, 2000 apud
Amado, 2002).
O sistema de banco de dados deve controlar a execução concorrente de
transações para assegurar que o estado do banco de dados permaneça consistente. Podem
ocorrer alguns conflitos de operações de transações que ocorrem concorrentemente, por isso
técnicas como serialização e agendamento de transações se fazem necessárias para evitar
conflitos (Silberchatz, Korth e Sudarshan, 1999).
Uma transação móvel é uma transação distribuída, onde alguma parte da
computação é executada no host móvel e outra parte em um host fixo. O uso do meio sem fio
e a mobilidade resultante dos consumidores e produtores de dados afetam o processamento
das transações de várias formas (Pitoura e Bhargava, 1994 apud Côrtes e Lifschitz, 2002).
O emprego de conexões sem fio resulta em transações longas, em função
dos longos atrasos da rede. Além disso, transações móveis envolvem sites que não são
continuamente conectados ao resto da rede. Por esta razão é que os usuários de hosts móveis
evitam freqüentemente o uso dos meios sem fio, uma vez que estas conexões são caras, tanto
monetariamente quanto em termos de poder de consumo dos hosts móveis, ou porque os
recursos da rede não estão disponíveis na sua localização geográfica. Adicionalmente, para
muitas tecnologias, como os modem celulares, há uma alta carga inicial para cada
comunicação. O custo efetivo da gerência de transação para cada tecnologia pode adotar a
abordagem do suporte a poucas transações longas ao invés de muitas transações curtas.
Finalmente, a computação móvel é mais propensa a erros, em função das
freqüentes desconexões e serem mais suscetíveis a acidentes do que os hosts fixos. A
mobilidade resulta em transações que acessam sistemas de informações heterogêneas. Além
disso, enquanto em projetos estáticos a localização dos usuários é fixa, no ambiente móvel
mudam constantemente. Conseqüentemente, as transações móveis acessam dados de posição
(localização) dos clientes que mudam rapidamente, em muitos casos em posições imprecisas.
25
Finalmente, as transações podem envolver dados que estão dinamicamente sendo mudados de
lugar (Pitoura e Bhargava, 1994 apud Côrtes e Lifschitz, 2002).
3.2.4.1 Modelos de Transações Móveis
Segundo Dunham e Kumar (1998) apud Manganelli e Romani (2004), para
o processamento de informações móvel tornou-se necessário fazer uma reestruturação das
transações ACID e desenvolver um novo modelo de transação. A seguir serão mostrados
alguns modelos de transações móveis.
• Transação Kangaroo: é o primeiro e o único em redes móveis que
inclui movimento em sua estratégia de execução. O modelo é
construído assumindo um multi-banco de dados onde o gerenciamento
da transação é sempre desempenhado pela estação base. Como a
unidade móvel se movimenta, então o gerenciamento da transação
também se move. A mudança na localização da transação é conseguida
pela divisão da transação durante o handoff. Cada transação é divida em
sub-transações que são executadas independentemente do sistema de
banco de dados da rede fixa.
• Reporting e Co-transação: a origem das transações é representada em
termos de reporting, que pode compartilhar seu resultado parcial com a
transação de origem a qualquer hora e pode realizar a operação commint
independentemente. E co-transações, que é uma classe especial da
transação de reporting, na qual pode ser forçada a esperar por outras
transações, depois de entregar seu resultado pode continuar a executar
outras operações. Essas duas transações podem ser executadas tanto na
estação base como na unidade móvel.
• Clustering: o banco de dados é divido em cluster (agrupamento), e um
segundo nível de consistência dos dados é definido e mantido. Nesse
modelo, uma transação móvel é decomposta em um conjunto de
transações fracas e completas. As operações de leitura e escrita também
são classificadas como fracas e completas. As operações fracas são
permitidas para acessar enquanto desconectadas. A transação pode
26
acessar ou atualizar dados na unidade móvel e pode se tornar
inconsistente com os dados da rede fixa.
• Semantics Based: assume o processamento de uma transação móvel
como um problema de conexão e concorrência, podendo ter longos
atrasos no processamento de dados, bem como, desconexões. Essa
abordagem utiliza a organização dos objetos para dividir grandes e
complexos objetos em pequenos fragmentos. O servidor do banco de
dados disponibiliza os fragmentos a pedido de uma unidade móvel. Para
completar a transação, a unidade móvel retorna os fragmentos para o
servidor.
• MDSTPM (Multidatabase Transaction Processing Manager): Cada
componente do sistema de banco de dados é responsável pelo
gerenciamento das transações locais. Para facilitar a execução de
transações globais, uma camada de software adicional pode ser
implementada, permitindo o gerenciamento e coordenação de
transações através dos múltiplos componentes do sistema de
gerenciamento (Yeo e Zalavsky, 1994 apud Manganelli e Romani,
2004).
3.2.5 Processamento de Consultas
Para se realizar uma consulta móvel, dependendo do caso, é necessário se
ter a localização exata da unidade. Podemos utilizar o GPS para consulta da localização, ou
através de uma triangulação das antenas que captam o sinal.
Segundo Nassu e Finger (2000) apud Manganelli e Romani (2004), quando
um usuário faz uma consulta, diversos fatores contribuem no tempo de resposta do sistema,
tais como:
• O tempo de transmissão de dados pode ser alto. A baixa taxa de
transmissão dos meios sem fio e a baixa confiabilidade, pode gerar
retransmissões freqüentes, influindo nesse tempo;
27
• A execução da consulta ao banco de dados pode ser demorada,
principalmente no caso em que as cidades são grandes, com grande
número de ruas e informações. O grande uso de forma concorrente
também pode retardar o tempo de resposta do banco de dados;
• O usuário pode estar desconectado da rede, por vontade própria ou não.
O tempo de desconexão pode ser longo e a resposta pode demorar mais
para chegar ao usuário que a solicitou.
A localização dos dados no processamento das consultas pode incluir dados
transientes, que trocam de valores de acordo com o processamento das consultas, e dados
contínuos, que são continuamente atualizados durante o movimento da unidade móvel.
Em computação móvel, uma unidade móvel está em constantes mudanças
de lugar. A localização depende dos dados existentes e o conjunto de dados e seus valores são
ligados com uma localização particular, onde respostas para consultas dependem de onde são
originadas. Então dependendo do lugar da consulta teria um resultado diferente de uma
consulta realizada em outro lugar. Vários fatores são responsáveis pela posição do usuário
após a consulta:
• Velocidade;
• Aceleração;
• Tipo de movimento, como uniforme, uniformemente variado, etc;
• Direção;
• Sentido;
• Trajetória;
• Tempo de processamento de consulta, demora na transmissão de dados,
desconexões ou quedas de sinal.
3.2.6 Recuperação de falhas
O processo de recuperação se refere à capacidade que um sistema tem de
preservar a consistência do banco de dados após falhas do sistema, de transações ou dos
meios de comunicação (Ito, 2001 apud Amado, 2002).
28
Um sistema em um ambiente móvel está sujeito a falhas tanto de hardware
como de software. Em cada um destes casos, informações que se referem ao sistema de banco
de dados podem ser perdidas. Uma parte essencial do sistema de banco de dados é um
esquema de recuperação responsável pela detecção de falhas e pela restauração do banco de
dados para um estado consistente que existia antes da ocorrência da falha.
Para que o sistema não seja prejudicado devido às falhas em seus
componentes, erros devem ser detectados o mais rápido possível, através de um diagnóstico
apropriado. Para recuperar os dados, informações relevantes são armazenadas em um local
fixo durante o processamento de transações.
Em sistemas distribuídos, a recuperação de falhas é baseada em pontos de
recuperação, conhecidos como checkpoints. No caso de falhas e desconexões, a aplicação usa
o último checkpoint salvo para reiniciar sua execução (Pitoura e Samaras, 1998 apud Amado,
2002).
A unidade móvel deve estar sempre informada sobre em qual célula se
encontra e quando o sistema entrará em modo de desconexão, pois ela é responsável por gerar
um checkpoint, caso mude de célula ou haja uma desconexão.
Um checkpoint global consiste de um conjunto de checkpoints locais. Os
estados globais são armazenados e usados pelo protocolo para recuperar falhas das aplicações.
Um estado global inclui o estado de cada processo que faz parte da aplicação distribuída e
possivelmente algumas mensagens. Para uma recuperação correta, o protocolo pode salvar um
estado consistente global.
Neves e Fuchs (1996) apud Amado (2002), propõem um tipo de protocolo
com características especiais para ambientes móveis. Este protocolo armazena o estado global
consistente da aplicação sem troca de mensagens. Os processos de checkpoint podem ser
armazenados no servidor ou localmente nos hosts. O armazenamento local não consome
largura de banda e leva menos tempo para ser criado, no entanto, podem ocorrer perdas
durante desconexões da unidade móvel.
Durante a execução da aplicação, o protocolo mantém o estado global em
um local fixo para recuperar falhas permanentes (falhas de hardware) e outro em unidades
móveis para recuperar falhas temporárias (falhas de software).
29
Algumas características de um esquema de checkpoint em um ambiente
móvel, como localização, desconexão, energia, rede e falhas são analisadas a seguir.
• Localização – Para que exista a comunicação entre a rede fixa e a
unidade móvel, é necessário saber a localização exata desta última. A
localização de uma unidade móvel dentro de uma rede não é constante
devido à sua mobilidade. É necessário que se localize um dispositivo
móvel para depois determinar seu checkpoint. O protocolo checkpoint
tem a função de armazenar o estado do processo em um local conhecido
e de fácil acesso ou em um computador próximo da localização atual da
unidade móvel. O protocolo pode ainda manter a trilha dos lugares onde
o estado do processo foi salvo;
• Desconexão – Uma unidade móvel é dita desconectada quando está fora
da faixa de transmissão das estações base. Durante a desconexão, todas
as informações armazenadas em locais remotos não estão acessíveis às
unidades móveis. Desta forma, uma unidade móvel fica impossibilitada
de enviar ou receber mensagens. A criação de checkpoints por
processos enquanto a unidade móvel está desconectada é possível. Por
outro lado, os protocolos têm a função de salvar uma grande quantidade
de informações que garantam sua execução após uma falha. Estas
informações incluem a ordem da recepção e os conteúdos das
mensagens. Quando as informações precisarem ser salvas nas unidades
móveis, poderá haver limitação de memória e de espaço para o
armazenamento e devido às freqüentes desconexões das unidades
móveis, o local do checkpoint pode não estar disponível;
• Energia – Devido às restrições oferecidas pelo tempo das baterias
utilizadas pelos PDAs, o consumo das mesmas deve ser reduzido. O
protocolo checkpoint tem a função de reduzir a quantidade de
informações que são adicionadas às mensagens e evitar o envio de
mensagens extras, realizando o menor número de acessos possível ao
servidor;
30
• Rede – A diversidade das tecnologias utilizadas nas redes sem fio faz
com que as características da rede não sejam constantes, tais como,
custos, velocidade e latência. O protocolo checkpoint deverá se adaptar
às características da rede onde está atuando;
• Falhas – Unidades móveis podem apresentar falhas de software e de
hardware. Falhas de software podem ocorrer quando acontecem
problemas com o sistema operacional, descarga de bateria, entre outros.
São gerenciadas por soft checkpoints, que são armazenados localmente
na unidade móvel. Falhas de hardware ocorrem quando, por exemplo, o
computador portátil é roubado, danificado, etc. São gerenciadas por
hard checkpoints, que são armazenados na rede fixa. O protocolo
checkpoint deve fornecer mecanismos para tolerar os tipos de falhas que
possam vir a acontecer com as unidades móveis.
3.2.7 Segurança
Os riscos de segurança de sistemas e de redes de computadores são
agravados quando inseridos no ambiente móvel, muito mais propenso a ataques e falhas. Na
computação móvel, a portabilidade dos dispositivos usados pode levar à perda das unidades, o
que caracteriza perda de dados e de confidencialidade.
A única forma de prevenir a falta de confiabilidade é o uso de encriptação e
de mecanismos que assegurem identificação, autenticação e controle de acesso. Estas não são
características particulares de segurança num ambiente móvel, a não ser pelo fato de que a
proteção de um dispositivo móvel deve ser simplificada, devido à escassez de recursos e
pouco poder de processamento destes computadores.
Para contornar a falta de poder computacional, as unidades móveis
transferem certas tarefas para os servidores, o que impede o nível de isolamento
computacional e de comunicação muitas vezes requeridos para que se assegure um nível
razoável de segurança.
31
A heterogeneidade do ambiente móvel é outro tipo de desafio. O usuário
que freqüentemente migra para outras localidades se submete a diferentes tipos de esquema de
segurança.
4 PROJETOS DE GERENCIAMENTO DE DADOS MÓVEIS
Alguns modelos de projetos de gerenciamento de dados móveis e
comunicações num ambiente móvel foram implementados e testados. A seguir são
apresentados alguns modelos.
4.1 Coda
O Coda (Satyanarayanan, et.al., 1990 apud Amado, 2002) é um projeto
que começou a ser desenvolvido em 1987 pelo grupo de Ciência da Computação da
Universidade de Carnegie-Mellon, EUA. É um sistema de arquivos experimental, baseado no
modelo de sistema de arquivos do UNIX, cujo objetivo é oferecer a clientes o acesso contínuo
a dados de uma rede mesmo com falhas ou suspensões de conexão. A importância deste
projeto reside no fato de nele ter sido introduzido o conceito de operação desconectada.
4.2 MobiSnap
Em 1999, pesquisadores da Universidade Nova de Lisboa (UNL) e da
Universidade do Minho em Portugal se uniram na iniciativa do projeto MobiSnap (Cunha,
2001 apud Amado, 2002).
O Mobisnap é um sistema de base de dados para ambientes móveis. O
sistema é baseado numa arquitetura cliente/servidor utilizando replicação otimista. Os clientes
mantêm uma cópia parcial dos dados e o sistema combina um mecanismo que evita os
conflitos (reservas) com outro que permite a sua resolução – transações móveis. Estes
mecanismos permitem que os clientes mantenham a sua autonomia mesmo em situações de
desconexão.
32
Tabela 1: Projetos que abordam o gerenciamento de dados móveis.
PROJETO NATUREZA DESENVOLVIDO POR CARACTERÍSTICAS
Coda
Sistema de arquivos
Carnegie-Mellon University
− Vênus: gerenciador de cache no servidor (estados de hoarding, emulação e reintegração);
− Replicação otimista;
− Boa portabilidade
MobiSnap
Camada de acesso a SGBD-R
Universidade Nova de Lisboa e Universidade do Minho
− Mecanismo de reserva;
− Mecanismo de notificação de commit
5 SGBDs (Sistemas Gerenciadores de Banco de Dados) MÓVEIS
Visando ilustrar a importância da computação móvel no mercado, neste
capítulo são mostrados alguns SGBDs utilizados no mercado atualmente.
Os maiores fabricantes de software do mundo atentaram para o importante e
crescente ramo da computação móvel e lançaram suas soluções comerciais, visando não só o
usuário pessoal, mas principalmente o corporativo, que busca o melhor gerenciamento de seu
negócio através da manipulação de dados e transações longe dos escritórios.
5.1 SQL Anywhere Studio
O SQL Anywhere Studio é um pacote abrangente que fornece o
gerenciamento de dados e a sincronização dos dados empresariais, para permitir o rápido
desenvolvimento e a implementação de aplicações para bancos de dados em ambientes
móveis, incorporados e de empresas de pequeno e médio porte. O SQL Anywhere Studio
amplia o alcance dos dados, informações e aplicações empresariais, até onde quer que as
transações empresariais ocorram.
Em termos de plataformas suportadas, estão disponíveis em Windows (9x,
Me, NT, 2000 e XP), Windows CE/Pocket PC, Novell NetWare, Palm, UNIX (incluindo Sun
33
Solaris/Sparc e Linux) e Wind River VxWorks. A sincronização do banco de dados móvel é
suportada por vários sistemas gerenciadores de bancos de dados relacionais, como o Sybase
Adaptive Server Anywhere, Sybase Adaptive Server Enterprise 11.5 e superior, IBM DB2
Universal Database 7.1, Microsoft SQL Server 7 e 2000, Oracle 8i e 9i.
O SQL Anywhere Studio inclui desenvolvimento de software, ferramentas
de SGBDs relacionais e de sincronização. Pode-se desenvolver aplicações em várias
linguagens de programação. O programa inclui um sistema gerenciador de bancos de dados
relacionais que é capaz de operar como um servidor de workgroup ou um banco de dados
embutido. As opções de sincronização incluem suporte à replicação direta com o Sybase
Adapter Server Enterprise baseada em mensagens ou replicação em três camadas baseada em
streams com uma grande variedade de fontes de dados back-end.
Os pontos fortes do SQL Anywhere Studio são suas múltiplas opções de
acesso a dados (ASA e Ultralite), de sincronização (SQL Remote e Mobilink Server) e de
suporte para desenvolvimento (via ODBC, JDBC e outros drivers nativos). Poderia se apontar
como ponto fraco o fato do produto não prover suporte nativo a dispositivos RIM Blackberry
e à plataforma Java 2 Micro Edition (J2ME), dois ambientes que parecem ter sido feitos para
operar com a opção Ultralite.
5.2 Oracle Database Lite 10g
A Oracle estende o alcance de seu software de grid computing para
gerenciar dispositivos móveis com lançamento no início de 2005. O Oracle Database Lite 10g
permite o gerenciamento de dispositivos móveis (como wireless laptops, handhelds e outros
sistemas) por extensões de um grid de computação, em vez de usar aplicativos especializados
com capacidades de gerenciamento de mobilidade construídas e oferece aos dispositivos
móveis recursos comuns para sistemas críticos. Com o Mobile Manager no Oracle Database
Lite 10 g, os clientes podem administrar e monitorizar toda a sua cadeia móvel facilmente a
partir de uma única console baseado na Web, fornecendo recursos avançados para gestão de
aplicações, sistema, segurança e dispositivos. Os recursos incluem completa gestão do ciclo
de vida das aplicações para desenvolver e implementar aplicações móveis; recursos avançados
de diagnóstico, configuração e bloqueio de dispositivos de cliente;
34
Viabilizando o acesso persistente a informações e aplicações fundamentais
sem necessidade de ligação contínua aos sistemas empresariais de back end, o Oracle
Database Lite 10 g possibilita aos utilizadores aumentar a eficiência, a produtividade e a
resposta das forças de trabalho móveis, além de reduzir custos e melhorar a satisfação do
cliente.
Este banco de dados inclui suporte para ferramentas Java e .NET como
Oracle JDeveloper 10 g e Microsoft Visual Studio .NET, permitindo aos programadores
aproveitar o seu conhecimento e experiência no uso das ferramentas. O Oracle Database 10 g
Lite também suporta a interface Microsoft ADO.NET, proporcionando aos usuários uma
maior integração, produtividade e desempenho entre os ambientes Java e .NET. As aplicações
podem ser criadas com diversas linguagens de programação, como Java, C/C++ e Visual
Studio para plataformas que incluem Linux, Microsoft Windows CE/NT/2000/XP/2003, Palm
OS e Pocket PC.
5.3 DB2 Everyplace
Os dispositivos móveis são projetados para realizar tarefas específicas, ao
contrário da natureza mais geral dos computadores pessoais. O Banco de Dados DB2
Everyplace foi projetado especificamente para dispositivos móveis. Suporta SQL básico e
operações relacionais como: Join, Group By, Order By, múltiplas chaves primárias e Foreign
Key, Funções Agregadas e Constraints. A indexação avançada fornece um impulso notável no
desempenho, de tabelas médias às tabelas grandes do DB2 Everyplace.
A fim de maximizar a utilidade usando menos quantidade de recursos,
somente a funcionalidade, a mais relevante para bases de dados móveis, foi incluída. As
funções do tipo: subqueries, creating views, triggers, store procedures e as funções definidas
pelo usuário não estão incluídas. No banco de dados está disponível somente o suporte a
Single Byte Character Sets (SBCS), Double Byte Character Sets (DBCS), E UNICODE.
DB2 Everyplace suporta o desenvolvimento de aplicações para banco de
dados em C/C++ e em Java. As interfaces Call Level Interface (CLI) e a Java Database
Connectivity (JDBC) estão disponíveis. O banco de dados DB2 Everyplace está disponível
para o Palm Os, Windows Ce/Pocket PC, Psion EPOC, Embedded Linux e QNX Neurino.
Query- By_Exemple é fornecido com o banco de dados DB2 Everyplace para usar no cliente.
35
Figura 6: QBE CLP sendo usado para a localização de nomes em uma agenda (Adaptado de Doze et al., 2003).
Na Figura 6 é apresentado como o QBE pode ser usado para ver os dados de
tabelas do DB2 Everyplace através das barras de rolagem da tela ou dos botões para cima e
abaixo do dispositivo móvel. O QBE pode ser utilizado para atualizar dados, inserir novos
dados, ou apagar dados das tabelas. Usuários mais avançados podem usar o QBE command-
line processor (CLP) para entrar e executar comandos SQL personalizados pelo usuário (Doze
et al. 2003).
5.4 SQL Server CE
Segundo Cortêz e Lifschitz (2002), o Microsoft SQL Server CE é um banco
de dados relacional para o desenvolvimento de aplicações para os equipamentos móveis. Pode
ser utilizado como um banco de dados local quando seu host está desconectado ou como um
cliente acessando o servidor durante a conexão com a rede fixa. Suas principais características
são:
• Suporta a sintaxe de consulta da (SQL);
• Fornece uma API para acesso ao SGBD Microsoft SQL Server;
• Possui otimização de consultas e processamento de transações;
36
• Projetado para ser integrado com a plataforma Microsoft .NET;
• Possui seu tamanho em torno de 1 Mb;
• Provê serviços de criptografia para segurança dos dados;
• Mantêm interoperabilidade com os produtos da IBM, Oracle e Sybase;
• Suporta as plataformasWin32 e Windows CE, Linux, Palm OS, QNX
Neutrino e Symbian EPOC.
5.5 Aplicações
As aplicações de Computação Móvel podem ser vistas em todas as áreas
que requerem mobilidade e comunicação, sem grandes custos e com excelentes vantagens.
• Clínicas Dentárias ou Médicas
Para aumentar a eficiência e a produtividade dos dentistas ou médicos de
uma clínica em detrimento da qualidade de atendimento utilizou-se softwares de banco de
dados, PDAs com Palm OS e bluetooth. Os dados cadastrais são registrados no desktop
(MS Access) na chegada do paciente, e através da sincronização, são enviados para o
palmtop. Os dados clínicos então são registrados no palmtop, já na sala clínica. Através de
uma nova sincronização, os dados estarão sempre completos em ambos os dispositivos.
Ao término da segunda sincronização, a ficha e os dados cadastrais podem ser novamente
acessados no desktop e enfim impressos. Os ganhos reais são consultas mais rápidas,
maior número de atendimentos diários e melhor controle de acompanhamento dos
tratamentos, sem perda de qualidade(PalmBrasil).
• Tratamento de doentes no hospital IPC (The Hospitalist Company)
Os profissionais hospitalares da IPC coordenam os exames de doentes, os
tratamentos e serviços prestados dentro do hospital através do banco de dados Oracle
Database Lite. Trabalhando de forma verdadeiramente móvel sem escritórios ou mesas de
trabalho. Os profissionais hospitalares usam PDAs para capturar os dados pessoais dos
doentes, diagnosticar, definir procedimentos e outras informações, enquanto fazem as suas
rondas. Estas informações são transmitidas pelo PDA via modem ou tecnologia wireless
para serem sincronizadas com as bases de dados de back end, enquanto outras
37
informações importantes sobre novos doentes ou doentes de outros colegas entram no
PDA(Oracle-Notícias, 2005).
• Aplicação comercial
Para melhorar o atendimento dos clientes que são atendidos por vendedores
externos “móveis”, facilitando tanto a vida dos vendedores, que não precisarão andar mais
com calhamaços de tabelas de preços e talões de pedidos, bem como das empresas que terão,
a cada transmissão, todos os pedidos já inclusos no seu sistema empresarial, e com isso,
poderão ter agilidade na atualização de preços, verificação de duplicatas pendentes dos
clientes, estoques atualizados, etc. Os pedidos, cadastros, etc. poderão ser feitos no Palm e
transmitidos para o computador via sincronização (Cia. do Software, 2005).
• Aplicações para cobertura de desastre (Policiais, Bombeiros e Ambulâncias)
As ambulâncias são equipadas com dispositivos que dão a informação
correta do estado do paciente, para que os equipamentos sejam preparados e o pessoal de
emergência no hospital fique em alerta (Compera, 2005).
• Aplicações em monitoramento de animais
Monitoramento de animais, mais especificamente cavalos, através de PDA’s
(Palm’s) onde os responsáveis pelo tratamento dos animais monitoram suas tarefas
diárias, como escovação, medicação e higiene. E gerenciados periodicamente pelos
veterinários e pelos administradores.
6 CONCLUSÃO
A utilização de um Banco de Dados Móvel permite uma redução nos custos
de uma organização, onde os sistemas envolvidos e as novas tecnologias de armazenamento
de dados podem se inter-relacionar, fornecendo aos usuários finais informações mais
consistentes.
Mas há alguns problemas neste ambiente que precisam ser minizados ou
resolvidos para que os Sistemas de Banco de Dados possam ser utilizados no sentido de
38
expandir, cada vez mais, a utilização dos sistemas de informações, propiciando que em
qualquer lugar e em qualquer hora o usuário móvel possa ter acesso à informação.
A inserção dos Sistemas de Bancos de Dados na computação móvel não é
algo trivial. Pois a garantia da consistência e integridade dos dados, principal função dos
SGBDs, não pode ser totalmente aplicado no ambiente móvel, uma vez que suas operações
por dependerem de dois ambientes, em muitos momentos desconectados, não permitem que
as transações de banco de dados possam ser executadas como nos seus modelos centralizados
ou distribuídos. Assim, constantes pesquisas se fazem necessárias no sentido de desenvolver
novos modelos de transações que possam garantir as operações móveis, mantendo os
requisitos básicos dos SGBDs em relação aos dados que armazenam.
A tecnologia de Banco de Dados Móveis deve acompanhar a computação
sem fio num processo de melhoria contínua, permitindo aumentar a produtividade, oferecendo
velocidade, liberdade e flexibilidade e recursos necessários para que equipes de trabalho
tenham acesso aos dados a qualquer hora e em qualquer lugar.
REFERÊNCIAS BIBLIOGRÁFICAS
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.
CHRYSANTHIS, Panos K. e PITOURA, E; 2000. Mobile and wireless database access for
pervasive computing. ICDE - Proceedings of the 16th International Conference on Data
Engineering, 28 Fev. - 3 Mar., San Diego, California, USA . p. 694-695.
CIA. DO SOFTWARE; 2005. Disponível em
http://www.ciadosoftware.com.br/produto.asp?produto=1404&dep=10&cat=1. Acesso em 12
set. 2005.
COMPERA; 2005. Mobilidade multiplica os braços das equipes de campo. Disponível em
http://www.compera.com.br/imprensa_view.asp?cat=1&id_noticia=351. Acesso em 12 set.
2005.
39
COMPERA; 2005. Haras Polana em Campos do Jordão inova em tecnologia sem fio.
CORTÊS, Sérgio da C. e LIFSCHITZ, Sérgio; 2002. Banco de dados para um ambiente de
computação móvel. XXIII Congresso da Sociedade Brasileira de Computação – SBC 2003.
Disponível em www.inf.ucp.br/nsb/downloads/arquivos/BDAmbientesCompMovel.pdf.
Acesso em 05 set. 2005.
CUNHA, Miguel et. al.; 2001. Mobisnap: Um sistema de Base de Dados para Ambientes
Móveis. In the Actas da Conferência de Redes de Computadores 2001 (CRC'2001),
Novembro. Disponível em http://www-asc.di.fct.unl.pt/MobiSnap/. Acessado em 02-09-2005.
DOZE, Adriana F.; KREDENS ,Kelvin; HANNINGER, Michaelli e LORBIESKY, Polyana
L.; 2003. Palm Top e Banco de Dados. Disponível em http://www.pr.gov.br/
batebyte/edicoes/2002/bb118/estagiario.htm. Acessado em 02-09.2005.
DUNHAM, M.; KUMAR, V.; 1998. Defining Location Data Dependency, Transaction
Mobility and Commitment. Relatório Técnico 98-CSE-01, Department of Computer Science
and Engineering, Southern Methodist University, Fevereiro, p. 1-22. Disponível em
http://citeseer.ist.psu.edu/kumar98defining.html. Acesso em 02 set. 2005.
ELMASRI, Ramez e NAVATHE, Shamkant B.; 2000. Fundamentals of Database Systems.
Addison-Wesley.
FITZPATRICK, Paul; 2002. Introduction to Mobile and Wireless Communications Systems.
University of Melbourne.
FORMAN, George H.e ZAHORJAN, John; 1994. The challenges of Mobile Computing.
Computer, Volume 27, N. 4, Abril p. 38 – 47. Disponível em: http://portal.acm.org/
citation.cfm?id=620018#. Acesso em 05 set. 2005.
GEYER, Cláudio Fernando R; AUGUSTIN, Iara e YAMIN, Adenauer C. ISAM – Infra-
estrutura de Suporte às Aplicações Móveis – Computação Móvel. Disponível em
http://www.inf.ufrgs.br/~isam/paginaDefComputacaoMovel.html. Acesso em 01 set. 2005.
IMIELINSKI, Tomasz; BADRINATH, B.R.; 1993. Mobile Wireless Computing: Solutions
and Challenges in Data Management. Department of Computer Science, Rutgers University,
40
U.S. Disponível em: http://citeseer.ist.psu.edu/imielinski93mobile.html. Acesso em 05 set.
2005.
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.
KUMAR, Vijay; 2000. Mobile and Wireless Database Systems, tutorial da 10th Conference on
Management of Data (COMAD 2000), Dezembro.
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.
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. set. 2005.
NEVES, N.; FUCHS, W. K.; 1997. Adaptive Recovery for mobile environments.
Communications of the ACM, 40 (1): 68 – 74, Janeiro. Disponível em:
http://citeseer.ist.psu.edu/neves97 adaptive.html. Acesso em 02 set. 2005.
NOVELL, Inc. Novell AppNotes. How does Replication Work, junho de 1997. Disponível
em: http://developer.novell.com/research/appnotes/1997/june/02/03.htm. Acesso em 02 set.
2005.
ORACLE-NOTICIAS, Oracle anuncia o Oracle Database Lite 10 g, a primeira base de
dados a alargar o grid computing à mobilidade nas empresas. Disponível em
http://www.oracle.com/global/pt/corporate/news/news_fy05_01/fy05011001.html. Acesso em
02 set. 2005.
ÖZSU, M. Tamer e VALDURIEZ, Patrick; 1999. Principles of Distributed Database
Systems. Prentice-Hall, Inc.
PALMBRASIL. Banco de Dados Sempre Atualizado com Sincronização Bluetooth.
Disponível em http://www.palmbrasil.com.br/materias/pm-1.html. Acesso em 05 set. 2005.
41
PITOURA, Evaggelia e BHARGAVA, Bharat; 1994. Revising transaction concepts for
mobile computing. In First IEEE Workshop on Mobile Computing Systems and Applications,
p. 164 – 168, Santa Cruz, CA, US. Disponível em http://citeseer.ist.psu.edu/pitoura94
revising.html. Acesso em 05 set. 2005.
PITOURA, Evaggelia; SAMARAS, George; 1998. Data Management for Mobile Computing,
Kluwer Academic Publishers, Volume 10. Disponível em http://citeseer.ist.psu.edu/pitoura98
data.html. Acesso em 01 set. 2005.
PITOURA, Evaggelia e SAMARAS, George; 2001. Locating Objects in Mobile Computing.
IEEE Transactions on Knowledge and Data Engineering. Volume 13. N. 4 . P. 571-592.
Disponível em: http://www.cs.uoi.gr/~pitoura/distribution/location-survey.os. Acesso em 05
set. 2005.
SATYANARAYANAN, M. et.al.; 1990. Coda: a highly available File System for a
Distributed Workstation Environment. IEEE Transactions on Computers. Volume 39 (4),
Abril, P: 447 – 459. Disponível em: http://ieeexplore.ieee.org/search/wrapper.jsp?
arnumber=54838. Acesso em 05 set. 2005.
SILBERCHATZ, Abraham; KORTH, Henry F. e SUDARSHAN, S.; 1999. Sistema de Banco
de Dados. Makron Books.
YEO, L. H.; ZASLAVSKY, A.; 1994. Submission of Transactions from Mobile Workstations
in a Cooperative Multidatabase Processing Environment. Proceedings of Distributed
Computing Systems, p. 372-379, Junho. Disponível em
http://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=7460&isYear=1994&count=75&page=1
&ResultStart=25. Acesso em 02 set. 2005.
42
Perguntas:
1) Quais as propriedades que originam os vários desafios na tecnologia de computação
móvel?
Portabilidade, que envolve tratar dos problemas de energia, riscos de perda e extravio de
dados, interface com o usuário limitada, capacidade de armazenamento em disco.
Comunicação, que envolve a alta taxa de desconexão, a alta variação de largura de banda, a
rede heterogênea e riscos de segurança.
Mobilidade, envolve alguns problemas que devem ser considerados como: Migração de
endereço, informação dependente de localidade e migração de localidade.
2) Quais as principais características de um banco de dados móveis?
Dentre as principais características pode-se citar:
• Vários bancos de dados interligados por uma rede de comunicação sem fio;
• Acesso de um computador móvel (host móvel) a um banco de dados residindo em um
computador fixo (host fixo) ou em um computador móvel;
• O computador móvel pode desempenhar o papel de cliente ou servidor de banco de
dados;
• Os bancos de dados são autônomos, distribuídos e podem ser heterogêneos.
3) Em relação ao gerenciamento de dados, quais as considerações e variações devem ser
levadas em conta ao serem aplicadas em banco de dados móveis?
Distribuição de dados e replicação, modelos de transação, processamento de consultas,
recuperação e tolerância à falhas, projeto de banco de dados móveis, serviços baseados na
localização, divisão do trabalho e segurança.