mercredi 9 septembre 2009

Mule ESB 2.x est il un ESB?

NB : cet article fait partie d’une série de présentation et de tutoriaux pour démystifier Mule ESB : http://net-progress.blogspot.com/)

Mulesource vient d’annoncer une version Tomcat packagé et optimisé pour son ESB, le fameux Mule ESB. Cette annonce vient, alors que la version 3.0 de Mule ESB est en préparation et que Spring affute ses armes pour imposer Spring Integration comme un ESB.

Mais, dans ce contexte, la question qui m’est toujours posé, est la suivante : « Mule ESB 2.x est il un ESB »

Pour répondre à cette question, en 2009, année où à son début un « génie du Buzz » a prédit la mort de SOA et de toute le quincaillerie qui va avec, il faut revenir sur la définition même de ESB : qu’est ce qu’un Enterprise Service Bus.

Ce qu’est un ESB

L’ESB (Enterprise Service Bus), un terme de plus en plus utilisé dans le monde des S.I. (Système d’information),

clip_image001

Selon google Trends, les recherches sur le Enterprise Service Bus est en chute libre!

ESB désigne tout et n’importe.

Un mot marketé par les grands fournisseurs pour vendre la « plomberie » nécessaire pour intégrer un S.I. (Système d’information), après les échecs successifs de dizaines de projet EAI à atteindre leurs objectifs de fluidifier le S.I. (Système d’information). Ces grands fournisseurs vendaient des EAI comme le miracle d’intégration par la souris : il suffit d’utiliser l’éditeur, le designer, le mappeur et voilà votre S.I. (Système d’information) est « Agile ».

Il fallait un autre nom, l’outil EAI est mort, vive l’ESB.

Et on continue à faire les mêmes erreurs …

L’ESB est souvent associé à SOA (Service Oriented Architecture), pas toujours pour les mêmes raisons, mais souvent d’un façon abusive.

Un projet SOA est souvent assimilé à l’acquisition d’une infrastructure d’intégration, labellisé par le fournisseur ESB.

Comment faire pour que des programmes, des applications et des systèmes séparés puissant collaborer ensemble sans les remettre à plat : l’intégration d’application d’entreprise avec des ESB

L’usage d’un EBS n’est pas nécessaire, mais facilite bien les choses

Rôle d’un ESB

L’ESB (Enterprise Service Bus) est souvent utilisé pour designer l'infrastructure informatique supportant une architecture SOA et l’intégration d’application d’entreprise (EAI), afin de réaliser, simplement, par configuration les fonctions suivantes :

· Routage

· Transformation de Message

· Enrichissement de Message

· Transformation entre Protocole de Transport

· Mapping entre services

· Traitement des Messages

· Chorégraphie entre processus

· Orchestration entre service pour créer un Processus

· Gestion de Transaction

· Sécurité

Pour simplifier, les outils EAI des années 90 avaient les mêmes objectifs, sauf qu’ils était basés sur des protococcales standards et fermé. L’ESB leurs emboitent le pas des EAI, mais en proposant des connecteurs standards et en se basant sur des normes libres.

Ceci explique la montée en puissance des ESB open sources et la presque absence d’EAI open source

L’open source prolifère, et s’impose, lorsque les protocoles sont libres d’usage, et lorsque la concurrence n’est pas biaisée.

En assurant la connexion et la médiation de l'ensemble des applications et services de l’entreprise, l’ESB facilite l’intégration au sein du SI (Systèmpe d’information) et prépare le terrain pour le suivi et le monitoring (BAM Business Activity Monitoring et SAM Service Activity Monitoring).

Dans le cas où la démarche suivi pour définir les points d’intégration est basée sur une approche SOA, le BUS d’entreprise, ESB est au service de SOA.

Mais lorsque la démarche est hasardeuse et de type Spaghetti Oriented Architectre, l’ESB est au service du principe GIGO (Gabrage In Garbage Out)

L’ESB est important dans la mise en œuvre d’une démarche SOA qu’elle soit de façade ou de fond, qu »elle soit ponctuelle ou durable.

Ce constat a fait du tord à SOA, il a été interprété au premier degré : « il faut acquérir un ESB commerciale pour faire du SOA »

NON, pas forcément

Et surtout pas au début, lors des POCs et des projets Pilotes.

Ce qui rend SOA puissant comme démarche, c’est l’implication des métiers et l’approche service (métier) et ce n’est pas l’achat d’un outil (même s’il s’appelle ESB ).

C’est de là que vient « l’intérêt » porté à un ESB open source, comme MULE ESB

Mule ESB est il un ESB

Dans la définition commune de l’ESB : on peut dire oui

Mule ESB répond à la définition communément utilisé pour ESB, son point faible (qui est celui de la majorité des outils open source) c’est la faiblesse des outils graphiques et l’omiprésence des fichiers XML.

A propos du XML de configuration, la version 2.x, a réussi l’arrimage à la config Spring et a capté beaucoup d’adepte du Ioc favori de la communauté java EE.

Mais Mule est plus qu’un ESB

Mule peut jouer pleinement son rôle indépendamment de SOA

Comme tout ESB, utiliser Mule ne garantie pas que la démarche est bien SOA.

Le point fort de Mule ESB est son architecture interne, basée sur l’approche SEDA (Staged Event-Driven Architecture). Mule peut envoyer et recevoir des messages en utilisant les modèles : asynchrone, synchrone et requête/réponse.

Mule fournit un container de services qui peuvent être routés via différents transports tels que JMS, SMTP, JDBC, TCP, http, fichier...

Ainsi, l’usage de Mule comme outil d’intégration peut être aussi envisagé, indépendamment de l’approche SOA.

Mule peut être aussi l’infrastructure de base pour la mise en place d’une approche CEP (Complexe Event Processing)

La concurrence open source

Les ESB doivent par exemple proposer des solutions pour les standards suivants :

EJB; E-mail; File; FTP; HTTP; IMAP; JDBC; JMS; POP3; Quartz; RMI; Servlet; SMTP; SOAP; SSL; Stream; TCP; UDP; WSDL; XMPP

Les ESB open Source

Les concurrents open source de Mule ESB:

· FUSE ESB acheté par Progress Software ( après son acquisition par IONA) ESB basé sur Apache ServiceMix & celtix

· Apache ServiceMix : ESB implémentant le standard JBI

· PEtALS ESB implemantant le standard JBI du consortium OW2 (exe ObjectWeb)

· Sopera (Eclipse SOA) : le projet officeille de la foindation Eclipse. Un projet à suivre ! il s’agit d’une nouvelle initiative pour créer un écosystème SOA autour d’Eclipse : ESB, outils, registry, BAM , SAM, intégration de données ; gestion …

· JBoss ESB : redHAT en réponse à Microsoft ou IBM … se doit d’avoir une ESB

· Sun OpenESB ESB implémentant le standard JBI offert par (mais va t il rester en vie?)

· WSO2 ESB ESB du consortium WS02, base sur Apache Synapse

· ChainBuilder ESB ESB implémentant le standard JBI

· Jeeesb un ESB hébergé par java.net

Autres usages possible pour Mule

Mule est souvent utilisée comme l’infrastructure de base pour la mise en place d’une approche EDA (Event Driven Architecure).

Mule peut être aussi l’infrastructure de base pour la mise en place d’une approche CEP (Complexe Event Processing)

Mais ceci est un autre sujet

1 commentaires :

Mejdi a dit…

Bonjour,
Merci pour les explications, je vous propose une question basique :
Vous êtes bien intéressé par Mule comme ESB open source, sur quelles critères vous êtes basé du choisir Mule comme le meilleur Bus, Merci de me donner votre propre comparaison.
Merci

Enregistrer un commentaire

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.