Esse artigo faz parte da revista SQL Magazine edição 67. Clique aqui para ler todos os artigos desta edição

Imagem

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 em ambiente Web. Para Pressman (2002), uma aplicação Web pode ser desde uma simples página ou até um Web site completo. Essa definição atende apenas parcialmente aos objetivos aqui pretendidos, uma vez que em uma página simples não se faz necessário aplicar mecanismos de persistência de dados.

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:

·   Sistema de arquivos: estruturas seqüenciais providas pelo sistema operacional e gerenciadas pelo programador;

·   Sistema gerenciador de banco de dados (SGBD): envolve os próprios dados, o hardware em que os dados residem e o software que controla o armazenamento e a recuperação dos mesmos.

 

No contexto Web a idéia de persistência é um pouco diferente, pois até então, a necessidade de dados transientes se tornarem persistentes se baseia no fato de executar um programa várias vezes sem que se percam os dados a cada encerramento do mesmo.

Imagine que esteja lendo as últimas notícias na Internet, e o cabo de rede é retirado ou a Internet sem fio é encerrada. Neste caso você ficará sem acesso às suas notícias, e tanto a aplicação quanto os dados podem ser considerados como “transientes”. É neste contexto que apresentamos, na próxima seção, a ferramenta Google Gears, uma API (Application Programming Interface) que provê uma série de recursos que proporcionam a “persistência” desses dados e também da própria aplicação. Desta forma, torna-se possível que aplicativos on-line sejam executados mesmo que o computador do cliente esteja off-line.

 

A ferramenta Google Gears

Google Gears é uma API que visa ampliar a funcionalidade de aplicações Web por meio do armazenamento local de dados fornecidos on-line, para uma utilização off-line.

Seu desenvolvimento foi realizado pela Google, mas é um projeto open source e, graças a isso, tem sido gradualmente incorporada em serviços Web não pertencentes à empresa que a criou. Este fato é muito interessante, pois não estamos apresentando neste trabalho uma ferramenta proprietária. Portanto ela pode ser estudada, melhorada e utilizada em muitas situações.

Existem algumas aplicações Web que já utilizam a API para que seus usuários possam acessá-las mesmo sem uma conexão com a Internet. Por exemplo, além dos aplicativos Google, como Gmail, Reader e Docs (podem ser acessados em http://docs.google.com), outros já estão em pleno funcionamento, como é o caso do Remember The Milk, um dos gerenciadores de tarefas mais famosos da Web, e o ZOHO, uma verdadeira estação de trabalho on-line (podem ser acessados em http://www.rememberthemilk.com e http://www.zoho.com, respectivamente).

 

Funcionamento

...

Quer ler esse conteúdo completo? Tenha acesso completo