Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo SQL Magazine 67 - Desenvolvendo persistência Web para aplicativos off-line usando Google Gears
Artigo publicado Revista SQL Magazine 67.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

Desenvolvendo persistência Web para aplicativos off-line usando Google Gears
Este artigo descreve o desenvolvimento de aplicativos no ambiente Web, usando a tecnologia Gears, desenvolvida pela Google. Uma aplicação Web possui vários benefícios como, por exemplo, não necessita de instalação no usuário; as funções e bibliotecas são executadas diretamente no browser; os documentos e arquivos podem ser compartilhados e editados em conjunto com outras pessoas do seu círculo de trabalho; a atualização e manutenção dos aplicativos são facilitadas, pois se encontram alocadas em servidores e não espalhadas em cada máquina cliente. Mesmo com essas e outras vantagens, muitas pessoas ainda preferem usar softwares desktop. Um dos motivos para isso é que nem sempre estamos conectados na Web, e naturalmente surgem perguntas como: E se estamos em um local que não tem acesso à Internet? Se o acesso à rede for suspenso? Nessas situações tais pessoas ficariam sem acesso às aplicações e consequentemente aos seus dados. Neste artigo apresentaremos a Google Gears como ferramenta open source, a qual permite ampliar as funcionalidades de aplicações Web por meio do armazenamento local de dados fornecidos on-line, para que sejam utilizados off-line.
Introdução
Segundo Ginige e Murugesan (2001), as aplicações Web têm crescido rapidamente, tanto em seu escopo quanto na extensão de seu uso, afetando significativamente todos os aspectos de nossas vidas.
Isso de fato ocorreu e hoje é possível notar as aplicações web-based cada dia mais presentes na vida de usuários domésticos e de empresas. Um dos motivos desse crescimento é a popularização do acesso à rede mundial de computadores, bem como o aumento na largura de banda.
O termo “aplicação Web” é utilizado para descrever o software
Uma aplicação Web é desenvolvida com base em uma lógica de negócio, sendo considerada como produto de software ou sistema de informática que utiliza uma arquitetura distribuída, pelo menos parcialmente, sob o protocolo HTTP. Como conseqüência, pelo menos parte das interfaces com o usuário é acessível por meio de um navegador (PAULA FILHO, 2003). Essa idéia é mais interessante para o escopo deste trabalho, pois ele aborda aplicações mais complexas, que possuem interatividade e funcionalidades robustas.
O desenvolvimento de sistemas web-based surgiu com o intuito de simplificar a atualização e a manutenção dos sistemas. O código-fonte fica armazenado em um servidor, de onde ele é acessado pelos diferentes usuários por meio da Internet, de redes privadas ou Intranets. E se, por algum motivo, o acesso à rede não estiver disponível? Esse é um dos motivos que justificam a resistência de algumas pessoas em utilizar uma aplicação Web para realizar tarefas rotineiras como ler e-mails, verificar notícias e gerenciar tarefas. Elas argumentam que nem sempre têm acesso à Internet e, quando isso ocorre, ficam impossibilitadas de realizar suas atividades.
Neste trabalho é descrita uma ferramenta que pretende superar essa dificuldade, a Google Gears. O conteúdo do artigo está dividido da seguinte forma: a Seção 2 descreve a evolução de sistemas web-based; a Seção 3 discute sobre persistência de dados no contexto Web; a Seção 4 apresenta a ferramenta Google Gears juntamente com um código de exemplo sobre a implementação off-line de aplicações Web; a Seção 5 discute a conclusão do artigo.
Evolução das Aplicações Web
O surgimento das aplicações Web se deu em meados de 1995, quando o navegador Netscape introduziu um script do lado do cliente chamado JavaScript, permitindo que programadores pudessem acrescentar alguns elementos dinâmicos para a interface de usuário no lado do cliente. Até então, todos os dados eram enviados para o servidor, que fazia o processamento, e os resultados eram entregues de volta para o cliente por meio de páginas HTML estáticas.
Em 2004, surgiu o conceito Web 2.0 que propôs utilizar a Web como plataforma, em vez de simplesmente desenvolver aplicações que usavam a Internet para se comunicar com o servidor (O'REILLY, 2006). Um ano depois apareceu o AJAX (Asynchronous Javascript And XML), e aplicações como o Gmail começaram a fazer o lado cliente cada vez mais interativo. Dessa forma, pode-se observar que as aplicações Web não são simples páginas estáticas, mas sistemas computacionais projetados para serem utilizados por meio de um navegador; ou seja, o browser se tornou um ambiente de execução de software.
Praticamente todas as pessoas que têm acesso à Internet já tiveram algum contato com uma ou mais dessas aplicações Web. Esses softwares web-based estão cada vez mais sofisticados e podem substituir plenamente muitos programas que até então precisavam ser instalados no computador do usuário. Aplicações como Google Docs substituem o famoso pacote MS-Office (Word, Excel e PowerPoint) da Microsoft. Outras como o Gmail, eliminam a necessidade de se usar um cliente de e-mail instalado como Eudora, Outlook, Mozilla Thunderbird etc.
Alguns desses softwares são tão completos que podem ser considerados como verdadeiras estações de trabalho on-line, este é o caso do ZOHO. Ele possui, Por exemplo, um cliente de e-mail, editor de textos, planilhas eletrônicas, apresentações de slides, gerenciador de projetos, organizador de contatos e controle financeiro. Vale lembrar que a maioria destas ferramentas é gratuita.
Pode-se destacar alguns benefícios mais evidentes dessas aplicações como: não necessitam de serem instaladas no computador do usuário; seus documentos e produções podem ser facilmente compartilhados com pessoas do seu círculo de trabalho; a produção de textos e outros tipos de documentos pode ser feita de forma colaborativa; a grande maioria desses softwares são gratuitos; sua atualização e manutenção são mais fáceis, pois as aplicações se encontram no lado do servidor e não instaladas em cada máquina-cliente.
Além dessas, existem muitas outras benesses, porém é importante lembrar que tudo isso só está disponível se o usuário possuir acesso à Internet. Em muitos países o acesso à rede mundial de computadores não é um problema. A rede banda larga está presente nas empresas, nas residências e também disponível em vários locais públicos como hotspot de rede sem fio.
No Brasil isso ainda não é uma realidade para muitos. Então as grandes vantagens das aplicações Web não podem ser desfrutadas no contexto off-line.
Persistência de dados no contexto Web
Persistência de dados refere-se ao armazenamento não-volátil de dados. Quando se grava um arquivo no disco, por exemplo, o dado está sendo “eternizado”; ou seja, deixa de ficar volátil na memória RAM e passa a ser escrito num dispositivo que armazena a informação de modo que ela não desapareça facilmente.
Na Programação Orientada a Objetos (OO), denomina-se como “objetos persistentes” aqueles que permanecem existindo mesmo após o término da execução do programa ou processo que os criou. Os objetos existentes apenas durante a execução do programa ou processo são chamados de “objetos transientes”. Associados à persistência estão o gerenciamento dinâmico da memória e o armazenamento de objetos em bases de dados. Algumas formas de prover persistência desses dados são:
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Paulo Alexandre Lobato
É bacharel em Ciência da Computação pela Universidade Federal de Viçosa, onde, atualmente, é mestrando neste mesmo curso e instituição. Também é Analista de Sistemas e trabalha com desenvolvimento Web há oito anos. Nesse tempo já desenvolveu aplicações web-based como e-commerce e portais de conteúdo...



