Este é o primeiro de vários posts sobre uma das mais novas ferramentas do Google, chamada “Google App Engine”. Aqui, vamos expor conteúdo informativo, com o objetivo de auxiliar os desenvolvedores a compreenderem as funcionalidades e aplicações para o desenvolvimento de aplicativos móveis integrados a internet, desse novo fenômeno do Google. Vamos expor como uma empresa pode expandir seus horizontes em relação ao modo em que seus aplicativos podem alcançar uma gama maior e crescente de clientes remotos e processar altas quantidades de dados via web, sem perda de desempenho.
O Google Application Engine ou simplesmente “App Engine” é uma plataforma de desenvolvimento web desenvolvida pelo Google, para criar aplicações web que usam a sua infra-estrutura, o que as transforma em aplicações altamente escaláveis, seguras, rápidas de implementar e fáceis de publicar . O App Engine oferece aos desenvolvedores a possibilidade de executar as suas aplicações na infra-estrutura utilizada pelo próprio Google para prover suas aplicações, o que inclui servidores altamente redundantes, seguros e tolerantes a falhas, espalhados em diversos centros de processamento de dados (Data Centers) ao redor do mundo. Os produtos do Google, tais como Gmail, Google Maps e outros utilizam a mesma infra-estrutura. Dessa forma, permite que os aplicativos respondam positivamente para o crescimento de dados armazenados e manipulados, além do tráfego (web) que recebem.
As App Engine foram projetadas para serem independentes da APIs da linguagem de programação escolhida. Isso significa que o App Engine fornece aos desenvolvedores uma lista crescente de linguagens de programação para a criação de aplicações compatíveis com a ferramenta. Inicialmente, o App Engine foi lançado suportando somente o ambiente de execução do Python. Atualmente, o App Engine oferece suporte a três runtimes, o Python 2.5, o Go (linguagem desenvolvida pelo Google) e o Java. A última permite rodar qualquer linguagem baseada em JVM, como JavaScript, Ruby.
App Engine trata o armazenamento e persistência de dados de forma singular. As aplicações criadas com o App Engine usam um sistema de armazenamento de dados chamado “Datastore” (um banco de dados não relacional), que por sua vez é baseado em uma estrutura escalável de armazenamento de dados chamado “Bigtable”, ambos desenvolvidos pelo Google.
Antes de nos aprofundarmos nas funcionalidades do datastore, gostaríamos de contar a razão pela qual ele foi desenvolvido. Basicamente, os RDBMS tradicionais não escalam de forma eficiente, devido a algumas características que eles fornecem para facilitar a busca dos dados em diversas tabelas: os “JOINS”. Os joins só funcionam bem quando todas as tabelas envolvidas estão localizadas na mesma máquina, consequentemente, eliminando a possibilidade de criar um sistema de armazenamento distribuído de dados. No App Engine, cada tabela pode ser armazenada em máquinas diferentes à medida que crescem em tamanho. O App Engine não suporta joins, uma vez que os dados das suas aplicações podem ser armazenadas em diferentes centros de dados do Google ao redor do mundo.
Utilizando o Datastore do AppEngine o desenvolvedor não precisa se preocupar com a manutenção, seja de banco de dados ou de segurança. Ele pode armazenar dados e recuperá-los quando necessário. O App Engine armazena dados das aplicações como objetos indexados chamados “entidades” no datastore. O índice (auto-gerado) é uma das bases de armazenamento de dados que facilita a recuperação dos dados.
O Google App pode variar de uso, desde aplicações simples de uso próprio do desenvolvedor, até um aplicativo complexo e rico para empresas, com a tecnologia push móvel ativada e acessado por milhões de usuários ao redor do mundo. Leia nosso post anterior para saber mais sobre a tecnologia push mobile.
O App Engine também permite a autenticação de usuários dos aplicativos, utilizando o sistema de contas Google (Google Accounts). O desenvolvedor deixará de se preocupar com a autenticação e segurança de acesso na sua aplicação através de um portal de administrador na web (falaremos mais sobre esse portal em outro post). Isto é feito especificando quais usuários das contas do Google tem acesso a determinadas informações através da aplicação web do próprio desenvolvedor.
O Google fornece aos desenvolvedores um Kit de Desenvolvimento de Software (SDK) disponível gratuitamente para download através da página http://code.google.com/appengine. O SDK a ser baixado depende do ambiente de execução (Runtime Environment) que o desenvolvedor decide usar. O Java runtime SDK vem com um plug-in do Google para o IDE Eclipse, que é um excelente IDE para a o desenvolvimento de linguagens de programação baseadas em JVM. O Python runtime SDK vem com uma versão antiga do Django. Esta versão pode ser substituída sempre que surgir uma mais recente.
Imediatamente após o download do SDK desejado, já podem ser criados os Google Apps. As aplicações podem ser testadas apenas localmente no modo de depuração. Se desejar publicar suas aplicações na web (sem custos), o desenvolvedor terá que criar uma conta de usuário de App Engine no site http://code.google.com/appengine. Isto feito, desejamos a vocês uma boa programação.
A tabela abaixo resume as principais características do App Engine:
• Armazenamento de dados: Datastore, um sistema escalável baseado no BigTable.
• Fonte de arquivos de código necessários: arquivo html (s) para o projeto e arquivo de código de templates (s) (ex. code.py) para a lógica de negócios e aplicações de arquivo de configuração.
• Investimento inicial: nenhum
|
Runtime Environment |
Compilado |
Interpretado |
IDE/Plug-In |
|
Python Runtime |
Sim* |
Sim |
Django |
|
Go Runtime |
Sim |
Não |
n/a |
|
Java Runtime |
Sim* |
Sim |
Eclipse |
(*) Just-In-Time (JIT) Compilers.
Em novos posts, vamos mostrar como as cotas do uso de recursos do Google funcionam usando o App Engine e como as estatísticas de uso dos aplicativos Google podem ser monitorados, usando o console de administrador (Administration Console) na web. Também comentaremos sobre as restrições impostas pelo App Engine nos Google Apps para garantir a sua segurança e eficiência. Uma das restrições impossibilita a escrita no sistema de arquivo pelas aplicações nas máquinas em que estão hospedados. Mas isso já é assunto para a próxima postagem.
Escrito por Ahmed Alejo




Para aqueles que acham difícil desenvolver em “Python” por falta de um IDE robusto…podem sorrir, pois agora vem aí o “Python Tools for Visual Studio” que dá suporte a linguangem Python no Visual Studio 2010 através de uma extensão, e não estou falando apenas de “IronPython”. Pode ser qualquer interpretador do Python já instalado, como, “CPython”, “Jython” e “PyPy”. Essa extensão que torna o Visual Studio um verdadeiro IDE do Python está disponível para download, no site do codplex: http://pytools.codeplex.com/