google appengine&guice

Download Google appengine&guice

Post on 24-Jun-2015

180 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • 1. App Engine Et Guice1

2. Plan Introduction Quest ce le cloud computing ? Vue globale de GAE Google ArchitectureAppEngine Services Stockage des donnes Quest ce que Guice ? Google Injection de dpendance Guice AOP Conclusion 2 3. Introduction 3 4. Quest ce que le cloud computing? Avec le cloud computing, les utilisateurs ou les entreprises ne sont plus gestionnaires de leurs serveurs informatiques. Ils peuvent accder une multitude de services en ligne sans avoir grer linfrastructure inhrente, souvent complexe. Les applications et les donnes ne se trouvent plus sur lordinateur local mais dans un cloud On dploie dans les nuages et ils se dbrouillent pour que a marche ! 4 5. Trois modles de serviceInfrastructure as a Serveurs virtuelsservice Architectes rseau Environnement pourPlatform as a dployer une application service Dveloppeursdapplication Logiciels webSoftware as a configurables prt treutiliss service Les utilisateurs finaux5 6. Prsentation de GAE GAE est un service qui permet de dployer des applications web sur linfrastructure Google Au dbut GAE supporte uniquement Python Le service Python na pas eu un grand succs Java tait le langage le plus demand (devant PHP) Google a annonc le support de Java pour GAE le 07 avril 20096 7. Prsentation de GAE Google App Engine propose un conteneur de Servletet une base de donnes qui permettent dhberger desapplication Java sur les serveurs de Google.un environnement de dveloppement local completqui simule Google App Engine sur votre ordinateur 7 8. Prsentation 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 dutilisation Possibilit de limiter le budget quotidien 8 9. Pourquoi Google App engine? Monte en charge Distribution Authentifications Performance volutivit Cots rduits 9 10. Architecture globale Utilisateurs Administrateurs Utilisateurs Cloud Computing GoogleDploiement CommunicationHTTP/S Dploiement (Stats, logs, Quotas) (Stats, logs, Quotas) 10 11. Java ou Python? Vous tes libres ! La mme infrastructure Les mmes services spcialiss La mme console dadministration11 12. appengine-web.xmlFichier de configuration de App engine Plac dans le rpertoire WEB-INF/ Il inclut :lidentifiant de lapplication , numro de version etdes listes de fichiers statiques (images ou les feuilles de styleCSS ) 12 13. Dmo Les ingrdients: 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. Les services de GAE URL Fetch Memcache Mail Image XMPP Google Accounts Cron jobs: Traitements rguliers14 15. Les services de GAE Communiquer via http/https Mmoire cache distribue persistente Service stable, robuste 15 16. Les services de GAEStockage des images.Manipulation des images(rotation, translation.)Pour les envois , on utilise JavaMailLexpditeur est le compte administrateurReception des messages sous la forme derequtes HTTP par App Engine qui va lestransmettre lapplication16 17. Les services de GAEProtocole messagerie instantane Votre application se connecte aux messageries instantannes compatibles XMPP (Google Talk) Une URL particulire traite les messages entrants anything@app-id.appspotchat.com App-id@appspot.com 17 18. Les services de GAEService App Engine CRON configurer des tches planifies quisexcutent des heures dfinies ou intervalles rguliers. cron.xml /tasks/summary daily summary job every 24 hours 18 19. Stockage de donnesLe stockage de donnes sappuie sur BigTableBig table: dvelopp en interne par Google scalable (capacit de monte en charge)Big Table nest pasUne base de donnes relationnelle classiqueMais plutt : Cest une base de donne NoSQL 19 20. Stockage de donnes Dans le Datastore on peut stocker des entits. Une entit se dfinit par :Son genre (Kind)Son identifiantUn ensemble de proprits Lapplication peut excuter des requtes surles entits. AppEngine maintient un index pour chaquetype de requte quon peut excuter danslapplication. garantir des rsultats rapides sur des ensembles de donnes trs volumineux 20 21. Stockage de donnes Laccs aux donnes: API de bas niveau API de haut niveau Datanucleus : JPA & JDO 21 22. Fonctionnalits de JPA & JDO non prises en chargeRelations dappartenance plusieurs--plusieursRequtes de "jointure".Requtes dagrgation (GROUP BY, HAVING, SUM,AVG, MAX, MIN).Requtes polymorphes : Vous ne pouvez pas excuterune requte dune classe pour rcuprer des instancesdune sous-classe.22 23. Stockage de donnes Deux options de stockage de donnesHigh Replication DatastoreMaster/Slave Il rplique les Le type par dfaut donnes de manire les donnes sont asynchrone dans les rpliques dans les centres de donnes. centres de donnes un seul centre de dune manire donnes peut avoir synchrone le rle de matre lors de lcriture.23 24. Stockage de donnes24 25. 25 26. Guice?Cest un Framework propos par Google en 2007Fond par Bob Lee26 27. Guice? Un Framework lger dinjection de dpendance pour Java 5et au dessus La version actuelle 3.0 (lance 4 mars 2011) Google Guice est apparu aprs la solution de Spring Dvelopp pour tre meilleur que Spring IoC Utilis dans la plupart des applications de Google 27 28. Guice?Les ingrdientsIOCGuice Module InjectionBinding Scope AOP Autres28 29. Les injections de dpendancesPrsentationLes injections de dpendances ont t inventes par Martin Fowler. Driv du principe dinversion de contrleUtilis pour avoir des applications modulairesPermet de rduire les dpendances entre les classesUtilis pour la programmation oriente aspect 29 30. Les injections de dpendancesCas de base: Dpendance : utilisation de mthodes dune autreclasseGnralement fait par un new dans le codePas modulaire, difficile maintenir, ne permet pas lechangement 30 31. Les injections de dpendancesAvec une interface Permet la classe A dutiliser une interfacePlusieurs implmentations de linterfaceToujours un new dans le code de APas beaucoup avanc31 32. Les injections de dpendancesAvec une factory: Un seul new de la classe B dans tout le codePattern Factory est lourd implmenter 32 33. Les injections de dpendances avec GuiceLe principe est simple !vous navez plus besoin dinstancier les objets oudutiliser des factories, cest les objets qui viennent vous.le Framework instancie pour vous et vous navezqu les utiliser. 33 34. injection de dpendances avec GuicePrincipe de fonctionnement:Utilise des abstractModule pour faire la liaisoninterfaceimplmentationUtilise lannotation @Inject pour dclarer les classes injecterUtilise un Injector pour charger le module dansnotre application34 35. injection de dpendances avec GuicePrincipe de fonctionnement (Les modules):tendent la classe AbstractModule de GuiceUn module peut effectuer plusieurs associationsUne application peut avoir plusieurs modules(1module = 1configuration) 35 36. injection de dpendances avec Guice Principe de fonctionnement (linjection):injection sur un attributTrois formes injection sur un constructeurinjection sur une mthode 36 37. injection de dpendances avec Guice Principe de fonctionnement (linjecteur): Injecteur Guice pour charger le module dansnotre applicationInjecter les dpendances sa chargeCrer une instance de la classe injecte37 38. Les scopesUnscoped Crer un objet chaqueutilisation@Singleton crer une seul instance par applicationIl existe 4 scopes :@RequestScoped une instance par requte web ou RPC @SessionScoped une instance par httpSession 38 39. DmoInjectorEtudiantModule Filire Filire GL 39 40. 40 41. Programmation oriente aspect AOPCest un paradigme de programmation qui permet desparer les considrations techniques (aspect en anglais)des descriptions mtier dans une application.41 42. Guice AOPComment a marche ? On peut appliquer des mthodes intercepteurs surdes objets injects.Guice AOP gnre des proxies (impersonators)Enveloppe un objet cible pour appliquer des aspectsavant et aprs lappel cet objetle code entre lobjet et method invocation est appelinterceptors. 42 43. Guice AOP43 44. Integration frameworksStrutsGIN - GWTSeamGuice and JSFJPAMobileRoboGuice - Guice for Android. 44 45. Les nouveauts de Guice 3.0supporte JSR 330 : une proposition lance parSpringsource et Google visant standardiser un jeudannotation pour grer linjection de dpendance.Building avec MavenDautres annotations: @ImplementedBy @providedBy @Singleton @Provides @CheckedProvides @RequestScoped @SessionScoped....... 45 46. ConclusionGuice VS Spring Spring : le paramtrage des classes se fait via un fichierde configuration XML Guice: se fait directement dans le code via desannotations. Frameworks trs similaires Spring reste trs utilis pour lIoCMais lourd et format compliqu Guice trs lger et plus facile utiliser46 47. perspectivesRoboGuiceRoboGuice est un petit framework permettant dadapterGoogle Guice au cycle de vie particulier des applicationsAndroid. De plus, il ajoute des fonctionnalitsqui simplifient le dveloppement Android.47 48. 48