Академический Документы
Профессиональный Документы
Культура Документы
br
Luiz Fernando Duarte Junior. Bacharel em Cincia da Computao, ULBRA. Psgraduando em Desenvolvimento de Aplicaes para Dispositivos Mveis, Unisinos. Email: luizfduartejr@gmail.com
Prof. Msc. Gilberto Iraj Mller, Mestre em Computao Aplicada com atuao na rea
de Anlise e Desenvolvimento de Aplicaes para Dispositivos Mveis. E-mail:
gimuller@unisinos.br
Cache um local que armazena acessos de memria e pode ter uma cpia dos dados
que voc est requisitando, reduzindo latncia de referncias para memria
(BOTTOMLEY, 2004).
Pipeline uma srie de estgios que cada instruo no fluxo de cdigo deve passar
quando o mesmo est sendo executado (STOKES, 2004).
1.2 Objetivos
Este trabalho possui como objetivo estudar, projetar e implementar um
middleware Android para acesso remoto Sistemas de Gerncia de Banco de
Dados. O middleware permitir a conexo segura e eficiente entre aplicativos
Android e servidores MySQL, previamente configurados atravs da instalao de
agentes que usam a biblioteca de classes do middleware. De forma a atingir o
objetivo deste artigo, foi realizado um estudo sobre acesso mvel dados e
sobre os middlewares existentes e suas arquiteturas, o que ofereceu uma viso
ampla dos problemas enfrentados e algumas das melhores maneiras de
solucion-los. Para os testes do middleware foram utilizados um agente-cliente
(no dispositivo mvel) e um agente-servidor (no servidor de banco de dados),
que intermediaro o consumo de dados entre uma aplicao Android e um banco
de dados MySQL.
transao agrupa diretivas SQL para garantir que ou todas sejam executadas
com sucesso, ou nenhuma, sendo desfeitas (rollback). Ainda segundo a Oracle
(2011), as propriedades bsicas de uma transao so popularmente
referenciadas pelo acrnimo ACID (iniciais de Atomicidade, Consistncia,
Integridade e Durabilidade).
Em um middleware de acesso dados, dado um grupo de comandos
enviados pelo cliente a um servidor, deve-se garantir que todos os comandos
sejam executados, ou nenhum deles deve permanecer na base. primeira vista
pode parecer bvio e simples, uma vez que os SGBDs j endeream esses
problemas nativamente, mas considerando que a proposta um middleware
para acesso mvel a bancos de dados, natural que a conexo de dados seja
instvel e funo do middleware (BILLARD, 1998) garantir que essa
instabilidade no comprometa a confiana do usurio sobre o sistema.
2.2.3 Desempenho
E por ltimo, outro grande desafio do acesso mvel bases de dados
remotas o desempenho da conexo. Ainda que as novas geraes de redes de
dados mveis tenham melhorado bastante nos ltimos anos, o panorama geral
ainda abaixo da mdia esperada, segundo a Anatel (2013), quando o assunto
conexo mvel de dados. A cada requisio que enviada ao SGBD tem-se como
resposta o download de volumes de dados para o dispositivo, o que pode
ocasionar queda de desempenho. No obstante, para garantir a segurana e
consistncia das transaes uma srie de verificaes adicionais sero efetuadas
ao longo do ciclo de vida das requisies, o que servir para aumentar o tempo
de resposta a cada ao do usurio que exija comunicao com o banco de
dados.
memria cache, como a memria cache existente nos processadores, que evita o
trfego desnecessrio (e lento) entre a unidade lgica aritmtica (ULA) e o dado
na memria RAM ou, pior ainda, no disco rgido. No caso de bancos de dados,
comum que as tabelas ou combinaes de dados mais comuns sejam mantidas
em estruturas organizacionais diferenciadas, como ndices e vises, e as
consultas mais comumente utilizadas sejam mantidas na memria RAM; tudo isso
visando um aumento no desempenho do servio de banco de dados como um
todo. Ainda que nos dispositivos mveis as memrias mais velozes sejam de
maior custo e devem ser usadas com parcimnia, no caso dos servidores de
bancos de dados possvel utilizar-se de mecanismos de cache para diminuir o
impacto causado pelo uso de um middleware.
Aplicando-se as trs tcnicas anteriores a um middleware de acesso
dados, tm-se um ganho de desempenho que embora no seja superior a
implementaes de acesso banco de dados usando web services, mais
adequado e confivel ao cenrio mvel.
3 TRABALHOS RELACIONADOS
Nesta seo sero apresentados alguns middlewares de acesso mvel SGBDs
existentes no mercado, para que possa se traar um comparativo com a soluo que est
sendo proposta neste trabalho.
3.1 Oracle Database Mobile Server
Segundo a Oracle (2013), o Oracle Database Mobile Server a melhor maneira de
conectar com segurana dispositivos embarcados e aplicativos mveis bases de dados
Oracle. Seus principais diferenciais residem no seu motor de sincronizao, que mantm
diversas bases mveis em sincronia com o servidor de banco de dados, e em sua resilincia
sobre conexes instveis. Alm disso, os dados armazenados e trafegados esto sob forte
criptografia, garantindo a segurana dos mesmos contra interceptao.
Para que seja possvel s aplicaes mveis se conectarem ao servidor, preciso
utilizar um cliente mvel fornecido pela Oracle, que deve ser instalado no dispositivo e cuja
arquitetura compreende (ORACLE, 2011): um banco de dados cliente (SQLite ou Berkeley
DB), um cliente mvel (que contempla um motor de sincronizao e um agente de
gerenciamento para receber comandos remotos) e a aplicao mvel em si. Esse cliente
10
11
Aplicativos hbridos so, segundo Rigo (2013), aquelas que usam o mesmo conjunto
de ferramentas para desenvolvimento de cdigo empregado nas aplicaes web
(HTML, CSS, etc), mas, alm disso, utilizam tambm alguns recursos das aplicaes
nativas.
12
4 METODOLOGIA DE PESQUISA
13
Esta seo tem como objetivo apresentar o mtodo utilizado para realizar o estudo
comparativo entre o prottipo proposto com as principais solues existentes no mercado:
Oracle Database Mobile Server e SAP Sybase SQL Anywhere. Neste cenrio, procurou-se
observar as especificaes tcnicas e caractersticas relatadas pelos fabricantes para seus
produtos como requisitos funcionais. Para o estudo comparativo foi desenvolvida uma lista de
caractersticas para anlise se esto presentes em cada soluo, com o objetivo de comparar
os benefcios da adoo do middleware proposto, portanto, a abordagem da pesquisa
qualitativa. Com base nos objetivos do prottipo, seus recursos e as preocupaes mais
comuns ao desenvolvimento de aplicaes mveis que consumam bancos de dados remotos,
as caractersticas observadas foram:
14
5 METODOLOGIA DE DESENVOLVIMENTO
Nesta seo apresentada a metodologia de desenvolvimento do prottipo de
middleware Android, com o objetivo de permitir acesso mvel ao SGBD MySQL. So
apresentadas as ferramentas utilizadas, a estrutura da biblioteca de classes criada, a
descrio do desenvolvimento e os diagramas do prottipo, usando notao UML 2.0.
5.1 Ferramentas e Tecnologias Utilizadas
Para o desenvolvimento da biblioteca de classes, do agente mvel e da aplicao
Android, foi utilizada a linguagem orientada a objetos Java e a plataforma Android, verso
2.2 (codinome Froyo). O ambiente de programao utilizado foi a IDE Eclipse verso Juno,
com ADT Bundle instalado (Android Development Toolkit).
Para o desenvolvimento do agente servidor e das aplicaes console cliente e
servidor, tambm utilizada para testes, foi utilizada a linguagem Java, verso 1.7, atuando
diretamente com o SGBD MySQL, verso 5, hospedado em servidor Linux compartilhado. O
ambiente de programao utilizado foi a IDE Eclipse com a biblioteca JDBC de conexo
MySQL referenciadas ao projeto.
Apesar do desenvolvimento ter sido focado nas tecnologias Android e MySQL, a
utilizao dos agentes independente e o middleware pode ter qualquer uma de suas
partes facilmente substitudas por outra implementao (usar o cliente com banco SQL
Server, ou um cliente iOS com MySQL, por exemplo), uma vez que ambos agentes
trabalham trocando requisies em formato JSON9 via sockets10 e com tecnologia Java
(suportada pela maioria das plataformas mveis). Bastaria, portanto, construir o novo agente
respeitando as caractersticas do middleware para que o funcionamento do mesmo se
mantivesse. A escolha das tecnologias adotadas foi devido experincia do desenvolvedor
e a adoo do mercado.
5.2 O Prottipo
15
16
17
18
19
20
21
22
Uma vez que uma requisio seja disparada, o agente servidor seguir um fluxo de
processos que incluem identificao e autorizao do cliente, processamento da requisio
junto ao SGBD, construo da resposta e finalmente seu retorno. A Figura 12 mostra o
Diagrama de Sequncia de uma requisio, do cliente ao servidor e as etapas que a
compem, sendo executada com sucesso.
Figura 12: Diagrama de Sequncia de uma requisio ao servidor
Devido a uma interao do usurio com o aplicativo que est usando o middleware, o
aplicativo dispara um comando SQL para o middleware, que o encapsula em um pacote
criptografado que enviado ao servidor. Uma vez que esta requisio chega no lado do
servidor, os algoritmos de segurana do OpenMid validam a requisio, verificando se o
destinatrio vlido, se foi criptografada corretamente, se esta requisio nunca foi
realizada antes e se a requisio no est velha demais para estar sendo executada. Se
tudo estiver de acordo, o cdigo SQL que veio junto com a requisio processado junto ao
SGBD e inicia-se o processo de empacotamento da resposta, incluindo a compresso de
respostas muito grandes (conforme configurao do servidor) e a criptografia do pacote,
para que somente o cliente que solicitou a resposta possa ler seu contedo. E por fim,
23
24
No middleware cliente criado um banco de dados local com somente uma tabela chamada
Requisicao. Cabe a esta tabela registrar as requisies efetuadas pelo aplicativo ao
servidor, bem como registrar o estado da mesma. Em caso de impossibilidade de se
comunicar com o servidor, nesta tabela so armazenadas as requisies que devero ser
executadas to logo a conexo seja possvel novamente. J no lado do servidor, outro
banco de dados local criado, este com duas tabelas, sendo uma (Resposta) para
armazenar as respostas enviadas s requisies dos clientes e garantir que requisies
repetidas no sejam executadas e a outra, chamada Cliente, com informao sobre os
clientes que possuem ou no autorizao para se comunicar com o servidor, bem como o
25
par de chaves RSA que utilizado na criptografia entre este cliente especfico e o servidor.
Esta tabela utilizada na etapa de validao da requisio recebida.
5.4 Aspectos de Segurana
Uma vez que os middlewares lidam com dados sensveis dos SGBDs, deve ser dada
ateno especial segurana dos servidores que tero seus dados expostos. Este item
trata exclusivamente dos aspectos levados em conta para garantir a segurana do
middleware desenvolvido. Em especial, dois tipos de ataques foram levados em
considerao, tendo em vista a probabilidade de que seriam as principais brechas a serem
exploradas por atacantes: o Ataque Homem no Meio (Man in the Middle Attack) e o Ataque
de Repetio (Replay Attack).
Segundo Glynn (2013), o Ataque Homem no Meio um tipo de ataque ciberntico
onde um ator malicioso se insere em uma comunicao entre duas partes, se fazendo
passar por ambas e ganhando acesso s informaes que se tentava enviar de um lado a
outro. possvel atravs do uso de criptografia garantir que somente o destinatrio de uma
mensagem trafegada na Internet possa ler o seu contedo, inutilizando desta forma a
mensagem para o atacante. No prottipo foram utilizados dois algoritmos de criptografia
juntos para garantir que a comunicao cliente-servidor no fosse explorada: um algoritmo
de chave simtrica, o AES, e outro de chave assimtrica, o RSA. Enquanto que o primeiro
possui bom nvel de criptografia e desempenho (SMITH, 2000), h o problema do envio da
chave para decrifrar a mensagem. Desta forma, usa-se o algoritmo RSA para criptografar a
chave simtrica do AES, utilizada para cifrar os dados a serem enviados com o melhor
desempenho possvel. O servidor, ao receber a mensagem usa sua chave privada RSA para
decifrar a chave simtrica do AES que por sua vez utilizada na sequncia para
descriptografar a requisio em si. Embora um pouco confuso, este mtodo extremamente
seguro, sendo empregado nas conexes seguras de navegadores de Internet (SSL) e no
servio de chamadas telefnicas privadas, como o oferecido pela empresa Kryptotel (2010).
Enquanto isso, o Ataque de Repetio, segundo Barmala (2004), o uso de
requisies previamente capturadas para atacar um sistema e obter acesso ao mesmo, uma
forma de roubo de identidade. Ainda que as mensagens trafegadas estejam criptografadas,
no seguro permitir que uma mesma mensagem possa ser utilizada mais de uma vez, o
que provocaria efeitos indesejados principalmente com comandos SQL que alteram os
registros ou a estrutura do banco de dados. Para minimizar o risco de tais ataques, todas as
26
requisies possuem identificadores nicos e prazo de validade. Com isso, uma requisio
ao servidor no ser atendida em uma segunda utilizao, inutilizada para uso posterior.
Independente dos esforos para garantir o mximo de segurana aos dados
confiados ao middleware vale ressaltar que algumas medidas adicionais devem ser levadas
em considerao durante a implantao e uso do middleware sobre bancos de dados de
produo. O primeiro ponto a ser observado quanto ao uso de Redes Privadas Virtuais
(VPN Virtual Private Network) operando com criptografia (SSL), o que ajuda a eliminar a
maioria das brechas de segurana relacionadas ao trfego de dados sobre a Internet. O
segundo ponto a ser levado em considerao quanto implantao de cada cliente do
middleware com chave nica (vide arquivo de configurao do cliente), o que garante no
somente a fcil identificao de cada cliente no lado do servidor, quanto a facilidade em se
bloquear um cliente que tenha sido comprometido (com o roubo do dispositivo do usurio,
por exemplo). O terceiro e ltimo ponto o uso de chaves fortes, a sua troca peridica e o
segredo sobre elas, tanto no lado dos clientes quanto no lado do SGBD, uma vez que o
middleware no capaz de bloquear requisies que estejam utilizando credenciais vlidas
que tenham sido fornecidas pelos usurios ou descobertas por fora bruta.
6 ANLISE E RESULTADOS
O prottipo de middleware para acesso mvel a SGBDs foi comparado com duas
solues do mercado, a Oracle Database Mobile Server e a SAP Sybase SQL Anywhere.
Para coletar os dados referentes s caractersticas de cada um foram utilizados os websites
dos fabricantes e os manuais digitais dos produtos, tambm disponveis nos mesmos sites
(ORACLE, 2013; SYBASE, 2013). Uma vez que o estudo comparativo puramente
conceitual, o resultado da anlise deve ser levado em conta somente para fins de estudo e
para que se possa situar o prottipo desenvolvido perante os trabalhos relacionados.
6.1 Anlise das Caractersticas
O Quadro 1 apresenta as caractersticas utilizadas na anlise em referncia
existncia ou no de tal recurso em cada uma das solues.
Quadro 1: Anlise das Caractersticas das Solues
Caracterstica
Oracle Database
SAP Sybase
Mobile Server
SQL Anywhere
Sim
Sim
OpenMid
Sim
27
No
Sim
Sim
Sim
Sim
No
No
No
Sim
Cdigo-fonte aberto
No
No
Sim
Sim
Sim
Sim
Servidor Multiplataforma
Sim
Sim
Sim
plataformas e SGBDs
28
E por fim, com base nos estudos prvios tambm, nota-se uma clara preocupao
dos fabricantes em criar solues adequadas s suas necessidades em particular, para
facilitar o acesso de dispositivos mveis aos seus bancos proprietrios e no
necessariamente em fornecer uma soluo mais democrtica que seja heterognea, por
exemplo.
7 CONCLUSO
Este artigo apresentou os aspectos bsicos do estudo sobre o acesso mvel a banco
de dados, iniciando com uma rpida viso do cenrio atual e da necessidade dos aplicativos
de se conectar a bancos de dados remotos via dispositivos mveis.
Tambm foram vistos alguns motivos de segurana e desempenho para utilizao de
um middleware de acesso a dados e alguns problemas referentes s ferramentas
proprietrias existentes, onde ficou claro que o acesso mvel a SGBDs um assunto
merecedor de ateno que est longe de ter sido esgotado.
Um estudo abrangente foi feito sobre as propostas para middlewares de acesso a
dados existentes no mercado, culminando no desenvolvimento de prottipos de agentes
cliente e servidor, bem como das aplicaes de teste, elucidando o que foi estudado de
forma prtica. Como mtodo de pesquisa proposto utilizou-se um estudo comparativo entre
as caractersticas das principais solues existentes com o middleware desenvolvido,
chegando concluso de que a flexibilidade e simplicidade do prottipo atendem a
pequenas aplicaes, enquanto que a robustez dos middlewares mais tradicionais so
indicados para solues de misso crtica e uso mais intenso de dados.
Alm do conhecimento obtido, tem-se como produto uma biblioteca open source
contendo todas as classes necessrias para implantao do middleware, tanto no lado do
cliente quanto do servidor. No obstante, a documentao criada durante o desenvolvimento
possibilita trabalhos futuros utilizando acesso mvel a banco de dados como tema principal
ou como ferramenta para suas aplicaes, se tornando uma referncia para o assunto.
Dentre possveis trabalhos futuros, pode-se estender a biblioteca para se adequar s
necessidades de outras plataformas e SGBDs, bem como a caractersticas especficas de
sistemas em produo.
29
REFERNCIAS
ANATEL Agncia Nacional de Telecomunicaes. Avaliao Trimestral do
Plano Nacional de Ao de Melhoria da Prestao do Servio Mvel
Pessoal. Julho de 2013. Disponvel em:
<http://www.anatel.gov.br/Portal/documentos/sala_imprensa/26-7-2013-10h37min43s-COQL_SMP_Avaliacao.ppt>. Acesso em 13/10/2013.
BARBOSA, Alvaro C.. Middleware para Integrao de Dados Heterogneos.
Maio de 2001. Disponvel em: <ftp://ftp.inf.pucrio.br/pub/docs/theses/01_PhD_barbosa.pdf>. Acesso em 13/10/2013.
BARMALA, Christian. Replay Attack Computer Definition. 2004. Disponvel
em: <http://www.yourdictionary.com/replay-attack>. Acesso em 17/09/2013.
BILLARD, David. Transactional Services for the Internet. Maro de 1998.
Disponvel em: <http://books.google.com.br/books?
id=pSgPg1Na51UC&pg=PA14>. Acesso em 13/10/2013.
30
31
32
<http://docs.oracle.com/cd/E22663_01/doc.11100/e22681.pdf>. Acesso em
02/09/2013.
OSI - Open Source Initiative.The Open Source Definition. Disponvel em:
<http://opensource.org/osd>. Acesso em 17/09/2013.
PHONEGAP. Phonegap. Disponvel em: <http://phonegap.com/>. Acesso em
18/09/2013.
RIGO, Sandro Jos. Introduo Plataforma Web para Dispositivos Mveis.
Disponvel em:
<http://www.moodle.unisinos.br/file.php/4783/INTRODUCAO_A_PLATAFORMA_WE
B_PARA_DISPOSITIVOS_MOVEIS/Sandro_Intro_plataforma_WEB_texto.pdf>. Acesso
em 18/09/2013.
SATYANARAYANAN, Mahadev. Fundamental Challenges in Mobile Computing.
1995. Disponvel em: <http://www.cs.cmu.edu/~coda/docdir/podc95.pdf>.
Acesso em 19/08/2013.
SHANNON, Claude. A Mathematical Theory of Communication. Outubro de
1948. Disponvel em: <http://cm.belllabs.com/cm/ms/what/shannonday/shannon1948.pdf>. Acesso em 01/09/2013.
SMITH, Kaleigh. Rijndael: Advanced Encryption Standard. Novembro de
2000. Disponvel em:
<http://www.cs.mcgill.ca/~kaleigh/computers/crypto_rijndael.html>. Acesso em
14/10/2013.
STOKES, Jon. Pipelining: An Overview. Setembro de 2004. Disponvel em:
<http://arstechnica.com/features/2004/09/pipelining-1/>. Acesso em 19/08/2013.
SYBASE. MobiLink synchronization. 2013. Disponvel em:
<http://dcx.sybase.com/index.html#sa160/en/mlstart/ml-basics.html>. Acesso
em 03/09/2013.
SYBASE. Parts of a MobiLink application. 2013. Disponvel em:
<http://dcx.sybase.com/index.html#sa160/en/mlstart/parts-ml-basics.html>.
Acesso em 23/09/2013.
33