Présentation de JORAM

Posté par (page perso) . Édité par Benoît Sibaud, baud123, heltem et Nÿco. Modéré par patrick_g. Licence CC by-sa
Tags : aucun
21
4
fév.
2013
Java

Un peu moins de trois mois après la sortie de sa dernière version, et à la suite de demandes de la part de la communauté DLFP, il est temps pour moi de vous présenter le logiciel développé au sein de mon entreprise : JORAM, un intergiciel à messages diffusé sous licence libre (LGPL).

Présentation

JORAM (Java Open Reliable Asynchronous Middleware) est un intergiciel à messages, ou MOM, qui implante l'API JMS (Java Message Service) et le protocole AMQP (Advanced Message queuing Protocol). Cet intergiciel est le fruit du travail de la société française ScalAgent Distributed Technologies et est distribué sous licence LGPL. JORAM est en exploitation dans de nombreux environnements opérationnels où il est utilisé de deux façons complémentaires :

  • comme un composant de messagerie asynchrone intégré dans un serveur d’applications JEE. Il est intégré en tant qu'implantation de JMS au sein du serveur d'application Java EE JOnAS. Il est également utilisé dans d'autres serveurs d'applications propriétaires ou libres, tels que WebSphere ou encore JBoss.
  • comme un système de messagerie Java autonome entre des applications développées pour des environnements variés (de J2EE à J2ME). C'est donc une alternative libre aux bus d'entreprise propriétaires, tels que MQSeries.

Pour schématiser, on pourrait dire qu'il permet de faire dans le monde Java ce que D-Bus permet de faire dans le monde Linux : il permet d'interconnecter, via des messages et de façon asynchrone, différents programmes exécutés sur une ou plusieurs machines, lesquelles pouvant être reliées par des topologies réseaux hétérogènes (LAN, WAN avec firewall, etc.), et ce, avec des fonctions de persistance qui garantissent une livraison fiable des messages. Le projet JORAM est hébergé par le consortium OW2, dédié à la promotion et à la diffusion de logiciel d'infrastructure libre dans le monde.

Historique

Initialement JORAM est le résultat d’une coopération scientifique entre ScalAgent Distributed Technologies, Bull et l’INRIA. Bien que peu connu de la communauté du logiciel libre, JORAM est disponible au téléchargement depuis mai 2000, il est intégré dans de nombreux produits et indépendamment il a été téléchargé plus de 100.000 fois. La dernière version en date est JORAM 5.8.0 (également disponible via le repository maven) et le code source de la version courante peut être récupéré sur la forge d'OW2.

Sous le capot

La mise en œuvre de JORAM s’appuie sur une technologie à base d’agents répartis qui lui confère des propriétés uniques en matière d’architecture répartie, de passage à l'échelle (ou scalabilité), de configurabilité et de résistance aux pannes. Les principales fonctions offertes par JORAM sont :

  • Conformité aux standards JMS 1.1 et AMQP v0.9.1, support du protocole STOMP pour les clients non Java.
  • Gestion de la distribution pour la répartition de charge, la scalabilité et la fiabilité, architecture maitre/esclave pour la disponibilité.
  • Bridges JMS pour l’interopérabilité avec d’autres providers JMS et des bridges AMQP.
  • Support des transactions XA et JTA, intégration aux serveurs d’applications au travers du standard JCA.
  • Support de « beans » JORAM au format Spring.
  • Fonctions de sécurité intégrées avec JAAS.
  • Fonctions de swap pour le support des gros messages.
  • Support de multiples connecteurs réseau (TCP, SSL, HTTP, etc.) permettant le fonctionnement dans de multiples environnements et au travers des firewalls.
  • Administration basée sur JMX et configuration simple en XML ou via une console Web 2.0.
  • Administration interactive en ligne de commande via des services OSGi.

Business model de la société ScalAgent DT.

Pour reprendre les propos de l'April : « Faire de l'argent avec du logiciel libre n'est pas sale, c'est même très bien, voilà ! ». Dans cet optique ScalAgent DT. propose de la formation sur JORAM ainsi qu'un paquetage de services appelé JoramMQ Entreprise, lequel contient :

  • une licence logicielle sur des outillages supplémentaires,
  • une offre de service en mode SaaS sur les services supplémentaires,
  • une offre de support et maintenance corrective et évolutive du runtime open-source et des outillages et services supplémentaires.

Il est important de noter que la solution JoramMQ Entreprise n'apporte aucune fonction supplémentaire dans l'intergiciel. Le logiciel reste donc le même pour les utilisateurs clients ou non-clients de ScalAgent DT. Ce modèle nous permet, au travers de Joram MQ Entreprise, d'apporter notre expertise pour optimiser la mise en oeuvre d'une solution JORAM.

Conclusion

Par cette dépêche, nous souhaitons faire connaître le produit libre JORAM en tant qu'exemple d'un logiciel libre français fiable et largement déployé, mais méconnu de la communauté du logiciel libre, malgré ses 12 ans d'âge. Tous les commentaires sur l'ensemble de la dépêche, sont bien entendu les bienvenus.

  • # belle dépêche!

    Posté par (page perso) . Évalué à 3.

    Est-ce qu'il y a une page avec une liste d'exemples d'utilisation de JORAM en entreprise?

    http://devnewton.bci.im

  • # Intégration

    Posté par (page perso) . Évalué à 5.

    Le mot intergiciel m'a fait mal. J'ai mis du temps avant de comprendre qu'il s'agissait de Middleware.

    Sinon, bon article. C'est vrai qu'on ne creuse pas forcément dans les différents constituants des serveurs d'application.

    Il est intégré en tant qu'implantation de JMS au sein du serveur d'application Java EE JOnAS. Il est également utilisé dans d'autres serveurs d'applications propriétaires ou libres, tels que WebSphere ou encore JBoss.

    Et ce depuis 2000 aussi ? Me servirais-je de JORAM sans m'en rendre compte au même titre que M. JOURDAIN avec la prose ?

    • [^] # Re: Intégration

      Posté par . Évalué à 3.

      Sur WAS (Websphere Application Server), comme c'est un produit IBM, l'implémentation JMS par défaut, c'est MQSeries. Pour JBoss, il y a une implémentation par défaut qui est JBoss Messaging. Mais tu dois pouvoir faire tourner JORAM à la place sans soucis particulier du fait de la compatibilité JMS 1.1.

      Par contre, quand j'utilisais JonAS (vers 2004), il me semble que c'était déjà JORAM l'implémentation par défaut. En même temps, derrière JonAS il y a l'INRIA, qui est aussi impliquée dans JORAM.

      • [^] # Re: Intégration

        Posté par (page perso) . Évalué à 1.

        Sur WAS (Websphere Application Server), comme c'est un produit IBM, l'implémentation JMS par défaut, c'est MQSeries. Pour JBoss, il y a une implémentation par défaut qui est JBoss Messaging. Mais tu dois pouvoir faire tourner JORAM à la place sans soucis particulier du fait de la compatibilité JMS 1.1.

        C'est presque ça, la compatibilité avec les différents serveurs étant assurée par le standard JCA. En gros si on a une vue en couche : on a le serveur d'application, qui se connecte avec JORAM via JCA, puis l'API JMS au dessus pour les applicatifs.

        Par contre, quand j'utilisais JonAS (vers 2004), il me semble que c'était déjà JORAM l'implémentation par défaut.

        Oui et c'est toujours le cas.

        En même temps, derrière JonAS il y a l'INRIA, qui est aussi impliquée dans JORAM.

        A l'origine JonAS et JORAM sont issus de projets collaboratifs entre l'INRIA et Bull. Aujourd'hui JonAS est supporté par Bull et JORAM par ScalAgent DT. Inria (on ne doit plus dire l'INRIA aujourd'hui) est aujourd'hui complètement en dehors de ces deux projets.

  • # JORAM dans WebSphere AS et JBoss?

    Posté par . Évalué à 2.

    Il est également utilisé dans d'autres serveurs d'applications propriétaires ou libres, tels que WebSphere ou encore JBoss.

    Parlez-vous d'un composant de messagerie ou spécifiquement de JORAM?
    Est-ce que le WebSphere embedded messaging est implémenté avec JORAM? pareil pour JBoss Messaging?
    Cela contredit ce que je lis sur le net.

    Ai-je mal compris ou bien la formulation est trompeuse?

    • [^] # Re: JORAM dans WebSphere AS et JBoss?

      Posté par (page perso) . Évalué à 1.

      Je crois que la formulation est trompeuse, on aurait pu remplacer par :

      Il peut également être utilisé dans d'autres serveurs d'applications propriétaires ou libres, tels que WebSphere ou encore JBoss, à la place des composants de messagerie utilisés par défaut, et ce, grâce à l'API JCA.

      Ce que nous voulions indiquer est le fait que nous avons déjà fait tourner JORAM au sein de WebSphere et JBoss.
      Est-ce que cela répond à votre question?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.