O Google Code é oferecido em: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
O Google App Engine permite que você execute seus aplicativos da web na infra-estrutura do Google. Os aplicativos do Google App Engine são fáceis de criar, manter e escalar à medida que seu tráfego e armazenamento de dados precisa crescer. Com o Google App Engine, não há necessidade de manter servidores: você apenas envia seu aplicativo e ele está pronto para atender a seus usuários.
Você pode oferecer o aplicativo a partir do seu próprio nome de domínio (como http://www.example.com/) usando o Google Apps. Ou, pode oferecer o aplicativo usando um nome livre no domínio appspot.com. Você pode compartilhar o seu aplicativo com o mundo ou limitar o acesso aos membros da sua organização.
O Google App Engine suporta aplicativos criados em várias linguagens de programação. O ambiente de execução em Java do Google App Engine permite criar o seu aplicativo usando tecnologias Java padrão, incluindo a JVM, servlets Java e a linguagem de programação Java, ou qualquer outra linguagem que usa um interpretador ou compilador com base na JVM, como JavaScript e Ruby. O Google App Engine também apresenta um ambiente de execução em Python dedicado, que inclui um interpretador de Python rápido e a biblioteca Python padrão. Os ambientes de execução em Java e Python foram criados para garantir que o seu aplicativo seja executado rapidamente, com segurança e sem interferência de outros aplicativos no sistema.
Com o Google App Engine, você só paga pelo que usar. Não há preços predefinidos nem taxas recorrentes. Os recursos usados pelo seu aplicativo, como armazenamento e largura de banda, são medidos em gigabytes e cobrados a taxas competitivas. Como você é quem controla a quantidade máxima de recursos que o seu aplicativo pode consumir, ele sempre fica dentro do seu orçamento.
O Google App Engine pode ser iniciado gratuitamente. Todos os aplicativos podem usar até 500 MB de armazenamento e CPU e largura de banda suficientes para suportar um aplicativo eficiente que oferece cerca de cinco milhões de visualizações de página por mês, totalmente grátis. Ao ativar o faturamento para o seu aplicativo, os limites gratuitos aumentam e você paga somente pelos recursos que ultrapassam os níveis gratuitos.
O Google App Engine facilita a criação de aplicativos que podem ser executados de forma confiável mesmo sob uma carga pesada e com grandes quantidades de dados. O Google App Engine inclui os seguintes recursos:
O aplicativo pode ser executado em um dos dois ambientes de execução: Java e Python. Cada ambiente oferece os protocolos padrão e as tecnologias comuns para o desenvolvimento de aplicativos da web.
Os aplicativos são executados em um ambiente seguro que fornece acesso limitado ao sistema operacional. Essas limitações permitem que o Google App Engine distribua solicitações de web do aplicativo entre diversos servidores, iniciando e interrompendo os servidores para atender às demandas de tráfego. A sandbox isola o aplicativo em seu próprio ambiente seguro e confiável, independentemente de hardware, sistema operacional e localização física do servidor da web.
São exemplos das limitações do ambiente seguro da sandbox:
Você pode desenvolver o seu aplicativo para o ambiente de execução em Java usando ferramentas comuns de desenvolvimento da web e padrões de APIs em Java. O seu aplicativo interage com o ambiente usando o padrão servlet Java e pode usar tecnologias comuns de aplicativos da web, como JSPs (JavaServer Pages).
O ambiente de execução em Java 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 as suas bibliotecas. As restrições do ambiente do sandbox são implementadas na JVM. Um aplicativo pode usar qualquer bytecode JVM ou recurso da biblioteca, contanto que não exceda as restrições do sandbox. Por exemplo, o bytecode que tentar abrir um soquete ou gravar em um arquivo irá gerar uma exceção de execução.
O seu aplicativo acessa a maioria dos serviços do Google App Engine usando as APIs em Java padrão. Para o armazenamento de dados do Google App Engine, o SDK para Java inclui implementações das interfaces JDO (Objetos de dados Java) e JPA (API persistente Java). O seu aplicativo pode usar a API JavaMail para enviar mensagens de e-mail com o serviço de mensagens do Google App Engine. As APIs HTTP java.net acessam o serviço de obtenção de URL do Google App Engine. Os serviços do Google App Engine também incluem APIs de nível inferior para implementar adaptadores adicionais ou para serem usadas diretamente do aplicativo. Consulte a documentação doarmazenamento de dados, do cache de memória, da obtenção de URL, das mensagens, das imagens e das APIs das Contas do Google.
Normalmente, os desenvolvedores Java usam a linguagem de programação Java e as APIs para implementar aplicativos da web para a JVM. O uso de compiladores ou interpretadores compatíveis com a JVM possibilita desenvolver aplicativos da web em outras linguagens, como JavaScript, Ruby ou Scala.
Para obter mais informações sobre o ambiente de execução em Java, consulte O ambiente de execução em Java.
Com o ambiente de execução em Python do Google App Engine, é possível implementar o seu aplicativo usando a linguagem de programação Python e executá-lo em um interpretador otimizado de Python. O Google App Engine inclui APIs avançadas e ferramentas para desenvolvimento de aplicativos da web em Python, incluindo uma API de modelagem de dados avançada, uma estrutura para aplicativos da web de fácil uso e ferramentas para gerenciar e acessar os dados do seu aplicativo. Você também pode aproveitar uma grande variedade de bibliotecas e estruturas maduras para o desenvolvimento de aplicativos da web em Python, como o Django.
O ambiente de execução em Python usa a versão 2.5.2 de Python. Estamos considerando oferecer suporte à Python 3 em uma versão futura.
O ambiente Python inclui a biblioteca Python padrão. É claro, nem todos os recursos da biblioteca podem ser executados no ambiente do sandbox. Por exemplo, uma chamada para um método que tenta abrir um soquete ou gravar em um arquivo emitirá uma exceção. Para sua conveniência, diversos módulos da biblioteca padrão cujos recursos principais não são suportados pelo ambiente de execução foram desativados, e se os códigos que importam esses recursos forem utilizados, será emitido um erro.
O código dos aplicativos para o ambiente Python deve ser criado exclusivamente em Python. As extensões criadas na linguagem C não são suportadas.
O ambiente Python fornece APIs abrangentes de Python para o armazenamento de dados, contas do Google, serviços de obtenção de URL e e-mail. O Google App Engine fornece uma estrutura Python simples de aplicativo da web denominada webapp, para que você possa começar a criar aplicativos facilmente.
Você pode fazer upload de outras bibliotecas de terceiros com seu aplicativo, desde que elas sejam implementadas em Python puro e não exijam nenhum módulo de biblioteca padrão não suportado.
Para obter mais informações sobre o ambiente de execução do Python, consulte O ambiente de execução do Python.
O Google App Engine fornece um poderoso serviço de armazenamento de dados distribuído que contém um mecanismo de consultas e transações. Assim como o servidor da web distribuído cresce proporcionalmente ao tráfego, o armazenamento de dados distribuído cresce à medida que os dados aumentam.
O armazenamento de dados do Google App Engine não é um banco de dados relacional tradicional. Os objetos de dados, ou "entidades", têm um tipo e um conjunto de propriedades. As 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 suportados.
As entidades do armazenamento de dados não possuem esquema. A estrutura das entidades de dados é fornecida e aplicada pelo código do seu aplicativo. As interfaces Java JDO/JPA e a interface do armazenamento de dados em Python incluem recursos para aplicar e reforçar a estrutura no seu aplicativo. O aplicativo também pode acessar o armazenamento de dados diretamente para aplicar as mudanças necessárias.
O armazenamento de dados é altamente consistente e usa o controle de concorrência otimista. Uma atualização de entidade ocorre em uma transação com um número fixo de tentativas, caso outros processos estejam tentando atualizar a mesma entidade simultaneamente. Seu aplicativo pode executar diversas operações de armazenamento de dados em uma única transação, sendo que todas terão sucesso ou falharão, assegurando assim a integridade dos seus dados.
O armazenamento de dados implementa transações por toda a sua rede distribuída usando "grupos de entidades". Uma transação manipula entidades dentro de um único grupo. As entidades do mesmo grupo são armazenadas juntas, para uma execução de transações eficiente. Seu aplicativo pode atribuir entidades aos grupos quando elas forem criadas.
O Google App Engine suporta a integração de um aplicativo com as Contas do Google para autenticar um usuário. Seu aplicativo pode permitir que um usuário faça login com uma conta do Google e acesse o endereço de e-mail e o nome de exibição associados à conta. O uso de contas do Google permite que o usuário comece a usar seu aplicativo mais rapidamente, pois talvez não precise criar uma nova conta. Isso economiza o esforço de implementar um sistema de contas de usuário somente para o seu aplicativo.
Se o seu aplicativo estiver sendo executado no Google Apps, ele pode usar os mesmos recursos com os membros da sua organização e os usuários de contas do Google Apps.
A API de usuários também pode informar ao aplicativo se o usuário atual é um administrador registrado do aplicativo. Isso facilita a implementação de áreas do seu site restritas a administradores.
Para obter mais informações sobre a integração a contas do Google, consulte a Referência da API de usuários.
O Google App Engine fornece diversos serviços que permitem executar operações comuns ao gerenciar seu aplicativo. As APIs abaixo são fornecidas para acessar esses serviços:
Os aplicativos podem acessar recursos da internet, como serviços da web ou outros dados, usando o serviço de obtenção de URL do Google App Engine. O serviço de obtenção de URL recupera recursos da web usando a mesma infraestrutura de alta velocidade do Google que recupera páginas web de muitos outros produtos do Google.
Os aplicativos podem enviar mensagens de e-mail usando o serviço de mensagens do Google App Engine. O serviço de mensagens usa a infraestrutura do Google para enviar mensagens de e-mail.
O serviço de cache de memória fornece ao seu aplicativo um cache de memória essencial de alto desempenho, que pode ser acessado por diversas instâncias do seu aplicativo. O cache de memória é útil para dados que não precisam dos recursos de persistência e transações do armazenamento de dados, como dados temporários ou copiados do armazenamento de dados para o cache para um acesso de alta velocidade.
O serviço de imagens permite que seu aplicativo manipule imagens. Com esta API, você pode redimensionar, cortar, girar e inverter imagens nos formatos JPEG e PNG.
O App Engine Cron Service permite programar tarefas para serem executadas em intervalos regulares. Para obter mais informações sobre ele, consulte a documentação do cron em Python ou Java.
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 serviços do Google App Engine no seu computador local. Cada SDK inclui todas as APIs e bibliotecas disponíveis no Google App Engine. O servidor da web também simula o ambiente seguro do sandbox, incluindo verificações de tentativas de acesso não permitido aos recursos do sistema no ambiente de execução do Google App Engine.
Cada SDK também inclui uma ferramenta para enviar o seu aplicativo para o App Engine. Depois de criar o código e os arquivos estáticos e de configuração do seu aplicativo, execute a ferramenta para enviar os dados. A ferramenta solicita o endereço de e-mail e a senha de sua conta do Google.
Ao criar uma nova versão principal de um aplicativo já sendo executado no Google App Engine, você pode enviá-lo como uma nova versão. A versão antiga continuará servindo os usuários até você mudar para a nova versão. Você pode testar a nova versão no Google App Engine enquanto a versão antiga ainda está sendo executada.
O SDK para Java é executado em qualquer plataforma com Java 5 ou Java 6. O SDK está disponível como um arquivo .zip. Quem utiliza o ambiente de desenvolvimento Eclipse pode usar o plug-in do Google App Engine para o Eclipse para criar, testar e enviar os aplicativo do Google App Engine. O SDK inclui também ferramentas da linha de comando para executar o servidor de desenvolvimento e enviar o seu 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á disponível como um arquivo zip, e há programas de instalação disponíveis para Windows e Mac OS X.
O Console de administração é a interface baseada na web para gerenciar seus aplicativos sendo executados no Google App Engine. Use-o para criar novos aplicativos, configurar nomes de domínio, alterar a versão ativa do seu aplicativo, examinar os logs de acessos e de erros e navegar no armazenamento de dados de um aplicativo.
A criação de um aplicativo do Google App Engine não é apenas fácil, é gratuita também. Você pode criar uma conta e publicar um aplicativo que as pessoas usarão imediatamente sem nenhum custo ou compromisso. Um aplicativo de uma conta gratuita pode usar até 500 MB de armazenamento e até 5 milhões de visualizações de página por mês. Quando estiver pronto para mais, você pode ativar o faturamento, definir um orçamento máximo diário e alocar o seu orçamento para cada recurso de acordo com as suas necessidades.
Você pode registrar até 10 aplicativos por conta do desenvolvedor.
Cada aplicativo recebe recursos dentro dos limites, as chamadas "cotas". Uma cota determina quanto de um determinado recurso o aplicativo pode usar em um dia. Em um futuro próximo, você poderá comprar recursos adicionais para ajustar algumas dessas cotas.
Alguns recursos impõem limites não relacionados a cotas para proteger a estabilidade do sistema. Por exemplo, quando um aplicativo é chamado para servir uma solicitação da web, ele deve emitir uma resposta dentro de 30 segundos. Se o aplicativo demorar muito, o processo será encerrado e o servidor retornará um código de erro ao usuário. O tempo de espera de solicitação é dinâmico e pode ser reduzido para poupar os recursos caso um manipulador de solicitação chegue ao tempo limite com muita freqüência.
Outro exemplo de limite de serviço é o número de resultados retornados por uma consulta. Uma consulta pode retornar no máximo 1.000 resultados. As consultas que retornariam mais resultados retornam somente o número máximo permitido. Nesse caso, uma solicitação executando essa consulta provavelmente não retornará uma solicitação antes do tempo limite, mas o limite está configurado para poupar recursos do armazenamento de dados.
Qualquer tentativa de subverter ou abusar das cotas, como a operação de aplicativos em diversas contas funcionando em paralelo, é uma violação dos Termos de Serviço e poderá resultar na desativação dos aplicativos ou cancelamento das contas.
Para obter uma lista de cotas e uma explicação sobre esse sistema, incluindo quais cotas podem ser aumentadas com o faturamento, consulte Cotas.
Para obter mais informações sobre o Google App Engine:
Bem-vindo ao Google App Engine!