Revue de Presse Xebia

Revue de Presse Xebia

La revue de presse hebdomadaire proposée par Xebia vous souhaite une bonne et heureuse année 2011.

Actualité éditeurs / SSII

Agilité

Le coin de la technique

Actualité éditeurs / SSII

JBoss AS 6 est disponible

Un an après la sortie de la spec finale JEE6 en simultanée avec son implémentation de référence, Glassfish V3, c’est au tour de JBoss AS (pour Application Server) de montrer le bout de son nez en version 6.
JBoss, c’est le poids lourd des serveurs JEE. Poids lourd par la part de marché, car, d’après une récente étude de ZeroTurnaround (ceux de l’excellent JRebel), il représente tout de même près du quart des déploiements de serveurs Java. Mais poids lourd aussi par ses fonctionnalités. Il implémente en effet la totalité de la spécification JEE6 en partie JEE6 dont  le « Web Profile » en totalité (pour visualiser ce que représente Web Profile, ce graphique sur le site de Caucho est représentatif). Nous ne reviendrons pas sur JEE6 déjà largement évoqué ici.
Sur DZone, Mitchell Pronschinske a listé les composant remarquables. Reprenons les un par un:

  • JBoss Embedded AS, le serveur est embarquable directement depuis Maven, utile pour les tests
  • Single POM Dependency for all the AS runtime, permet comme expliqué ici de fournir une intégration facilitée aux utilisateurs de Maven. Une dépendance unique « tire » toutes les dépendances du serveur embarqué.
  • ShrinkWrap, l’API permettant d’assembler aisément des JAR, WAR ou autres EARs
  • JBoss Switchboard et JBoss-injection prennent en charge l’injection de ressources JNDI
  • HornetQ, la solution de messaging JBoss, récemment vantée pour ses performances
  • VFS 3, le système de fichier virtuel uniformise l’accès aux différentes ressources et est censé apporter une vitesse accrue pour lire depuis les fichiers jars
  • JBoss OSGi integration
  • les Servlets en version 3.0, avec notamment la configuration par annotations, la modularisation grâce aux webfragments et l’exécution asynchrone. Plus de détails sur notre blog
  • JPA 2.0, implémenté comme il se doit par Hibernate
  • RESTEasy 2.0 qui propose une implémentation de la JSR 311, JAX-RS dont le principe est évoqué sur le Touilleur Express
  • Microcontainer 2.2, un peu le coeur du systeme, qui nous est décrit dans une série de 6 articles par Ales Justin de JBoss.
  • Le déploiement de la console de management seulement à la demande pour ne pas pénaliser le temps de chargement
  • Les EJB 3.1 avec toutes les fonctionnalités apportées par la JSR 318 (Singleton Session Beans, packaging WAR, EJB lights…)
  • La stack JBossWS en versions CXF/Metro/Native
  • La spécification EE 6 « Web Profile » est bien sûr de la partie, permettant des développement plus légers
  • Weld 1.1, implémentation de référence de la JSR 299 autrement connue sous le nom de Context & Dependency Injection

Au final, ce n’est bien sûr pas un serveur sorti de nulle part que JBoss nous sert là. C’est un assemblage cohérent basé sur des composants éprouvés et disponibles pour la plupart depuis un moment. Il sera donc intéressant d’observer les retours des premiers utilisateurs et voir si les prévisions de JBoss ont des chances de se réaliser.

Agilité

Comment impliquer votre client dans un projet ?

c’est la question à laquelle Vikas Hazrati répond dans cet article sur InfoQ.

Selon Vikas, les signes du manque d’engagement de la part d’un client sont :

  • peu ou pas de retours sur le travail effectué,
  • un retour sur les erreurs tardif, qui révèle généralement que le client teste ou s’intéresse au dernier moment au projet,
  • notre interlocuteur n’est pas le bon et nous ne sommes finalement pas en contact avec le client réel.

Ce manque d’implication peut provenir d’une mauvaise formation aux processus de développement agiles ou encore d’un problème de temps ou de ressource disponible. Différentes stratégies peuvent être employées afin de remédier à ce problème d’implication :

  • identifier un interlocuteur unique faisant l’interface avec les autres clients,
  • utiliser des techniques comme celle des personas afin d’améliorer la compréhension mutuelle,
  • planifier les réunions en prenant au maximum compte des contraintes de vos clients,
  • motiver votre client en notant ses efforts et en l’encourageant dans cette voie,
  • et enfin la communication avec votre client est primordiale, lui garantissant un bonne connaissance de l’actualité du projet, même en phase de développement.

L’implication des clients dans le projet est un élément important de sa réussite et elle ne doit donc pas être négligée. Rappelez-vous, la collaboration avec le client est une des quatre valeurs fondamentales du manifeste agile.

Le coin de la technique

La JSR 310 devient « Project ThreeTen »

La JSR 310, la fameuse JSR « Date and Time API » attendue comme le messie pour remplacer l’implémentation défaillante des dates dans le JDK n’en finit pas d’être retardée. Nous vous en parlions déjà en 2008, puis l’API fut planifiée avec des réserves pour le JDK 7… Aujourd’hui, Stephen Colebourne, le spec lead annonce sur son blog diverses informations.

  • tout d’abord, il ne semble vraiment pas satisfait de la façon dont Oracle a pris en main la communauté mais il désire tout de même continuer son travail sur l’implémentation de référence.
  • cette implémentation de référence a d’ailleurs maintenant un nom: elle est portée par le projet ThreeTen (ThreeTen, 310… vous voyez le rapport ? ;-) ).
  • la cible est maintenant Java 8 et non plus Java 7. Il va falloir patienter encore.
  • une nouvelle mailing liste, encore bien vide, est en place et un repo SVN est disponible sur Sourceforge.

Une autre particularité est aussi mentionnée et peut faire réfléchir. Stephen indique en effet se réserver la possibilité d’écrire des spécifications pour le projet ThreeTen séparées de la JSR 310. Concrètement, il parle de pouvoir fournir une terminologie commune et un comportement de plus haut niveau pour pouvoir collaborer avec d’autres langages ou librairies comme XML ou SQL. Sur le principe c’est une excellente idée: faciliter la collaboration de Java avec « l’extérieur » en prenant une base solide pour socle semble une bonne chose. Mais il ne faudrait pas que cette nouvelle perspective ne vienne retarder une fois encore le projet… Cela serait vraiment dommageable pour tous ceux qui préfèrent se reposer sur les API standard du JDK plutôt que sur une librairie tierce comme Joda Time (malgré ses qualités) et qui sont en attente de cette implémentation.

PhoneGap, une autre approche du développement d’application mobile

Aujourd’hui, dans le domaine du développement mobile, le choix se résume encore entre développer une application native ou une application Web Mobile. PhoneGap est un framework qui permet le développement d’applications mobiles multi-plateformes en combinant ces deux mondes.

L’approche retenue est de développer votre application en utilisant les technologies HTML 5 et JavaScript. L’accès aux fonctionnalités de la plateforme (système de fichiers, géolocalisation, notifications, appareil photo, accéléromètre, …) s’effectue via des APIs JavaScript. Le framework prend en charge le code de liaison nécessaire, et fournit également un modèle d’application native pour chaque plateforme. Il sert entre autre à démarrer une version embarquée du navigateur web. Le navigateur est donc utilisé comme environnement d’exécution standard. Cette approche est possible car les navigateurs des plateformes iOS, Android, BlackBerry OS et WebOS sont tous basés sur le moteur WebKit. Même si l’expérience utilisateur peut varier entre les plateformes, le résultat reste dans l’ensemble cohérent.

PhoneGap est encore en phase de développement. Les supports des plateformes iOS et Android sont les plus avancés, mais il faut y ajouter les plateformes BlackBerry OS, WebOS et Symbian. C’est, au final, une alternative intéressante au développement natif pour les plateformes mobiles. La dernière version en date (0.9.3) est sortie le 23 décembre.

Billets sur le même thème :

5 commentaires

Laisser un commentaire