You are on page 1of 10

Introduction sur les ESB dans le

domaine du dveloppement web

Par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

Date de publication : 24 janvier 2014

Dmonstration de l'utilisation d'un ESB (Enterprise Service Bus) dans le cadre de projets
numriques comme la ralisation d'une plateforme ou d'un cosystme web.

Tout au long de cette publication nous limiterons le primtre l'utilisation d'un ESB
(Enterprise Service Bus) dans le cadre de projets numriques comme par exemple la
ralisation d'une plateforme ou d'un cosystme web. Comme suite cette introduction,
retrouvez le tutoriel qui dtaillera un exemple concret d'utilisation dans un cosystme
entreprise.

Cet article est fourni par les quipes de DigitasLBi.

N'hsitez pas commenter cet article !

En complment sur Developpez.com


Tutoriel Mule ESB et Application SOA SOAT/REST
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

I - Introduction..............................................................................................................................................................3
II - volution de l'architecture de donnes..................................................................................................................3
III - Problmatiques lies aux architectures de donnes actuelles.............................................................................5
IV - Avantages d'une architecture utilisant un ESB.................................................................................................... 5
V - Exemple du processus de connexion avec un nouveau service externe............................................................. 7
VI - Prsentation de Mule ESB................................................................................................................................... 8
VII - Conclusion......................................................................................................................................................... 10
VIII - Remerciements Developpez.............................................................................................................................10

-2-
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

I - Introduction

Tout au long de cette publication, nous limiterons le primtre l'utilisation d'un ESB (Enterprise Service Bus) dans
le cadre de projets numriques comme la ralisation d'une plateforme ou d'un cosystme web. Nous n'voquerons
pas son utilisation au sein d'un SI complet d'une entreprise mme si certains concepts sont similaires lorsqu'il s'agit
de la gestion des donnes au sein d'un environnement informatique comportant un nombre important d'applications
ayant un fort taux de couplage entre elles.

Tout d'abord, nous allons parler de l'volution de l'architecture de donnes d'une plateforme web travers le temps.
L'architecture de donnes tant un ensemble de rgles qui dterminent toutes les tapes de la vie d'une donne
depuis sa rcupration jusqu'au stockage ainsi que son affichage ou son utilisation.

Dans un second temps nous dtaillerons les diffrentes problmatiques lies aux architectures de donnes actuelles.

Ensuite nous nous prsenterons le rle d'un ESB, son fonctionnement ainsi que ses avantages pour rpondre aux
problmatiques que nous aurons nonces dans la section prcdente.

Avant de finir nous prsenterons l'ESB dvelopp par MuleSoft nomm Mule ESB.

Pour finir, mon collgue dans une autre publication ralisera une srie de tutoriels sur la ralisation d'applications
utilisant mule ESB.

II - volution de l'architecture de donnes

Faisons un petit saut en arrire, lorsque l'architecture de donnes d'un site web standard ressemblait peu de choses
prs au schma ci-dessous.

1. Architecture de donnes sur un site web classique

cette poque l'architecture de donnes pour un site web tait simple, les seuls flux de donnes tant :

les interactions avec les bases de donnes ;


les interactions avec le systme de fichiers ;
les donnes clients, fournisseurs ou partenaires saisies via des formulaires de manire manuelle.

-3-
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

Les sites pouvaient donc fonctionner de manire autonome et ne dpendaient pas de donnes tierces ou de services
externes, car le besoin n'existait pas l'poque.

De nos jours, nous dveloppons des plateformes, voire des cosystmes web. Le besoin a donc volu et les
interactions avec les fournisseurs ou partenaires se font de plus en plus en temps rel (via des web services par
exemple). Le nombre de connexions avec des services diffrents ne cesse de crotre, l'architecture de donnes
volue et peut dsormais s'avrer complexe comme nous le prsente le schma suivant.

2. Architecture de donnes sur une plateforme web

Prenons par exemple la plateforme web d'une grande marque dont le but est de prsenter ses produits. Le
dveloppement est effectu par une agence web (reprsente en jaune sur le schma ci-dessus) dont nous prendrons
le point de vue pour la suite de l'explication. La plateforme devra tre localise pour un grand nombre de pays.

Le dveloppement de certaines parties spcifiques de cette plateforme est gr par des partenaires (reprsents
en vert) tels que :

les pages externes concernant les points de vente et leur golocalisation (via une redirection invisible vers un
autre domaine ou serveur) ;
la gestion, en SAAS, des commentaires utilisateurs et leur modration (via une inclusion JavaScript) ;
la rcupration et l'uniformisation des donnes clients pays en une base unique (base de donnes centrale).

Le client (reprsent en bleu) dispose dj d'une base de donnes utilisateur, ainsi que d'une autre plateforme web.
Les deux plateformes vont avoir des interactions (change de donnes) avec la nouvelle plateforme.

Sans oublier les rseaux sociaux (reprsents en violet) dont l'interaction peut tre non ngligeable lorsque l'on parle
de rseaux sociaux diffrents par pays. Par exemple la Russie ou la Chine n'utilisent pas Facebook, mais Vkontakte
ou encore RenRen.

-4-
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

Ceci tant l'architecture de dpart, il ne faut pas oublier que ce type de plateforme est en constante volution et les
besoins de connexion avec de nouveaux services sont frquents. Par exemple une volont de la part du client de
rester innovant ou bien la vitesse d'apparition des rseaux sociaux.

III - Problmatiques lies aux architectures de donnes actuelles

Comme nous avons pu le voir dans la section prcdente, suite l'augmentation croissante du nombre d'interactions
en tout genre, de nombreuses problmatiques voient le jour :

l'augmentation exponentielle de la complexit

En fonction du nombre d'interactions, la complexit lie la maintenance et l'volution augmente exponentiellement.


C'est une problmatique importante pour les entreprises s'appuyant sur un nombre croissant de connexions avec
des partenaires comme une partie de leur business model . Dans le domaine du numrique, l'volution d'une
plateforme web est galement soumise ce genre de problmatique ;

la multiplication des points d'erreur

Peu importe le type d'architecture, avec l'augmentation du nombre d'interactions, le nombre de points d'erreurs
possibles augmente considrablement. Votre gestion d'erreurs sera spcifique chaque interaction entre votre
connecteur et le service externe. La mise en place de stratgie d'erreurs commune devient alors assez complique ;

perte de modularit

Les architectures n'utilisant pas d'ESB en leur sein prsentent un fort taux de couplage entre les diffrentes briques
applicatives de la plateforme. Lors de l'ajout d'une nouvelle brique, celle-ci doit tre lie toutes les autres en utilisant
de nouvelles connexions ayant un fort taux de couplage. L'intgration avec de nouveaux partenaires prend alors des
semaines au lieu de jours et peut ne pas tre faite du tout.

IV - Avantages d'une architecture utilisant un ESB

Le terme Bus de Enterprise Service Bus est une analogie du Bus interne d'un ordinateur sur lequel sont
branchs le CPU, la RAM et les autres cartes. Sauf qu' la place d'avoir des composants, nous avons un client et
des services.

En termes d'architecture, nous pouvons le comparer une configuration rseau nomm Topologie en bus qui
est en soi l'organisation la plus simple d'un rseau dans lequel tous les ordinateurs sont relis une mme ligne
de transmission.

-5-
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

3. Architecture de donnes utilisant un ESB

Le schma ci-dessus est le mme que le 2, sauf qu'il utilise un ESB au sein de son architecture de donnes. Comme
vous pouvez le voir, dsormais tous les composants externes la plateforme sont raccords sur l'ESB, qui expose
ensuite des services destination de la plateforme (via des API internes par exemple).

Votre ESB aura plusieurs rles jouer sur les donnes :

transformation ;
vrification ;
routage ;
agrgation.

C'est un point de passage central pour vos donnes qui vous permet d'en changer le format (XML, JSON, DTO),
de vrifier leur validit, de les agrger avec des donnes supplmentaires et enfin de les rendre disponibles ou de
les router vers un service externe.

Le format de dialogue entre la plateforme web et l'ESB peut tre standardis afin que tous les services communiquent
de la mme manire avec les diffrentes briques de la plateforme.

Faisons maintenant un point sur les problmatiques nonces dans la section prcdente.

L'augmentation exponentielle de la complexit

La complexit ne disparat pas pour autant avec une architecture incluant un ESB. Elle est dplace au niveau de
l'ESB lui-mme et n'est donc plus disperse travers l'ensemble de la plateforme web. La complexit n'augmente
plus exponentiellement pour chaque composant venant communiquer avec l'ESB, ce qui est dj en soi un avantage
considrable.

La multiplication des points d'erreurs

-6-
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

La gestion d'erreurs est et sera toujours un point essentiel de tout projet. Dans le cadre d'une architecture utilisant
un ESB, la gestion d'erreurs et le monitoring se fait en un point unique, ce qui procure un avantage non ngligeable.

Cela facilite la mise en place d'une stratgie d'erreurs commune l'ensemble de la gestion des donnes. Le
monitoring de vos diffrents connecteurs vers des composants externes se fait aussi au niveau de l'ESB, ce qui vous
permet d'avoir des mtriques sur le taux d'erreur de vos connecteurs afin de pouvoir, le cas chant, effectuer une
revue de code pour en amliorer la stabilit.

L'ESB vous permet galement de grer les interactions de manire transactionnelle. En effet, si une erreur est releve
par un des lments de la chane, on peut alors effectuer des rollback ce qui prsente un avantage fort apprciable.

-Perte de modularit

Dans un cadre d'entreprise, le plus souvent l'architecture mise en place est pense de manire modulaire, mais avec
le temps et l'ajout continu de nouveaux composants la modularit de votre architecture peut diminuer pour devenir
une architecture dite plat de spaghettis , car vos diffrents composants deviennent dpendants entre eux et les
connexions trop fortement couples.

L'utilisation d'un ESB dans une architecture de donnes permet de garder toujours le mme niveau de modularit
quant l'ajout de nouveaux composants externes ncessaires la plateforme web.

V - Exemple du processus de connexion avec un nouveau service externe

Ce scnario est en partie gnrique quant l'ajout d'une nouvelle interaction entre une plateforme web et un service
externe.

Besoin : le client veut ajouter un nouveau rseau social sur sa plateforme.

4. Schma de connexion avec un nouveau service externe

-7-
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

1 Nous allons crer une application ayant le rle de connecteur vers le nouveau rseau social. Cette
application sera notre lien avec l'API du nouveau rseau social.
De par ce fait, on minimise l'adhrence de notre code celui du rseau social. Si son API volue, seulement le
connecteur sera amen tre modifi. Il hbergera donc aussi le code mtier (vrification, agrgation, routage,
transformation) afin de limiter le primtre de toutes les ventuelles modifications fonctionnelles.
2 Une seconde application que nous allons appeler faade ou interface contiendra les signatures des
diffrentes mthodes et en fera l'exposition vers notre plateforme. Elle peut galement servir certaines
vrifications prliminaires des donnes. La communication entre cette application et le connecteur peut se
faire de diffrents moyens comme JMS (Java Messaging Service).

Une telle architecture vous permet d'assurer une continuit de service mme durant les maintenances ou les
volutions. Vous pouvez par exemple dployer une nouvelle version d'un connecteur et le tester en incrmentant
la version au niveau de l'URL (http://api.com/2.0/facade) tout en gardant l'ancien connecteur fonctionnel (http://
api.com/1.0/facade).

VI - Prsentation de Mule ESB

Dans cette partie, nous allons prsenter l'ESB dvelopp par Mulesoft nomm Mule ESB.

Il se dcline en deux versions, une communautaire open source et une version commerciale entreprise. La version
entreprise apporte la possibilit d'utiliser l'ETL (Extract Transform Load) nomm CloverETL ainsi que le High
Availability qui offre la possibilit de mettre en cluster plusieurs instances de Mule ESB.

Sur le march actuel un grand nombre d'ESB sont disponibles soit en open source comme Talend ESB, JBoss ESB,
Open ESB ou propritaires comme Oracle Enterprise Service Bus, WebSphere Process Server(IBM) pour ne citer
que les plus grands.

La question qui se pose alors est pourquoi avoir choisi Mule ESB ?

Mule ESB est une plateforme d'intgration lgre qui lui permet de s'intgrer parfaitement dans des projets
numriques comme le dveloppement de plateforme web. Il diffre des ESB comme ceux d'Oracle et d'IBM qui sont
eux plus destins tre intgrs dans des SI et proposent des environnements complets depuis le dpt du code
jusqu'au dploiement. Le prix de la licence pour la version entreprise est galement plus abordable du ct de Mule
ESB.

Il propose galement son propre IDE nomm Mule Studio qui est une surcouche de l'IDE Eclipse. Une partie
graphique a notamment t ajoute afin de faciliter la cration d'applications. De nombreux connecteurs sont
proposs par l'diteur ainsi que par la communaut et vous permettant de faciliter l'intgration avec un panel de
services connus tels que Sharepoint, Salesforces, LDAP, Facebook, Twitter

-8-
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

5. Capture d'cran de Mule Studio

Une console d'administration nomme MMC (Mule Management Console) est galement disponible. Elle a pour
vocation d'tre installe sur un serveur Tomcat et vous permet d'administrer vos serveurs mules ESB ainsi que les
applications dployes sur ceux-ci.

Celle-ci vous propose un panel de fonctionnalits telles que :

dploiement d'applications sur votre serveur ESB ;


des mtriques sur le statut de votre serveur et de vos applications ;
gestion d'alertes sur un panel de condition (statut serveur, erreur application) ;
arrt/dmarrage de votre serveur ;
gestion des clusters d'instance ;
analyseur d'application (utile pour du dbogage) ;
gestion d'utilisateurs et de droits quant l'accs la console.

6. Capture d'cran de la console d'administration

-9-
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/
Introduction sur les ESB dans le domaine du dveloppement web par Maxime Nougarde : Chef de Projet Technique JAVA chez DigitasLBi

VII - Conclusion

Comme nous avons pu le constater tout au long de cette publication, la mise en place d'un ESB au sein d'une
architecture de donnes permet de faciliter et de contrler l'ensemble des changes de donnes ncessaires au bon
fonctionnement de votre projet. L'ajout d'une nouvelle interaction avec un service externe suit un schma gnrique
et devient une tche commune. La qualit de votre architecture de dpart ne s'amenuise pas avec le temps et les
modifications ventuelles.

En entreprise, dans le domaine du numrique, nous pouvons remarquer que certains clients veulent souvent faire
une refonte de leur plateforme web simplement, car l'architecture de donnes est devenue incomprhensible et de
ce fait la maintenance et son volution sont un gouffre en termes de charge et de cot.

Avec l'utilisation d'ESB au sein de l'architecture de donnes, nous pouvons esprer que dans le futur les plateformes
web seront moins sujettes des refontes bases sur une problmatique d'interactions trop nombreuses rsultant en
une complexit globale trop leve. Nanmoins l'ESB tant un point de passage central, si le serveur ESB tombe,
votre plateforme est coupe de tout.

VIII - Remerciements Developpez

L'quipe Developpement web tient remercier DigitasLBi pour ce tutoriel.

Nos remerciements infosam76 pour sa gabarisation et ClaudeLELOUP pour sa correction orthographique.

N'hsitez pas commenter cet article !

- 10 -
Copyright 2014 DigitasLBi. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://digitaslbi.developpez.com/tutoriels/mule-esb-developpement-web/

You might also like