Agilité, Développement Java, Nouvelles technologies et plus…
  • rss
  • Accueil
  • Management
  • Programmation agile
  • Technologie
  • Linux
  • Evénement
  • App Android
  • Contact
  • A propos de l'auteur
  • English
  • Francais

Google s’invite au JUG

Fabian Piau | dimanche 6 décembre 2009 - 19:24
  • Imprimer
  • Twitter
  • LinkedIn
  • Facebook
  • Pocket

 English version available

Avec un peu de retard, voici le compte rendu du dernier JUG nantais. Le sujet abordé est un sujet bien connu, puisqu’il s’agissait, ni plus ni moins, du géant Google. Une fois de plus, la démesure de Google a encore frappé et de surcroît un vendredi soir. En effet, la salle était pleine à craquer, comme le témoigne la photo.

Salle remplie JUG Nantes

Il faut dire que le succès de Google fascine. En France et dans beaucoup de pays à travers le monde, des millions d’internautes utilisent quotidiennement son moteur de recherche.

Cet article ne fait pas l’apologie de Google, mais présente quelques technologies et savoir-faire qui se cachent sous la « bête », et qui ont contribué à son succès depuis plusieurs années.

Logo Google     

Une infrastructure technologique globale singulière


Google concentre sa force sur quelques grands principes.

Tout d’abord, la firme se base sur une architecture orientée ressource (ROA, Resource Oriented Architecture). Concrètement, une ressource correspond à une URL pour y accéder. Si vous êtes un utilisateur de Gmail, vous êtes-vous déjà fait la réflexion qu’un email était identifiable et retrouvable par une adresse unique ? Ce couple URL-ressource est généralisable à l’ensemble des applications Google : un document sous Google docs, une coordonnée sous Google Maps, une image sous Picasa, etc. Voici quelques exemples d’URL.

  • http://docs.google.com/Doc?docid=0Ad7BNmFSF7hvZGzYm03dzJfNGhkdeZrbmc0
  • https://mail.google.com/mail/#inbox/12537bz86989ed71
  • http://picasaweb.google.com/fabian.piau/MonAlbum#5409584261851169554
  • http://www.youtube.com/watch?v=LafUQYHSnhU


Google se base sur un standard du Web : HTML 5. Le format est très récent et utilise une multitude de nouvelles balises comme l’intégration native des vidéos, des documents audios, les canevas pour dessiner par scripting ou bien encore la géolocalisation.

De plus, Google ne développe principalement que sur deux langages de programmation : le Java et le Javascript. La technologie est donc bien délimitée pour une plus grande maitrise.


Ensuite, l’infrastructure informatique de Google est éclatée et se base sur le Cloud computing. Vous connaissez très certainement une des utilisations du Cloud computing. La plus connue est sans doute la mise en commun de la puissance de calcul (processeur) de plusieurs ordinateurs éloignés afin de former un super calculateur (par exemple, le logiciel SETI@home utilise ce procédé, plus spécifiquement appelé « Grid computing » , le but est d’analyser la quantité phénoménale de données provenant de l’espace pour, peut-être, y découvrir la présence d’une vie extraterrestre…). On peut généraliser ce partage de ressource à l’ensemble des pièces d’une machine, comme sa mémoire physique.

Ce type de Cloud computing n’est pas le seul qui existe. Il y a deux autres utilisations qui font parties intégrantes de Google. Le PAAS (Platform As A Service) permet de louer un serveur d’application complet pour héberger ses programmes. Il y a aussi le SAAS (Software As A Service) qui permet de louer un logiciel. Les applications Google entrent clairement dans la catégorie SAAS. Par exemple, quand on utilise Google Documents, c’est comme si on loue le logiciel malgré sa gratuité. On a accès à un tableur, un traitement de texte complet, un espace de stockage pour ses documents, le tout depuis le navigateur.


Dernier standard chez Google, les applications (à quelques exceptions près) sont placées sous licence Open-Source. Récemment, la compagnie a dévoilé l’ensemble du code source de son système d’exploitation Chrome OS à la communauté.


AppEngine, l’offre PAAS par Google

Logo AppEngine     

Google fait du SAAS, mais aussi du PAAS. Il propose ainsi d’héberger vos applications en vous fournissant tout le matériel nécessaire. L’offre est déclinée en deux versions pour deux langages de programmation : Java et Python.

Pour Java, l’offre est composée de :

  • Un conteneur de servlets (Jetty);
  • Une base de données de type BigTable (structure hiérarchique, NOSQL);
  • Un serveur de mails;
  • XMPP (pour la messagerie instantanée);
  • Cron (tâches de fond);
  • La possibilité d’écrire des tests unitaires (si !);
  • Un déploiement en un clic.


Vous pouvez consulter cette page pour avoir plus d’information sur AppEngine.


Architecture AppEngine


L’offre est gratuite, mais comporte quelques limitations. Par exemple, il y a des quotas (CPU par jour, nombre de requêtes, nombre de pages vues, espace disque, etc.). Pour un simple particulier, on comprendra que cela sera amplement suffisant. Quoique, d’après l’intervenant, il semblerait que la limitation la plus contraignante serait le quota sur la bande passante qui est rapidement atteint. Quoiqu’il en soit, pour une entreprise, il sera plus judicieux de se tourner vers l’offre payante, qui vous permettra d’augmenter les quotas, mais aussi de choisir votre propre solution de stockage (base de données relationnelle SQL hébergée chez vous par exemple)…


Pour la présentation d’AppEngine, nous avons eu le droit à une petite démonstration de la fameuse application « Hello World ». Rien de très impressionnant, mais cela a l’avantage d’être déployé et disponible sur internet en quelques minutes. La démonstration a été réalisée sous Eclipse en GWT, avec le plug-in Google Eclipse Plugin. Ce plug-in permet notamment de tester l’application en locale sans avoir besoin de la déployer sur le serveur, un indispensable donc.


Si des fournisseurs d’accès internet comme Free vous permettent d’héberger gratuitement vos sites en PHP/SQL, Google va plus loin en vous permettant d’héberger vos programmes Java. Google est un des précurseurs dans ce domaine. Le SAAS/PAAS semble se développer de plus en plus, ainsi d’autres géants informatiques lui emboite le pas, comme un certain Microsoft avec sa plateforme Azure ou encore SpringSource.


GWT, le langage de programmation par Google


Logo GWT     

Le principe est simple à comprendre, avec GWT, on fait de la RIA (Rich Internet Application, AJAX…) sans avoir besoin de programmer en Javascript.


La création de l’application se fait principalement par glisser/déposer, le code Java/Javascript est généré automatiquement. Bien sûr, c’est toujours à vous de faire le code métier.


C’est un langage qu’on l’on peut qualifier de swing-like, car en regardant de plus près le code généré, on s’aperçoit qu’il est assez similaire à Swing avec des événements, des labels, etc. Avec GWT, on code son interface en Java et le code généré n’est pas très propre (donc peu maintenable) et surtout très lourd (malgré des optimisations).

De plus, la richesse des librairies de la communauté s’oppose à la pauvreté des librairies disponibles par défaut. Ces dernières étant les seules vraiment maintenues par Google. Allez expliquer à un client, qu’on lui a développé une belle application avec pleins de drag & drop et du web 2.0 à tout va, mais que dans 6 mois, les composants ne seront peut-être plus maintenus… Bien sûr, ce risque peut être pris pour des petites applications qui ne sont pas amenées à évoluer dans le temps.


Autre ombre au tableau, par défaut, le développeur n’a pas d’autres choix que de tester son application dans un navigateur web interne à Google (c’est le « hosted mode »). Cela est très contraignant, car vous pouvez dire adieu à vos plug-ins préférés comme Firebug. Heureusement, on peut contourner cette difficulté en utilisant un plug-in dédié par navigateur qui va s’occuper d’émuler le « hosted mode » de Google.


Une contrainte de taille pour GWT : pour lancer une application, l’utilisateur doit obligatoirement télécharger l’application dans sa globalité avant de pouvoir commencer à l’utiliser. Télécharger un mégaoctet pour afficher l’écran de login peut paraitre un peu démesuré…


GWT 2, un GWT 1 sans les inconvénients ?

GWT 1 a quand même des atouts, mais il peut en effrayer plus d’un pour les raisons que j’ai évoqué précédemment. C’est pour cela que Google travaille depuis près d’un an sur la seconde version de son langage.


Pour l’instant disponible à l’état de RC (Release Candidate), l’objectif de GWT 2 est de faire disparaitre tous ces inconvénients. Espérons que le pari sera réussi.


Parmi les évolutions, notons :

  • La simplification du code avec l’utilisation d’annotations;
  • La possibilité de tester son application avec n’importe quel navigateur;
  • Grâce à UIBinder, la gestion du layout sera externalisée dans un fichier XML. La collaboration entre le développeur et le designer sera ainsi grandement facilitée;
  • Le chargement différé : l’utilisateur ne télécharge que ce dont il a besoin (code-spliting);
  • La prise en charge des tests unitaires.


Android, le mobile par Google

Android

Android a été le dernier sujet traité au cours du JUG, il commençait à se faire tard… Nous avons eu le droit, une fois n’est pas coutume, au développement d’un « Hello World » sur la plateforme mobile Android.


Les applications sont en Java, il y a un SDK spécial pour Android.

Concrètement, on développe son programme sous Eclipse. Pour exécuter et tester son programme, on peut émuler un téléphone à l’aide d’un plug-in Eclipse.


Ensuite, si le programme convient, on peut le mettre sur son portable, ou bien encore le mettre en ligne sur la Market place. Pour que la démo soit complète, l’intervenant a mis en ligne son « Hello World » pour 0€ (heureusement !) et une personne du public a ainsi pu télécharger et exécuter avec succès l’application sur son téléphone. Plutôt bluffant, la mise à disposition sur internet a été très rapide.


Il ne vous reste plus qu’à vous décider entre un iPhone et un portable Android pour Noël…


Le modèle de management selon Google (conclusion)

Contrairement à certains modèles standards de management, chez Google la frontière entre développeur et utilisateur est totalement invisible. La hiérarchie est très aplatie entre les deux.


Vous l’aurez sûrement remarqué, lors des Google I/O ou lors d’autres conférences, ce sont toujours des développeurs ou des team leaders qui présentent les nouvelles applications, ce ne sont jamais des équipes de marketing…


Le développeur devient l’innovateur, il a un rôle central chez Google. Google fonctionne ainsi et, à en voir le résultat, ça m’a tout l’air de bien fonctionner!

Articles similaires

googleFaut-il se méfier de Google? SurveyRéaliser un sondage en ligne avec Google Forms / Drive / Docs surveyFAQ – Sondage en ligne avec Google Forms / Drive / Docs OpenStreetMapOpen Street Map, une meilleure carte que Google Maps?
Commentaires
Pas de Commentaires »
Catégories
Evénement
Tags
android, appengine, google, gwt, jug, nantes
Flux rss des commentaires Flux rss des commentaires
Page 1 sur 11
Télécharger l'app CarmaBlog

Flux RSS

  • Flux RSS RSS - Articles
  • Flux RSS RSS - Commentaires

Articles les plus vus

  • Changer la langue de Firefox - 116 375 vues
  • Réaliser un sondage en ligne avec Google Forms / Drive / Docs - 64 403 vues
  • FAQ – Sondage en ligne avec Google Forms / Drive / Docs - 56 247 vues
  • Personnaliser Gnome 3 (Shell) - 30 809 vues
  • La signification d’URL, URI et URN - 18 407 vues
  • Java EE & CDI vs. Spring - 15 986 vues
  • Open Street Map, une meilleure carte que Google Maps? - 15 800 vues
  • Comparaison NoSQL: Couchbase et MongoDB - 14 693 vues
  • API, REST, JSON, XML, HTTP, URI… Vous parlez quelle langue en fait? - 13 730 vues
  • Une première approche du Camel d’Apache - 13 597 vues

Commentaires récents

  • Fabian Piau sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsOui, dans Google Forms, vous pouvez empêcher les p…
  • BENECH Fabien sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsBonjour, J'ai crée 1 questionnaire via Forms,…
  • SANKARA TIDIANE sur Formation en ligne gratuite sur MongoDBJ'aimerai suivre
  • Pauline sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsMerci Fabian, mais le but étant que nos clients pu…
  • Fabian Piau sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsProbablement mais ces options sont en général paya…

Articles récents

  • Comment écrire un article de blog? En tout cas à ma façon! - Il y a 2 ans et 5 mois
  • Attaques de robots: vous n’êtes pas seul… - Il y a 4 ans et 1 mois
  • Flagger – Monitorer vos déploiements Canary avec Grafana - Il y a 4 ans et 10 mois
  • Flagger – Déploiements Canary sur Kubernetes - Il y a 5 ans et 2 jours
  • Flagger – Premiers pas avec Istio et Kubernetes - Il y a 5 ans et 2 semaines
  • CoderDojo Expedia à Londres - Il y a 5 ans et 9 mois
  • Etre bénévole à Devoxx4Kids - Il y a 6 ans et 2 semaines
  • Une migration Java 11 réussie - Il y a 6 ans et 4 mois
  • Conseils pour sécuriser votre site WordPress - Il y a 6 ans et 7 mois
  • Devoxx UK 2018 – Jour 2 - Il y a 6 ans et 11 mois
  • Devoxx UK 2018 – Jour 1 - Il y a 7 ans et 11 heures
  • Wise, Revolut et Monzo, une petite révolution dans le monde des expatriés et voyageurs - Il y a 7 ans et 3 mois
  • Autocomplétion pour Git - Il y a 8 ans et 1 jour
  • Swagger, la documentation API automatisée - Il y a 8 ans et 2 mois
  • Architecture Microservices – Les bonnes pratiques - Il y a 8 ans et 7 mois
Offre moi un café

Langue

  • Français
  • English

Suivez-moi!

Suivez-moi sur Linkedin
Suivez-moi sur Twitter
Suivez-moi sur Stackoverflow
Suivez-moi sur Github
Suivez-moi sur Rss
Link to my Contact

Abonnement email

Saisissez votre adresse email pour être informé des nouveaux articles.

Étiquettes

.net agile agilité android bash blog bonnes pratiques cache cloud conférence css devoxx docker développeur eclipse extreme programming firefox flagger google helm hibernate informatique intégration continue istio java jug kubernetes londres mobilité informatique métier outil panorama partage performance plugin programmeur script société spring sécurité tdd test ubuntu windows wordpress

Liens

  • Blog Ippon Technologies
  • Blog Publicis Sapient
  • Blog Zenika
  • Classpert
  • CommitStrip
  • Coursera
  • Le Touilleur Express
  • Les Cast Codeurs Podcast
  • OCTO talks !
  • The Twelve-Factor App

Catégories

  • Evénement (15)
  • Linux (3)
  • Management (8)
  • Programmation agile (29)
  • Technologie (45)

Archives

  • décembre 2022 (1)
  • avril 2021 (1)
  • juin 2020 (1)
  • mai 2020 (2)
  • juillet 2019 (1)
  • mai 2019 (1)
  • décembre 2018 (1)
  • octobre 2018 (1)
  • juin 2018 (1)
  • mai 2018 (1)
  • janvier 2018 (1)
  • mai 2017 (1)
  • mars 2017 (1)
  • octobre 2016 (1)
  • avril 2016 (2)
  • mars 2016 (1)
  • novembre 2015 (1)
  • mai 2015 (1)
  • février 2015 (1)
  • décembre 2014 (1)
  • novembre 2014 (1)
  • septembre 2014 (2)
  • août 2014 (1)
  • juillet 2014 (2)
  • juin 2014 (1)
  • avril 2014 (1)
  • mars 2014 (1)
  • février 2014 (2)
  • janvier 2014 (1)
  • décembre 2013 (1)
  • novembre 2013 (1)
  • octobre 2013 (3)
  • septembre 2013 (5)
  • juillet 2013 (1)
  • juin 2013 (1)
  • mai 2013 (1)
  • avril 2013 (1)
  • mars 2013 (2)
  • février 2013 (1)
  • janvier 2013 (2)
  • décembre 2012 (2)
  • octobre 2012 (1)
  • septembre 2012 (1)
  • juillet 2012 (1)
  • mai 2012 (1)
  • avril 2012 (1)
  • mars 2012 (1)
  • février 2012 (1)
  • janvier 2012 (2)
  • décembre 2011 (1)
  • novembre 2011 (2)
  • octobre 2011 (2)
  • septembre 2011 (1)
  • juillet 2011 (1)
  • juin 2011 (2)
  • avril 2011 (1)
  • mars 2011 (1)
  • février 2011 (1)
  • janvier 2011 (2)
  • novembre 2010 (2)
  • septembre 2010 (1)
  • août 2010 (1)
  • juillet 2010 (1)
  • juin 2010 (1)
  • mai 2010 (1)
  • avril 2010 (1)
  • mars 2010 (1)
  • février 2010 (1)
  • décembre 2009 (1)
  • novembre 2009 (1)
  • octobre 2009 (2)
  • septembre 2009 (2)
  • août 2009 (3)
  • juillet 2009 (1)
  • juin 2009 (2)
Suivez-moi sur Twitter
Suivez-moi sur Linkedin
Suivez-moi sur Stackoverflow
Suivez-moi sur Rss
Link to my Contact
Suivez-moi sur Github
 
Fabian Piau | © 2009 - 2025
Tous droits réservés | Haut ↑