Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.

Actualité éditeurs / SSII

Agilité

RIA

Le coin de la technique

Actualité éditeurs / SSII

JBoss AS 5, ce fut long mais c’est parti

Sacha Labourey, CTO de JBoss, nous avait parlé lors de sa venue au Paris JUG la semaine dernière de l’imminence de cette annonce que la communauté attendait depuis longtemps : JBoss AS 5 est enfin releasé !

Les principaux composants de JBoss AS 5

  • JBoss Micro Container (MC) : remplaçant du JMX Kernel, MC est le conteneur du serveur d’applications. Il offre le cycle de vie des différents modules (installation, démarrage, arrêt, désinstallation).
  • JBoss Messaging (JMS) : déjà utilisé dans JBoss AS 4, JBoss Messaging est le successeur de JBoss MQ. La version 2 de JBoss Messaging est en cours de développement; les synergies avec Red Hat Messaging sont prévues ; les efforts pour faire converger les deux middlewares de message seront vraisemblablement importants.
  • JBoss Transaction : issu du rachat d’Arjuna Transaction Service en 2005, ce composant mature n’a pas connu d’évolution significative avec AS 5.
  • JBoss WS : stack Web Service ; la multiplicité de ses implémentations SOAP (native, adapteur pour Glassfish Metro ou pour Apache CXF) rend compliquée la compréhension de ce composant.
  • Clustering : la haute disponibilité et la réplication reposent sur le mature et dynamique JBoss Cache (aujourd’hui en version 3) qui repose lui-même sur la librairie de communication multicast JGroups.
  • JBoss Web : fort de son long passé de commiter Tomcat, JBoss package sa version optimisée du moteur de servlet de la fondation Apache.

Pourquoi JBoss a-t-il mis autant de temps à sortir cette version ? Des difficultés pour implémenter Java EE 5 ?
JBoss n’a pas eu de difficultés particulières à implémenter les EJB 3 ou JPA qui étaient déjà disponibles dans JBoss AS 4.2. Java EE 5 est la partie émergée de l’iceberg AS 5. Ce qui a pris du temps à JBoss est la refonte complète de son serveur d’applications. Les fonctions structurelles du middleware (transactions, clustering, messaging, sécurité, administration, etc.) sont désormais séparées des applications déployées qui peuvent être packagées au format Java EE mais aussi OSGi, Spring, Ruby On Rails ou tout autre format dès lors qu’un deployer (i.e. adaptateur) est disponible.

JBoss Micro Container est-il une victime du syndrome Not Invented Here ?
La réponse est complexe et le choix de JBoss plein de mesure. Le projet MC a été lancé alors que la bataille (plus politique que technique) entre Java Module System et OSGi faisait rage. Sun misait sur le projet HK2 pour son serveur Glassfish et s’est finalement rabattu sur le conteneur OSGi Apache Felix. SpringSource a tellement amélioré OSGi que le résultat rendait OSGi méconnaissable (adieux les ServiceTracker et autres Declarative Services) ; le pari a réussi et Spring dm Server est en cours de standardisation par l’OSGi Alliance sous le nom de Blueprint Component Model. JBoss, pourtant habitué des contributions aux standards Java (cf. JPA, Web Beans, etc.) a cette fois ci préféré commencer cavalier seul avec un Micro Container qui supporte OSGi comme il aurait pu supporter Java Module System.

Si JBoss AS 5.0 est une refonte complète, il risque d’être buggué
Le risque n’est pas nul, mais nous remarquerons que la plupart des composants fondamentaux sont matures et n’ont pas été impactés par la refonte 5.0 (transactions, messaging, etc.).

Le chantier AS 5 a-t-il été trop ambitieux ?
Les autres serveurs d’applications ont déjà été refondus (Websphere 6.1) ou sont en cours de refonte (Glassfish 3). Cette remise à plat était importante. Cependant, JBoss a pris beaucoup plus de temps qu’il ne le prévoyait et a dû changer certaines méthodes de travail pour atteindre son objectif. Sacha Labourey a notamment expliqué que le mécanisme de build a été changé en cours de route et que le travail open source collaboratif à distance par forum/mailing-list interposés avait touché ses limites.

Les clients ont-ils perdu patience ? Ont-ils changé de serveur ?
Les clients ont sûrement été déçus par l’attente mais pas tellement plus que les clients Websphere ;-) et JBoss AS 4 proposait déjà les EJB 3 et JPA. Ensuite, Glassfish a surement pris des parts de marché à JBoss AS mais c’est plus probablement lié à l’essor de Glassfish qui se fait au détriment de ses concurrents JBoss, Websphere et Weblogic.

En conclusion, JBoss AS 5 est une bonne nouvelle pour l’Open Source Java et rappelle la vitalité du modèle économique du Professional Open Source que JBoss a contribué à inventer.

SpringSource tc Server : un dm Server sans ses modules

L’actualité Spring est particulièrement riche cette semaine : SpringSource a annoncé lors des conférences de SpringOne Americas l’arrivée prochaine d’un nouveau serveur d’applications : le tc Server. Non, il ne s’agit pas d’un second renommage de leur dm Server, mais bel et bien d’un nouveau produit. Comme son nom l’indique, tc Server n’est ni plus ni moins qu’un Tomcat gonflé en fonctionnalités et en support, permettant de répondre aux problématiques de production.

Selon SpringSource, ce nouveau serveur est destiné à trois types d’utilisateurs :

  • Les utilisateurs de Tomcat, désireux d’acquérir du support en production et/ou des fonctionnalités supplémentaires d’aide à la configuration et de diagnostics.
  • Les utilisateurs de serveurs d’applications JEE qui n’utilisent pas d’EJB, désireux de migrer vers une solution plus légère.
  • Les futurs utilisateurs de dm Server, désirant modulariser leur application.

Par ailleurs, SpringSource a récemment annoncé dans sa roadmap une compatibilité Tomcat dans sa prochaine version de dm Server (Jersey) prévue pour Q2 2009. À terme, ces deux serveurs ne risquent-ils pas de se marcher dessus ? Vu de l’extérieur, cela donne l’impression que ce nouveau tc Server a été créé dans le but de rassurer les utilisateurs : pas besoin d’être modulaire pour tourner sur une plateforme SpringSource.

Ce chevauchement dans l’offre nous laisse entrevoir une stratégie intéressante de la part de SpringSource :

  1. Attirer en douceur les utilisateurs via un simple support Tomcat avec tc Server.
  2. Les aiguiller par la suite vers une solution plus complète basée sur dm Server.

Pour cela, Spring compte tout d’abord mettre en avant ses fonctions Java EE classiques (monitoring avancé, transactions distribuées), puis, dans un deuxième temps, ouvrir le développement sur un modèle de composants Spring Module. Tout l’enjeu de cette stratégie est de convaincre les exploitants. Une fois que dm Server sera suffisamment bien implanté, les développeurs devraient se mettre à déployer leurs propres modules OSGi.

Cette distinction, techniquement non nécessaire, nous montre encore à quel point la monétisation du libre et la vente de support restent difficiles. La tarification des services reste au centre de la stratégie (et c’est bien compréhensible) : avec ce nouveau serveur, SpringSource nous propose également une nouvelle grille de tarifications allégée.

Quoi de neuf dans Spring 3.0 M1 ?

Le premier milestone du Spring nouveau est arrivé, annoncé par Jurgen Holler ce vendredi sur son blog. Comme nous l’annoncions dans une précédente revue de presse, Spring 3.0 M1 sort avec un léger retard par rapport à la roadmap Spring prévue.

Utilisateurs de Spring 2.5, les nouveautés apportées par cette nouvelle version ne devraient pas vous dépayser : peu de nouveautés fonctionnelles, mais un gros travail de refactoring interne.

Modifications techniques internes :

  • Migration de gestionnaire de source : CVS vers SVN, dont voici l’adresse.
  • Refactoring du projet en modules, le trunk contient une vingtaine de sous projets : org.springframework.core, org.springframework.aop, org.springframework.expression
    • Chaque module est commité avec sa configuration Eclipse prête à l’emploi, vous trouverez donc les .project, .classpath et même les répertoires .settings directement sur le svn.
    • Vous y trouverez également les fichiers de configuration de build Ivy et un début de configuration Maven. Cette dernière n’est probablement pas fonctionnelle : les derniers commits datent de fin d’octobre pour les fichiers Maven, alors que des modifications ont été effectuées plus récemment fin novembre sur la configuration Ivy. D’ailleurs, les .classpath ne vous y tromperont pas, ils contiennent tous la variable d’environnement IVY_CACHE.
  • Refactoring des sources, chaque module utilise maintenant les fonctionnalités Java 5, le code interne en est simplifié.
  • Montée de version des tiers frameworks : JRuby 1.1 et JUnit 4.5. La montée de version de JUnit simplifie l’utilisation de ses extensions.

Nouvelles fonctionnalités :

  • Arrivée de Spring EL utilisable dans n’importe quel composant Spring (y compris ‘core’). Vous pouvez par exemple utiliser la syntaxe #{ … } lors de la définition de vos beans (XML et/ou annotations) pour permettre de définir au runtime la valeur de certaines propriétés de vos beans prototypes.
  • Support de REST intégré dans Spring MVC.
  • … le reste à venir dans les milestones M2 et M3 qui suivront, prévus pour Q1 2009.

Nous avions également publié un article en octobre présentant les principales nouveautés de Spring 3.0.

Sortie de Spring Integration 1.0.0

La version 1.0.0 GA de Spring Integration, le « light weight ESB«  de SpringSource a été annoncée cette semaine lors du dernier SpringOne Americas.

Comme nous l’expliquions dans notre Introduction à Spring Integration, cette implémentation légère des Enterprise Integration Patterns vise à simplifier le développement de solutions d’intégration d’entreprise et à faciliter l’adoption par les utilisateurs de Spring des principes EDA (Event Driven Architecture).

Sortie d’Hibernate Search 3.1

La version 3.1.0 d’Hibernate Search a été mise à disposition cette semaine. Comme l’explique Emmanuel Bernard dans l’article « Hibernate Search 3.1 is out: performance, robustness and new features on the menu« , cette nouvelle version met l’accent sur l’amélioration des performances, la robustesse du code et l’utilisabilité.

Comme nous l’expliquions dans notre Introduction à Hibernate Search, Hibernate Search est un moteur d’indexation et de recherche full-text reposant sur Apache Lucene. Il prend ainsi en charge la gestion d’un index Lucene et sa synchronisation avec une structure objet persistée en base de données.

Agilité

L’agilité chez IBM

Scott Ambler, responsable du développement agile chez IBM, a été interviewé par InfoQ sur l’état présent de l’agilité et son futur.
En se basant sur l’étude 2008 de Dr. Dobb’s, il rappelle que 69% des organisations font au moins un projet agile. L’agilité est une réalité. Le TDD fait aussi parler de lui mais ceux qui le pratiquent sont moins nombreux.

Une autre étude a montré que les équipes agiles font autant de documentation que les équipes traditionnelles, et même plus de modélisation upfront (88% des équipes agiles), que ce soit sur papier ou avec des outils plus sophistiqués.
Abordant les problèmes liés à l’introduction de l’Agilité dans les grandes équipes, Scott cite les 2 points les plus courants qui sont les équipes de grande taille (5000 ?) et les équipes distribuées. Il ajoute un 3e point : la gouvernance.
L’Agilité permet une gouvernance plus efficace que les projets traditionnels, en laissant le contrôle du périmètre, du budget et de l’agenda aux intervenants (stakeholders).
Concernant les équipes distribuées, l’étude du Dr Dobb’s rapporte le succès des projets mesuré par leurs clients :

  • équipes colocalisées : 83%
  • équipes proches (étages différents, bâtiments différents) : 72%
  • équipes distribuées (qui nécessitent l’avion) : 60%

Scott conseille donc d’éviter les équipes distribuées. Si l’on ne peut vraiment pas, il conseille d’organiser les équipes en fonction de l’architecture afin de minimiser la communication entre les différents lieux. Cela nécessite notamment un « architecture owner », responsable de l’architecture, mais qui ne reste pas dans sa tour d’ivoire comme on peut en voir sur certains projets.

L’autre conseil pour les équipes distribuées est de s’équiper de bons outils. Il présente le nouveau produit Rational Team Concert, basé sur Eclipse et la plateforme Jazz, qui facilite la collaboration de l’équipe.

Pour finir avec le futur de l’agilité, Scott reprend son analogie avec l’astronomie :

  • Avant on pensait que « tout tourne autour de la Terre ». C’est la communauté traditionnelle qui pense que « tout tourne autour de l’engineering et de la documentation ».
  • Aujourd’hui la communauté agile pense que « tout tourne autour du soleil », c’est-à-dire « autour du développeur ».
  • Demain nous verrons comme Newton que « tout tourne autour de tout ». Nous devons avoir une vision entreprise et non par silo.

Avoir une vue d’entreprise sur l’informatique est extrêmement difficile, mais nécessaire pour construire des applications de niveau entreprise et de haute qualité.

RIA

Au pied du sapin : JavaFX GA

Après presque 2 ans d’attente, JavaFX est enfin disponible en version finale. Enfin pas tout à fait : JavaFX Mobile, initialement dans le scope de cette première version, est repoussé à février 2009, et les OS Linux et Solaris ne sont pas (encore) supportés.
Cette version 1.0 tient elle malgré tout les promesses entrevues lors de la parution de la preview ?
Et bien, pas vraiment.
Les défauts rédhibitoires que nous y avions décelés sont toujours là : le seul IDE de développement disponible est Netbeans (sans même l’inclusion d’un éditeur graphique), les composants graphiques de haut niveau (hormis les portages Swing) manquent toujours à l’appel…
Qu’est ce qu’apporte vraiment cette version 1.0 ? A première vue, l’effort a été porté sur la documentation : la Javadoc a été mise à jour et est relativement complète. La galerie d’exemples et de tutoriaux ‘officielle’ a été copieusement alimentée. On regrettera cependant que cette galerie mette l’accent sur le spectaculaire, plus que sur le fonctionnel (aucun exemple d’intégration avec un back end Java ou une base de données).
Au rayon des nouveautés, on notera la présence de codecs audio et video, permettant d’intégrer facilement du contenu multimédia (par l’entremise d’un encodage en Flash).
Sur un niveau moins technique, on peut noter la présence de 2 plugins pour les produits Adobe, Photoshop et Illustrator, qui devraient faciliter les échanges entre web designers et développeurs J2EE.
A noter enfin, sur un plan plus marketing, la présence d’un émulateur mobile, qui préfigure ce que pourrait être JavaFx Mobile.
En conclusion, cette première version n’est pas vraiment au niveau des attentes qu’elle a suscitées. Cependant, nous restons une fois de plus sur l’agréable impression de pouvoir faire de jolies interfaces en Java.
A notre sens, la prochaine étape déterminante sera l’adhésion de la communauté à cette nouvelle technologie, qui devrait permettre l’émergence de composants de haut niveau (un travail auquel s’est déjà attelé James Weaver), en espérant que ceux ci seront incorporés dans les prochaines versions.
Reste que le produit de Sun est en retard par rapport à ses concurrents, et que la volonté de couvrir toutes les plateformes à la fois (desktop, mobile, télévision) pourrait se révéler à court terme un handicap pour cette technologie émergente.
Alors, Sun s’est il fourvoyé avec Fx, comme le pense Tim Bray ? Seules les futures versions nous le diront.

Silverlight sous Linux

La version 1.0 beta de Moonlight est disponible.
Moonlight est une implémentation open source de Silverlight pour Linux / Unix, portée par Novell et développée par le projet Mono. Cette béta est disponible pour un grand nombre d’environnements (Ubuntu, Suze, Fedora…) en 32 ou 64 bits.
Elle permet l’exécution de scripts Silverlight 1.0, la diffusion de contenu (MediaPack 1.0)…
Elle sera disponible en version finale le 20 janvier 2009.
Pour pouvoir profiter au maximum de Silverlight sous Linux, il faudra attendre la version 2 de Moonlight (support complet de Silverlight 2.0 et des dernières innovations Microsoft). Elle devrait être disponible en béta courant avril, puis en finale durant septembre 2009.
La roadmap complète est exposée sur le site du projet Mono.

Le coin de la technique

Nouveau mode hosté pour GWT 2.0

Les nouveautés des prochaines versions 1.6 et 2.0 de GWT continuent d’affluer.
Ainsi, après la possibilité de pouvoir fragmenter son application, c’est une fois de plus chez Sami Jaber que l’on apprend en vidéo l’une des grosses fonctionnalités à venir : le nouveau « Hosted Mode » de GWT 2.0.
Alors qu’aujourd’hui ce mode se lance dans une nouvelle fenêtre de votre IDE, demain vous pourrez le lancer directement dans votre navigateur (en tout cas ceux gérés pour l’instant).
Le mode reste toutefois celui que l’on connaît à savoir que GWT simule un site compilé (moteur de rendu) i.e. qu’aucun Javascript n’est généré. L’intégration avec des plugins comme Firebug sera donc limitée… Le mode Debug et le rafraichissement du navigateur suite à modification du code GWT sont bien sûr conservés.

Commentaire

3 réponses pour " Revue de Presse Xebia "

  1. Published by , Il y a 14 ans

    Arrivée de Spring EL utilisable dans n’importe quel composant Spring (y compris ‘core’). Vous pouvez par exemple utiliser la syntaxe #{ … } lors de la définition de vos beans (XML et/ou annotations) pour permettre de définir au runtime la valeur de certaines propriétés de vos beans prototypes.

    Tu as eu l’occasion de tester cette fonctionnalité par toi même? Pour ma part j’ai pas réussi à mettre en place la « résolution au runtime ». Aussi bien pour un bean prototype que singleton.

  2. Published by , Il y a 14 ans

    Bonjour Gildas,

    J’ai commencé par lancer quelques tests unitaires fournis par Spring comme org.springframework.expression.common.CompositeStringExpressionTests (notez d’ailleurs à ce propos que la migration vers JUnit 4 n’est pas encore effective)

    Puis je me suis pour le moment contenté de faire un test simple, aucun problème particulier noté :
    * création d’un bean1 avec une propriété
    * création d’un bean2 avec une propriété (scope singleton ou prototype, peu importe)
    * chargement du bean2 via un ApplicationContext, la valeur de la propriété value2 est bien TestEL

    La seule « difficulté » que j’ai rencontrée : la version d’antlr à tirer. La version téléchargeable sur le site officiel n’a pas fonctionné, j’ai dû télécharger cette version sur le repository SpringSource.

    N’hésite pas à m’envoyer un email au besoin.
    Erwan (Xebia)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.