Bancos de Dados em Dispositivos Móveis - DECOM-UFOP

Propaganda
Universidade Federal de Ouro Preto - UFOP
Instituto de Ciências Exatas e Biológicas - ICEB
Departamento de Computação - DECOM
!
!
Conrado Carneiro Bicalho
!
!
!
!
!
Bancos de Dados em Dispositivos Móveis
!
!
!
!
!
!
!
!
!
!
Ouro Preto
2014
SUMÁRIO
1 INTRODUÇÃO ………………………………………………………..……
3
2 COMPUTAÇÃO MÓVEL ………………………………………………….
2.1 Dispositivos Móveis .....................................................................................
2.1.1 Recuperação de Falhas .............................................................................
3
4
4
3 ARQUITETURA DO BANCO DE DADOS ……………………………….
3.1 Cliente-Servidor …..………………………………………………………..
3.2 Cliente-Agente Servidor-Servidor .………………………………………..
3.3 Cliente-Agente Cliente-Servidor .………………………………..………..
3.4 Cliente-Agente Cliente-Agente Servidor-Servidor .……………..………..
5
5
5
6
7
4 SISTEMAS GERENCIADORES DE BANCO DE DADOS MÓVEIS …..
7
5 COMUNICAÇÃO …………..……..……..……..……..……..……..………..
8
REFERÊNCIAS ………………………………………………………………...
9
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
1 INTRODUÇÃO
Com a popularização dos dispositivos móveis e o crescente uso nas mais diversas áreas,
identificou-se uma necessidade que algumas tecnologias e conceitos tivessem que ser adaptados ou
re estruturadas. Nesse trabalho, abordaremos as diferenças identificadas em um sistema de banco de
dados para dispositivos móveis.
Por se tratar de um ambiente sensível, onde perda de conexão com uma rede são esperadas,
como exemplo, a perda de sinal telefônico, mudança de local físico que não tenha mais a
disponibilidade de rede WiFi ou esgotamento da energia, é fundamental que o sistema de banco de
dados utilizado nesse ambiente, disponha de mecanismos de recuperação de falhas específicos para
essas situações..
Neste trabalho, abordaremos tópicos relacionados a banco de dados em dispositivos móveis,
analisando aplicações, vantagens, desvantagens e um pouco do funcionamento.
!
2 COMPUTAÇÃO MÓVEL
Consiste em um ambiente composto por estações em uma rede fixa, fornecendo a
comunicação e conteúdo para dispositivos desconectados fisicamente, conhecidos como
dispositivos móveis. A mobilidade apresentada por esses dispositivos é a base de todo conceito da
computação móvel. Segundo Forman e Zahorjan, o ambiente de computação móvel é caracterizado por sua
particularidade de comunicação, mobilidade e portabilidade. (FORMAN e ZAHORJAN, 1994). Sua arquitetura consiste da já conhecida infra-estrutura de comunicação fixa com
computadores estáticos, ligada a uma parte móvel. Podemos definir essas parte móvel como uma
área ou célula, onde exista a comunicação sem fio dos dispositivos móveis. Dentro dessas células
ocorre a livre movimentação dos dispositivos, podendo ocorrer também a movimentação de uma
célula para outra.
É importante ressaltar que a computação móvel pode ser vista como uma variação da
computação distribuída e as questões relativas à gerencia de dados distribuídos também podem ser
aplicadas aos bancos de dados móveis. São os casos de distribuição e replicação de dados, modelos de transações, processamento de consultas, recuperação e tolerância
à falhas e projeto de banco de dados, casos estes que passam a ser avaliados com o intuito de
atender os requisitos do ambiente da computação móvel.
!
!
FIGURA 1: Rede estática associada a uma rede de dispositivos móveis
!
!
2.1 Dispositivos Móveis
!
Fonte: imagem reproduzida pelo autor
Conforme definido por Ozu e Valduriez, dispositivos móveis ou mobile stations são
computadores portáteis interligados em rede através de conexões sem fio. Possibilita ao usuário um
ambiente com alto grau de mobilidade, possibilitando a troca de informações enquanto se deslocam
ou trabalham em locais diferentes do seu ambiente normal. (OZU e VALDURIEZ, 1999).
Suas principais características são:
Localização Dinâmica, mobilidade, desconexão e capacidade limitada das baterias.
!
2.1.1 Recuperação de Falhas
Além dos métodos já conhecidos utilizados em ambientes de dispositivos físicos, há também
métodos para falhas especificas em dispositivos móveis.
Handoff, ocorrer em situações que o dispositivo móvel ultrapassa o limite de uma célula
para outra. Esse processo envolve a atualização dos bancos de dados locais, utilizado nos
dispositivos móveis.
FIGURA 2: Situação onde ocorre handoff.
!
!
!
Fonte: imagem reproduzida pelo autor
4
3 ARQUITETURA DO BANCO DE DADOS
A utilização de banco de dados em ambientes de computação móvel torna-se
particularmente interessante pela possibilidade da manipulação de dados tanto sob a forma
conectada a um sistema externo, quanto sob a forma desconectada, ou seja, local.
A mobilidade criada pelos dispositivos móveis trouxe um novo impulso na utilização dos
banco de dados. A inserção de novas informações nos dispositivos, independente do local onde ele
se encontre, sem a necessidade do estabelecimento de uma conexão com a rede estacionária, abre
caminho para a criação de novas situações e com isso novos softwares.
A seguir, algumas arquiteturas utilizadas em sistemas de banco de dados móvel.
!
3.1 Cliente-Servidor
Arquitetura tradicional, em que uma aplicação é executada no cliente, no caso o dispositivo
móvel, que emite solicitações de dados para o servidor principal. Para que o sistema de banco de
dados móvel possa ser atendido na totalidade, atendendo situações como mobilidade e desconexão,
é necessário que se façam adaptações na arquitetura. A camada servidor faz a maior parte do
trabalho de gerenciamento de dados, enquanto a camada cliente é responsável pela interface e
interação com o usuário, além de administrar uma memória local para a solicitação e
armazenamento do resultado das consultas.
!
FIGURA 3: Arquitetura Cliente - Servidor.
!
!
!
Fonte: imagem reproduzida pelo autor
3.2 Cliente-Agente Servidor-Servidor
Arquitetura cliente-servidor otimizada, onde um agente que represente o cliente é incluído
no servidor. O cliente pode realizar requisições e caso fica fora antes de receber a resposta, o agente
se encarrega de armazenar o resultado da requisição e entrega-lo ao cliente quando o mesmo
retornar a rede.
Este modelo é mais apropriado para clientes móveis com limitado poder computacional. Assim,
diversas funções do cliente móvel, migram para o agente. Essa arquitetura não oferece suporte para
o trabalho desconectado.
Os agentes podem:
- Processar os dados da consulta e enviar somente o resultado para o cliente;
- Compactar os dados antes de enviar
- Processar as buscas e enfileirar as respostas quando o cliente estiver desconectado;
- Alterar a ordem da transmissão de dados para os clientes, de acordo com a prioridade.
!
!
!
5
FIGURA 4: Arquitetura Cliente - Agente Servidor - Servidor.
!
!
Fonte: imagem reproduzida pelo autor
!
É importante frisar que os clientes também podem acumular requisições para envia-las em
blocos para o agente, pois isso economiza bateria. Após enviarem as requisições, os clientes podem
entrar em modo de “cochilo”, economizando assim bateria.
3.3 Cliente-Agente Cliente-Servidor
Embora pouco utilizada, essa arquitetura apresenta um agente ao lado do cliente ao invés de
mante-lo no lado servidor. De certa forma, podemos dizer que esse agente amplia as funções do
cliente, geralmente pobres em recursos computacionais. Podemos destacar algumas atividades
como:
- Administrar a memória cache disponível no cliente.
- Disponibilizar memória progressivamente para o cliente móvel durante o trafego da rede
(prefetching)
- Copiar parte do banco de dados para a memória local do cliente (hoarding)
- Otimizar a comunicação entre cliente e servidor.
!
FIGURA 5: Arquitetura Cliente - Agente Cliente - Servidor.
!
Fonte: imagem reproduzida pelo autor
!
!
!
!
6
3.4 Cliente-Agente Cliente-Agente Servidor-Servidor (Cliente-interceptador-servidor)
!
Soluciona o problema do trabalho desconectado, citado na arquitetura anterior. A figura do
agente foi “replicada" para o lado do cliente, além da já disponível no servidor.
Os agentes interceptam as requisições clientes e servidores trabalhando de forma
cooperativa no atendimento de cada requisição.
A possibilidade de trabalhar com desconexões é possível devido ao uso de um cache no
agente do cliente. Durante o período de desconexão, as unidades móveis terão suas requisições
atendidas através da utilização do cache mantido pelo agente. Caso a informação requerida não
esteja disponível no cache local, uma requisição será enfileirada pelo agente-cliente e no momento
da reconexão será entregue ao agente-servidor.
A utilização de memória cache para a execução de consultas e operações de atualizações de
itens de dados, contribui na diminuição da utilização dos recursos de processamento e comunicação
da unidade móvel. O cliente, pode efetuar o armazenamento da informações necessárias para sua
operação e trabalhar livremente sob a forma desconectada.
Há na literatura diversas análises sobre qual informação deve ser colocada em cache e como
categoriza-las, porém não irei entrar em detalhes, por se tratar de um assunto muito especifico.
FIGURA 6: Arquitetura Cliente - Agente Cliente - Agente Servidor - Servidor.
!
!
Fonte: imagem reproduzida pelo autor
4 SISTEMAS GERENCIADORES DE BANCO DE DADOS MÓVEIS (SGBDm) Com o crescimento da utilização da computação móvel para os mais diversos segmentos da
sociedade, surgiu a preocupação de adaptar os SGBDs para situações encontradas apenas nesse
ambiente, por isso desenvolvedores de banco de dados comerciais passaram a investir em produtos
para esse novo ambiente.
A principal característica desses softwares é que eles agem quando há uma desconexão do
cliente, atuando assim como um banco de dados local, mas para isso é necessário que haja uma
carga de dados antecipada. Podemos listar como exemplo, os seguintes SGBD móveis: - Oracle Lite
- DB2 Everyplace
- Microsoft SQL Server 2005 Mobile Edition - Sybase SQL Anywhere
Afim de simplificar a vida dos desenvolvedores, foram criadas bibliotecas que funcionam
como “mini-SGBDs” e possibilitam criar um arquivo local no cliente móvel e são capazes de ler e
escrever diretamente nesse arquivo. Como exemplo, temos o SQLite, onde é possível criar e manter
7
diversas tabelas, utilizando-se dos mesmo comandos do SQL. Os dados na tabela são manipulados
através de comandos DML (INSERT, UPDATE e DELETE) e são consultados utilizando o
SELECT.
Algumas características do SQLite:
- Todo o banco de dados é guardado localmente em um arquivo de extensão “.db”
- Suporta a maior parte do SQL 92
- Não oferece integridade referencial (chaves estrangeiras)
- Suporta o uso de transações (COMMIT, ROLLBACK)
- Não deve ser utilizado nos seguintes casos: aplicações de alta concorrência e sistemas ou
aplicações web de grande porte.
!
5 COMUNICAÇÃO
Principal fator que diferencia o Banco de Dados de dispositivos móveis de um sistema
normal. Devido a situações citadas anteriormente, onde ocorrem a desconexão, cria-se três estados
distintos, descritos a seguir:
- Hoarding (acumulação): nesse estado há um pré-carregamento de itens de dados no
dispositivo móvel, podendo ser acessado pela aplicação local a qualquer momento e armazenado no
cache.
- Local operations (operações locais): nessa situação a unidade móvel encontra-se
desconectada da rede fixa, portanto ela realiza operações apenas sobre os dados locais. É importante
destacar, que ocorrem operações locais, apenas depois da acumulação.
- Reconciliation (reconciliação): Após ocorrer a reconexão, os dados são atualizados,
gerando uma situação de concorrência e garantindo a não existência de inconsistência nos dados
atualizados.
5.1 Sistema de comunicação
A comunicação entre o servidor e o cliente (dispositivo móvel) ocorre na maioria das vezes
por requisições HTTP/HTTPs de POST e GET e as informações retornadas pelo servidor são na
maioria dos casos em formato XML ou JSON.
A seguir alguns exemplos da comunicação:
5.1.1 Verificando a existência do usuário no servidor
Um GET é feito com as informações e-mail, senha e tipo de aplicação utilizada.
Caso as informações sejam corretas, o servidor retornará por exemplo as informações
completas do usuário em JSON, por exemplo:
!
!
!
Caso contrário, uma mensagem de erro será retornada:
!
!
!
8
REFERÊNCIA BIBLIOGRÁFICA
!
AMADO, Paulo G. F.; 2002. Bancos de Dados Móveis: visão geral, desafios e soluções atuais.
Recife.
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.
GALLIANO, Eduardo. Banco de dados móvel. Londrina, 2007.
ITO, Giani C.; 2001. Bancos de dados móveis: uma análise de soluções propostas para
gerenciamento de dados.
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.
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
9
Download