Avertissement▲
N'étant pas un spécialiste de JBoss, cet article mériterait certainement des améliorations. Si vous avez noté des erreurs, des points à approfondir ou plus simplement, si vous souhaitez participer à la rédaction de cet article :
Contactez-moi .
Remerciements▲
Je tiens à remercier Alacazam d'avoir traqué les erreurs de cet article.
I. Présentation▲
JBoss est le serveur J2EE open source le plus populaire. Avec plus de 4 millions de téléchargements, c'est l'un des plus gros succès de SourceForge.net.
Quand on parle de JBoss, il faut bien différencier JBoss, le projet open source soutenu par environ 100 développeurs et JBoss Group qui est une entreprise qui offre des services de grande qualité autour du projet JBoss, comme la documentation, formation, support…
De nombreuses personnes de cette entreprise travaillent sur le projet open source. Marc Fleury (né à Paris) est le très médiatique initiateur de ce projet, l'équipe est également composée de Gavin King, le fondateur du projet Hibernate.
JBoss est un serveur très léger implémentant l'ensemble des spécifications J2EE.
II. Description▲
II-A. Certification J2EE▲
JBoss n'est pas certifié J2EE. Ils sont en cours de certification pour obtenir la licence J2EE 1.4. JBoss Group teste actuellement (avril 2004) son produit avec la suite de tests de compatibilité de Sun. Pour plus d'information, vous pouvez lire le communiqué de presse de JBoss Group.
II-B. Plateformes supportées▲
JBoss peut fonctionner sur Unix (posix) et Windows, mais son développement 100 % Java le rend complètement portable, il doit donc fonctionner sur toutes les plateformes suivantes :
- Windows ;
- Linux ;
- Solaris ;
- HP-UX ;
- IBM AIX ;
- Mac OS X.
II-C. Licence / Prix▲
JBoss est sous licence LGPL il est gratuit.
II-D. Installation▲
On ne peut pas vraiment parler d'installation, la procédure est simplifiée au maximum : il faut extraire l'archive (.zip ou tar.gz) dans le répertoire de destination. Un JDK doit être accessible sur la machine, la variable JAVA_HOME positionnée.
L'installation inclut toutes les briques nécessaires : Tomcat 4.1.29, le moteur EJB, le moteur CMP, JCA, IIOP, le Clustering, JTA, JMX…
II-E. Administration▲
Le lancement de JBoss se fait par la commande run de <jboss>/bin. Le produit se lance très rapidement : 14 secondes ! sur ma configuration (26 secondes en chargeant tous les services). L'arrêt se fait par un simple CTRL + C, JBoss s'arrête encore plus vite qu'il est venu.
Le déploiement est lui aussi très simple et très réussi, il nécessite juste la copie de l'archive dans le répertoire « deploy », JBoss charge automatiquement le module J2EE à chaud. Cette technique fonctionne également pour le redéploiement et la suppression d'un module.
Une console web http://http://localhost:8080/web-console permet de suivre à distance les informations sur les serveurs : statistiques, modules déployés, services démarrés… Les modules JMX peuvent être pilotés par la console.
II-F. Configuration matérielle▲
JBoss n'est pas exigeant sur la configuration machine, les recommandations minimales :
- Processeur : PIII 600Mhz, SPARC 440Mhz, PA-RISC 100Mhz, RS/6000 200Mhz ;
- Mémoire : 64Mo ;
- Disque : 100Mo.
II-G. Intégration IDE▲
- Eclipse / JBoss-IDE : JBoss IDE est un plugin Eclpise supporté et recommandé par Jboss.org.
- Eclipse / Lomboz : un autre plugin pour Eclipse plus généraliste.
- Ant / XDoclet : beaucoup de développeurs JBoss utilisent Ant / XDoclet conjointement avec vi, notepad, emacs…
- JBuilder : JBuilder offre une intégration complète de JBoss, y compris les aspects spécifiques à JBoss (les .sar …).
II-H. Popularité▲
La popularité de JBoss est très importante, bien que récent par rapport aux autres produits, JBoss a su rapidement rattraper son retard de popularité.
JBoss doit en grande partie sa popularité à l'engouement des solutions libres et de son très médiatique président, Marc Fleury qui est souvent au-devant de la scène.
II-I. Documentation▲
Sauf le guide de démarrage, les documentations de JBoss écrites par JBoss Group sont payantes, c'est en partie grâce à ces revenus que le produit peut rester gratuit. 99$ pour une personne ou 500$ pour un site.
II-J. Particularités▲
JBoss a de nombreuses particularités la première concerne sont architecture. JBoss possède une architecture de type microkernel, tout est développé sous forme de module JMX.
Les différents modules couvrent la norme J2EE : JBossMQ gère les messages Java (Java Messaging System), JBoss MX la messagerie électronique, JBoss TX les transactions JTA/JTS, JBoss SX la sécurité (basée sur JAAS), JBoss CX la connectivité JCA et JBossCMP la persistance CMP.
Chacun de ces modules peut être remplacé par un module au format JMX.
Trois types de configuration sont installés en standard : minumum, default et all.
Une autre particularité intéressante concerne le moteur CMP, il est bâti sur le populaire outil Hibernate. Hibernate a une très bonne réputation sur les persistances objet.
L'équipe de développement de JBoss a été très inspirée par l'AOP (Programmation par aspect) . L'AOP leur a servi à implémenter de manière transparente les services offerts par J2EE. 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.
Lors d'un chargement d'un EJB, JBoss va 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.
Un des gros avantages de cette technique : nous n'avons pas à générer les stubs/skeleton lors des déploiements, donc autant de temps de gagné.
JBoss permet finalement de faire des Webservices et du clustering.