Sunteți pe pagina 1din 12

CENTRO UNIVERSITRIO PADRE ANCHIETA

Curso de Sistemas de Informao

Anlise da Plataforma de Desenvolvimento Google App engine

EDUARDO PERNAMBUCO PESSINI R.A. 0221426 JULIO CESAR GARON MARTINHO R.A. 0955647 RAFAEL MARTINS MAZZOLA R.A. 0954360

JUNDIA, SP 2012

Sumrio
1. O QUE O GOOGLE APP ENGINE?..................................................................3 2. O AMBIENTE DO APLICATIVO........................................................................4 3. O SANDBOX................................................................................................4 4. O JAVA RUNTIME ENVIRONMENT...................................................................5 5. O PYTHON RUNTIME ENVIRONMENT..............................................................6 6. O ARMAZENAMENTO DE DADOS....................................................................6 7. SERVIOS DO GOOGLE APP ENGINE..............................................................7 1.1 1.2 1.3 1.4 BUSCA DE URL: ................................................................................................................7 E-MAIL:............................................................................................................................8 MEMCACHE:.......................................................................................................................8 MANIPULAO DE IMAGENS: ...................................................................................................8

8. TAREFAS AGENDADAS E FILAS DE TAREFAS...................................................8 9. FLUXO DE DESENVOLVIMENTO.....................................................................9 10. COTAS E LIMITES.....................................................................................10 11. EXEMPLOS DE USO..................................................................................11 1.5 EARTH HOUR - HTTP://WWW.EARTHHOUR.ORG/............................................................................11 1.6 A CASA BRANCA (EUA) ABERTO PARA PERGUNTAS - HTTP://WWW.WHITEHOUSE.GOV/OPENFORQUESTIONS......11 1.7 JAIKU - HTTP://JAIKIDO.BLOGSPOT.COM.BR/2009/03/JAIKU-IS-NOW-SERVED-FROM-APP-ENGINE.HTML..............11 12. BIBLIOGRAFIA.........................................................................................12

1. O QUE O GOOGLE APP ENGINE? O Google App Engine uma plataforma de Computao em nuvem para desenvolver e hospedar aplicaes web na infraestrutura do Google. Foi inicialmente lanado como verso preliminar (beta) em Abril de 2008. uma tecnologia no modelo Plataforma como Servio. Ele virtualiza aplicaes em mltiplos servidores, provendo hardware, conectividade, sistema operacional e servios de software. O Google App Engine pode ser usado gratuitamente at um determinado nvel de consumo de recursos. A partir da, tarifas adicionais so cobradas pelo consumo recursos (armazenamento, banda de rede, ciclos de CPU, etc.) da aplicao. Oferece um rpido processo de desenvolvimento e implementao, administrao simples, sem ser necessrio se preocupar com hardware, patches ou backups, e escalabilidade fcil. Com ele, no h necessidade de manter servidores: voc apenas envia seu aplicativo e ele est pronto para atender a seus usurios. O Google App Engine suporta aplicativos criados em vrias linguagens de programao. O ambiente de execuo em Java do Google App Engine permite criar um aplicativo usando tecnologias Java padro, incluindo JVM, servlets Java e a linguagem de programao Java, ou qualquer outra linguagem que usa um interpretador ou compilador com base na JVM, como Java Script ou Ruby. Tambm apresenta um Python runtime environment dedicado, que inclui um interpretador de Python rpido e a biblioteca Python padro, cuja criao teve a finalidade de garantir que o aplicativo seja executado rapidamente, com segurana e sem interferncia de outros aplicativos no sistema. Em relao a eventuais cobranas pela utilizao de recursos adicionais, como armazenamento e largura de banda, os valores so medidos em gigabytes e cobrados a taxas competitivas, ficando por conta do usurio (desenvolvedor) controlar a quantidade mxima de recursos que seu aplicativo pode consumir, ficando dentro de seu oramento. Todos os aplicativos podem usar at 500 MB de armazenamento e CPU e largura de banda suficiente para suportar um aplicativo eficiente que oferea cerca de cinco milhes de visualizaes de pgina por ms, totalmente grtis. Ao ativar o

faturamento para o aplicativo, os limites gratuitos aumentam e o desenvolvedor paga somente pelos recursos que ultrapassam os nveis gratuitos. 2. O AMBIENTE DO APLICATIVO 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 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 O aplicativo pode ser executado Cada em um oferece destes dois runtime padro e

environments: Java e Python.

ambiente

protocolos

tecnologias comuns para o desenvolvimento de aplicativos da web. 3. O 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 de 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.

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. Um aplicativo pode

ler arquivos, mas somente os enviados junto com o cdigo do aplicativo. O aplicativo deve usar o armazenamento de dados, o memcache ou outros servios do Google App Engine para todos 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, e deve retornar dados de resposta em 30 segundos, independentemente do caso. Um manipulador de solicitao no pode gerar um subprocesso nem executar o cdigo aps o envio da resposta. 4. O JAVA RUNTIME ENVIRONMENT Pode-se desenvolver um aplicativo para o Java runtime environment usando ferramentas comuns de desenvolvimento da web e padres de APIs em Java. O 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. 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. Para o armazenamento de dados do Google App Engine, o SDK para Java inclui implementaes das interfaces JDO (Objetos de dados Java) e JPA (API persistente Java). Seu aplicativo pode usar a API JavaMail para enviar mensagens de e-mail com o servio de e-mail do Google App Engine. As APIs HTTP java.net acessam o servio de busca de URL do Google App Engine. Os servios do Google App Engine

tambm incluem APIs de nvel inferior para programar adaptadores adicionais ou para serem usadas diretamente do aplicativo. 5. O PYTHON RUNTIME ENVIRONMENT Com o Python runtime environment do Google App Engine, possvel implementar o aplicativo usando a linguagem de programao Python e execut-lo em um interpretador otimizado de Python. O Google App Engine inclui APIs avanadas e ferramentas para desenvolvimento de aplicativos da web em Python, incluindo uma API de modelagem de dados avanada, uma estrutura para aplicativos da web de fcil uso e ferramentas para gerenciar e acessar os dados de seu aplicativo. O Python runtime environment usa a verso 2.5.2 de Python. Inclui a biblioteca Python padro. Nem todos os recursos da biblioteca podem ser executados no ambiente do sandbox. O cdigo dos aplicativos para o ambiente Python deve ser criado exclusivamente em Python. No h suporte para extenses criadas na linguagem C. O Google App Engine fornece uma estrutura Python simples de aplicativo da web denominada webapp, para que voc possa comear a criar aplicativos facilmente. Pode-se tambm fazer upload de outras bibliotecas de terceiros com o aplicativo, desde que elas sejam implementadas em Python puro e no exijam nenhum mdulo de biblioteca padro no suportado. 6. O ARMAZENAMENTO DE DADOS O Google App Engine fornece um poderoso servio de armazenamento de dados distribudo que contm um mecanismo de consultas e transaes. Assim como o servidor da web distribudo cresce proporcionalmente ao trfego, o armazenamento de dados distribudo cresce medida que os dados aumentam. O armazenamento de dados do Google App Engine no um banco de dados relacional tradicional. Objetos de dados, ou "entidades", tm um tipo e um conjunto de propriedades. Consultas podem recuperar entidades de um tipo determinado, filtradas e classificadas segundo os valores das propriedades. Os valores das propriedades podem ser de qualquer um dos tipos de valor de propriedade compatveis.

As entidades do armazenamento de dados no possuem esquema. A estrutura das entidades de dados fornecida e aplicada pelo cdigo de aplicativo desenvolvido. As interfaces Java JDO/JPA e a interface do armazenamento de dados em Python incluem recursos para aplicar e implementar a estrutura em seu aplicativo. O aplicativo tambm pode acessar o armazenamento de dados diretamente para aplicar as mudanas necessrias. O armazenamento de dados altamente consistente e usa controle de concorrncia otimista. Uma atualizao de entidade ocorre em uma transao com um nmero fixo de tentativas, caso outros processos estejam tentando atualizar a mesma entidade simultaneamente. Outra caracterstica o fato de implementar transaes por toda a rede distribuda usando "grupos de entidades". Uma transao manipula entidades dentro de um nico grupo. As entidades do mesmo grupo so armazenadas juntas, para uma execuo de transaes eficiente. O aplicativo pode atribuir entidades aos grupos quando elas forem criadas. 7. SERVIOS DO GOOGLE APP ENGINE O Google App Engine fornece diversos servios que permitem executar operaes comuns ao gerenciar o aplicativo. As APIs abaixo so fornecidas para acessar estes servios:

1.1

Busca de URL: Aplicativos podem acessar recursos da Internet, como servios da web ou outros dados, usando o servio de busca de URL do Google App Engine. O servio de busca de URL recupera recursos da web usando a mesma infraestrutura de alta velocidade do Google que recupera pginas da web para muitos outros produtos do Google.

1.2

E-mail: Aplicativos podem enviar mensagens de e-mail usando o servio de e-mail do Google App Engine. O servio de e-mail usa a infraestrutura do Google para enviar mensagens de e-mail.

1.3

Memcache: O servio de memcache fornece a seu aplicativo um cache de memria essencial de alto desempenho, que pode ser acessado por diversas instncias do aplicativo. O memcache til para dados que no precisam dos recursos de persistncia e transaes do armazenamento de dados, como dados temporrios ou copiados do armazenamento de dados para o cache para acesso de alta velocidade.

1.4

Manipulao de imagens: O servio de imagens permite que o aplicativo manipule imagens. Com esta API, pode-se redimensionar, cortar, girar e inverter imagens nos formatos JPEG e PNG.

8. TAREFAS AGENDADAS E FILAS DE TAREFAS Um aplicativo pode desempenhar tarefas alm de responder a solicitaes da web. O aplicativo desenvolvido pode realizar essas tarefas seguindo um cronograma configurado pelo desenvolvedor, por exemplo diariamente ou de hora em hora. O aplicativo tambm pode realizar tarefas adicionadas a uma fila pelo prprio aplicativo, como uma tarefa de segundo plano criada durante o processamento de uma solicitao. Tarefas agendadas tambm so conhecidas como "trabalhos do cron", manipulados pelo servio do Cron. Atualmente, filas de tarefas so um recurso lanado em carter experimental. No momento, apenas o Python runtime environment pode usar filas de tarefas. Uma interface de fila de tarefas para aplicativos em Java ser lanada em breve.

9. FLUXO DE DESENVOLVIMENTO Os SDKs (kits de desenvolvimento de software) 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. 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 do aplicativo, executa-se a ferramenta para enviar os dados. A ferramenta solicita o endereo de e-mail e a senha dea conta do Google do desenvolvedor. Ao criar uma nova verso principal de um aplicativo j sendo executado no Google App Engine, pode-se envi-la como uma nova verso. A verso antiga continuar servindo os usurios at o desenvolvedor mudar para a nova verso. Pode-se testar a nova verso no Google App Engine enquanto a verso antiga ainda est sendo executada. O SDK para Java executado em qualquer plataforma com Java 5 ou Java 6. O SDK est disponvel como um arquivo .zip. Se o desenvolvedor utiliza o ambiente de desenvolvimento Eclipse, pode usar o plug-in do Google App Engine para o Eclipse 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 do aplicativo. O SDK para Python implementado em Python puro e executado em qualquer plataforma com Python 2.5, incluindo Windows, Mac OS X e Linux. O SDK est disponvel como um arquivo zip e h programas de instalao disponveis para Windows e Mac OS X. O Admin Console a interface baseada na web para gerenciar seus aplicativos executados no Google App Engine. O desenvolvedor o utiliza para criar novos aplicativos, configurar nomes de domnio, alterar a verso ativa de seu aplicativo, examinar registros de acessos e de erros e navegar pelo armazenamento de dados de um aplicativo.

10. COTAS E LIMITES Pode-se criar uma conta e publicar um aplicativo que as pessoas usaro imediatamente sem nenhum custo ou compromisso. Alm de poder usar at 500 MB de armazenamento e at 5 milhes de visualizaes de pgina por ms, o desenvolvedor pode registrar at 10 aplicativos por conta. Cada aplicativo recebe recursos dentro de limites chamados "cotas". Uma cota determina quanto de um determinado recurso o aplicativo pode usar em um dia. 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.

11. EXEMPLOS DE USO 1.5 Earth Hour - http://www.earthhour.org/ A Hora do Planeta um evento mundial organizado pela World Wildlife Fund (WWF) e realizada no ltimo sbado de maro, anualmente, encorajando as famlias e empresas a desligar seus no essenciais luzes por uma hora para aumentar a conscientizao sobre a necessidade de tomar medidas sobre mudanas climticas . O evento, idealizado pela WWF e Leo Burnett , primeira ocorreu em 2007, quando 2,2 milhes de habitantes de Sydney participou por desligar todas as luzes no essenciais. [ 1 ] Seguindo o exemplo de Sydney, muitas outras cidades ao redor do mundo adotou o evento em 2008 . A Hora do Planeta 2012 ocorreu em 31 maro de 2012 20:30 - 21:30, no tempo dos participantes local. 1.6 A Casa Branca (EUA) Aberto para perguntas http://www.whitehouse.gov/openforquestions Site (em teste) que prope aos cidados oferecer seus questionamentos para o governo, envolvendo em principal ponto o prprio Presidente dos EUA. Permite a interao do mesmo perante as referidas perguntas, e ate mesmo o post de vdeos e afins.

1.7

Jaiku - http://jaikido.blogspot.com.br/2009/03/jaiku-is-now-served-from-appengine.html Jaiku foi uma rede social , micro-blogging comparvel ao Twitter. Foi fundada em Fevereiro de 2006 por Engestrm Jyri e Petteri Koponen da Finlndia e lanado em Julho desse mesmo ano. Ela foi comprada pelo Google em 9 de outubro de 2007.

12. BIBLIOGRAFIA

http://pt.wikipedia.org/wiki/Google_App_Engine https://developers.google.com/appengine/docs/whatisgoogleappengine?hl=pt-br http://stackoverflow.com/questions/3266783/example-of-large-sites-running-ongoogle-app-engine http://en.wikipedia.org/wiki/Jaiku http://en.wikipedia.org/wiki/Earth_Hour Todos contedos acessados em 23 de setembro de 2012.

S-ar putea să vă placă și