Pour savoir où on va, il faut savoir d'où l'on vient

Vous avez
une question ?
Un projet ?

Contactez nous !
 

Contactez-nous

Vous avez une question ? un projet ? 
Vous souhaitez plus d'informations sur un produit ? sur notre offre ? 
Contactez-nous, on vous répond sous 4H.

retour

MOM JBoss Messaging (JBM)

MOM JBoss Messaging (JBM)

Présentation

 

La filiation à RedHat lui confère une place particulière parmi les middlewares d'entreprise Open Source, et d'autant plus qu'il est sous licence LGPL.

JBM a été réalisé, comme son nom l'indique, par la communauté JBoss et RedHat, leader mondial dans le domaine de l'open source.

Caractéristiques principales du produit

Langages d'implémentation

Récupéré à partir du site Internet de JBM, le code source est assez bien organisé. Un système de compilation automatique du type MAVEN est présent.

Quant aux sources, elles ne sont pas toujours bien formatées. La documentation du code est à revoir sérieusement et certaines méthodes sont vraiment trop volumineuses.

Langages pris en charge

Le seul langage de programmation pris en charge par JBoss est le Java, et ceci par l'intermédiaire de l'API JMS.

Des quatre MOMs de notre sélection, il est celui qui présente le moins de connectivité.

Protocoles pris en charge

JBM ne gère qu’un seul protocole externe dont la documentation est introuvable. Toutefois, la r o admap du projet indique que l’outil compte implémenter STOMP.

La version 2 de JBM, en version Beta implémente déjà le protocole AMQP.

Des quatre MOMs comparés ici, il est aussi le plus pauvre dans cette catégorie.

Interfaces prises en charge

Selon les classes d'interface :

  • Messagerie
  • JMS 1.1 : depuis du Java
  • JCA 1.5 : depuis du Java
  • Administration, Monitoring et configuration
  • JAAS : depuis du Java
  • JMX : depuis du Java

Rien de bien nouveau.

Gestion des messages

JBM gère la priorité des messages. JBM réorganise l'ordre de délivrance des messages suivant leur priorité.

JBM ne gère ni la hiérarchie des messages ni le concept de groupe de messages.

Traitement des messages

Les modifications à la volée des messages ne sont pas prises en compte par la solution de JBoss.

Il est possible, de programmer l'envoi de message, c'est-à-dire de définir une propriété particulière qui ordonne au broker de rendre un message disponible à une heure donnée.

Gestion des transactions

Le comportement de la DMQ est standard.

La gestion interne des transactions n'est pas précisée.

Persistancedes messages

JBM support plusieurs médias de stockage : Hypersonic, Oracle, Sybase, MS SQL Server, Postgres et MySQL. Ils sont tous compatibles JDBC.
Par défaut, c’est Hypersonic qui est choisi. Une note de JBoss fait remarquer que Hypersonic ne devrait pas être utilisé en production à cause :

de sa gestion limitée des transactions.

de son mauvais comportement à forte charge.

Un exemple de configuration pour Hypersonic est :

 

La partie du milieu remplacée par des « . . . » représente la définition des commandes SQL correspondant aux actions possibles du broker. À des fins d’optimisation par exemple, il est possible de personnaliser très finement la gestion de la persistance par le MOM.

Répartition de charge et haute disponibilité multi-site

JBoss garantit l'entière compatibilité avec une architecture en cluster aussi bien pour le mode point à point que le mode par abonnement.

Les messages peuvent être amenés à être routés de cluster en cluster considérant la charge de chaque machine ainsi que leur performance : c’est le concept de « Store and Forward ».

Il est aussi possible de partager une même base de données.

partage_BD

JBM gère aussi la découverte automatique de brokers par multicast. La réplication en maitre esclave est aussi gérée.

image1

Faisons une petite note sur la synchronisation des différents « stores » (média de stockage). Une gestion synchrone implique la mise en attente du client JMS jusqu'à confirmation de l'écriture sur les deux brokers. Suivant le nombre et la taille des messages, ce processus peut prendre plus ou moins de temps. À l'inverse une gestion asynchrone signifie que le broker maître réagira comme s'il n'y avait pas de broker esclave et rendra la main au client dès la prise en compte du message.

Interopérabilité avec d'autres MOMs

La configuration de JBM est fournie avec une passerelle JMS. Le site de JBoss nous propose d'ailleurs un tutoriel portant sur la configuration d'une passerelle entre JBoss MQ et JBM (JBoss Messaging), car l’un et l’autre n’utilisent pas le même protocole interne.

Le protocole interne n'est pas ouvert, limitant l'accès direct à la plateforme MOM.

Gestion de la sécurité et d'un annuaire

Selon les spécifications de JBoss, la sécurité est gérée par JBM à l'aide de fichiers de configuration. Par ailleurs, elle peut être personnalisée par JAAS.

La gestion de la sécurité est réalisée par utilisateurs et par rôles. Par défaut, les informations d'authentification sont issues de fichiers XML. Le MOM a aussi la possibilité de se connecter à un LDAP.

Le chiffrement des données à l'aide de SSL / TLS est aussi supporté.

Administration

La plateforme JBM implémente JMX. Cependant, aucune interface graphique n'est fournie.

JBM a introduit quelques spécificités au niveau de l’implémentation du JMS. Sans dénigrer la spécification 1.1, JBM rajoute quelques sucreries. Par exemple, on peut maintenant récupérer les statistiques sur la plateforme sans passer par JMX. (Méthode intitulée « Message Counter »). Rappelons néanmoins que l'utilisation de ces fonctions supprime un avantage majeur de JMS, la portabilité du code. À utiliser avec modération.

Configuration et déploiement

L'utilisation de JBM à travers JBoss Application Server (JAS) est très aisée. Il suffit de les télécharger (JAS + JBM), de configurer les variables d'environnement et d'exécuter un script de configuration situé dans le dossier JBM.

Notons toutefois que l'installation de JBM en « standalone » est une opération assez lourde et n'est vraiment pas dans « l’esprit JBoss ». On comprend, après utilisation de l'outil qu'il est vraiment intégré à JAS. Par exemple, les fichiers de configuration, sous forme de XML, sont complètement intégrés à JBA.

Une trentaine d'exemples sont fournis. Ils traitent entre autres de : Passerelle JMS, Clustering, Web Service, Reprise sur erreur, le chiffrement des transmissions.

Détail sur le projet

Qualité du Projet

Malgré sa jeunesse, la communauté de développeur JBM dispose d’un SVN, un forum et un service de suivi de tickets d’incidents.

Les utilisateurs ont, quant à eux : un Wiki et un forum. Ils sont souvent indisponibles.

(HTTP://www.jboss.org/jbossmessaging/)Le site officiel de JBM possède 17 Pages

Son page Rank est de 6.

Un support technique est disponible via mail, chat (IRC) et forum. Aucun support commercial n'est disponible pour ce produit. Cependant, les produits JBoss intégrant JBM possèdent quant à eux un support commercial via email uniquement.

Une équipe de 4 personnes s'occupe à plein temps du projet.

Un Wiki et des documentations sont fournis par la communauté JBoss .

Références

Le site internet de JBoss présente les entreprises qui ont adoptées leurs produits, qui incluent Enernoc, Scania, Iwbank, Covad, AcXium.

Autres

La version 2.0 de JBM est en préparation dans les « bunker top secret » de la communauté JBoss. Cette version apportera des nouveautés par lesquelles:

  • AMQP / STOMP
  • Conception basé sur POJO
  • Gestion de gros messages (exemple : 8 Go)
  • À partir de cette version, il s’inscrira dans la catégorie des concurrents sérieux d’Active MQ