0
App Engine Et   Guice                1
Plan            •   Introduction            •   Qu’est ce le cloud computing ?            •   Vue globale de GAE Google   ...
Introduction               3
Qu’est ce que le cloud computing? •Avec le cloud computing, les utilisateurs ou les entreprises ne sont plus gestionnaires...
Trois modèles de service        Infrastructure as a   • Serveurs virtuels              service         • Architectes résea...
Présentation de GAE GAE est un service qui permet de déployer des applications web sur l’infrastructure Google Au début GA...
Présentation de GAE Google App Engine propose un conteneur de Servletet une base de données qui permettent dhéberger desap...
Présentation de GAE Toutes les applications peuvent utiliser jusquà 500 Modespace de stockage, et assez de temps processeu...
Pourquoi Google App engine?                  •   Montée en charge                  •   Distribution                  •   A...
Architecture globale                                                                 Utilisateurs                   Admini...
Java ou Python? Vous êtes libres ! La même infrastructure Les mêmes services spécialisés La même console d’administration ...
appengine-web.xml  Fichier de configuration de App engine Placé dans le répertoire WEB-INF/ Il inclut :l’identifiant de l’...
Démo• Les ingrédients:  – Java 5 ou 6  – Eclipse 3.3 ou plus  – Plugin GAE     • Site (Eclipse): http://dl.google.com/ecli...
Les services de GAE URL Fetch Memcache Mail Image XMPP Google Accounts Cron jobs: Traitements réguliers                   ...
Les services de GAE         •Communiquer via http/https         •Mémoire cache distribuée persistente         •Service sta...
Les services de GAE          •Stockage des images.          •Manipulation des images                          (rotation, t...
Les services de GAE        •Protocole messagerie instantanée         •Votre application se connecte aux         messagerie...
Les services de GAE    •Service App Engine CRON     configurer des tâches planifiées qui    sexécutent à des heures défini...
Stockage de données  Le stockage de données s’appuie sur BigTable  Big table:• développé en interne par Google• scalable (...
Stockage de données        • Dans le Datastore on peut stocker des entités.        • Une entité se définit par :          ...
Stockage de données L’accès aux données: •API de bas niveau •API de haut niveau Datanucleus : JPA & JDO                   ...
Fonctionnalités de JPA & JDO non prises en charge  Relations dappartenance plusieurs-à-plusieurs  Requêtes de "jointure". ...
Stockage de données   Deux options de stockage de donnéesHigh Replication Datastore    Master/Slave                       ...
Stockage de données                      24
25
Guice?C’est un Framework proposé par Google en 2007Fondé par Bob Lee                                                26
Guice? Un Framework léger d’injection de dépendance pour Java 5et au dessus La version actuelle 3.0 (lancée 4 mars 2011) G...
Guice?                Les ingrédients•IOC•Guice Module• Injection•Binding• Scope• AOP• Autres                             ...
Les injections de dépendances  Présentation•Les injections de dépendances ont été inventées par Martin Fowler.• Dérivé du ...
Les injections de dépendances  Cas de base:• Dépendance : utilisation de méthodes d’une autreclasse•Généralement fait par ...
Les injections de dépendances  Avec une interface• Permet à la classe A d’utiliser une interface•Plusieurs implémentations...
Les injections de dépendances  Avec une factory:• Un seul «new» de la classe B dans tout le code•Pattern Factory est lourd...
Les injections de dépendances avec Guice  Le principe est simple !  vous n’avez plus besoin d’instancier les objets oud’ut...
injection de dépendances avec Guice  Principe de fonctionnement:•Utilise des abstractModule pour faire la liaisoninterface...
injection de dépendances avec Guice  Principe de fonctionnement (Les modules):•Étendent la classe AbstractModule de Guice•...
injection de dépendances avec Guice Principe de fonctionnement (l’injection):                            injection sur un ...
injection de dépendances avec Guice Principe de fonctionnement (l’injecteur):• Injecteur Guice pour charger le module dans...
Les scopes                                Unscoped                         Créer un objet à chaque                        ...
Démo  Injector    Etudiant  Module       Filière Filière GL                         39
40
Programmation orientée aspect AOPC’est un paradigme de programmation qui permet deséparer les considérations techniques (a...
Guice AOP  Comment ça marche ?• On peut appliquer des méthodes intercepteurs surdes objets injectés.•Guice AOP génère des ...
Guice AOP            43
Integration frameworks    •Struts    •GIN - GWT    •Seam    •Guice and JSF    •JPAMobileRoboGuice - Guice for Android.    ...
Les nouveautés de Guice 3.0  supporte JSR 330 : une proposition lancée parSpringsource et Google visant à standardiser un ...
ConclusionGuice VS Spring Spring : le paramétrage des classes se fait via un fichierde configuration XML Guice: se fait di...
perspectives                    RoboGuiceRoboGuice est un petit framework permettant d’adapterGoogle Guice au cycle de vie...
48
Upcoming SlideShare
Loading in...5
×

Google appengine&guice

187

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
187
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Google appengine&guice"

  1. 1. App Engine Et Guice 1
  2. 2. Plan • Introduction • Qu’est ce le cloud computing ? • Vue globale de GAE Google • ArchitectureAppEngine • Services • Stockage des données • Qu’est ce que Guice ? Google • Injection de dépendance Guice • AOP • Conclusion 2
  3. 3. Introduction 3
  4. 4. Qu’est ce que le cloud computing? •Avec le cloud computing, les utilisateurs ou les entreprises ne sont plus gestionnaires de leurs serveurs informatiques. • Ils peuvent accéder à une multitude de services en ligne sans avoir à gérer linfrastructure inhérente, souvent complexe. • Les applications et les données ne se trouvent plus sur lordinateur local mais dans un «cloud » •On déploie dans les nuages et ils se débrouillent pour que ça marche ! 4
  5. 5. Trois modèles de service Infrastructure as a • Serveurs virtuels service • Architectes réseau • Environnement pour Platform as a déployer une application service • Développeurs d’application • Logiciels web Software as a configurables prêt à être utilisés service • Les utilisateurs finaux 5
  6. 6. Présentation de GAE GAE est un service qui permet de déployer des applications web sur l’infrastructure Google Au début GAE supporte uniquement Python Le service Python n’a pas eu un grand succès Java était le langage le plus demandé (devant PHP) Google a annoncé le support de Java pour GAE le 07 avril 2009 6
  7. 7. Présentation de GAE Google App Engine propose un conteneur de Servletet une base de données qui permettent dhéberger desapplication Java sur les serveurs de Google. un environnement de développement local completqui simule Google App Engine sur votre ordinateur 7
  8. 8. Présentation de GAE Toutes les applications peuvent utiliser jusquà 500 Modespace de stockage, et assez de temps processeur etde bande passante gratuitement. Basé sur des quotas d’utilisation Possibilité de limiter le budget quotidien 8
  9. 9. Pourquoi Google App engine? • Montée en charge • Distribution • Authentifications • Performance • Évolutivité • Coûts réduits 9
  10. 10. Architecture globale Utilisateurs Administrateurs Utilisateurs Cloud Computing GoogleDéploiement Communication HTTP/S Déploiement (Stats, logs, Quotas) (Stats, logs, Quotas) 10
  11. 11. Java ou Python? Vous êtes libres ! La même infrastructure Les mêmes services spécialisés La même console d’administration 11
  12. 12. appengine-web.xml Fichier de configuration de App engine Placé dans le répertoire WEB-INF/ Il inclut :l’identifiant de l’application , numéro de version etdes listes de fichiers statiques (images ou les feuilles de styleCSS …) 12
  13. 13. Démo• Les ingrédients: – Java 5 ou 6 – Eclipse 3.3 ou plus – Plugin GAE • Site (Eclipse): http://dl.google.com/eclipse/plugin/3.x • Doc: http://code.google.com/intl/fr/appengine/docs/java/tools/eclipse.html – Un compte GAE • http://appengine.google.com/• La recette: – Nouveau projet: « Web Application Project » – Deploy to App Engine – http://xxxxxxx.appspot.com/ 13
  14. 14. Les services de GAE URL Fetch Memcache Mail Image XMPP Google Accounts Cron jobs: Traitements réguliers 14
  15. 15. Les services de GAE •Communiquer via http/https •Mémoire cache distribuée persistente •Service stable, robuste 15
  16. 16. Les services de GAE •Stockage des images. •Manipulation des images (rotation, translation….) •Pour les envois , on utilise JavaMail •L’expéditeur est le compte administrateur •Reception des messages sous la forme de requêtes HTTP par App Engine qui va les transmettre à l’application 16
  17. 17. Les services de GAE •Protocole messagerie instantanée •Votre application se connecte aux messageries instantannées compatibles XMPP (Google Talk) •Une URL particulière traite les messages entrants anything@app-id.appspotchat.com App-id@appspot.com 17
  18. 18. Les services de GAE •Service App Engine CRON configurer des tâches planifiées qui sexécutent à des heures définies ou à intervalles réguliers. cron.xml<cronentries><cron><url> /tasks/summary</url><description> daily summary job </description><schedule> every 24 hours</schedule></cron></cronentries> 18
  19. 19. Stockage de données Le stockage de données s’appuie sur BigTable Big table:• développé en interne par Google• scalable (capacité de montée en charge) Big Table n’est pas•Une base de données relationnelle classique Mais plutôt :• C’est une base de donnée NoSQL 19
  20. 20. Stockage de données • Dans le Datastore on peut stocker des entités. • Une entité se définit par : Son genre (Kind) Son identifiant Un ensemble de propriétés • Lapplication peut exécuter des requêtes sur les entités. • AppEngine maintient un index pour chaque type de requête qu’on peut exécuter dans l’application. garantir des résultats rapides sur des ensembles de données très volumineux 20
  21. 21. Stockage de données L’accès aux données: •API de bas niveau •API de haut niveau Datanucleus : JPA & JDO 21
  22. 22. Fonctionnalités de JPA & JDO non prises en charge Relations dappartenance plusieurs-à-plusieurs Requêtes de "jointure". Requêtes dagrégation (GROUP BY, HAVING, SUM,AVG, MAX, MIN). Requêtes polymorphes : Vous ne pouvez pas exécuterune requête dune classe pour récupérer des instancesdune sous-classe. 22
  23. 23. Stockage de données Deux options de stockage de donnéesHigh Replication Datastore Master/Slave •Il réplique les •Le type par défaut données de manière •les données sont asynchrone dans les répliquées dans les centres de données. centres de données • un seul centre de d’une manière données peut avoir synchrone le rôle de maître lors de lécriture. 23
  24. 24. Stockage de données 24
  25. 25. 25
  26. 26. Guice?C’est un Framework proposé par Google en 2007Fondé par Bob Lee 26
  27. 27. Guice? Un Framework léger d’injection de dépendance pour Java 5et au dessus La version actuelle 3.0 (lancée 4 mars 2011) Google Guice est apparu après la solution de Spring Développé pour être « meilleur » que Spring IoC Utilisé dans la plupart des applications de Google 27
  28. 28. Guice? Les ingrédients•IOC•Guice Module• Injection•Binding• Scope• AOP• Autres 28
  29. 29. Les injections de dépendances Présentation•Les injections de dépendances ont été inventées par Martin Fowler.• Dérivé du principe d’inversion de contrôle•Utilisé pour avoir des applications modulaires•Permet de réduire les dépendances entre les classes•Utilisé pour la programmation orientée aspect 29
  30. 30. Les injections de dépendances Cas de base:• Dépendance : utilisation de méthodes d’une autreclasse•Généralement fait par un « new » dans le code•Pas modulaire, difficile à maintenir, ne permet pas lechangement 30
  31. 31. Les injections de dépendances Avec une interface• Permet à la classe A d’utiliser une interface•Plusieurs implémentations de l’interface•Toujours un « new » dans le code de A•Pas beaucoup avancé 31
  32. 32. Les injections de dépendances Avec une factory:• Un seul «new» de la classe B dans tout le code•Pattern Factory est lourd à implémenter 32
  33. 33. Les injections de dépendances avec Guice Le principe est simple ! vous n’avez plus besoin d’instancier les objets oud’utiliser des factories, c’est les objets qui viennent àvous. le Framework instancie pour vous et vous n’avezqu’à les utiliser. 33
  34. 34. injection de dépendances avec Guice Principe de fonctionnement:•Utilise des abstractModule pour faire la liaisoninterfaceimplémentation•Utilise l’annotation @Inject pour déclarer les classesà injecter•Utilise un Injector pour charger le module dansnotre application 34
  35. 35. injection de dépendances avec Guice Principe de fonctionnement (Les modules):•Étendent la classe AbstractModule de Guice•Un module peut effectuer plusieurs associations•Une application peut avoir plusieurs modules(1module = 1configuration) 35
  36. 36. injection de dépendances avec Guice Principe de fonctionnement (l’injection): injection sur un attributTrois formes injection sur un constructeur injection sur une méthode 36
  37. 37. injection de dépendances avec Guice Principe de fonctionnement (l’injecteur):• Injecteur Guice pour charger le module dansnotre application•Injecter les dépendances à sa charge•Créer une instance de la classe injectée 37
  38. 38. Les scopes Unscoped Créer un objet à chaque utilisation @Singleton créer une seul instance par applicationIl existe 4 scopes : @RequestScoped une instance par requête web ou RPC @SessionScoped une instance par http Session 38
  39. 39. Démo Injector Etudiant Module Filière Filière GL 39
  40. 40. 40
  41. 41. Programmation orientée aspect AOPC’est un paradigme de programmation qui permet deséparer les considérations techniques (aspect en anglais)des descriptions métier dans une application. 41
  42. 42. Guice AOP Comment ça marche ?• On peut appliquer des méthodes intercepteurs surdes objets injectés.•Guice AOP génère des proxies (impersonators)•Enveloppe un objet cible pour appliquer des aspectsavant et après l’appel à cet objet•le code entre l’objet et method invocation est appeléinterceptors. 42
  43. 43. Guice AOP 43
  44. 44. Integration frameworks •Struts •GIN - GWT •Seam •Guice and JSF •JPAMobileRoboGuice - Guice for Android. 44
  45. 45. Les nouveautés de Guice 3.0 supporte JSR 330 : une proposition lancée parSpringsource et Google visant à standardiser un jeud’annotation pour gérer l’injection de dépendance. Building avec Maven D’autres annotations:• @ImplementedBy• @providedBy• @Singleton• @Provides• @CheckedProvides• @RequestScoped• @SessionScoped....... 45
  46. 46. ConclusionGuice VS Spring Spring : le paramétrage des classes se fait via un fichierde configuration XML Guice: se fait directement dans le code via desannotations. Frameworks très similaires Spring reste très utilisé pour l’IoC Mais lourd et format compliqué Guice très léger et plus facile à utiliser 46
  47. 47. perspectives RoboGuiceRoboGuice est un petit framework permettant d’adapterGoogle Guice au cycle de vie particulier des applicationsAndroid. De plus, il ajoute des fonctionnalitésqui simplifient le développement Android. 47
  48. 48. 48
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×