SFEIR et SpringSource ont organisé l’événement « Rencontres Spring 2008 » aujourd’hui à Paris. Après un accueil sympathique (teeshirt, carnet, stylo… le tout estampillé SpringSource) la salle s’est rapidement remplie. Didier Girard, directeur technique de SFEIR prend la parole. Tout d’abord gros succès, plus de 400 personnes inscrites, et environ 230 personnes présentes, la salle était pleine. SFEIR c’est d’abord 250 collaborateurs, environ 22 millions de CA, et depuis 1997 des développements Java au forfait et en régie. Je referme là la parenthèse « pub » mais il faut reconnaître que l’organisation était impeccable.
Introduction par Didier Girard
Didier commence par expliquer pourquoi Spring, pourquoi le framework est maintenant un acteur incontournable de la communauté Java. Tout d’abord un framework d’inversion de contrôle. Peu de personnes saisissent, mais il faut se souvenir qu’au temps des serveurs J2EE « lourd », celui-ci était en charge de la vie et de la mort de vos composants. Spring framework a retourné ceci, en redonnant une agilité au code par l’injection des dépendances, d’où l’inversion de contrôle. Ce n’est plus le serveur qui vous contrôle mais bien vous. La programmation orientée aspect est ensuite le deuxième point que Spring a facilité, je pense même démocratisé. L’ensemble des connecteurs de la couche Spring permet enfin d’intégrer des services tiers facilement. Enfin Spring est indépendant des éditeurs de logiciel, et indépendant des spécifications de Java, bref Spring est libre.
Didier parle ensuite de la démarche de SFEIR par rapport à la veille technique. Une cellule d’étude se charge de surveiller le marché afin d’assurer un niveau technique de qualité. Concernant Spring et le framework, il explique aussi l’apport en terme d’industrialisation. Comment séduire les personnes de la production. Il parle là des équipes qui gèrent aujourd’hui vos applications en production. Et comme il le dit justement, il va falloir expliquer et rassurer, afin d’appuyer le fait que Spring allège la complexité de la couche J2EE. L’équipe de production est souvent là pour s’assurer de la stabilité et de la pérennité des solutions. Faire certifier par votre équipe de production un serveur comme BEA Weblogic demande du temps. Spring se propose d’apporter plus d’agilité et de réduire cet effet « mamouth » que malheureusement l’architecture J2EE d’ancienne génération nous a légué. Il faut être réaliste : nous ne sommes pas forcément très populaire avec nos applications de première génération EJB2.1 et compagnie.
Didier explique qu’il préfère parler « Java du côté serveur » plutôt que d’utiliser le mot « J2EE » car Spring c’est parfois aussi des déploiements plus simples, avec une petite empreinte mémoire de quelques mégas là où une pile serveur d’app complète vous demande 1 Go…
Questions de la salle
Une question pertinente : SpringSource propose Spring dm Server, un serveur d’application. Cela ne va-t-il pas à l’encontre de la démarche de simplification de Spring ?
Didier répond à ce sujet que Spring dm Server ajoute une flexibilité qui n’existe pas avec les serveurs classiques. La suite de la présentation par Julien répondra à cette question.
Julien Dubois, Regional Director for France
Julien présente l’activité de la société SpringSource. Avec environ 150 personnes à travers le monde, SpringSource se charge du support et des formations sur l’ensemble du framework Spring ainsi que Tomcat et Apache. La souscription aux services de SpringSource donne accès à un support de très haut niveau, constitué essentiellement par les développeurs de Spring. Grâce à l’architecture de support de la société Covalent, rachetée au début de cette année, SpringSource a maintenant une plateforme très efficace de support.
Notez bien qu’en écrivant ces lignes, je fais de la publicité pour SpringSource, mais qu’il est important de dire qu’il existe une entité derrière les JAR que tout le monde manipule. C’est important.
Guillaume Laforge, chef de projet de Groovy et responsable de G2One.inc
La nouvelle annoncée mardi dernier est que la société SpringSource rachète G2One.inc, la structure créé par Guillaume, Graeme Rocher et Alex Tkatchman, ancien COO de JetBrains (Intellij) pour Groovy et Grails. Et donc guillaume est venu sur scène afin d’apporter quelques informations.
Pour l’essentiel, Groovy est un langage open-source sous licence Apache 2 (et qui le restera). Grails est un framework léger web de génération similaire à Ruby on Rails…. mais en mieux !
Groovy est un langage de scripting dont je vous ai parlé à l’occasion de la présentation de Guillaume au Paris JUG. Grails et Groovy sont utilisés par exemple par la société LinkedIn.com pour développer des sites spécialisés pour des clients de LinkedIn.
Guillaume rappelle quelques concepts clés de Groovy, tel l’usage des closures, présent depuis le début dans la syntaxe du langage.
J’ai eu l’occasion d’interviewer ensuite Guillaume, je reviendrai donc sur certains détails dans un autre article.
Présentation de Peter Cooper-Ellis
Peter est l’une des personnes les plus importantes de SpringSource. Il est vice-président of Engineering and Product Managment. C’est un ancien de BEA, et l’une des personnes qui s’est occupé de la mise en place et de la réussite du serveur d’application Weblogic Application Server. Il a rejoint SpringSource avant l’été et s’occupe de la roadmap et des produits de SpringSource. C’est donc une présentation très axée sur les produits professionnels de SpringSource, mais aussi quelques exclusivités mondiales…
Sa présentation s’est axée sur 3 thèmes : « Develop, Deploy and Support ». SpringSource c’est avant tout le développement du framework, ensuite sa mise en place et enfin le support après vente. SpringSource est une compagnie open-source avec une offre commerciale, pour ajouter de la valeur au socle de base, qui est libre, gratuit et open-source. Clair, simple et limpide.
Ensuite Peter a détaillé la roadmap des 12 mois à venir, qui est loin d’être définitive. J’ai réussi à prendre une photo de ce slide qui contient quelques révélations sur ce que SpringSource va proposer dans les mois à venir.
Ce que j’ai retenu : Spring dm Server sera prêt en version M1 d’ici fin novembre, l’objectif est de sortir une version RC1 en janvier et enfin une version officielle vers le mois d’avril.
Spring 3.0 est annoncé pour janvier (regardez la photo) et Jurgen Hoeller reviendra plus tard sur le contenu de ce que contiendra Spring 3.0.
Enfin on note que les slides sont à jour puisque Groovy et Grails font partis de la présentation.
Je me dis qu’à l’issu de cette présentation, nous avons un aperçu assez précis de ce que SpringSource va proposer d’ici à mi-2009.
A noter l’apparition d’un projet dont je n’avais jamais entendu parler : Spring ROO qui est un générateur d’application basé sur les conventions par dessus la configuration. Impossible de savoir par rapport à Grails la marge de recoupement, s’il y en a une. A noter ensuite que grâce à la présence de Nicolas Romanetti de Celerio, nous avons parlé de génération de code. C’est un sujet sur lequel nous reviendrons dans les mois qui viennent. Je connais AppFuse, Seam-Gen, Celerio, Grails et donc maintenant Spring ROO. Il semble que la communauté se rend compte qu’écrire tout le temps la même chose n’est ni intéressant ni enrichissant. Passé les 3 minutes d’excitation devant son fichier hbm, honnêtement je préfère utiliser Celerio et bosser sur le contenu (notez que je fais une bonne grosse pub pour Celerio, mais on en parle pas assez, alors que c’est un très bon projet).
Les questions portent ensuite sur « mais pourquoi vous faîtes un serveur d’app vous aussi ? ». A cette question, la réponse de Peter est assez simple et sans appel : l’empreinte mémoire d’un weblogic, c’est 1Go, Spring et Tomcat, 6 Mo. Spring dm Server s’inscrit dans la démarche de simplification. Il semble simple à utiliser, je vous en parlerai prochainement car je l’ai testé la semaine passée.
Mark Thomas, Tomcat Tunning
Mark de retour de l’Apache Con et donc passablement « jet-lagué » nous a fait une présentation très technique sur les techniques d’optimisation de Tomcat. Avec 5 ans d’expériences sur Tomcat, 1500 bugs corrigés à son compteur, il sait de quoi il parle.
Il présente d’abord le processus à appliquer pour faire du tuning de Tomcat. Je vous le résume :
– Stabiliser le système, ne pas toucher au code durant la phase de tuning
– Se donner des objectifs de temps de réponse à atteindre afin de savoir s’arrêter
– Mesurer l’état actuel du système avec des scénarii réalistes
– Identifier les goulots d’étranglement
– Fixer en premier ce qui est le plus évident
– Répéter jusqu’à atteindre l’objectif souhaité
Les erreurs souvent rencontrées sont que l’on tend à optimiser trop de code, à ne pas tester assez la plateforme avec des données réalistes, à ne pas se fixer d’objectif précis pour effectuer ce tuning, à deviner où se trouvent les soucis au lieu de vraiment chercher et trouver, à fixer les symptômes plutôt que la cause…
Par expérience il explique que 80% du tunning qu’il a eu à faire s’effectue dans l’application Java elle-même. Pour les 20% il y a maintenant de bonnes pratiques, afin d’éviter les soucis souvent rencontrés avec un serveur Tomcat mal configuré. Cela me rappelle un client à l’INA qui m’expliquait qu’il relance chaque matin ses serveurs.
Par défaut Tomcat est livré en mode « développeur » et il faut donc l’adapter et le régler avant de le passer en production. Je vous passe les détails de réglages et de tunning, même si c’était intéressant. J’espère que Didier Girard nous donnera les slides afin que chacun puisse relire les idées de Mark.
Présentation de Juergen Hoeller
Vous vous demandez qui est ce monsieur ? Et bien c’est tout simplement l’un des meilleurs développeurs de Spring, et surtout l’un des co-auteurs du framework Spring. C’est notre Alan Cox à nous pour les linuxiens si vous voulez, la barbe en moins.
Après avoir fait un rappel des principes clés de Spring 2.5 il a présenté les nouveautés de Spring 3.0. A noter qu’il n’a pas parlé OSGI. Spring 2.5 a apporté le support des annotations afin de simplifier la configuration du framework. Je passe ce que tout le monde connaît, cette partie n’était pas intéressante.
Les principales caractéristiques de Spring 3.0 :
– basé sur Java 5
– proposition d’un expression language afin d’ajouter encore plus de choses sympathiques dans vos beans ou dans vos fichiers XML
– support de REST avec annotations
– Modèle de validation déclaratif basé sur Hibernate Validator et la JSR-303
– Support pour les portlets 2.0
L’expression language (EL) va nous permettre de faire de l’injection de valeur… Grand silence dans la salle…
Voyez ce code par exemple
@Value("#{bankAccount.balance}");
setMyBankAccountBalance(Double value) {
...
}
Vous pouvez ainsi (et je me demande bien comment) récupérer la valeur d’un autre bean afin de l’injecter dans votre code. Bon je vous laisse sur ce bout de code et je vous invite à trouver un autre blog qui vous expliquera cette partie avec plus de détails.
Juergen parle ensuite de l’ajout d’un mode « Conversation » au moteur Spring WebFlow. Fidèle lecteur du touilleur express, souviens-toi dans cet article du 12 décembre 2006 de ce que j’avais raconté. Je trouve que ce concept est assez génial et bien que compliqué à expliquer, c’est un scope qui manque cruellement à Spring Web Flow. Juergen m’avouera ensuite plus tard que c’est fortement inspiré du framework Seam, car c’est un principe vraiment intéressant.
Le support de REST permet dans Spring 3.0 d’utiliser des annotations, ainsi que l’expression language afin d’injecter des paramètres d’une URI dans votre bean. Bien que la soupe d’annotation ne soit pas ma tasse de thé, j’avoue que c’est intéressant.
La validation du modèle est un principe intelligent afin de valider vos entités et vos beans. Le principe est d’ajouter des annotations sur les attributs afin de renforcer vos règles métiers. Je vous propose de lire l’article sur la JSR-303, puisque Spring se reposera sur cette spécification.
Enfin pour terminer, le support des Portlets 2.0 sera aussi disponible.
La version Spring 3.0 M1 sera disponible fin novembre.
La version 3.0 RC1 est prévue pour mars 2009
La version 3.0 final : avril 2009 en principe
Les clients
Didier Girard a eu l’idée d’inviter des utilisateurs du framework Spring, ce qui était très sympa. Les personnes dans la salle ont ainsi posé plusieurs questions, sans langue de bois. Étaient présents : Alexandre Navarro de la SGCIB, architecte sur des applications de trading, Benamar Kassini de Voyages-Snc.Technologie, François XXX d’HSBC, David le responsable d’Improve et enfin Guillaume Laforge, Groovy and Grails.
A la question « que pensez-vous de Spring dm Server et pensez-vous l’utiliser ? », la personne de la SGCIB répond qu’ils sont intéressés, car le besoin d’application en ligne 24h/24 dans la finance est un réel besoin. Le problème du versionning se pose réellement lorsqu’il n’est pas possibe d’arrêter un système et qu’il faut cohabiter avec d’autres systèmes.
Le site Voyages-sncf avec moins de 5 serveurs est une plateforme capable de gérer 5 à 7 millions de visiteurs par mois, avec des pics assez impressionnants par jour. Avec un très grand nombre de beans gérés par Spring, Benamar reconnaît que les temps de démarrage sont un peu longs. Mais en contre-partie, le coeur du système est capable de gérer un très grand volume de données. Spring apporte grâce à l’AOP entre autre et l’IoC, un très grand nombre d’avantages par rapport à une architecture J2EE à l’ancienne.
Conclusion
Enfin pour terminer, je ne regrette pas d’avoir pris le temps ce matin de venir assister aux présentations de SpringSource. L’organisation par SFEIR était parfaite, et en quelques heures nous avons couvert pas mal de sujets.
Mais je reste sur ma faim…
L’après midi j’ai donc été à la rencontre de Juergen et Peter ainsi que de Guillaume afin de les interviewer dans les locaux de SFEIR accompagné d’un autre blogeur : Olivier Croisier l’auteur du « Coder’s Breakfast« .
J’ai enregistré avec mon MacBook Pro une interview de 48mn de Peter ainsi qu’une conversation très sympa avec Guillaume Laforge. Finalement la qualité du son pour l’interview de Guillaume étant assez correcte, après avoir nettoyé mon fichier je verrai si guillaume est d’accord pour poster ce podcast sur le Touilleur.
En attendant je vous ferai un compte-rendu de ma rencontre avec Peter et avec Juergen dans de futurs billets.
Merci à Julien Dubois et Didier Girard pour cet après-midi !
Autres articles sur cette journée:
Blog d’Octo par Olivier Mallassi
Tuning Tomcat par Tom’s Quest
Spring dm Server le pari fou par Tom’s Quest
Une photo de Juergen Hoeller, l’un des développeurs principal du framework Spring
Conférence extrêmement intéressante effectivement, surtout l’interview de Peter et Jürgen en « off ».
Concernant Spring DM Server, on en avait eu une démo pratique lors de l’OpenSource Exchange mercredi, par Mickaël Isvy. Et ça avait l’air sympa et déjà bien outillé et documenté.
Sur la photo de la roadmap, le bras de Peter cache la GA de Spring intégration prévue d’ici la fin de l’année.
Il est également étonnant que constater que Juergen n’a pas parlé de Spring JavaConfig, fonctionnalité déjà en présentation dans le projet exemple spring ‘java pet clinic’.
Je regrette également de ne pas avoir eu plus d’informations sur le contenu des différents milestones. Si c’est clair pour la M1 depuis un moment (cf mon billet spring 3.0 du mois dernier), nous disposons que de très peu d’informations concernant les M2 et M3…
http://blog.xebia.fr/2008/10/08/spring-30-le-grand-nettoyage-du-printemps/
PS> c’est quoi la tête que je fais sur la photo de l’assemblée … 🙁
De bonnes sessions.
Ça permet vraiment de voir la stratégie à moyen terme de SpringSource. Il y a quelques nouveautés mais on voit que l’entreprise élargit globalement son champ d’action.
Et Spring ROO, juste positionné sur un slide, sans trop d’explication : est-ce un nouveau buzz ?
Tom
Contrairement à ce qui semble l’opinion générale, j’ai été déçu par ces rencontres mal-nommées : « Rencontres SpringSource » eût été plus adéquat étant donné leur teneur élevée en marketing.
Hormis les impeccables présentations de Didier Girard et de Mark Thomas, j’ai trouvé la prestation de Peter Cooper-Ellis manquant de punch (était-il malade ?) et sans intérêt, alors que celle de Juergen Holler était trop superficielle pour être passionnante.
Bref, SpringSource était là (en toute légitimité) pour vendre ses produits (support, packages, serveur, etc.).
La table ronde était un excellente idée, la présence de Guillaume Laforge, toute fraiche partie prenante de SpringSource, en son sein relevant à mon avis de l’erreur de casting (pour un évident conflit d’intérêts).
On notera enfin que dans la question aux utilisateurs de Spring concernant « SpringSource dm Server », on peut remplacer ce nom par n’importe quel conteneur OSGi et conserver l’intégralité des réponses fournies : les problématiques réelles sont adressées par la spécification OSGi plus que par le produit de SpringSource spécifiquement.
Bref, bien loin d’une session « no fluff just stuff » et malgré une organisation très professionnelle de la part de SFEIR, une matinée qui m’a laissé un goût amer dans la bouche.
Je suis d’accord sur le fait que la rencontre était bien organisé, et sur la bonne qualité des sessions, mais j’étais personnellement déçu par la table ronde: http://my-garbage-collector.blogspot.com/2008/11/compte-rendu-sur-les-rencontres-spring.html