Apache ServiceMix : un ESB ouvert

Une agrégation de technologies robustes et packagés de sorte à créer un ESB de premier choix pour un grand nombre d’usages.
Pierre LISERONMis à jour le 9 Juin 2015
apache-service-mix.jpg

Dans un SILe SI désigne le système d'informations d'une organisation. moderne, posséder un ESB de qualité est une obligation pour réussir sa transformation SOA. Seul bémol, face à la multitude de choix des ESB et les mauvaises expériences du passé, se lancer dans un tel projet peut paraître difficile. Heureusement, nous avons déniché la perle rare : Apache ServiceMix ! 

apache-service-mix-1024x480

Les ESB : une image jusqu’à présent plutôt négative

Suite aux échecs retentissants de nombreux projets au sein des entreprises, les premières versions des logiciels d’EAI / ESB ne jouissent pas forcement d’une bonne réputation dans l’entreprise.

Souvent très lourd et long à mettre en place, un ESB était souvent perçu comme peu agile, or, l’intérêt même d’un ESB dans une approche SOA, est d’augmenter la souplesse dans le SI. De plus, le coût de licence de ces ESB ancienne génération est souvent prohibitif.

Les ESB : un nouvel élan

Pourtant, la présence d’un ESB est capitale afin d’être en mesure de transférer, convertir, enrichir des données d’un logiciel vers un autre, au sein du SI et le tout, en temps réel.

Heureusement depuis peu, il existe de nombreux ESB open source qui permettent d’effectuer correctement ces actions et, par la même occasion, de redorer le blason des ESB. Très simples à mettre en place, ils se comportent plus comme une boite à outils technologiques qu’en véritables logiciels complexes à mettre en oeuvre.

Focus sur Apache ServiceMix

En matière d’ESB efficace, on peut prendre l’exemple d’Apache ServiceMix ou, de son équivalent, Fuse ESB. Cet ESB est, en effet, une agrégation de technologies robustes et packagés de sorte à créer un ESB de premier choix pour un grand nombre d’usages.

Apache ServiceMix : les principales technologies

Dans Apache ServiceMix (ou SMX), les principales technologies sont les suivantes:

  • Apache ActiveMQ (Gestion de messagerie Asynchrone de type JMS)
  • Apache Camel (Messaging, routing et implémentation EIP)
  • Apache CXF (Gestion des WEBSERVICE (SOAP/JSON))
  • Apache Karaf (Conteneur OSGI)
  • Activiti (gestion de BPM)

On retrouve immédiatement des noms très connus et réputés de l’univers JAVA / JEEJava Entreprise Edition, à savoir, l’excellent Apache ActiveMQ qui permet de traiter des messages JMS. Ce broker de messagerie est sans doute l’un des meilleurs broker open source.

Vient ensuite Apache Camel qui permet de manière très simple de router et de réaliser la médiation de messages. De plus, Il offre une implémentation pour l’intégralité des EIP (Entreprise Integration Pattern) sorte de référence et de bonnes pratiques pour la gestion de messages dans le SI.

On retrouve ensuite Apache CXF afin d’avoir out-of-the-box les connecteurs SOAPSOAP (Simple Object Access Protocol) est un protocole de communication. et JSON et pouvoir réaliser en deux temps trois mouvements, une connexion vers les WS du SI ou externe au SI.

Pour orchestrer tout ça, on a encore un très bon projet Apache, Karaf qui est un conteneur léger OSGI et permet de déployer les autres composants.

Enfin et non des moindres, la possibilité de rajouter directement au sein de l’ESB Apache Service Mix, Activiti. Activiti est une solution simple et performante pour faire du BPM directement depuis Apache Service Mix.

Les forces d’Apache ServiceMix

  • **Open source et robuste:**

Basée sur la communauté Apache, SMX se repose sur des technologies JAVA JEE éprouvées et stables. Les modules sont tous issues de la fondation Apache et sont utilisés depuis de nombreuses années, même indépendamment du contexte Service Mix. L’agrégation des ces technologies, est également utilisée par d’autres projets ESB comme Fuse ESB et TalendTalend est un logiciel ETL permettant de faire de l'Extract, de la Transformation et du chargement (Load) de données. ESB.

  • **Architecture modulaire SMX**

Son architecture modulaire le rend très léger et adaptable facilement aux besoins des utilisateurs. De nombreuses fonctionnalités sont intégrées, mais seules les fonctionnalités réellement utilisées sont déployées.

  • **Performance de SMX**

Sa conception, très simple, lui permet d’avoir de très bonnes performances même avec de très gros volumes d’appels. Néanmoins, SMX est plus performant pour traiter des petits messages en temps réel que pour des gros volumes. De plus, il ne consomme que peu de ressources comparé à la concurrence.

  • **La console SSH**

Apache ServiceMix offre avec Karaf, une console type SSH de qualité qui permet aux administrateurs de le configurer et de diagnostiquer facilement les problèmes.

  • **SMX en perpétuelle évolution**

Apache ServiceMix évolue rapidement et les bugs et problèmes (déjà peu nombreux) sont corrigés rapidement de version en version.

  • **SMX et les connecteurs**

Out-of-the-box, SMX via Camel offre de nombreux connecteurs pour interagir avec toutes sortes d’applications au sein du SI, essentiellement en WS (JSON et SOAP), JMSJava Messaging Service, ou fichier.

  • **Intégration facilitée avec MAVEN de SMX**

Avec SMX, il est possible d’installer directement une bundle depuis un dépôt MAVEN. En terme d’exploitation, il est particulièrement aisé de réaliser des mises à jour.

Les faiblesses d’Apache Service Mix:

En dépit d’un bon nombre d’avantages, Apache ServiceMix est comme tous les outils : il n’est pas parfait et comporte encore quelques faiblesses.

  • Une clusterisation pas toujours évidente ni fonctionnelle
  • Une documentation faible voir inexistante pour Service Mix mais très fournie sur la partie Camel
  • Une communauté grandissante mais réduite

De l’Open au coeur du SI

Choisir un ESB de type Apache Service Mix, c’est choisir de faire entrer au coeur du SI l’Open Source et s’affranchir des contraintes des éditeurs logiciels propriétaires. C’est faire le choix de l’ouverture (avec ses défauts) pour son architecture. Mais, c’est surtout, un changement de mentalité au sein de l’entreprise. Dans les projets SOA, introduire Apache Service Mix permet d’ouvrir cette boite noire qu’est souvent l’ESB, une boite qui coûte cher, à laquelle personne n’y comprend rien et qui n’atteint pas les objectifs qu’on lui à fixer.

Choisir Apache Service Mix, qui est une technologie toute simple (basée sur du JAVA), permet bien souvent de reprendre le contrôle. De plus en plus d’entreprises font confiance à Apache Service Mix pour gérer les flux au sein du SI et bien souvent, la promesse d’avoir un ESB simple et performant se révèle enfin exacte !

Si vous souhaitez en savoir plus sur Apache Service Mix.