Você está na página 1de 60

UNIO EDUCACIONAL DE ENSINO SUPERIOR DO MDIO TOCATINS - UNEST FACULDADE DE SISTEMAS DE INFORMAO - FSIP

Ricardo Sousa Pimentel

DESENVOLVIMENTO DE UM APLICATIVO PARA DISPOSITVO MVEL UTILIZANDO OS CONCEITOS DE BANCO DE DADOS MVEIS E ANDROID

Paraso do Tocantins - TO 2011

UNIO EDUCACIONAL DE ENSINO SUPERIOR DO MDIO TOCATINS - UNEST FACULDADE DE SISTEMAS DE INFORMAO - FSIP

Ricardo Sousa Pimentel

DESENVOLVIMENTO DE UM APLICATIVO PARA DISPOSITVO MVEL UTILIZANDO OS CONCEITOS DE BANCO DE DADOS MVEIS E ANDROIDE

Monografia apresentada como requisito de aprovao na disciplina de Trabalho de Concluso de Curso II do curso de Sistemas de Informao da Faculdade de Sistemas de Informao FSIP/UNEST, sob a orientao da Profa. Esp. Thatiane de Oliveira Rosa.

Paraso do Tocantins - To

2011

UIO EDUCACIONAL DE ENSINO SUPERIOR DO MDIO TOCATINS - UNEST FACULDADE DE SISTEMAS DE INFORMAO - FSIP

Ricardo Sousa Pimentel

DESENVOLVIMENTO DE UM APLICATIVO PARA DISPOSITVO MVEL UTILIZANDO OS CONCEITOS DE BANCO DE DADOS MVEIS E ANDROIDE

AVALIADORES:

Thatiane de Oliveira Rosa - UNEST (Orientadora)

Nome do Professor Avaliador UNEST

Nome do Professor Avaliador UNEST

Paraso do Tocantins - TO

2011

Este trabalho dedicado aos familiares, amigos e mestres, que contriburam significativamente para o meu crescimento intelectual.

os meus pais, pelo dom da vida. Aos meus Mestres, por terem me mostrado o caminho do saber. Um agradecimento especial ao meu Orientador, sempre paciente.

Ns devemos ser a revoluo que queremos para o mundo. Mahatma Gandhi

SUMRIO LISTA DE FIGURAS...................................................................................................12 LISTA DE TABELAS..................................................................................................13 LISTA DE ABREVIATURAS.......................................................................................14 1 INTRODUO.........................................................................................................16 2 REFERENCIAL TERICO.......................................................................................19 3 MATERIAIS E MTODOS.......................................................................................44 4 DESENVOLVIMENTO..............................................................................................47 5 CONCLUSO...........................................................................................................57 6 REFERNCIAS........................................................................................................59

LISTA DE FIGURAS

Figura 1 - Configurao do Android SDK....................................................................25 Figura 2 - Exemplo de nomenclatura em um projeto Android....................................27 Figura 3 - Exemplo de codificao da classe R..........................................................28 Figura 4 - Cdigo de recuperao da informao inserida pelo usurio....................29 Figura 5 - Manifest.xml................................................................................................30 Figura 6 - Estrutura de camadas do Sistema Operacional Android (ANDROID, 2009, online)..........................................................................................................................31 Figura 7 - Handoff........................................................................................................34 Figura 8 - Caching em Ambientes Mveis..................................................................36 Figura 9 - As bases remotas possuem rplicas na base consolidada........................37 Figura 10 - Pull-Based.................................................................................................38 Figura 11 - Push-Based..............................................................................................39 Figura 12 - Cenrio de Implantao de Aplicativos Mveis (ORACLE, 2009, online) .....................................................................................................................................40 Figura 13 - Diagrama de Casos de Uso......................................................................49 Figura 14 - Modelo de Entidade e Relacionamento....................................................50 Figura 15 - Diagrama de Classes................................................................................51 Figura 16 - Transio de Telas do Sistema................................................................53 Figura 17 - Mtodo onCreate da classe OpenHelper.................................................54 Figura 18 - Mtodo onUpdate da Classe OpenHelper................................................55 Figura 19 - Mtodo onOpen da classe OpenHelper...................................................56

LISTA DE TABELAS

Tabela 01 - Data do lanamento de todas as verses do Android.............................22 Tabela 2 - Explicao das camadas lgicas do Android (ADORID, 2009, online, traduo nossa)...........................................................................................................31 Tabela 3 - Detalhes do SQLite....................................................................................42

LISTA DE ABREVIATURAS ABNT SGBD SO IDE XML API Aplicaes; SDK UML DDL DML Software Development Kit, Kit de Desenvolvimento de Software; Unified Modeling Language, Linguagem de Modelagem Unificada; Data Definition Language, Linguagem de Definio de Dados; Data Manipulation Language, Linguagem de Manipulao de Dados. Associao Brasileira de Normas Tcnicas; Sistema Gerenciador de Bancos de Dados; Sistema Operacional; Integrated Development Environment, Ambiente Integrado para

Desenvolvimento; Extensible Markup Language, Linguagem de Marcao Estendida; Application Programming Interface, Interface de Programao de

14

RESUMO

A computao mvel e a comunicao entre dispositivos mveis avanam e desenvolvem-se de forma muito rpida, em contra partida, existem diversos fatores que pem em risco as informaes que so processadas, em tais dispositivos, e que so armazenadas em bancos de dados mveis. Dentre tais fatores destacam-se: a alta mobilidade, a largura de banda das redes sem fio e a deficincia do hardware dos aparelhos mveis. Desta forma, este trabalho aborda tais fatores de forma a analisar os desafios e propor solues para o desenvolvimento dessa rea da computao. Palavras-chave: Bancos de Dados Mveis, Computao Mvel, Android, SQLite.

15

INTRODUO

1.1

Contexto

Estudos demonstram que o futuro da computao a mobilidade, tal tendncia pode ser verificada se for realizada uma anlise histrica desde os primeiros computadores a vlvulas, que mal cabiam em uma sala, at os micro-chips dos dias atuais. A tendncia a reduo gradativa dos componentes e aumento da capacidade de processamento e armazenamento. Com tudo, a evoluo da computao, ao ponto de serem criados computadores portteis cada vez mais variados e distintos como os aparelhos Celulares, Smartphones, PDAs, Tablets, entre outros, aumenta a complexidade dos sistemas desenvolvidos para lidar com esse tipo de aparelho. No pode-se comparar a capacidade de um computador de mesa Desktop com a de um computador mvel, claro que os dispositivos mveis evoluram de forma, para muitos, inimaginvel, desde os primeiros celulares digitais at os aparelhos de terceira gerao 3G, porm deve-se considerar as propores de tamanho e espao entre eles. Os Sistemas Operacionais para dispositivos mveis de hoje, tais como o Android e o iOS, trouxeram avanos inimaginveis a pouco tempo atrs, esses sistemas operacionais foram desenvolvidos com o intuito de tornar os dispositivos mveis cada vez mais independentes, seguros e multifuncionais, agregando funes e os tornando cada vez mais indispensveis no cotidiano da sociedade. Esses novos sistemas operacionais, denominados Sistemas Operacionais Inteligentes,

aproveitam ao mximo a capacidade fsica do dispositivo mvel, e tal fato agregado evoluo gradativa do hardware, proporciona a possibilidade de implementar aplicaes mais robustas como jogos em 3 dimenses e sistemas que utilizam e processam grandes quantidades de dados. Para garantir a segurana das informaes, muitas aplicaes utilizam bancos de dados mveis aliados a SGBDs (Sistemas Gerenciadores de Bancos de Dados) em servidores fixos. Neste caso o banco de dados mvel acionado sempre que no h possibilidade de conexo com o servidor fixo. Os dispositivos mveis encontram outros desafios na rea de comunicao em rede, uma vez que estes dispositivos esto em constante movimento, necessrio o desenvolver tcnicas que permitem gerenciar o acesso a esses dispositivos rede e auxiliar no gerenciamento de dados e informaes processadas. Algumas dessas tcnicas so o Handoff, a Difuso, a Replicao e o Caching, estas tcnicas sero apresentadas detalhadamente no decorrer deste trabalho. 1.2 Objetivo Geral

Apresentar os conceitos por traz do paradigma de bancos de dados mveis, e a sua utilizao prtica aliada plataforma para o desenvolvimento mvel Android, utilizando para tal o desenvolvimento de uma aplicao. 1.3 Justificativa

O mercado de dispositivos mveis tem se desenvolvido em ritmo acelerado nos ltimos anos, hoje vemos uma grande variedade de aparelhos que agregam cada vez mais funes e se tornam cada dia mais indispensveis na vida de todos. As pessoas esto cada vez mais dependentes de informao, seja sobre o clima, sobre contatos em redes sociais ou trabalho, necessitam de um grande numero de informaes e que elas estejam disponveis a qualquer momento e em qualquer lugar. Com tudo isso o mercado tende a evoluir junto com essa demanda, grandes 17

empresas esto sendo atradas para a plataforma mvel como alternativa para aumentar seus lucros. A cada dia os sistemas implementados para essa plataforma esto ficando mais seguros e complexos, permitindo que grandes quantidades de dados sejam mantidos e tratados de forma rpida e funcional. Dessa forma fica evidente que a computao mvel uma rea prspera e que est em franca evoluo. Foi analisando esse contexto que esse trabalho foi proposto, como forma de aliar duas tecnologias que esto presentes na grande maioria dos dispositivos mveis de hoje, garantindo presena em uma grande fatia do mercado, o Android e o sistema gerenciador de bancos de dados mveis SQLite. 1.4 Organizao do Trabalho

Este trabalho organizado em 6 (seis) captulos, sendo este o primeiro, e que no capitulo 2 (dois), so apresentados os conceitos fundamentais a respeito de bancos de dados mveis e de sua aplicao aliada a plataforma Android, bem como as ferramentas necessrias para o desenvolvimento de software nessa rea. Posteriormente, no capitulo 3 (trs), so descritos todos os materiais e mtodos utilizados para viabilizar a execuo do presente trabalho. No capitulo 4 (quatro), so apresentados os resultados obtidos atravs da realizao deste trabalho. Nos captulos 5 (cinco) e 6 (seis), so apresentados respectivamente, as concluses e as referencias bibliogrficas.

18

REFERENCIAL TERICO

2.1

Computao Mvel

Mobilidade pode ser definida como a capacidade de poder se deslocar ou ser deslocado facilmente. No contexto da computao, mobilidade se refere ao uso de dispositivos mveis portteis, funcionalmente poderosos, que oferecem a possibilidade de realizar facilmente um conjunto de funes, sendo tambm capazes de conectar-se a outros dispositivos, obterem dados e fornec-los a outros usurios, aplicaes e sistemas ALVES (2004 apud LEE, 2005). Nos ltimos anos, as reas de desenvolvimento de software e hardware vm se desenvolvendo de forma exponencial. Esse desenvolvimento abre caminho para a criao de novas tecnologias voltadas para reas tidas antes como inviveis. Com os componentes dos computadores cada vez menores e eficientes, junto com o desenvolvimento de softwares eficazes tanto em mquinas com grande capacidade de processamento e memria quanto em computadores mais enxutos com relao a hardware, nasce um novo paradigma para a computao, conhecido como computao mvel. Com a computao mvel, e o crescente nmero de sistemas de informao desenvolvidos para essa plataforma, surgem questes como a segurana, integridade e consistncia dos dados nos SGBDs. Logo, quanto maior a mobilidade do dispositivo, mais difcil ser o gerenciamento da aplicao. Essas e outras questes sero tratadas nas prximas sees. 19

2.2

Java

Java uma linguagem simples, orientada a objetos, distribuda, interpretada, robusta, segura, independente de plataforma, portvel, de alta performance, concorrente e dinmica (BORBA, Paulo, 2002, p. 1). Muitos estudiosos consideram Java uma linguagem simples e por isso de fcil aprendizado, alm de possuir excelentes frameworks para programao, o que garante que programadores tenham facilidade ao iniciar o desenvolvimento utilizando tal plataforma. Apesar de ser uma linguagem relativamente jovem, Java uma das linguagens mais utilizadas, dominando grande parte do mercado corporativo atual. Neste trabalho, o framework de desenvolvimento estudado foi a IDE (Integrated Development Environment Ambiente Integrado para Desenvolvimento) Netbeans, a qual explanada na prxima seo. 2.3 Netbeans IDE

O Netbeans um ambiente de desenvolvimento integrado, gratuito e de cdigo aberto, utilizado por desenvolvedores de software. O netbeans oferece ferramentas necessrias para criar aplicativos profissionais de desktop, empresariais, web, mveis e multiplataformas. (MENEGHETTI, PAES, KANTORSKI, 2007, p. 4) O Netbeans foi desenvolvido pela empresa SUN Microsystems e atualmente mantido pela ORACLE, para programao em diversas linguagens, inclusive Java. Por ser uma ferramenta de fcil aprendizado, com grande usabilidade e que torna o trabalho do programador muito mais gil, ela fundamental no desenvolvimento de software. Atualmente o Netbeans se encontra na verso 7.0, mas a verso utilizada no desenvolvimento deste trabalho foi a 6.9. No desenvolvimento deste trabalho sero utilizadas as linguagens, Java, apresentada anteriormente e XML, cujo conceito ser abordado na prxima seo. 20

2.4

XML

De acordo com Almeida (2002, p. 5), o XML (Extensible Markup Language Linguagem de Marcao Estendida) uma arquitetura que no possui elementos e marcas predefinidas e que no especifica como os autores do documento podem utilizar os metadados, existindo total liberdade para utilizar qualquer mtodo disponvel, desde simples atributos, at a implementao de padres mais complexos. O XML uma linguagem de marcao utilizada principalmente para prover metadados a aplicaes distintas, de modo a promover uma interoperabilidade entre sistemas em diversas linguagens de programao. O XML fundamental para o desenvolvimento de software na a plataforma Android, que ser utilizada no decorrer deste trabalho, uma vez que toda a interface grfica das aplicaes so definidas utilizando arquivos .xml. A plataforma Android ser apresentada na prxima seo. 2.5 Android

Lanado em 2008 pelo Google o sistema operacional Android, trouxe consigo inmeras revolues no modo com que as pessoas interagem com os dispositivos mveis. Tal sistema totalmente customizvel e por ser de cdigo aberto proporciona ao usurio total controle do seu dispositivo. No ano de seu lanamento apenas 1% dos usurios mundiais utilizavam o Android, passando no ano seguinte para incrveis 16% e chegando em 2010 a 26% do total de usurios mundiais de dispositivos mveis. Em 2011 o Android superou o iOS da Apple ocupando assim a primeira colocao no ranking mundial (AdMobile Metrics, online, traduo nossa). A primeira verso do sistema foi lanada em Setembro de 2008 e atualmente o Android est na sua verso 3.1. A tabela 01 apresenta datas dos lanamentos de todas as verses do Android.

21

Tabela 01 - Data do lanamento de todas as verses do Android


Verso Android 1.0 Data de Lanamento Setembro de 2008 Logo No Possui

Android 1.1

Maro de 2009

No Possui

Android 1.5 (Cupcake)

Abril de 2009

Android 1.6 (Donut)

Setembro de 2009

Android 2.0/2.1 (Eclair)

Outubro de 2009

Android 2.2 (Froyo)

Maio de 2010

Android 2.3 (Gingerbread)

Dezembro de 2010

22

Android 3.0/ 3.1 (Honeycomb)

Janeiro/ Maio de 2011

Android Ice Cream Sandwich

Previsto para o 4 trimestre de 2011

O Android hoje controlado pela Open Handset Alliance, associao comercial formada por mais de 30 (trita) empresas de tecnologia e telefonia celular, entre as mais importantes destacam-se: O Google, que contribui com a maior parte do desenvolvimento da plataforma, a Samsung, HTC, LG, Intel, Motorola, Qualcomm, T-mobile, Nvidia entre outras. Segundo Scota, Andrade e Xavier (2010, p. 1), o Android um sistema operacional open-source (cdigo aberto), baseado em Linux, destinado a equipamentos mveis. Assim como informado anteriormente, tal sistema operacional foi desenvolvido inicialmente pela Google e posteriormente pela Open Handset Alliance, o mesmo possui uma rica e atraente interface grfica, que apresenta uma grande diversidade de aplicaes, navegador de internet, banco de dados integrado, jogos, integrao com outros sistemas, como GPS, conectividades diversas, como Bluetooth, EDGE (Enhanced Data-Rates for Global Evolution), 3G e Wi-Fi e entre outras caractersticas. A plataforma Android possibilita ao seu usurio o controle total sobre o dispositivo mvel, podendo ele substituir qualquer aplicativo por outro encontrado na internet ou implementado pelo prprio usurio, desde um mp3-player at o aplicativo que faz ligaes. Alm disso, o SDK (Software Development Kit, ou Kit de Desenvolvimento de Software) do Android disponibiliza ao programador o controle sobre todas as configuraes do hardware, podendo ele criar aplicaes que fazem uso por exemplo, do GPS, Wi-Fi, cmera, enfim tudo que o hardware do dispositivo tenha a oferecer. 23

Pode-se dizer que a plataforma Android a primeira plataforma mvel completa, aberta e livre. (RABELLO, 2008, p. 7). Sero apresentados os conceitos do kit de desenvolvimento de software do Android na prxima seo. 2.5.1 Android SDK

O Google disponibiliza para os desenvolvedores interessados pela plataforma Android um kit de desenvolvimento que integra todas as APIs (Application Programming Interface ou Interface de Programao de Aplicaes) disponveis para as inmeras verses do sistema operacional, tanto para smartphones, tablets, TVs entre outros. O Android SDK constitui-se de todas as ferramentas necessrias para o desenvolvimento de aplicaes na plataforma Android, incluindo um emulador para testar na prtica o funcionamento do aplicativo. Ao instalar o Android SDK o desenvolvedor de software est instalando na verdade uma verso do prprio sistema operacional do dispositivo mvel para o qual ele deseja programar, ou seja, os resultados obtidos atravs do emulador sero exatamente os mesmos que o programador obter caso instale o aplicativo em um dispositivo mvel. Aps a instalao do Android SDK no computador o desenvolvedor deve criar uma mquina virtual que represente o emulador (dispositivo mvel virtual para o qual se deseja programar) devendo levar em considerao entre outras coisas, a verso do sistema operacional e o tamanho da tela, como demonstrado na figura 1.

24

Figura 1 - Configurao do Android SDK Na figura 1, ilustrada a criao da mquina virtual que representa todos os dispositivos mveis com a verso 2.2 do Android, ou superior, criado um carto de memria virtual com 2GB de capacidade, sendo tambm definida a resoluo de 700x500 para a tela do aparelho. Na figura 1 vemos ainda no campo Target a seguinte informao Android 2.2 API Level 8, sendo que API Level pode ser definido como um conjunto de componentes destinados a uma determinada verso do SO, por exemplo, o Android 1.5 possui API Level 3, o desenvolvedor interessado em programar para essa verso do Android poder fazer uso, entre outros do componente EditText (Campo de texto), que possui API Level 1, porm se utilizar o componente QuickContactBadge (cone com a foto de um contato da agenda do aparelho), que tem o API Level 5, o sistema ser incompatvel com a verso 1.5 do SO, podendo ser executada somente nas verses superiores 2.0. Por conseqncia disso o desenvolvedor deve ficar atento ao API Level dos componentes que utilizar em suas aplicaes, pois o maior API Level presente no sistema, definir com quais verses do Android o mesmo ser compatvel, por 25

exemplo: se o maior API Level da aplicao for 8, a mesma ser compatvel apenas com as verses iguais ou superiores a 2.2. Para desenvolver aplicaes para a plataforma Android necessrio que a IDE utilizada (IDE para programao na linguagem Java, como Eclipse ou Netbeans) seja configurada com a instalao de um plugin especfico para o desenvolvimento para o Android, que faa a comunicao com a mquina virtual que se encarregar de apresentar o aplicativo na tela. Nas prximas sees sero apresentados conceitos de programao na plataforma Android. 2.5.2 Programando no Android

Os aplicativos para Android inclusive os nativos como gerenciador de chamadas e agenda de contatos, so desenvolvidos utilizando basicamente as tecnologias Java e XML. Toda a parte de interface grfica e comunicao com o usurio criada por meio de arquivos XML, neles o desenvolvedor especifica todos os layouts e os componentes visuais que devem ser apresentados ao usurio do sistema. Neste contexto, cada arquivo XML representa uma tela da aplicao e cada tela deve ter uma classe Java correspondente, esta deve tratar os eventos e realizar o processamento de dados necessrio para a realizao de tarefas. Tais classes so denominadas como atividades, sendo que as mesmas gerenciam o ciclo de vida da aplicao, possuindo trs estados: ativa, pausada ou fechada. Se uma aplicao estiver em execuo e for abruptamente interrompida por algum evento, como por exemplo, o recebimento de uma ligao, ela automaticamente deve ser parada e o seu estado ser alterado para pausada, at que seja possvel continuar a sua execuo. As atividades so vinculadas ao arquivo de XML correspondente tela da aplicao pelo mtodo onCreate, o comando o seguinte: setContentView(R.layout.lay01); Os parmetros passados no mtodo setContentView representam o arquivo XML correspondente tela que ser exibida, no caso do exemplo ser a lay01. uma boa prtica nomear as atividades como o mesmo nome do arquivo XML correspondente a elas, por exemplo: Se a tela principal da aplicao denominada 26

lay01.xml, necessrio criar uma Atividade (classe Java) para represent-la, e o entendimento da estrutura do projeto em Android facilitado se elas tiverem o mesmo nome, ou seja, Lay01.java. Tal esquema de nomenclatura pode ser verificado na figura 2.

Figura 2 - Exemplo de nomenclatura em um projeto Android Todos os componentes da aplicao, definidos nos arquivos .xml, se encontram disponveis na classe R, por meio dessa classe que as Atividades se comunicam com os layouts XML. A classe R ser apresentada posteriormente. 2.5.3 A classe R

Ao se criar um projeto Android automaticamente criada uma classe denominada R. Essa classe funciona como um elemento intermedirio entre os layouts XML e as Atividades que os representam, sendo assim, na classe R esto contidos todos os componentes visuais definidos nos layouts XML. Desta forma, quando o desenvolvedor define um layout, deve descrever os componentes visuais que sero apresentados no momento da execuo do sistema. Esses componentes so automaticamente varridos pela classe R, a qual cria atributos correspondentes a cada componente e atribui a eles um identificador nico do tipo inteiro, como apresentado na figura 3. 27

Figura 3 - Exemplo de codificao da classe R. Para recuperar dados introduzidos pelo usurio, ou mesmo para mostrar alguma informao na tela, necessrio que seja criado um objeto e que este receba a referncia do componente visual por meio da classe R, por exemplo, para recuperar uma informao inserida pelo usurio, utiliza-se o seguinte cdigo apresentado na figura 4:

28

01 EditText CampTitulo; 02 Button BtMostrarMsg; 03 CampTitulo=(EditText) findViewById(R.id.CampoTitulo); 04 BtMostrarMsg=(Button) findViewById(R.id.BtMostrarMsg); 05 BtMostrarMsg.setOnClickListener(new OnClickListener() 06 { 07 08 08 09 10 } 11 ); } public void onClick(View v) { String rec = CampTiTulo.getText();

Figura 4 - Cdigo de recuperao da informao inserida pelo usurio Conforme demonstra o cdigo apresentado na figura 4, na linha 1 criado um objeto do tipo EditText, ou seja, uma caixa de texto. J na linha 2 criado o boto, e nas linhas 3 e 4, os objetos criados recebem a referncia dos componentes visuais definidos no XML por meio da classe R com o mtodo findViewById(). Nas linhas de 5 a 9 apresentado o listener o qual a estrutura responsvel por verificar se o boto foi pressionado. Caso o boto seja pressionado, o mtodo onClick ento executado, criando uma string na linha 7 e atribuindo a ela o valor recebido da caixa de texto. Na prxima seo ser apresentado o arquivo de manifesto, que define as permisses relacionadas segurana das aplicaes. 2.5.4 Manifest.xml

Um dos conceitos fundamentais por traz da plataforma Android o do arquivo de metadados Manifest.xml. Esse arquivo responsvel por descrever todas as permisses relacionadas s aes que podero ser executadas por um aplicativo, ou seja, as aes que ele poder realizar depois de instalado, por exemplo, se o aplicativo vai utilizar a rede 3G do aparelho, essa permisso deve estar explicitamente indicada no arquivo de manifesto, para que no momento da instalao o usurio seja informado sobre as intenes do sistema, antes de permitir 29

o progresso da mesma. Para que uma atividade seja executada, ela deve estar indicada nesse arquivo como no exemplo abaixo (Figura 5).

Figura 5 - Manifest.xml A figura 5 representa a declarao das Atividades no arquivo de manifesto. Pode se notar na linha 17 a abertura da tag <activity, que indica que ser declarada uma Atividade, passando como informaes o nome, Lay01 e o label (texto que aparece como titulo na tela do aparelho), Agenda. Na linha 18 abre-se a tag <intent-filter>, que indica que sero apresentados as intenes da atividade, ou seja, o que ela deve implementar, nesse caso uma tela de configurao de um widget (Pequeno aplicativo que flutua sobre a rea de trabalho). Nas duas linhas seguintes so fechadas as tags </intent-filter> e </activity>. Nas linhas entre 23 e 29 ocorre a declarao de uma atividade da mesma forma da anterior. Nas prximas sees ser apresentada a estrutura do sistema operacional Android. 2.5.5 Entendendo a Estrutura do Sistema Operacional Android

O sistema operacional Android executado sobre o Kernel (Ncleo) do sistema operacional do Linux e as aplicaes so executadas por meio de sua mquina virtual a Dalvik, que foi projetada para ambientes de pouca memria. Para que seja possvel melhor compreender a estrutura do sistema operacional Android, a figura 6 apresenta as camadas que o compe. 30

Figura 6 - Estrutura de camadas do Sistema Operacional Android (ANDROID, 2009, online) A tabela abaixo explica de forma detalhada todos os componentes das diversas camadas lgicas do Android Tabela 2 - Explicao das camadas lgicas do Android (ADORID, 2009, online, traduo nossa)
Kernel Linux O Android conta com um Kernel Linux verso 2.6, este funciona como o sistema central de servios e como uma camada de abstrao entre o Kernel 2.6 hardware e as outras camadas de software fazendo o gerenciamento de memria, gerenciamento de processos que contm todos os drivers necessrios para o funcionamento do dispositivo mvel, como mostrado na imagem 6. Android Runtime (Tempo de Execuo) O Android inclui um conjunto de bibliotecas que fornece a maioria das Bibliotecas Mquina Virtual funcionalidades disponveis nas principais bibliotecas da linguagem de programao Java. Cada aplicao Android roda em seu prprio processo, com sua prpria

31

instncia da mquina virtual Dalvik. A mquina virtual Dalvik foi desenvolvida com a finalidade de aperfeioar a execuo das aplicaes, por isso as classes Java compiladas no formado .class so posteriormente comprimidas no formato .dex (Dalvik Executavel). Os Dalvik arquivos .dex so otimizados para dispositivos mveis e por isso podem ser executados em dispositivos com poucos recursos sem perdas em performance. A Dalvik entra em contato com o Kernel Linux para executar processos de baixo nvel como gerenciamento de memria. Libraries (Bibliotecas) O Android inclui um conjunto de bibliotecas C e C++ usadas por Bibliotecas diversos componentes do sistema operacional. Estas bibliotecas so disponibilizadas aos desenvolvedores por meio da estrutura de aplicativos do Android. Uma implementao feita por derivados do BSD (Berkeley Software Biblioteca System C Distribution) do sistema de biblioteca padro C (libc), otimizado para dispositivos baseados em Linux. Baseada no PacketVideo's OpenCORE, a biblioteca de apoio a Bibliotecas de Media gravao e reproduo de arquivos de udio e muitos formatos de vdeo e imagem populares, como por exemplo, MPEG4, H.264, MP3, AAC, AMR, JPG e PNG. Gerencia o acesso ao display e executa sem problemas grficos 2D e 3D, tendo mltiplas aplicaes. Um motor de navegador moderno. Essa biblioteca a mesma que d suporte aos navegadores Chrome do Google e o Safari da Apple. Motor grfico 2D. Uma biblioteca baseada na API OpenGL ES 1.0. Essa biblioteca responsvel pela acelerao 3D, Muito utilizada em games. Responsvel pela renderizao de fontes, utilizada em vetores e bitmap (mapa de bits). Um poderoso banco de dados relacional, leve e robusto, disposio de todos os aplicativos. Application Framework (Quadro de Aplicao) Ao fornecer uma plataforma de desenvolvimento aberta, o Android oferece aos desenvolvedores a capacidade de criar aplicaes extremamente ricas e inovadoras. Os desenvolvedores esto livres para aproveitar o hardware do dispositivo, as informaes de localizao de acesso, execuo de servios de fundo, definir alarmes, notificaes para adicionar barra de status, dentre outros recursos. Alm disso, os desenvolvedores tm acesso total s APIs do mesmo quadro usada pelos aplicativos do ncleo. A arquitetura do SO projetada para simplificar a reutilizao dos componentes. Qualquer aplicao pode publicar suas capacidades e qualquer outra aplicao

Surface Manager LibWebCore SGL Bibliotecas 3D FreeType SQLite Caractersticas

32

pode ento fazer uso dessas capacidades (sujeito a restries de segurana, todas as permisses devem estar explicitamente descritas no arquivo de manifesto xml). Este mesmo mecanismo permite que componentes possam ser substitudos pelo usurio. Um rico e extensvel conjunto de componentes visuais que pode ser usado para construir uma aplicao, incluindo listas, tabelas, caixas de texto, botes, e at mesmo um navegador web embutido; Os provedores de contedo que permitem que aplicativos acessem dados de outros aplicativos (como Contatos), ou para compartilhar seus prprios dados; Um gerenciador de recursos, fornecendo acesso aos recursos no codificados como seqncias localizadas, grficos e arquivos de layout; Um gerenciador de notificaes, que permite que todos os aplicativos possam exibir alertas personalizados na barra de status; Um Gerenciador de Atividades que gere o ciclo de vida das aplicaes e proporciona uma navegao comum. Applications (Aplicaes) H varias aplicaes nativas no Android, incluindo um cliente de e-mail, gerenciador de SMS, calendrio, mapas, navegador, agenda de Aplicaes contatos e outros. Alm disso, os usurios podem instalar aplicativos para diversas finalidades, de jogos a gerenciadores de rea de trabalho. Todos eles so escritos com a linguagem de programao Java.

Componentes Visuais Provedores de Contedo Gerenciador de Recursos Gerenciador de Notificaes Gerenciador de Atividades

Na prxima seo sero apresentados os conceitos por traz do paradigma de banco de dados mveis e a sua aplicao aliada plataforma Android. 2.6 Bancos de Dados Mveis

O sistema de banco de dados mvel aquele em que um SGBD tenha a capacidade de ser transportado livremente, carregando consigo os dados e informaes e podendo ser sincronizado com uma base remota por meio de rede sem fio. No algo simples fazer com que as aplicaes possam gerenciar as informaes contidas na base de dados de forma eficiente enquanto se movem pelas inmeras clulas de rede espalhadas por um territrio. Tendo em vista que a conexo com a rede sem fio possa ser interrompida por motivos que vo desde o desligamento do aparelho, de forma espontnea ou descarga da bateria, at a perda da rea de cobertura da rede, pode-se prever que as transaes podem ser interrompidas a qualquer momento podendo no ser completadas de forma 33

satisfatria. Porm essas limitaes no devem ser consideradas como falhas, e sim como desafios que podem e devem ser solucionados por meio de tcnicas como, por exemplo, o handoff, o caching e a replicao. Para que seja possvel compreender de forma mais eficiente as trs tcnicas para resoluo dos problemas de conexo de aparelhos mveis, nas prximas sees as mesmas so apresentadas de forma mais detalhada. 2.6.1 Handoff

Uma das grandes dificuldades com relao ao desenvolvimento de sistemas que utilizam bancos de dados mveis a comunicao entre o servidor e o cliente, quando este se move entre as vrias clulas de rede. A capacidade de sair de uma clula e entrar em uma vizinha, sem que haja desconexo, chamada de Handoff (Vide figura 7). Com o handoff possvel perder o contato com uma estao base numa clula, estabelecendo contato com outra sem, no entanto, haver desconexo, esta troca deve ocorrer quando o host mvel est na regio onde as clulas se sobrepem KUMAR, 2000 (apud AMADO, 2002, p. 33).

Figura 7 - Handoff

34

A figura 7 ilustra o cliente mvel se deslocando entre duas clulas de rede, e para que no haja desconexo, necessrio perder contato com uma clula e estabelecer com a outra na rea onde elas se sobrepem. Quando o host mvel no encontra uma rede para se conectar, ou o sinal oscila, de forma a prejudicar o desempenho das transaes, necessrio manter um repositrio local o qual armazenar informaes importantes. Porm o espao disponvel escasso, por isso necessrio manter na memria local ou em cache somente os dados realmente necessrios. Neste contexto, o caching surge como um paradigma que faz o controle do que fica ou no na memria local do aparelho. Sendo assim, com o objetivo de melhor compreender o conceito de caching a prxima seo trata deste assunto de forma mais detalhada. 2.6.2 Caching

O caching um paradigma de acesso a dados mveis que visa aumentar a eficcia na recuperao de dados em servidores remotos. Armazenar dados em cache (Memria Local), o que facilita o processo de recuperao de dados, j que acesslos no prprio aparelho consideravelmente mais simples do que busc-los em bancos de dados externos. Portanto armazenar dados em cache seria a soluo ideal, uma vez que diminuindo a complexidade do problema, obtm-se uma melhor performance. Entretanto, infelizmente os dispositivos mveis perdem em recursos de hardware, como processamento, espao para armazenamento de informaes, entre outros recursos fsicos, se comparados aos computadores de mesa (Desktops). Tal deficincia dificulta o desenvolvimento de aplicaes que gerem e computem uma grande quantidade de dados. Sendo assim, o caching visa buscar um meio termo entre o armazenamento em cache e o distribudo. O processo que realizado pelo caching muito simples, e delhado da seguinte forma: quando o usurio utiliza a aplicao, enviado um pedido ao servidor que busca os registros mais acessados, ento o sistema os armazena na memria, quando for realizada uma busca o aplicativo realiza uma varredura no cache do aplicativo e s ir acessar novamente o servidor caso no encontre o resultado desejado. Esse processo diminui significativamente a quantidade de 35

acessos ao servidor uma vez que os registros recuperados para formar a cache do sistema so os que normalmente so requisitados pelo usurio, aumentando, desta forma, a probabilidade de que o dado buscado esteja na memria, para isso mantido um registro de estatsticas do banco como representado pela figura 8.

Figura 8 - Caching em Ambientes Mveis A figura 8 ilustra um ambiente onde o cliente mvel ao requisitar uma informao pode realizar uma busca interna na cache. Se a informao solicitada estiver disponvel, esta ser apresentada, caso contrrio realizado um acesso ao servidor remoto onde esto contidos todos os dados disponveis a este cliente. Uma vez que o servidor acionado, atualizado o banco de estatsticas, o registro encontrado e ento encaminhado ao cliente. Periodicamente o host mvel atualizado com os dados mais requisitados segundo as estatsticas, para que diminuam os acessos ao servidor. Para que os dados mantenham-se ntegros e confiveis, necessrio que estes sejam transmitidos ao servidor quando ocorre alteraes ou incluses, esse processo denominado replicao e ser apresentado na seo seguinte.

36

2.6.3 Replicao e Sincronizao de Dados O processo pelo qual um arquivo ou um conjunto de arquivos copiado de um computador para outro, dentro de um sistema distribudo, conhecido como replicao (este processo representado na figura 9). Os clientes mveis armazenam cpias idnticas das informaes contidas no servidor, ou parte delas, para aumentar o desempenho das aplicaes, pois diminuem o tempo de acesso s informaes (quando no preciso fazer uma requisio ao servidor) (ALVES, 2007, p. 23).

Figura 9 - As bases remotas possuem rplicas na base consolidada A figura 9 representa vrias bases remotas com cpias idnticas em uma base consolidada, cada alterao ou incluso nas bases remotas deve ser sincronizada com a base consolidada. Sincronizao o processo pelo qual os dados distribudos so mantidos atualizados, de forma que os usurios em cada local tenham certeza de que esto vendo a verso mais recente do arquivo. Quando os dados num servidor ou numa base e suas rplicas so sincronizados, o log de transao de cada volume replicado usado para verificar se aqueles dados foram atualizados, inseridos ou removidos da base central. As cpias mais recentes so ento replicadas para todos os outros locais que acessam esses dados (NOVEL, 1997 apud AMADO, 2002, p. 35). Na prxima seo falaremos sobre difuso de dados. 37

2.6.4 Difuso de Dados

A Difuso de Dados ou disseminao um paradigma de acesso a dados em um servidor remoto em que o servidor envia mensagens aos clientes mveis localizados nas clulas de redes por ele alcanadas. Existem duas estratgias para o envio de dados por difuso, o Pull-Based e o Push-Based. O Pull Based caracterizado pelo cliente realizar o papel ativo, executando as requisies de informaes ao servidor. Porm h um custo maior com relao aos envios de requisies que com os recebimentos de informaes, uma vez que a largura de banda das redes maior no sentido Servidor/Cliente do que no sentido Cliente/Servidor. A figura 10 ilustra a comunicao entre cliente e servidor pelo modelo pull-based, onde a solicitao sempre parte do cliente, chega ao servidor onde analisada para s ento ser encaminhada a resposta de volta ao cliente, seguindo os passos de 1 a 4 respectivamente.

Figura 10 - Pull-Based A figura 10 representa o funcionamento do pull-based obedecendo os seguintes passos: o cliente se conecta a rede sem fio e acessa o servidor; o servidor interpreta a requisio e envia a resposta para o cliente atravs da rede. 38

O push-based caracterizado pelo servidor fazendo o papel ativo, ou seja, enviando dados para o cliente sem que este os solicite. Neste caso, o cliente mvel funciona apenas como um receptor, uma vez que cada cliente pode ter necessidades diferentes, propondo a realizao de um cadastro prvio do tipo de informao que cada um deseja receber, evitando assim o envio de informaes desnecessrias. Um exemplo do uso do push-based pode ser verificado na implementao de um sistema de envio de SPAM.

Figura 11 - Push-Based A figura 4 representa o funcionamento do push-based, onde o servidor simplesmente envia as informaes para os hosts mveis ao seu alcance. Trataremos na prxima seo de SGBDs mveis. 2.7 SGBDs Mveis

Atualmente, os maiores desenvolvedores de SGBDs (Sistemas de Gerenciamento de Bancos de Dados), apresentam solues para a plataforma mvel, por perceberem a grande importncia e o enorme potencial econmico da mobilidade. Tais empresas lanam verses de seus softwares adaptadas para o gerenciamento de bancos de dados mveis, visando no somente o usurio pessoal, mas principalmente o corporativo. Entre os SGBDs mveis existentes no mercado,

39

destacam-se: o SQL Anywhere Studio, o Oracle Database Lite 10G, O SQL Server CE e o SQLite, os quais sero melhor explicados nas prximas sees. 2.7.1 Oracle Database Lite 10g

O Oracle Database Lite oferece aos usurios mveis a experincia de acesso continuo a dados pela rede. Ele permite que os usurios mveis possam acessar dados da empresa, mesmo na ausncia de uma conexo de rede. O Oracle Database Lite 10g uma soluo integrada e completa para o rpido desenvolvimento e implantao de aplicaes de alto impacto para ambientes mveis. No caso desta ferramenta, o cliente necessita de pouco espao de armazenamento, ocupando cerca de 350kb. Por sua vez, o servidor fornece sincronizao bi-direcional de dados, alm de oferecer aos administradores, ferramentas para gerenciar remotamente os usurios e dispositivos de aplicaes. A figura 12 ilustra uma arquitetura tpica do cenrio de implantao de aplicativos mveis.

Figura 12 - Cenrio de Implantao de Aplicativos Mveis (ORACLE, 2009, online) Os principais componentes do cliente do Oracle Database Lite so: os Bancos de dados Oracle Database Lite Client para acesso a dados locais; e um dispositivo gestor e sincronizador de dados de clientes que se comunicam com o servidor. O 40

cliente est disponvel para mltiplas plataformas, incluindo Windows 2003/XP/Vista, Windows Mobile e Pocket PC, Linux e Symbian OS e d suporte s funcionalidades de SQL padro, possui servios de mensagens em aparelhos de telefone, pagers e computadores portteis, possui servios de mensagens Push-based e Pull-based para difuso, d suporte a Binary Large Object (BLOB) e possui servios de voz. O servidor mvel opera na camada intermediria proporcionando a sincronizao de dados com o banco de dados Oracle da empresa. Os administradores podem usar a interface de usurio Mobile Manager para o Oracle Database Lite Mobile Server tambm para executar o gerenciamento do dispositivo, gerenciamento de ciclo de vida da aplicao e otimizao de desempenho de tarefas. 2.7.2 SQL Anywhere Studio

A empresa Sybase possui uma soluo de banco de dados mvel chamada de SQL Anywhere Studio, suas principais caractersticas so: Suporte a BLOB; trabalha com as plataformas Microsoft Windows, Windows CE, Mac OSX, Linux, Symbian OS a partir da verso 8, e Palm. O cliente tem apenas 150kb e no servidor o banco de dados pode ter no mximo 2gb. Segundo TRASEL (2005, p. 33) os pontos fortes do SQL Anywhere Studio so: Sevidor Mvel de suporte para desenvolvimento (via ODBC, JDBC e outros drivers nativos). Pode-se apontar como ponto fraco o fato do produto no prover suporte nativo a dispositivo RIM Blackberry e plataforma Java 2 Micro Edition (J2ME), uma vez que os dois ambientes foram desenvolvidos para operar com a opo Ultralite (Compacta). 2.7.3 SQL Server CE

O Microsoft SQL Server 2005 Compact Edition o banco de dados compacto que permite o desenvolvimento rpido de aplicativos mveis projetado para ser integrado com a plataforma .NET. Pode ser usado como banco de dados local ou com a 41

arquitetura cliente servidor utilizando rede sem fio. O cliente tem aproximadamente 1mb, d suporte s plataformas Linux, Windows 32bits e Windows CE, Symbian EPOC e Palm OS. 2.7.4 SQLite

O SQLite funciona como um mini-SGBD, capaz de criar um arquivo em disco e ler e escrever diretamente sobre este arquivo. O arquivo criado possui a extenso .db e capaz de manter diversas tabelas (DEVMEDIA, 2009, online). Segundo DEVMEDIA (2010, online) o SQlite capaz de controlar diversos bancos de dados que podem conter diversas tabelas. O desenvolvedor pode criar o banco de dados e as tabelas, assim como manipular seus dados atravs dos comandos DDL (Data Definition Language) e DML (Data Manipulation Language) do SQL padro. Isso traz um ganho considervel de produtividade, pois o desenvolvedor agora pode apenas focar nas regras de negcio, tendo em vista que os servios para persistncia de dados so fornecidos pelo SQLite. A tabela 3 apresenta algumas informaes relevantes sobre o SQlite. Tabela 3 - Detalhes do SQLite
Sistema Operacional Tamanho BD Suporta bases de Multiplataforma dados cima de 2 terabytes. Segurana Cada utilizador pode ter a sua base de dados Completamente independente. Transaes Controle de transaes com Commit e Rollback. Sim Triggers

O SQLite possui diversas ferramentas para o desenvolvimento de bancos de dados de forma visual. Neste trabalho foi utilizado o SQLite Expert Personal apresentado na prxima seo. 2.7.4.1 SQLite Expert Personal

42

O SQlite Expert Personal uma ferramenta gratuita que funciona como um gerenciador visual para bancos de dados SQlite, nela possvel criar, editar, excluir e inserir dados em tabelas, alm de definir constraints. A interface grfica do SQlite Expert Personal altamente intuitiva e no apresenta dificuldades para o usurio, tanto para o aprendizado quanto para o uso cotidiano. Essa ferramenta possibilita um ganho considervel em agilidade, uma vez que o desenvolvedor do sistema no precisa perder tempo digitando comandos no terminal. Na prxima seo sero apresentados os materiais e mtodos utilizados no desenvolvimento deste trabalho.

43

MATERIAIS E MTODOS

Nessa seo sero apresentados todos os materiais como softwares e hardwares e mtodos como pesquisas e orientaes que se fizeram necessrios para proporcionar a realizao deste trabalho. 3.1 Local e Perodo

Este trabalho foi desenvolvido no perodo correspondente ao intervalo de tempo entre o primeiro bimestre de 2010 e o terceiro de 2011, utilizando para isso ambientes que vo desde o laboratrio da faculdade at a empresa onde trabalho. 3.2 Materiais

Os materiais utilizados no desenvolvimento deste trabalho foram pesquisas realizadas em livros na biblioteca da faculdade e por meio eletrnico, em trabalhos acadmicos e diversas publicaes na web, o hardware disponvel no laboratrio da instituio de ensino, alm dos softwares como Netbeans, Android SDK, SQLite Expert Personal apresentados na seo anterior, Referencial Terico.

3.3

Mtodos

44

Para o desenvolvimento deste trabalho foram realizadas pesquisas visando o entendimento dos conceitos abordados, primeiramente com relao a banco de dados mveis e posteriormente sobre a plataforma mvel adotada, o Android, tendo em vista que o objetivo deste trabalho apresentar o paradigma de banco de dados mveis e suas aplicaes no dia-a-dia das pessoas. Para tal foi proposto o desenvolvimento de uma aplicao que pudesse manipular dados de forma segura eficaz e que fosse de fcil distribuio, ou seja, compatvel com a grande maioria dos dispositivos disponveis no mercado. Vale salientar que na ocasio da escolha do tema e das tecnologias empregadas para o desenvolvimento da aplicao, o cenrio era diferente do de hoje, apesar do pouco tempo decorrido neste intervalo, isso justificvel levando-se em considerao a rapidez da evoluo nessa rea. No incio de 2010 a maioria dos dispositivos mveis eram capazes de executar aplicaes em Java 2 micro edition (J2ME). A plataforma Java aberta e o desenvolvimento de software em J2ME relativamente simples, h bons IDEs com modelagem visual de interfaces grficas, o que agiliza a programao. Alm disso, J2ME funciona bem at mesmo nos dispositivos mais limitados, podendo reduzir custos com a aquisio de aparelhos. Com tudo isso, a escolha da tecnologia a ser utilizada na aplicao no poderia seguir outro rumo se no a adoo do J2ME. A aplicao proposta para cumprir o objetivo do trabalho foi um cliente servidor que tem a finalidade de agilizar os processos em bares e restaurantes, oferecendo ao cliente a possibilidades de realizar pedidos por meio de um dispositivo mvel que se comunica a um banco de dados no servidor enviando e recebendo informaes, como pedidos, itens do cardpio, entre outros. Essa aplicao mantinha um banco de dados interno que utilizava RMS, que no chega a ser um SGBD, mas que manipula registros a fim de proporcionar persistncia de dados. Com tudo, logo surgiram os problemas, primeiramente com a interface grfica muito limitada do J2ME, depois com a dificuldade de manipular registros de forma segura e rpida do RMS, culminando na impossibilidade de continuar o projeto sem que este passasse por srias mudanas. Nos ltimos anos, o cenrio da computao mvel passou por uma reviravolta, se antes pouco se ouvia sobre o Android, no ano de 2011 ele tinha se tornado o sistema operacional mais utilizado em dispositivos mveis do mundo. A tecnologia promete uma revoluo na maneira de desenvolver software para tais dispositivos, 45

interface grfica rica e compatibilidade com uma grande parcela dos aparelhos existentes hoje, foram alguns dos atrativos que chamaram ateno para a plataforma. Isso tudo aliado ao fato de que o Android teoricamente fcil de aprender, uma vez que se utiliza basicamente Java e XML, e que ele traz suporte nativo ao SQLite, um mini-SGBD que no precisa de nenhuma configurao extra para funcionar, pelo fato de este j vem configurado e pronto para ser utilizado no sistema operacional por qualquer aplicao. A principal vantagem do SQLite em comparao com o RMS, que ele d suporte ao SQL puro, ou seja, os comandos utilizados para criar as tabelas, estipular restries, inserir, alterar apagar dados, enfim todos os comandos necessrios para manipulao de uma base de dados so exatamente os mesmos que os utilizados em SGBDs tradicionais. Depois da alterao da tecnologia empregada para alcanar o objetivo do projeto, foi alterada tambm a aplicao proposta, uma vez que foi constatado que para o desenvolvimento da aplicao anteriormente adotada, no era necessrio o uso de um SGBD mvel pelo fato de que o usurio da aplicao ficaria sempre em contato com a rede por onde enviaria e receberia informaes do banco de dados no servidor, no estando sujeito a desconexes. Foi proposto ento o desenvolvimento de um sistema para substituir a agenda de eventos nativa do Android, uma vez que o sistema deixa o usurio livre para instalar e remover aplicaes, e inclusive substituir aplicativos nativos por outros customizados. Com o termino do desenvolvimento da aplicao, apresentaremos os resultados obtidos na prxima seo, no desenvolvimento.

46

DESENVOLVIMENTO

4.1

Descrio do sistema

A fim de proporcionar um melhor entendimento a respeito do tema apresentado no decorrer desse trabalho, foi proposto o desenvolvimento de um sistema na plataforma Android, verso 2.3 (ltima verso disponvel atualmente para desenvolvimento de aplicativos para smarphones), utilizando conceitos de Banco de Dados Mveis. Tal sistema, por ser desenvolvido na plataforma Android (Sistema operacional mais utilizado em dispositivos mveis), proporciona grande compatibilidade com a maioria dos dispositivos mveis disponveis atualmente no mercado. Tais caractersticas tornam o sistema como um todo altamente verstil. Para a persistncia de dados da aplicao foi utilizado o SGBD SQlite, que foi apresentado anteriormente. Segue nos prximos pargrafos uma apresentao das principais funcionalidades do sistema, bem como a maneira em que elas so executadas. O Sistema desenvolvido foi uma ferramenta que possibilita que o usurio crie eventos como lembretes para tarefas que tenham que ser realizadas durante o seu dia-a-dia, o sistema utiliza um widget, que pode ser adicionado em uma das quatro reas de trabalho disponveis na tela principal (sujeito a modificaes dependendo da interface instalada). Em tal sistema, o widget apresenta os eventos do dia, bem como o horrio que ele deve iniciar, alm de um boto para abrir a tela principal do sistema onde se encontram as opes para cadastro de eventos, tipos de eventos e demais funcionalidades do aplicativo. 47

Na prxima seo sero apresentados os requisitos funcionais do sistema desenvolvido. 4.2 Requisitos Funcionais

Os requisitos funcionais, ou seja, os requisitos indispensveis para o funcionamento do sistema, sero apresentados abaixo. Cadastrar Eventos Apresenta um formulrio onde devem ser informados os dados necessrios para criar um evento; Editar Eventos Apresenta as opes para alterar um evento; Excluir Eventos Apresenta opes necessrias para excluir um evento; Cadastrar Tipos de Eventos Apresenta um formulrio onde devem ser informados os dados necessrios para criar um tipo de evento; Editar Tipos de Eventos Apresenta as opes para alterar um tipo de evento; Apagar Tipos de Eventos Apresenta opes necessrias para excluir um tipo de evento; Listar Eventos Apresenta uma lista contendo todos os eventos cadastrados; Listar Tipos de Eventos Apresenta uma lista contendo todos os tipos de eventos cadastrados. 4.3 Requisitos no Funcionais

Abaixo sero apresentados os requisitos no funcionais, ou seja, requisitos sem os quais o sistema pode ser utilizado sem que perca alguma funcionalidade indispensvel, mas que so desejveis em um software de qualidade. Confiabilidade Os dados e informaes apresentados pelo sistema so confiveis, ou seja, seguros e consistentes; Usabilidade A interface grfica de fcil entendimento e intuitiva, ou seja, o usurio deve saber ou prever as aes que cada componente deve executar;

48

Manutenibilidade O sistema de fcil manuteno, diminuindo os prejuzos com manutenes futuras; Portabilidade O sistema porttil, ou seja, garante a possibilidade de execuo em grande parte dos dispositivos mveis disponveis no mercado. 4.4 Diagrama de Casos de Uso

Um diagrama de Caso de Uso descreve um cenrio que mostra as funcionalidades do sistema do ponto de vista do usurio. Abaixo segue o diagrama de casos de uso representado pela figura 13.

Figura 13 - Diagrama de Casos de Uso

Abaixo ser apresentado o modelo de entidade relacionamento do banco de dados.

4.5

Modelo Entidade Relacionamento de Banco de Dados

49

A figura abaixo representa o modelo de entidade e relacionamento do banco de dados criado no SQLite, que como o prprio nome diz, apresenta as entidades (tabelas) e os relacionamentos existentes entre elas.

Figura 14 - Modelo de Entidade e Relacionamento

A seguir ser apresentado o diagrama de classes do sistema.

4.6

Diagrama de Classes

O diagrama abaixo representa por meio de UML (Unified Modeling Language Linguagem de Modelagem Unificada), as relaes existentes entre as classes desenvolvidas na a aplicao.

50

Figura 15 - Diagrama de Classes 51

Na prxima seo ser apresentado o modelo de transio de telas do sistema.

4.7

Transio de telas

A figura 16 representa todas as telas disponveis na aplicao e como acontecem as transies entre elas, ou seja, mostra para onde alguns botes levam no fluxo de telas disponveis na aplicao.

52

Figura 16 - Transio de Telas do Sistema

A seguir ser apresentada uma seo demonstrando os principais mtodos da classe de conexo com o banco de dados mvel. 53

4.8

Conexo Com o Banco de Dados Mvel

No Android a classe responsvel pela conexo com o banco de dados SQLite deve ser definida como uma extenso da classe SQLiteOpenHelper, ou seja, ela herdar todos os atributos e mtodos da classe pai. No entanto deve-se sobrescrever alguns mtodos da classe pai afim de proporcionar a criao e manipulao de bases de dados. Alguns dos mtodos que devem ser sobrescritos so: onCreate, onUpdate e onOpen. O mtodo onCreate responsvel pela criao da base de dados e deve ser definido como no exemplo representado na figura 16.

Figura 17 - Mtodo onCreate da classe OpenHelper

Na figura 16 representado o mtodo que faz a criao da base de dados no SQLite, o onCreate. Esse mtodo herdado da classe SQLiteOpenHelper, mas deve ser sobrescrito. Na linha 165, o mtodo criado e recebe como parmetro um objeto do tipo SQLiteDatabase, nas prximas linhas so executados comandos SQL por meio do objeto dB, os comandos foram previamente definidos nas constantes do tipo string passadas como parmetro. Outro mtodo importante o onUpdate, que ser ilustrado na figura 18. 54

Figura 18 - Mtodo onUpdate da Classe OpenHelper

O mtodo onUpdate executado sempre que existe uma mudana na verso do banco de dados, ou seja, quando uma base de dados criada deve-se passar uma constante do tipo inteiro contendo o nmero da verso do banco de dados, por exemplo, 0. Sempre que a verso tiver que ser alterada, em caso de mudanas na estrutura das tabelas, por exemplo, esse nmero deve ser incrementado, ento o mtodo onUpdate chamado para fazer as alteraes necessrias na estrutura da base de dados. No exemplo da Figura 17, na linha 173, criado o mtodo onUpdate, e este recebe como parmetro um objeto do tipo SQLiteDatabese, um objeto do tipo inteiro com o nmero da verso anterior e um objeto do tipo inteiro contendo o nmero da verso atual. Se o nmero da verso atual for maior que o da verso anterior, o mtodo ativado, executando os comandos SQL das linhas 175 e 176 para apagar as tabelas EVENTO E TIPOEVENTO caso existam. Logo depois na linha 177, chamado o mtodo onCreate apresentado anteriormente para criar novamente as tabelas seguindo as novas caractersticas. Por fim, o mtodo onOpen que executado sempre que uma base de dados aberta, ou seja, quando necessrio utilizar uma base de dados criada anteriormente e a verso da mesma no tenha sido alterada. Na figura 19 apresentado um exemplo de criao do mtodo utilizado para ativar as constraints de chave estrangeira.

55

Figura 19 - Mtodo onOpen da classe OpenHelper

No exemplo acima definido no mtodo onOpen os comandos para ativar foreign Keys caso existam em todas as tabelas do banco de dados. Com a apresentao das caractersticas necessrias para o entendimento do sistema desenvolvido, chega ao fim mais uma seo deste trabalho. A seguir sero apresentadas as concluses pertinentes ao trabalho.

56

CONCLUSO

Com tudo o que foi apresentado no decorrer deste trabalho, conclui-se que a utilizao de bancos de dados mveis pode ser extremamente til e rentvel para as corporaes, garantindo agilidade, eficincia na troca de informaes e principalmente se aliada a tecnologias como o Android podem proporcionar ao usurio final, dados consistentes a qualquer momento e em qualquer local. A aplicao desenvolvida como forma de demonstrar na prtica os conceitos abordados aqui, foi de grande importncia, sobretudo no que tange ao aprendizado, uma vez que possibilitou a vivncia e o conhecimento necessrios para que se torne possvel o desenvolvimento de qualquer aplicao que utilize os mesmos conceitos. De forma geral pde-se compreender que a tecnologia Android mostra-se uma boa alternativa para desenvolver aplicaes para dispositivos mveis, visto que a mesma uma soluo gratuita de cdigo aberto que oferece grande liberdade para desenvolver diversos tipos de aplicaes. Outro ponto positivo o fato de tal tecnologia ser baseada na linguagem de programao JAVA o que atribuiu portabilidade s aplicaes desenvolvidas. Por outro lado, pelo fato de ser uma tecnologia recente, lanada em 2008, so encontradas poucas fontes de pesquisa consistentes. No que se refere ao conceito de banco de dados mveis, foi possvel compreender que, com a evoluo dos equipamentos e sistema de computao e tendncia cada vez mais de agregar a mobilidade aos mesmos, de tal tecnologia se mostra essencial nos dias de hoje. No contexto deste trabalho, vrios SGBDs com o requisito de mobilidade foram estudados, entretanto o SQLite pelo fato de j possuir integrao com a tecnologia Android de forma nativa, mostrou-se mais interessante.

57

Como proposta de trabalhos futuros tm-se a realizao de estudos para realizar a sincronizao dos dados manipulados no dispositivo mvel com os armazenados em um servidor de dados fixo, fazendo uso do conceito de Web Services, a fim de garantir que os eventos cadastrados pelo usurio sejam compartilhados com outros dispositivos.

58

REFERNCIAS Metrics, Metrics Report 2008, 2009 e 2010. Disponvel em:

AdMobile

HTTP://metrics.admob.com, acesso em 05 de maio de 2011. ALMEIDA, Maurcio. Mestrando em cincia da informao, Universidade Federal de Minas Gerais. ALVES, Ren Arajo. Graduao em Cincia da Computao. Orientao de Fernando da Fonseca de Souza. Recife: 2007. ANDROID, Dev Guide. Disponvel em: http://developer.android.com/index.html, acesso em 03 de maio de 2011. DATE, Christopher J. Introduo a Sistemas de Bancos de Dados. 1 ed. CAMPUS, 2004. 975 p. DEVMEDIA, SQlite Muito Prazer. Disponvel em: http://www.devmedia.com.br/post7100-SQLite-Muito-Prazer.html, acesso em 04 de maio de 2011. JUNIOR, MANFRED HEIL. Curso de Ps-Graduao em Cincia da Computao, Universidade Federal de Santa Catarina Campus Universitrio Trindade. MARAL, Edgar. Mestrado em Cincia da Computao Universidade Federal do Cear. MENEGHETTI, Fernando, PAES, Fabiano, KANTORSKI, Gustavo. Ferramenta CORIDORA Web Mapping para Mapeamento de Esquemas em Bancos de Dados Heterogneos, Curso de Sistemas de Informao Universidade Luterana do Brasil Campus Santa Maria RS, ano de 2007. ORACLE, Produtos e Servios. Disponvel em: http://www.oracle.com/br/products/index.html, acesso em 02 de maio de 2010. PIRMEZ, Luci. Mestrado Instituto de Matemtica da Universidade Federal do Rio de Janeiro UFRJ. 59

SCOTA, Daniel, ABDRADE, Gil, XAVIER Rafael. Especializao em Redes e Segurana de Sistemas - 2008/2, Pontifcia Universidade Catlica do Paran Curitiba, Abril de 2010. SILBERSCHATZ, Abraham. Sistemas de Bancos de Dados. 3 ed. Makron Books, 1999. 806 p. SILVA, Gilson Marques. Faculdade de Computao Universidade Federal de Uberlndia (UFU) Uberlndia MG. TRASEL, Terezinha Anete e VERONEZ, Denise. Trabalho acadmico da Universidade Estadual do Oeste do Paran - Campus de Cascavel, Professor Carlos Jos Maria Olgun. Cascavel 2005. VERISSIMO, Fernando. Instituto Alberto Luiz Coimbra de Ps-Graduao e Pesquisa de Engenharia, Universidade Federal do Rio de Janeiro. Programa de Engenharia de Sistema e Computao. Rio de Janeiro 2002.

60