Bonjour Julien, pour nos lecteurs qui n'en sont pas familiers, comment présenterais-tu JBoss ?

JBoss est avant tout une implémentation open source LGPL de la spécification J2EE. JBoss a toujours été le pionnier offrant une technologie de pointe et une richesse inégalée aux développeurs. JBoss, c'est aussi un serveur utilisé en production par de nombreuses entreprises.

La version 4.0 de JBoss est en cours de développement. Y a-t-il une date prévue et quelles seront les améliorations majeures par rapport aux versions 3.xx?

Ce qui va marquer JBoss 4.0, c'est l'AOP (Aspect Oriented Programming). C'est une généralisation du concept d'interception qui a été la technologie au coeur de JBoss depuis la version 2.0 jusqu'aux versions 3.xx.
L'AOP permet d'ajouter et de gérer de manière efficace et transparente les services offerts par les EJB. Par exemple, la sécurité est prise en charge par le SecurityInterceptor. Il en est de même pour d'autres facettes : Persistance, Transactionnel et Clustering sont tous implémentés de cette façon.
Jusqu'ici dans JBoss, ceci était fait grâce aux Dynamic Proxy. C'est-à-dire qu'une interface était implémentée à la volée dans la machine virtuelle et permettait de déléguer tous les appels faits à cette interface à un seul et même objet.
Bill Burke dirige le développement du framework AOP, qui permet conceptuellement de faire la même chose, mais va beaucoup plus loin. En effet, non seulement les appels de méthodes peuvent être interceptés, mais aussi les attributs des classes. Bien sûr ceci s'applique aussi bien aux classes qu'aux interfaces et surtout tout ceci est fait de manière totalement transparente pendant l'exécution : lors du chargement de la classe, JBoss va par le biais d'un descripteur de déploiement instrumenter la classe en interceptant son bytecode et en le modifiant de manière à modifier le comportement de la classe selon les besoins définis par le développeur.
Au final, dans JBoss 4.0, les EJB ne sont qu'un cas particulier de l'application de l'AOP et les développeurs pourront en plus utiliser le framework AOP pour leurs propres besoins, simplifiant le développement d'applications complexes.
Le terme POJO, également très à la mode en ce moment, signifie "Plain Old Java Object", par opposition aux EJB qui sont plus complexes. En résumé, ça veut dire un bon vieil objet comme on en a l'habitude. JBoss 4.0 amène toute la richesse des EJB aux POJO.
En conclusion, JBoss 4.0 reste bien sur un serveur J2EE, mais apporte le concept d'AOP.

Le marché français de l'EJB démarre lentement, quel point de vue as-tu sur ce retard ?

En fait, ayant travaillé un an aux É.-U., je n'ai pas suivi le marché de l'EJB en France. À mon départ, j'ai constaté que la technologie était peu utilisée, ce qui est bien dommage. De prime abord, les EJB paraissent difficiles à implémenter et peuvent effrayer les chefs de projets ou décideurs. Je pense que c'est une erreur due à un manque de connaissances.
Par exemple, la technologie CMP 2.0 est très performante et vraiment mûre. En fait depuis le CMP 2.0, je n'ai plus écrit aucune ligne de SQL à la main, c'est tellement plus facile de laisser le travail à la couche de persistance.
De bons outils permettent de gérer efficacement un projet EJB, je pense particulièrement à Ant et Xdoclet qui rendent trivial le développement d'EJB. J'espère que le marché français va se rendre compte de la valeur ajoutée d'un conteneur EJB, surtout si celui-ci est open source et permet le déploiement d'applications J2EE à un coût zéro par CPU/machine.

Comment devient-on développeur dans l'open source chez un éditeur aussi prestigieux ?

Je voudrais d'abord dire que JBoss Group n'est pas un éditeur de logiciels. Il faut distinguer JBoss de JBoss Group. JBoss est le projet open source et JBoss Group est une entreprise qui offre des services de consulting de très grande qualité que ce soit au niveau du conteneur J2EE ou dans le logiciel de serveur d'application. JBoss c'est 78 personnes inscrites sur sourceforge et qui contribuent au développement du serveur. JBoss Group c'est une trentaine de personnes dont bon nombre sont des développeurs de JBoss.
Tout a commencé il y a un an exactement, je venais d'arriver au NIST (National Institute of Standards and Technology) et ma mission était d'assurer la persistance de documents XML au sein d'une base de données relationnelle. À partir des modules W3C Schemas il fallait construire le modèle relationnel et ensuite pouvoir y stocker des documents XML.
Pensant qu'aucune solution n'existait déjà, je me suis mis à développer un serveur « from scratch ». À cette époque j'ai commencé à farfouiller dans le code source de JBoss et me suis rendu compte que 80% de ce que je voulais faire existait déjà. Mon idée était d'utiliser les EJB comme couche de persistance et d'utiliser les Deployer comme système de déploiement des W3C Schemas XML. J'ai pu développer un tel serveur en 3 mois, en m'appuyant sur l'infrastructure déjà présente.
Au cours de ce développement, je suis tombé sur des bogues que j'ai corrigés et j'ai demandé à Scott Stark un accès au CVS pour pouvoir contribuer.
Au cours du mois de septembre, un nouveau projet naquit : développer des forums utilisant la technologie EJB et JBoss. Je me suis dit que c'était ma chance de participer plus concrètement et me suis lancé dedans. Finalement le projet n'a pas eu le succès escompté et surtout ne répondait plus aux besoins de la communauté. En effet, nous avions besoin d'une infrastructure beaucoup plus transversale que celle offerte par les forums. Le CMS Postnuke répondait à ces besoins. À la fin de l'année, une version refondue du site web sous Postnuke a vu le jour, malheureusement le projet a du être abandonné pour deux raisons : utiliser du PHP pour vendre du J2EE n'est pas une très bonne idée et les performances de Postnuke étaient très médiocres. Attention, je ne critique pas Postnuke lui-même qui est un fantastique logiciel web, mais plutôt le langage qui ne permet pas le développement d'applications scalables.
Je me suis alors vu confier la Projet "Nukes on JBoss" qui est le portage de Postnuke sur J2EE. En 9 semaines j'ai pu développer une version utilisable pour notre site web et qui tient très bien la charge (le CPU ne dépasse pas 5 % d'utilisation). Aujourd'hui le core de Nukes est développé et nous avons commencé le portage des modules importants de Postnuke, en effet la richesse de Postnuke, ce sont ses modules. Nous cherchons activement de nouveaux contributeurs pour porter les modules.

Merci Julien.

Questions : Sébastien Meric. Propos recueillis par Christophe Ludet