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

SOA

Le coin de la technique

Actualité éditeurs / SSII

Amazon lance son service Elastic MapReduce

Un nouveau service, Elastic MapReduce, vient s’ajouter au catalogue Amazon. Basé sur EC2 pour la puissance de calcul et sur S3 pour le stockage, ce service permet de soumettre facilement des traitements sur un large volume de données à Amazon en s’appuyant sur le framework Apache Hadoop et son modèle de programmation MapReduce.

Par rapport au service EC2, Elastic MapReduce apporte une solution Hadoop clé en main. Ainsi, il suffit de fournir au service les données en entrée via S3 et un programme de traitement écrit soit en Java en utilisant l’API Hadoop, soit dans un autre langage grâce à Hadoop Streaming (Ruby, Perl, Python, PHP, R, ou C++). Les données produites lors du traitement sont également placées sur S3. Les jobs peuvent alors être créés et contrôlés soit depuis l’interface de management d’AWS, soit depuis une API SOAP.

Répondant à un besoin typique du cloud computing, ce service permet de se lancer dans des expérimentations de traitement distribué rapidement en délestant le développeur de toute tâche de configuration système préalable. Il est par ailleurs intéressant de noter cette mise en avant du framework Hadoop, issu du projet Nutch en 2006, qui bénéficiait déjà d’un large intérêt comme en témoigne les 3 livres qui lui seront consacrés d’ici la fin de l’année chez Manning, O’Reilly et Apress.

Agilité

Kanban vs Scrum

Sur son blog, Henrik Kniberg nous propose un document au sujet de Kanban et de Scrum. Cette première version de ce document nous explique, de manière simplifiée, les différences entre les implémentations. En voici quelques unes :

  • Pas de définition de rôles dans le Kanban.
  • Les estimations sont optionnels.
  • Prioriser les items est optionnel.

Néanmoins, Kanban et Scrum présentent des similitudes :

  • ce sont des processus d’optimisations.
  • possibilité d’itérer sur plusieurs produits en même temps.

Au final, nous nous rendons compte que beaucoup de notions ne sont pas antinomiques, et selon les contextes il est intéressant de faire cohabiter certaines notions de Kanban et de Scrum.

RIA

Optimisation GWT : EntryPoint multiples

Les développeurs GWT se heurtent parfois à deux problèmes communs: un temps de compilation astronomique et des livrables très gourmands en taille.Heureusement, Matt Raible est là !

L’idée est de séparer votre application finale en plusieurs applications/écrans. Imaginons une application complète avec un seul EntryPoint qui contiendrait un front-office, un back-office et un écran standalone de statistiques : modifier le front-office impliquera la livraison de tous nos composants alors que les écrans back-office et statistiques n’ont pas été changés. Notre exemple ne contient que trois écrans différents mais selon le métier il est tout à fait possible d’envisager une dizaine d’écrans.

L’optimisation se passe sur le blog de Matt Raible avec l’article optimizing a GWT Application with Multiple EntryPoints. L’idée est simple : découper votre application en plusieurs mini-applications indépendantes (donc des écrans différents). La découpe se fera en créant plusieurs EntryPoints avec leur XML associé. On pourra alors ne compiler et ne livrer que le module souhaité (par exemple à l’aide d’un profil maven). On gagne alors en temps de compilation mais surtout en taille de livrable : ici on ne livre que ce qui doit être livré (to-be-released feature). Matt obtient alors sur son livrable un gain en taille de 56% (non négligeable).
La mise en place d’un tel découpage est simple : création d’un nouvel EntryPoint (classe java et gxt.xml), mise à jour des références dans le html et le nocache.js et enfin création d’un profil maven associé à votre entry point de release.

On peut recouper ce best-practice avec la modularisation d’une application GWT, celle-ci apportant en plus la notion de partage de module. On pourra alors créer des modules CommonsUI, StatsModule… qui seront des modules génériques pouvant être réutilisés par d’autres applications (inherit du gwt.xml). Cette pratique est très courante dans les projets GWT, mais la création d’EntryPoint de type livrable l’est déjà moins.

Avez-vous des retours concernant cette technique ?

SOA

Le calendrier se confirme pour jBPM

Le projet jBPM n’a pas connu de nouvelle version majeure depuis 2005. Pourtant ce moteur de BPM open-source très populaire fait partie de la suite JBoss Enterprise SOA Platform lancée début 2008.

La version 4 a été dévoilée en alpha en décembre dernier mais son temps de gestation particulièrement long, similaire au délai important qu’a connu JBoss AS 5, laissait planer le doute quant au calendrier. Tom Baeyens, project lead de jBPM, annonçait en début d’année l’arrivée d’une version finale pour juillet et a confirmé cette date lors d’une récente présentation au BeJUG. C’est maintenant l’équipe de JBoss Seam qui vient corroborer ce planing en annonçant l’arrivée de Seam 2.2 pour juin. Soit juste avant l’arrivée de jBPM 4 avec lequel il prévoit de s’intégrer par la suite.

Le temps de développement particulièrement long de cette nouvelle version est probablement imputable au très ambitieux module PVM (Process Virtual Machine), dont le principe a été conçu conjointement avec OW2 et son projet équivalent Bonita. Le but de PVM est d’offrir un moteur d’exécution de processus générique servant de base commune pour l’implémentation des différents langages de définition de workflow (jPDL, BPEL, Pageflow, …) supportés par jBPM. L’API de PVM reste malgré tout accessible par les développeurs souhaitant définir leurs workflows directement en Java.

Outre PVM, les autres nouveautés notables de cette version 4 seront :

  • La possibilité d’utiliser BPMN dans l’éditeur graphique sous Eclipse.
  • Une évolution de l’API de gestion des activities permettant un meilleur découplage.
  • Un schéma de base de données plus évolutif et partitionné selon les langages de définition de processus.

Rendez vous est pris pour juillet.

Le coin de la technique

Les nouveautés du futur SpringSource dm Server

SpringSource dm Server était le produit phare mis en avant lors de SpringOne Europe 2008 de juin dernier. OSGi était alors omniprésent dans les présentations. Pourtant 9 mois après sa sortie, les débouchés ne semblent toujours pas évidents. Ceci est avant tout dû à OSGi, qui reste une technologie méconnue et dont l’introduction dans le monde du Java d’entreprise pose encore quelques problèmes en raison du modèle particulier de découpage en bundles qu’il impose.

SpringSource a présenté récemment la liste des nouveautés prévisionnelles de son dm Server 2, prévu pour juillet. Visiblement conscient des problèmes que pose OSGi, SpringSource propose plusieurs améliorations :

  • Clonage de bundle : cette fonctionnalité, activée par défaut, entraînera le chargement automatique d’une seconde instance identique d’un bundle lorsqu’un conflit dû à une clause uses sera détecté. Un clone pourra également être créé manuellement pour palier au comportement de certains frameworks utilisant des variables statiques et dont le bundle se prête donc mal au partage
  • Gestion des logs : elle sera revue dans la prochaine version pour permettre une configuration centralisée par application et permettra à un bundle partagé entre plusieurs application d’écrire dans le fichier de log adapté au contexte
  • Bundlor : un outil de création automatisée de bundles, développé conjointement, et dont nous vous parlions la semaine dernière

Du reste des nouveautés, on retiendra surtout l’alignement avec les RFCs de l’OSGi Alliance, coïncidant ainsi avec le planning initialement prévu.

Spring tc Server, c’est parti … en version beta

Nous avions annoncé en Décembre 2008 le lancement de Tc Server, la version professionnelle de Tomcat par Spring Source. La version beta est désormais disponible. Pour mémoire, Tc Server apporte du support commercial, une simplification des installations, des outils de diagnostique avancé et des outils d’administration centralisés avec interface graphique et ligne de commande. Voici nos première impressions :

Aide au diagnostique

Tc Server apporte à Tomcat Standard des outils de diagnostique qui n’ont rien à envier à ceux qu’on trouve sur les gros serveurs JavaEE commerciaux. Nous retiendrons :

  • La configuration JMX dans server.xml + catalina.properties (plutôt que dans setenv.sh) qui permet de surcroît de préciser le port d’écoute pour passer les firewalls (cf Daniel Fuchs blog : Connecting Through Firewall Using JMX – Without modifying the server application)
  • La détection des requêtes HTTP lentes avec le détails des activités de Garbage Collection et d’accès Data Source (les accès web services sont prévus).
  • Un mécanisme de First Failure Data Capture (heap dump, threads dump, état des composants Tomcat) pour les requêtes HTTP en erreur.
  • La détection des requêtes SQL lentes, des deadlocks inter-threads et de durée de Garbage Collection excessive

Installation

L’installation reprend les bonnes pratiques Tomcat de séparer les binaires tomcat (CATALINA_HOME) des configurations des instances (CATALINA_BASE) et de grouper les paramètres spécifiques à chaque instance dans catalina.properties. Ce mode d’installation facilite grandement les montées de version de Tomcat ou de JVM et la gestion de plusieurs instances Tomcat voisines.

Le tuning des configurations JVM (setenv.sh) et Tomcat (server.xml) est très pédagogique.

Le script de création des instances ne prend en compte pour le moment ni l’incrément automatique des ports d’écoute (pour ne pas collisionner avec les instances voisines) ni la configuration Apache Httpd (mod_proxy_http) qui sont en amont des Tomcat.

Nous n’avons pas trouvé la commande tcadmin.sh qui permet de gérer les groupes de serveurs. La documentation semble en avance sur le produit livré ; c’est assez rare dans le monde du logiciel ;-) .

Administration et Spring AMS

Spring AMS Tc Server est une extension du socle déjà mature Spring AMS qui est lui même basé sur Hyperic. Nous noterons comme bémol qu’AMS repose sur une ancienne version d’Hyperic, qu’il n’est pas possible de déployer les plugins Spring AMS dans Hyperic et que l’inverse est certes possible mais demande un travail autant contractuel que technique d’installation. La solution la plus humble est de faire cohabiter un Spring AMS (serveur + agents) dédié aux serveurs Java EE aux côtés d’un Hyperic (serveur + agents) dédié aux autres composants à superviser.

Pour revenir sur Spring Tc Server, nous remarquerons la configuration par console graphique AMS des serveurs Tc Server avec ses judicieux conseils de paramétrages (le déploiment de configuration ne supprime pas les commentaires dans server.xml). Les alertes deadlock et temps de garbage collection excessifs sont remontés dans Spring AMS.

Au final, cette version beta est bien agréable pour les afficionados de Tomcat. La documentation est bien entamée, les fonctionnalités intéressantes et l’ensemble très pédagogique pour les connaisseurs. Ces qualités techniques se transformeront-elles en déploiement dans nos data center ? Il faudra convaincre les exploitants du bien fondé de passer d’un modèle open source gratuit à de l’open source professionel …

Commentaire

3 réponses pour " Revue de Presse Xebia "

  1. Published by , Il y a 14 ans

    Ce qui serait vraiment bien pour Spring DM Server, c’est une interface d’admin un peu plus complete, avec notament un accès au log de ce qui a pu empecher un bundle de se déployer correctement, et un accès également aux log servicability/trace. Parce que nos sysadmin grincent des dents quand on leur dit qu’on a besoin d’un accès SSH au serveur de prod…

  2. Published by , Il y a 14 ans

    A propos de Kanban et de Scrum voir aussi cet article de Karl Scotland
    http://availagility.wordpress.com/2009/02/25/an-agile-workflow/

    Il explique très justement qu’un Kanban avec cette structure
    Analysis –> Build –> Test –> Release
    …ressemble à un processus waterfall qui ne dit pas son nom !

    Les réflexions sont intéressantes, nous cherchons d’ailleurs en ce moment des idées de tableau Scrum amélioré au travail (avec Nicolas Griso)

  3. Published by , Il y a 14 ans

    J’ai traduit en français l’article de Henrik Kniberg. Vous le trouverez sur le lien suivant :
    Kanban-vs-Scrum-French.pdf

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.