CarmaBlog

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

Google s’invite au JUG

Fabian Piau | dimanche 6 décembre 2009 - 19:24
495 vues
  • Twitter
  • Facebook
  • Google +1
  • LinkedIn

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.


Plus d’information sur AppEngine ici.


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 :D

Articles similaires

SurveyRéaliser un sondage en ligne avec Google Docs OpenStreetMapOpen Street Map, une meilleure carte que Google Maps? Google WaveGoogle Wave
Commentaires
Pas de Commentaires »
Catégories
Evénement
Tags
android, appengine, google, gwt, jug, nantes
Flux rss des commentaires Flux rss des commentaires

Java User Group – JUG

Fabian Piau | samedi 24 octobre 2009 - 18:46
1 088 vues
  • Twitter
  • Facebook
  • Google +1
  • LinkedIn

Jeudi dernier fut mon baptême de JUG. Je tiens à faire mon petit feedback sur le sujet.

Logo JUG

Tout d’abord, un JUG (de l’anglais “Java User Group” traduisible par “Groupe d’utilisateurs Java”) est, comme son acronyme ne l’indique pas au premier abord, une rencontre organisée par des passionnés Java pour des passionnés Java. Professionnels, membres des communautés open source, étudiants et enseignants sont les bienvenus pour cette rencontre libre et gratuite.

Chacune de ces rencontres est l’occasion d’aborder un sujet en particulier. Le but est d’échanger des idées, de partager ses connaissances, et de discuter des avancées technologiques de la plateforme Java. Langages, outils, technos, bonnes pratiques, les sujets sont nombreux et variés !

Il y a plusieurs JUG en France principalement dans les grandes villes (Paris, Tours, Bordeaux, Nantes, etc.), chaque année, ils ne cessent de s’en créer et/ou de faire plus d’adeptes (j’en suis un bon exemple).

Habitant de Nantes, je participe donc naturellement à celui-ci qui est relativement récent, puisqu’il a ouvert il y a 1 an et demi environ. Une rencontre est organisée par mois (c’est le cas à Nantes en tout cas). Elle a lieu le soir après le boulot (on est passionné ou on l’est pas ;) ). Si à Paris les places sont limitées, beaucoup de monde voulant y participer, ce n’est pas (encore?) le cas à Nantes.

Logo JUG Nantes

Cette semaine au JUG Nantais, nous avons parlé des méthodes agiles (TDD et Scrum en particulier) et comment améliorer la productivité des équipes. Ce sujet était donc plus orienté méthodologie que technique. Ce type de rencontre est parfait pour ceux qui hésitent à se lancer dans l’XP, car ils peuvent poser leurs questions à ceux qui utilisent les méthodes agiles quotidiennement ou bien connaitre leurs retours d’expériences sur ces pratiques.

En plus de nous montrer les principes du TDD, l’intervenant nous a aussi fait découvrir quelques programmes utiles sous Windows pour améliorer sa productivité (Launchy, Total Commander entre autres), ainsi que des plug-ins Eclipse orientés agiles (Mylin, EclEmma…).


Soirée d'ouverture du premier JUG à Nantes il y a plus d'un an

Soirée d'ouverture du premier JUG à Nantes il y a plus d'un an


Pour mon premier JUG, j’ai vraiment trouvé cela intéressant et je participerais à la prochaine rencontre. D’autant plus que le prochain sujet promet d’être passionnant: les technologies Google (Innovation Labs, GWT, Android…).


Pour en savoir plus sur ces groupes, voici le site officiel et le lien vers le JUG nantais car un peu de pub ne fait de mal à personne.

Articles similaires

Java EE vs SpringJava EE & CDI vs. Spring Les Cast CodeursLes Cast Codeurs, le podcast Java en Français
Commentaires
6 Commentaires »
Catégories
Evénement
Tags
after work, java, jug, nantes
Flux rss des commentaires Flux rss des commentaires
Page 1 sur 11

Langue

  • Français
  • English

Articles les plus consultés

  • Changer la langue de Firefox - 20 582 vues
  • Java EE & CDI vs. Spring - 10 218 vues
  • Personnaliser Gnome 3 (Shell) - 8 825 vues
  • Firefox Nightly, Aurora, Beta, Desktop, Mobile, ESR & Co. - 6 850 vues
  • Extensions WordPress de CarmaBlog - 5 681 vues
  • Open Street Map, une meilleure carte que Google Maps? - 3 306 vues
  • Ce fichier est actuellement utilisé, vous ne pouvez rien y faire… Merci Windows ! - 2 968 vues
  • Belbin – Théorie des rôles dans une équipe - 2 506 vues
  • Réaliser un sondage en ligne avec Google Docs - 2 430 vues
  • Changer le splash screen d’Eclipse en quelques secondes - 2 135 vues

Twitter

My Tweets

Tags

nosql moteur de recherche de documents démonter watin social firefox tdd extension build éjecter disque dur chrome java extreme programming partage intégration continue hiberner automatisation docjax nantes windows 7 eclipse wave script bonnes pratiques agile blog .net mongodb bash ic c# test formation mobilité informatique gestion des configurations outil plugin ebook cloud google fosdem windows seven jquery jug ubuntu agilité wordpress test unitaire itil

Articles récents

  • Mesurez votre influence sur le web avec Klout vendredi 31 mai 2013
  • Saisissez l’opportunité de suivre un cours sur la Gamification mardi 2 avril 2013
  • Comparaison NoSQL: Couchbase et MongoDB vendredi 8 mars 2013
  • IconFinder, la recherche d’icônes efficace vendredi 1 mars 2013
  • Retour sur Fosdem 2013 mercredi 20 février 2013
  • Fosdem, une conférence vraiment libre lundi 28 janvier 2013
  • Formation en ligne gratuite sur MongoDB mardi 1 janvier 2013
  • Découvrez Maxthon mardi 11 décembre 2012
  • Eteindre, mettre en veille ou hiberner son ordinateur? dimanche 9 décembre 2012
  • Une version mobile de votre Blog WordPress dimanche 28 octobre 2012
  • Réaliser un sondage en ligne avec Google Docs lundi 24 septembre 2012
  • Open Street Map, une meilleure carte que Google Maps? mercredi 25 juillet 2012
  • Une première approche du Camel d’Apache vendredi 11 mai 2012
  • Ce fichier est actuellement utilisé, vous ne pouvez rien y faire… Merci Windows ! dimanche 22 avril 2012
  • Personnaliser Gnome 3 (Shell) jeudi 15 mars 2012

Flux RSS

RSS Feed RSS - Articles

RSS Feed RSS - Commentaires

Abonnement via Email

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

Liens

  • Agile Nantes
  • Blog Ippon Technologies
  • Blog Netapsys
  • Blog Xebia France
  • Blog Zenika
  • Coursera
  • Developpef
  • Le Touilleur Express
  • Les Cast Codeurs Podcast
  • new Blog( perso );
  • OCTO talks !
  • The Coder's Breakfast

Suivez-moi!

Suivez-moi sur TwitterSuivez-moi sur LinkedInSuivez-moi sur Google+Suivez-moi sur About.meSuivez-moi sur SlideShare

Catégories

  • Evénement (9)
  • Linux (3)
  • Management (4)
  • Programmation agile (11)
  • Technologie (27)

Archives

  • 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)
rss Flux rss des commentaires get firefox
Fabian Piau | Copyright © 2009 - 2013
Tous droits réservés | Haut ↑