Sie sind auf Seite 1von 34

ESB Open Source

21 & 22 Octobre 2008 - Paris la Défense

Willy GOLDGEWICHT
Architecte senior

Valtech Technology

willy.goldgewicht@valtech.fr
Sommaire

Introduction
> Qu'est-ce qu'un ESB? , ESB & SOA
1. Un ESB pourquoi faire?
> Les patterns d'intégration (EIP)
> Médiation de protocole, Composition de service
> Fonctions d'un ESB, EAI & ETL, BPM
2. Comment mettre en œuvre un ESB?
> ESB & Standards, Apache Servicemix, Apache Camel, PEtALS
> Open ESB, Apache Synapse, MULE, Spring Integration, Jboss ESB
3. Comment choisir un ESB ?
> Critères de choix , Quel ESB choisir ?
4. Retour d'expériences

Conclusion

Valtech Days 2008 #2


Introduction

> Qu'est-ce qu'un ESB?


> ESB & SOA
Qu'est-ce qu'un ESB?

Un ESB (Enterprise Service Bus) est un bus logiciel basé sur des
composants de connexion et de médiation s’appuyant sur les
standards du web.
Ces composants forment plus généralement ce qu'on appelle des
composants d'intégration. Leur assemblage forme un processus
d'intégration.

Connexion Médiation Médiation Connexion

Valtech Days 2008 #4


ESB & SOA

Valtech Days 2008 #5


1. Un ESB pourquoi faire?

> Les patterns d'intégration (EIP)


> Médiation de protocole
> Composition de service
> Fonctions d'un ESB
> ESB vs EAI vs ETL
> ESB vs BPM
Un ESB pourquoi faire?
Introduction : les patterns d'intégration

Dans la suite de l'exposé on s'appuiera sur le catalogue des patterns


d'intégration publié en 2004 dans le livre de Gregor Hohpe et Bobby
Woolf : Enterprise Integration Patterns (EIP)

Integration Styles

Messaging Endpoints

Message Construction

Messaging Channels

Message Routing

Message Transformation

System Management

Valtech Days 2008 #7


Exemples d'EIP

Valtech Days 2008 #8


Médiation de protocoles

Un ESB peut être un médiateur de protocoles.


Il présente à l'appelant un service dans un protocole donné et
l'implémente par appel d'un service cible dans un autre protocole.
• Exemple : REST <-->SOAP HTTP

Protocole A Protocole B

Valtech Days 2008 #9


Exemples de médiation de protocole

Un appel entrant est routé sur des services cibles dépendant du


contexte d'appel :
• Changement de version
• Load balancing
• Adaptation à un niveau de QoS requis, ce qui suppose :
• qu'un service puisse déclarer le niveau de QoS fourni
• qu'un client puisse spécifier le niveau de QoS requis

Valtech Days 2008 #10


Composition de services

L'ESB héberge un nouveau service, implémenté par composition de


services de plus bas niveau existants en facade des ressources.

Service proposé au client


implémenté par composition de services

Valtech Days 2008 #11


Fonctions d'un ESB

Médiation ESB
Transport Enrichissement
/Routage de messages Annuaire Transactions

Transformation Transformation Sécurité Supervision


de messages Protocoles

Valtech Days 2008 #12


EAI & ETL

L'EAI (Enterprise Application Integration) est une solution logicielle


propriétaire et plutôt monolithique pour l’échange de données au fil
de l’eau, fourni avec un ensemble de connecteurs permettant de
communiquer avec les bases de données, les progiciels, les
mainframes, selon divers protocoles.

L’ETL (Extract, Transform & Load) est une solution logicielle dédiée à
la synchronisation des données par lot, utilisé généralement pour
alimenter les entrepôts de données pour le décisionnel
(datawarehouse)

Talend Studio

Valtech Days 2008 #13


BPM (Business Process Modeling)

Le BPM consiste à modéliser des


processus métier. Exemple en BMPN :

L'exemple du Loan Broker, tiré du livre EIP relève-t-il du domaine


BPM ou du domaine ESB?

Valtech Days 2008 #14


3. Comment mettre en œuvre un ESB?

> ESB & Standards


> Apache Servicemix, PEtALS, Open ESB
> Apache Camel, Apache Synapse, MULE
> Spring Integration, Jboss ESB
Architecture & Concepts

Les ESB Open Source ont des architectures, des concepts, des modes de
mise en œuvre spécifiques.
Une chose qu'ils ont au moins en commun est la mise en œuvre de
composants d'intégration selon le pattern : pipe & filters:

De plus, configurer un processus d'intégration c'est à la fois :


• Configurer l'ESB
• Configurer chacun des composants

Valtech Days 2008 #16


ESB et les standards

• JBI (Java Business Integration)


• Spécification dans le monde Java (JSR 208), d'architecture de composants
d'intégration
• SCA (Service Component Architecture)
• Standard pour la spécification de composants logiciels – multi-langages

• OSGI (Open Service Gateway Initiative)


• Standard d'origine OSGI Alliance pour la maîtrise des dépendances dans le
monde Java (JSR 8 : 1999!). Il est à la base du mécanisme de plugin
Eclipse (Eclipse Equinox).
• EIP ...
Valtech Days 2008 #17
Apache Servicemix
JBI – OSGI SCA?

file mail quartz bean


IDE Eclipse /
ftp xmpp saxon camel FUSE Integration Designer

http cxf drools

jms eip

Valtech Days 2008 #18


PEtALS

JBI

IDE Eclipse / CIMERO 2

Filetransfer Mail Bonita POJO

FTP SOAP CSV Script

HTTP XMPP EIP Transcoder

JMS XQuare BPEL XSLT

Valtech Days 2008 #19


SUN Open ESB

JBI

Netbeans / BPEL

Filetransfer Mail Aspect ETL

FTP SOAP BPEL Scripting

HTTP LDAP Camel SQL

JMS .............. BPEL XSLT

Valtech Days 2008 #20


Apache Camel
EIP

DSL : exemple :

Valtech Days 2008 #21


Apache synapse

WS-RM
WS-Addressing
WS-Security
Service Registry Service Mediation
Load Balancing
Cache

Spécifique
Message Mediation (proxy)

Endpoints Mediators

HTTP Core Advanced

JMS Transformation EIP Splitter


Aggregator
Mail Selection

VFS Database

Valtech Days 2008 #22


MULE
Spécifique SCA?

IDE Eclipse
Transports Transformers

30 + Basic (12+) Compression Channel

XML Encoding Endpoint

Router
Scripting
Transformer
Encryption

Valtech Days 2008 #23


Spring Integration
EIP

JMS FTP Handler Router

RMI MAIL Channel Splitter

HTTP WS Endpoint Aggregator

FILE Stream Ch.Adapter S.Activator

Valtech Days 2008 #24


Jboss ESB
Spécifique

IDE Eclipse
(Stéréotypes UML)

File Mail BPEL Aggregator

FTP SOAP Rules CBRouter

HTTP .............. SQL StatRouter

JMS XSLT Wiretap

Valtech Days 2008 #25


4. Comment choisir un ESB ?

> Critères de choix


> Quel ESB choisir ?
Critères de choix

Facilité de mise en œuvre


• IDE Graphique
Qualité du support
• Editeur
• Intégrateur
• Equipe dédiée
Qualité de la documentation
Composants d'intégration
• Bibliothèque disponible
• Facilité de développement
Support des standards
• EIP
• JBI / SCA

Valtech Days 2008 #27


Quel ESB choisir?

Jboss

Jboss
ESB

Valtech Days 2008 #28


5. Retour d'expériences
Cas 1

4 Écriture d'un fichier


transformé incluant
5 Envoi d'un mail
les informations
pour signaler la fin de
venant du WS l'opération
1 Lecture
d'un fichier

Servicemix 3.2.1

2 Écriture 3 Appel
d'un fichier d'un WS
transformé

Valtech Days 2008 #30


Cas 2

HTTP JMS JMS HTTP

HTTP JMS JMS HTTP

Servicemix 3.2.2 Servicemix 3.2.2


INTRANET DMZ

Valtech Days 2008 #31


Bilan
Bilan

Les ESB Open Source sont complexes à mettre en œuvre et ne


disposent pas de toutes les fonctionnalités normalement attendues.
Cependant, par leur caractère innovant, ils montrent la voie de ce que
pourrait être l'ESB de demain : un outil s'appuyant sur un IDE de mise
en œuvre graphique des EIP.

Valtech Days 2008 #33


Références

Tijs Rademakers , Jos Dirksen


Manning – 2008
http://www.manning.com/rademakers/

http://www.eclipse.org/stp/

Jeff Davis
Manning – 2008 (early edition) – 2009 (final release)
http://www.manning.com/davis/

Valtech Days 2008 #34

Das könnte Ihnen auch gefallen