Assim, veremos ao longo desse estudo como configurar uma aplicação web que será hospedada no GAE. Nesta, criaremos um CRUD e aplicaremos os conceitos do padrão Model-View-Controller com o auxílio dos frameworks citados.
O desenvolvimento de software na nuvem não se restringe apenas aos desenvolvedores que atuam em times de grandes empresas de TI. Hoje podemos encontrar uma variedade de infraestruturas ou plataformas como serviço para que qualquer desenvolvedor possa ingressar nesse mundo, inclusive de forma gratuita, como é o caso do Google App Engine.
O Google App Engine, ou GAE, como é popularmente conhecido, é uma plataforma robusta e altamente escalável para hospedagem de aplicações web na nuvem.
Além de fornecer esta plataforma, o Google também disponibiliza um excelente kit de desenvolvimento (SDK) para a criação de aplicações específicas para este ambiente.
Com esse kit é possível simular localmente os serviços de Memcache, Task Queue (serviço de fila para execução de processos em background), Mail e Datastore (banco de dados não relacional altamente escalável) encontrados no App Engine.
Desta forma, o desenvolvedor consegue emular o ambiente do GAE em seu próprio computador, agilizando o desenvolvimento. Então, uma vez que a aplicação esteja pronta em seu computador, basta realizar um simples deploy, tornando-a disponível na nuvem do Google.
Este cenário faz do GAE uma plataforma de desenvolvimento muito atrativa, conquistando a cada dia mais adeptos.
Apesar de todas essas vantagens, o Java Runtime Environment (ou JRE) do GAE não possui todas as classes que conhecemos e estamos acostumados. Na documentação do Google App Engine podemos encontrar uma white list informando as classes do JRE que podem ser utilizadas (veja a seção Links).
Com esta restrição, algumas APIs da plataforma Java EE e alguns frameworks que dependem das classes que ficaram de fora do JRE não podem ser utilizados no GAE. Como exemplo de APIs da Java EE que não são suportadas, podemos citar EJB, JMS e JNDI.
No entanto, mesmo com essas restrições, veremos neste artigo que é possível, e de forma simples, criar aplicações web para o App Engine empregando alguns dos frameworks mais populares do mercado, o Spring MVC e o Apache Tiles.
Google App Engine
O Google App Engine é uma plataforma como serviço (Platform as a Service, ou PaaS) para desenvolvimento e hospedagem de aplicações web criada em 2008 pelo Google.
Nessa plataforma, encontramos diversos serviços que podemos fazer uso sem que tenhamos que nos preocupar com configurações ou infraestrutura. Como exemplos de serviços desse tipo podemos citar o Mail, Memcache, OAuth, Task Queue, XMPP, entre outros.
Em sua versão atual, o App Engine suporta as seguintes linguagens de programação: Java, Python, PHP e Go, mas tem planos para suportar mais linguagens no futuro.
Apesar de todos esses benefícios, a plataforma também possui algumas restrições, a saber:
- Os desenvolvedores têm acesso somente leitura ao sistema de arquivos do diretório da aplicação, ou seja, não é possível escrever dados neste;
- Uma requisição é interrompida caso a aplicação leve mais de 60 segundos para processar e retornar uma resposta;
- Nem todas as classes do Java (JRE) estão disponíveis para uso.
No entanto, mesmo com essas restrições, o GAE é uma ótima opção de Cloud. Isso pode ser facilmente notado pelo fato de grandes empresas como a Rovio, MAG Interactive e Blosson.io passarem a utilizar o App Engine como plataforma para suas aplicações web, e até mesmo mobile.
Spring MVC
O Spring MVC é um módulo do Spring Framework que foi desenvolvido para ser utilizado em aplicações web, tendo como característica fornecer mecanismos para que seja possível aplicar de forma fácil o padrão MVC (Model-View-Controller).
Os desenvolvedores do Spring sentiram a necessidade de desenvolvê-lo porque notaram que os frameworks existentes na época não eram fieis às camadas do MVC, deixando alguns pontos a desejar.
Uma característica positiva e marcante do Spring MVC é a facilidade de integração com os diversos módulos do Spring Framework, e também com outros frameworks de mercado, como é o caso do Velocity, Apache Tiles (que abordaremos no próximo tópico), dentre muitos outros.
Apache Tiles
...Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais