You are on page 1of 29

Desenvolvimento de Aplicaes Web Utilizando Google App Engine

Alcides Rodrigues Darlon Jos Kleuber Ribeiro Moacir Loureiro Pedro Eduardo

ROTEIRO
Introduo Computao em Nuvem Google App Engine Principais conceitos e funcionalidades O sandbox; O Java Runtime Environment; Contas do Google; Cotas e limites; Interface de utilizao / programao Como instalar o Plug-in do Google para Eclipse Como criar um projeto Como executar o projeto Como enviar para o Google App Engine Concluso

Google App Engine

Introduo Cloud Computing

A IBM conceitua computao em nuvens como uma forma de provisionamento sob demanda de recursos computacionais, tais como hardware, software e armazenamento.
Estrutura bsica de um ambiente de computao nas nuvens:

Clientes acessam seus dados atravs de vrios tipos de dispositivos que se conectam s aplicaes em nuvens atravs da internet.

Google App Engine

Introduo Google App Engine

Lanado em verso preliminar em 07/04/2008, est classificado como modelo PaaS (Plataform as a Service - Plataforma como servio): Ambiente fornecido pelo provedor e ferramentas de desenvolvimento, disponibilizao e controle de aplicaes;
Voc executa seus aplicativos da web na infraestrutura do Google sem necessidade de manter servidores: Voc envia seu aplicativo e ele est pronto para atender a seus usurios. Tipos de aplicaes: Do seu prprio nome de domnio (http://www.example.com/) usando o Google Apps; Ou usando um nome livre no domnio appspot.com. Voc pode compartilhar seu aplicativo com o mundo ou limitar o acesso aos membros de sua organizao.

Google App Engine

Google App Engine


O ambiente de execuo em Java do Google App Engine permite criar o seu aplicativo usando tecnologias Java padro: JVM, servlets Java e a linguagem de programao Java; Qualquer outra linguagem que usa um interpretador ou compilador com base na JVM, como JavaScript ou Ruby. Tambm apresenta um Python runtime environment dedicado, que inclui um interpretador de Python rpido e a biblioteca Python padro. Cada ambiente oferece protocolos padro e tecnologias comuns para o desenvolvimento de aplicativos da web.

Arquitetura Google Apps/Google App Engine


Google App Engine 5

Google App Engine


Comear a usar o Google App Engine grtis. Todos os aplicativos podem usar at 500 MB de armazenamento e CPU e largura de banda suficientes para suportar um aplicativo eficiente que oferea cerca de cinco milhes de visualizaes de pgina por ms, totalmente grtis. Ao ativar o faturamento para seu aplicativo, os limites gratuitos aumentam e voc paga somente pelos recursos que ultrapassam os nveis gratuitos.

Google App Engine

Principais conceitos e funcionalidades

O Google App Engine inclui os seguintes recursos: servio da web dinmico, com suporte completo a tecnologias da web comuns; armazenamento persistente com consultas, classificao e transaes; escalonamento e balanceamento de carga automticos; APIs para autenticao de usurios e envio de e-mails usando Contas do Google; um ambiente de desenvolvimento local com todos os recursos, simulando o Google App Engine em seu computador; filas de tarefas para realizar trabalho fora do escopo de uma solicitao da web; tarefas programadas para iniciar eventos em horrios especficos e em intervalos regulares.

Google App Engine

Sandbox

Os aplicativos so executados em um ambiente seguro que fornece acesso limitado ao sistema operacional subjacente.
Essas limitaes permitem que o Google App Engine distribua solicitaes da web para o aplicativo entre diversos servidores, iniciando e interrompendo servidores para atender s demandas de trfego.

O sandbox isola o aplicativo em seu prprio ambiente seguro e confivel, independentemente de hardware, sistema operacional e localizao fsica do servidor da web.

Google App Engine

Sandbox

So exemplos das limitaes do ambiente seguro sandbox: Um aplicativo pode acessar outros computadores na internet somente por meio dos servios de busca de URL e de e-mail fornecidos. Outros computadores podem se conectar ao aplicativo somente fazendo solicitaes HTTP ou HTTPS nas portas padro.
Um aplicativo no pode gravar no sistema de arquivos e pode ler apenas os arquivos enviados junto com o cdigo do aplicativo. O aplicativo deve usar o armazenamento de dados (JDO ou JPA), o memcache (armazenamento distribudo rpido e temporrio) ou outros servios para os dados que persistirem entre solicitaes. O cdigo do aplicativo executado somente em resposta a uma solicitao da web, a uma tarefa na fila ou a um trabalho do cron (tarefas agendadas), e deve retornar dados de resposta em 30 segundos, independentemente do caso.

Google App Engine

O Java Runtime Environment

O aplicativo pode ser desenvolvido para o Java runtime environment usando ferramentas comuns de desenvolvimento da web e padres de APIs em Java. Seu aplicativo interage com o ambiente usando o padro servlet Java e pode usar tecnologias comuns de aplicativos da web, como JSPs (JavaServer Pages). O Java runtime environment usa Java 6. O SDK para Java do Google App Engine suporta o desenvolvimento de aplicativos em Java 5 ou 6.

Google App Engine

10

O Java Runtime Environment

O ambiente inclui a plataforma JRE 6 (Java SE Runtime Environment) e suas bibliotecas.


As restries do ambiente sandbox so implementadas na JVM. Um aplicativo pode usar qualquer bytecode JVM ou recurso da biblioteca, contanto que no exceda as restries do sandbox. Por exemplo, o bytecode que tentar acessar diretamente outro host ou gravar em um arquivo poder gerar uma exceo.

Google App Engine

11

Contas do Google

O Google App Engine suporta a integrao de um aplicativo com as Contas do Google para autenticar um usurio. Seu aplicativo pode permitir que um usurio faa login com uma conta do Google e acesse o endereo de e-mail e o nome de exibio associados conta.

Google App Engine

12

Cotas e limites

A criao de um aplicativo do Google App Engine gratuita;


possvel criar uma conta e publicar um aplicativo que as pessoas usaro imediatamente sem nenhum custo ou compromisso; Um aplicativo de uma conta gratuita pode usar at 500 MB de armazenamento e at 5 milhes de visualizaes de pgina por ms; Voc pode registrar at 10 aplicativos por conta de desenvolvedor.

Google App Engine

13

Cotas e limites

Alguns recursos impem limites no relacionados a cotas para proteger a estabilidade do sistema.
Por exemplo, quando um aplicativo chamado para servir uma solicitao da web, ele deve emitir uma resposta em at 30 segundos. Se o aplicativo demorar muito, o processo ser encerrado e o servidor retornar um cdigo de erro ao usurio. O tempo de espera de solicitao dinmico e pode ser reduzido para poupar os recursos caso um manipulador de solicitao chegue ao tempo limite com muita frequncia.

Google App Engine

14

Interface de utilizao / programao

O SDK do Google App Engine para Java e Python incluem um aplicativo do servidor da web que emula todos os servios do Google App Engine em seu computador local. Cada SDK inclui todas as APIs e bibliotecas disponveis no Google App Engine. O servidor da web tambm simula o ambiente seguro do sandbox, incluindo verificaes de tentativas de acesso no permitido aos recursos do sistema no runtime environment do Google App Engine.

Google App Engine

15

Interface de utilizao / programao

Cada SDK tambm inclui uma ferramenta para enviar seu aplicativo para o App Engine. Depois de criar o cdigo e os arquivos estticos e de configurao de seu aplicativo, basta executar a ferramenta para enviar os dados. A ferramenta solicita o endereo de e-mail e a senha de sua conta do Google.
Para o Eclipse, pode-se usar o plug-in do Google App Engine para criar, testar e enviar aplicativos do Google App Engine. O SDK inclui tambm ferramentas da linha de comando para executar o servidor de desenvolvimento e fazer upload de seu aplicativo.

Google App Engine

16

Plug-in do Google para Eclipse

O plug-in est disponvel para as verses 3.3, 3.4, 3.5, 3.6 e 3.7 do Eclipse. Voc pode instalar o plug-in usando o recurso Software Update do Eclipse. Os locais da instalao so os seguintes: Plug-in do Google para Eclipse, para Eclipse 3.3 (Europa): http://dl.google.com/eclipse/plugin/3.3
Plug-in do Google para Eclipse, para Eclipse 3.4 (Ganymede): http://dl.google.com/eclipse/plugin/3.4

Plug-in do Google para Eclipse, para Eclipse 3.5 (Galileo): http://dl.google.com/eclipse/plugin/3.5


Plug-in do Google para Eclipse, para Eclipse 3.6 (Helios): http://dl.google.com/eclipse/plugin/3.6
Google App Engine 17

Plug-in do Google para Eclipse

Google App Engine

18

Como criar um projeto

Como criar um projeto: 1. Selecione o menu File > New > Web Application Project ou clique no boto New Web Application Project na barra de ferramentas:
2. O assistente Create a Web Application Project ser aberto. Para Project name, insira um nome para seu projeto. Em Package, insira um nome de pacote apropriado. Confirme se a opo Use Google App Engine est selecionada. Clique em Finish para criar o projeto.

3. 4.

Google App Engine

19

Como criar um projeto

O plug-in cria um diretrio war/ que usa o layout padro WAR para agrupar aplicativos web. O SDK ainda no oferece suporte a arquivos WAR. O plug-in para Eclipse usa esse diretrio para executar o servidor de desenvolvimento e para implementar o aplicativo no App Engine.
O plug-in cria tambm um diretrio chamado classes/ em war/WEB-INF/ e coloca os arquivos de classe compilados nesse local. O contedo final do diretrio war/ prepara o seu aplicativo para teste e implementao.

Google App Engine

20

Como executar o projeto

O SDK do App Engine inclui um servidor web para testar o aplicativo em um ambiente simulado.
Para executar seu aplicativo no servidor web dentro do depurador do Eclipse selecione o menu Run, Debug As > Web Application. O Eclipse criar o projeto, alternar para a perspectiva de depurao e o servidor ser iniciado. Se o servidor for iniciado com xito ele exibir uma mensagem no console: The server is running at http://localhost:8888/

Para testar o novo aplicativo criado pelo plug-in, inicie o servidor conforme descrito acima e acesse o seguinte URL no seu navegador, usando o caminho de URL correspondente a seu aplicativo: http://localhost:8888/NomeDoSeuProjeto

Google App Engine

21

Enviar aplicao para o Google App Engine

O boto de implementao do App Engine envia o seu aplicativo para a nuvem do google: Antes de enviar seu aplicativo pela primeira vez, voc precisa registrar um ID de aplicativo no App Engine. Registre um ID de aplicativo, edite o arquivo appengine-web.xml e altere o elemento <application>...</application> para que contenha o novo ID.

Google App Engine

22

Enviar aplicao para o Google App Engine

Para se registrar necessrio acessar o endereo:

https://appengine.google.com/start

Google App Engine

23

Enviar aplicao para o Google App Engine

Google App Engine

24

Enviar aplicao para o Google App Engine

Quando voc clicar no boto de implementao do App Engine, o Eclipse solicitar o nome de usurio (seu endereo de e-mail) e a senha da conta de administrador. Insira as informaes da sua conta e clique no boto Upload para efetuar o envio da aplicao. O Eclipse obtm o ID do aplicativo e as informaes sobre a verso do arquivo appengine-web.xml e envia o contedo do diretrio war/.
Para testar o aplicativo no App Engine basta acessar a URL: http://<SeuApplicationID>.appspot.com/NomeDoSeuProjeto

Google App Engine

25

Uso da tecnologia no mbito da nossa corporao

SEFAZ ter seus processamentos em um ambiente de computao em nuvem: A ideia unificar o acesso aos dados fiscais dos contribuintes por meio da computao em nuvem, facilitando o trabalho de todas as Secretrias da Fazenda de cada estado;

Em agosto houve uma reunio tcnica do Conselho Nacional de Poltica Fazendria (CONFAZ) em Curitiba PR na qual debatia sobre o uso do processamento em nuvem;
O projeto SPED (Sistema Pblico de Escriturao Digital) contempla a virtualizao de todos os processos fiscais e contbeis das empresas. Com a adoo do Cloud Computing a Nota Fiscal Eletrnica (NF-e), a Escriturao Fiscal Digital (EFD), e ainda a Escriturao Contbil Digital (ECD), hoje em dia tendo de ser realizados individualmente por cada estado da Federao, passar a ter efeito em um ambiente nacional.
Google App Engine 26

Uso da tecnologia no mbito da nossa corporao

Vantagens do processamento em nuvem para a SEFAZ:


Participar de um ambiente nacional de processamento de dados representa a racionalizao do investimento e utilizao de infraestrutura de TI.

O processamento em nuvem diminui sensivelmente os custos com equipamentos e manuteno,ampliando ainda a produo de informaes gerenciais, a uniformizao nacional de verificaes e inspeo de atividades econmicas;

Google App Engine

27

Uso da tecnologia no mbito da nossa corporao

Servio de Emisso de NF-e na nuvem: Desde 1 de maro, a NFe do Brasil, especialista em inteligncia fiscal eletrnica, disponibilizou o Nota Grtis, software gratuito para emisso de notas fiscais eletrnicas na nuvem; Soluo voltada, principalmente, para pequenas e mdias empresas que no tm dinheiro para investir em um software de mercado para a NF-e; A ferramenta acessada por meio da web e tem sido indicada para empresas que possuem obrigatoriedade de emisso de NF-e; Para us-lo, basta entrar na web, realizar um cadastro (que demora at 7 dias para ser aprovado) e preencher os campos da nota fiscal a ser gerada. Depois de pronto, o sistema envia o documento para a SEFAZ fazer a validao e, em seguida, dispara um e-mail para a emitente e comprador com autorizao do rgo para o despacho da mercadoria, alm da NF-e anexada.

Google App Engine

28

Concluso

A computao em nuvem um passo a ser dado na evoluo da informtica que vem possibilitando a disponibilizao dos recursos no s nos navegadores independente de localizao, mas tambm na entrega de sistemas como bens de consumo essenciais que sero pagos por uso e utilizados pelos mais variados tipos de dispositivos.
Este trabalho procurou demonstrar os servios de computao em nuvem provido pelo Google, o App Engine. Foi possvel demonstrar as ferramentas e funcionalidade que facilitam a criao e implementao de aplicativos baseados em Java. A administrao com o plug-in para Eclipse bastante simples, alm de permitir equipe de desenvolvimento livrar-se de boa parte da preocupao com hardware, grids, clusters e infraestrutura.

Padres de Projeto

SOE - Sistema de Oportunidades de Emprego

29