My favorites | Français | Sign in

Google App Engine

Présentation d'App Engine pour Java

Bienvenue dans Google App Engine pour Java ! App Engine permet de créer des applications Web à l'aide des technologies Java standard et de les exécuter sur l'architecture évolutive de Google. L'environnement Java fournit une machine virtuelle Java 6, une interface Servlet Java et la prise en charge des interfaces standard avec le magasin de données et les services évolutifs App Engine, tels que JDO, JPA, JavaMail et JCache. La prise en charge des normes facilite le développement des applications et permet de porter celles-ci vers et depuis votre propre environnement de servlets.

Le plug-in Google pour Eclipse ajoute à votre environnement IDE Eclipse de nouveaux assistants de projets et de nouvelles configurations de débogage pour les projets App Engine. Grâce à App Engine pour Java, le développement et le déploiement d'applications Web de premier plan à l'aide de Google Web Toolkit (GWT) sont plus simples que jamais. Le plug-in Eclipse est fourni avec les SDK d'App Engine et de GWT.

Des plug-ins tiers sont également disponibles pour d'autres environnements IDE Java. Pour NetBeans, consultez la page NetBeans support for Google App Engine. Pour IntelliJ, voir Google App Engine Integration for IntelliJ. (Ces liens mènent à des sites Web tiers.)

Si vous ne l'avez pas encore consultée, reportez-vous à la section Mise en route : Java, qui offre une présentation interactive du développement d'applications Web à l'aide des technologies Java et de Google App Engine.

Environnement d'exécution Java

Pour exécuter les applications Java, App Engine utilise la machine virtuelle Java 6. Le SDK d'App Engine prend en charge Java 5 et les versions suivantes. La machine virtuelle Java 6 peut utiliser des classes compilées avec Java 6 ou n'importe quelle autre version antérieure du compilateur Java.

App Engine fait appel à la technologie des servlets Java pour les applications Web. Vous devez placer les classes de servlets, les pages JSP, les fichiers statiques et de données, ainsi que le descripteur de déploiement (fichier web.xml) et les autres fichiers de configuration de votre application, dans une structure de répertoires WAR standard. App Engine traite les requêtes en appelant les servlets en fonction du descripteur de déploiement.

La machine virtuelle Java s'exécute dans un environnement de bac à sable sécurisé afin d'isoler votre application dans un souci d'amélioration des services et de la sécurité. Grâce au bac à sable, vous êtes assuré que les applications exécutent uniquement les actions qui ne menacent pas les performances et l'évolutivité des autres applications. Par exemple, une application ne peut pas générer de threads, écrire des données dans le système de fichiers local ni établir des connexions réseau arbitraires. Elle ne peut pas non plus utiliser JNI ou un autre code natif. La machine virtuelle Java peut exécuter tout bytecode Java qui respecte les restrictions liées au bac à sable.

Pour plus d'informations, consultez la section Environnement de servlets Java.

Magasin de données, services et interfaces standard

App Engine fournit des services évolutifs permettant aux applications de stocker les données persistantes, d'accéder aux ressources via le réseau et d'effectuer d'autres opérations telles que la manipulation de données graphiques. Lorsque cela est possible, les interfaces Java de ces services se conforment aux API standard établies pour autoriser la portabilité des applications vers et depuis App Engine. Chaque service offre également une interface de bas niveau complète permettant l'accès direct ou l'implémentation de nouveaux adaptateurs d'interface.

Les applications bénéficient, grâce au magasin de données App Engine, d'un stockage des données fiable et évolutif. Le magasin de données prend en charge deux interfaces Java standard : Java Data Objects (JDO) 2.3 et Java Persistence API (JPA) 1.0. Ces interfaces sont implémentées via DataNucleus Access Platform, l'implémentation Open Source de ces normes.

Le cache mémoire d'App Engine offre un stockage distribué, rapide et transitoire, pour la mise en cache des résultats des requêtes et des calculs du magasin de données. L'interface Java implémente JCache (JSR 107).

Les applications font appel au service URL Fetch pour accéder aux ressources via le Web et pour communiquer avec d'autres hôtes à l'aide des protocoles HTTP et HTTPS. Pour accéder à ce service, les applications Java n'ont qu'à utiliser java.net.URLConnection et les classes associées de la bibliothèque standard Java.

Une application peut utiliser le service Mail pour envoyer des e-mails pour le compte de ses administrateurs ou de l'utilisateur actuellement connecté. Les applications font appel à l'interface JavaMail pour envoyer des e-mails.

Le service Images permet aux applications de transformer et de manipuler des données graphiques dans divers formats. Les images peuvent notamment être recadrées, pivotées, redimensionnées et les couleurs des photos peuvent être améliorées. Ce service se charge des tâches de traitement d'image qui utilisent de manière intensive le processeur, ce qui laisse plus de ressources à la disposition du serveur d'applications pour gérer les requêtes Web. (Vous pouvez également utiliser n'importe quel logiciel de traitement d'image basé sur une machine virtuelle Java sur le serveur d'applications, à condition qu'il respecte les restrictions liées au bac à sable.)

Pour authentifier les utilisateurs, une application peut se servir de Google Accounts. Google Accounts gère la création des comptes et la connexion des utilisateurs. Les utilisateurs qui disposent d'un compte Google (Gmail, par exemple) peuvent l'utiliser avec votre application. Une application peut déterminer si l'utilisateur actuel est connecté et elle a accès à son adresse e-mail. Les applications Java tirent parti des contraintes de sécurité du descripteur de déploiement pour contrôler les accès via Google Accounts ; elles peuvent déterminer si l'utilisateur est connecté et obtenir son adresse e-mail à l'aide de la méthode getUserPrincipal() de l'objet de requête du servlet. Une application peut faire appel à l'API de bas niveau Google Accounts pour générer des URL de connexion et de déconnexion, ainsi que pour obtenir un objet de données User pouvant être stocké dans le magasin de données.

Tâches planifiées

Une application peut configurer des tâches planifiées chargées d'appeler les URL de l'application selon une fréquence définie. Pour plus d'informations sur cette fonctionnalité, consultez la section Tâches Cron.

Outils Java

Le SDK d'App Engine pour Java contient des outils permettant de tester votre application, de transférer les fichiers associés et de télécharger les données des journaux. Le SDK inclut également un composant Apache Ant destiné à simplifier les tâches communes aux projets App Engine. Le plug-in Google pour Eclipse ajoute des fonctions à l'environnement IDE Eclipse pour le développement, le test et le déploiement d'applications App Engine. Il contient l'ensemble du SDK d'App Engine. Ce plug-in facilite également le développement d'applications Google Web Toolkit et leur exécution sur App Engine.

Le serveur de développement exécute votre application sur l'ordinateur local à des fins de développement et de test. Le serveur simule le magasin de données, les services et les restrictions de bac à sable d'App Engine. Il peut également générer une configuration pour les index du magasin de données en fonction des requêtes émises par l'application au cours du test.

Un outil multifonction nommé AppCfg gère l'intégralité des interactions de ligne de commande avec l'application qui s'exécute sur App Engine. AppCfg peut transférer l'application vers App Engine ou simplement mettre à jour la configuration des index du magasin de données afin que vous puissiez créer de nouveaux index avant de modifier le code. Il peut également télécharger les données des journaux de l'application, de sorte que vous puissiez analyser les performances de celle-ci à l'aide de vos propres outils.