34
ESB Open Source Willy GOLDGEWICHT Architecte senior Valtech Technology [email protected] 21 & 22 Octobre 2008 - Paris la Défense

ESB_Open_Source

Embed Size (px)

Citation preview

Page 1: ESB_Open_Source

ESB Open Source

Willy GOLDGEWICHTArchitecte senior

Valtech Technology

[email protected]

21 & 22 Octobre 2008 - Paris la Défense

Page 2: ESB_Open_Source

#2Valtech Days 2008

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

Page 3: ESB_Open_Source

Introduction

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

Page 4: ESB_Open_Source

#4Valtech Days 2008

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 ConnexionMédiation Médiation

Page 5: ESB_Open_Source

#5Valtech Days 2008

ESB & SOA

Page 6: ESB_Open_Source

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

Page 7: ESB_Open_Source

#7Valtech Days 2008

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

Page 8: ESB_Open_Source

#8Valtech Days 2008

Exemples d'EIP

Page 9: ESB_Open_Source

#9Valtech Days 2008

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

Page 10: ESB_Open_Source

#10Valtech Days 2008

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

Page 11: ESB_Open_Source

#11Valtech Days 2008

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 clientimplémenté par composition de services

Page 12: ESB_Open_Source

#12Valtech Days 2008

Fonctions d'un ESB

MMéédiation ESBdiation ESB

SupervisionSupervision

TransactionsTransactions

SSéécuritcuritéé

AnnuaireAnnuaire

TransformationTransformationProtocolesProtocoles

EnrichissementEnrichissementde messagesde messages

TransformationTransformationde messagesde messages

TransportTransport/Routage/Routage

Page 13: ESB_Open_Source

#13Valtech Days 2008

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

Page 14: ESB_Open_Source

#14Valtech Days 2008

BPM (Business Process Modeling)

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

Le BPM consiste à modéliser desprocessus métier. Exemple en BMPN :

Page 15: ESB_Open_Source

3. Comment mettre en œuvre un ESB?

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

Page 16: ESB_Open_Source

#16Valtech Days 2008

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

Page 17: ESB_Open_Source

#17Valtech Days 2008

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 ...

Page 18: ESB_Open_Source

#18Valtech Days 2008

Apache Servicemix

file

ftp

http

jms

mail

xmpp

cxf

quartz

saxon

drools

eip

bean

camel

IDE Eclipse / FUSE Integration Designer

JBI – OSGI ���� SCA?

Page 19: ESB_Open_Source

#19Valtech Days 2008

PEtALS

Filetransfer

FTP

HTTP

JMS

Mail

SOAP

XMPP

Bonita

CSV

EIP

BPEL

POJO

Script

XQuare

Transcoder

XSLT

JBI

IDE Eclipse / CIMERO 2

Page 20: ESB_Open_Source

#20Valtech Days 2008

SUN Open ESB

Filetransfer

FTP

HTTP

JMS

Mail

SOAP

LDAP

Aspect

BPEL

Camel

BPEL

ETL

Scripting

..............

SQL

XSLT

JBI

Netbeans / BPEL

Page 21: ESB_Open_Source

#21Valtech Days 2008

Apache Camel

DSL : exemple :

EIP

Page 22: ESB_Open_Source

#22Valtech Days 2008

Apache synapse

HTTP

JMS

Mail

VFS

Core

Transformation

Selection

Database

Advanced

EIP

Endpoints Mediators

Message Mediation (proxy)

Service Mediation

WS-RMWS-AddressingWS-SecurityService RegistryLoad BalancingCache

Spécifique

SplitterAggregator

Page 23: ESB_Open_Source

#23Valtech Days 2008

MULE

Spécifique ���� SCA?

IDE Eclipse

30 +

Transports

Basic (12+)

Transformers

XML

Scripting

Encryption

Compression

Encoding

Channel

Endpoint

Router

Transformer

Page 24: ESB_Open_Source

#24Valtech Days 2008

Spring Integration

EIP

JMS

RMI

HTTP

FILE

FTP

MAIL

WS

Handler

Channel

Endpoint

Ch.Adapter

Router

Splitter

Stream

Aggregator

S.Activator

Page 25: ESB_Open_Source

#25Valtech Days 2008

Jboss ESB

File

FTP

HTTP

JMS

Mail

SOAP

BPEL

Rules

.............. SQL

XSLT

Aggregator

CBRouter

StatRouter

Wiretap

Spécifique

IDE Eclipse(Stéréotypes UML)

Page 26: ESB_Open_Source

4. Comment choisir un ESB ?

> Critères de choix > Quel ESB choisir ?

Page 27: ESB_Open_Source

#27Valtech Days 2008

Critères de choix

Facilité de mise en œuvre• IDE Graphique

Qualité du support• Editeur• Intégrateur• Equipe dédiée

Qualité de la documentationComposants d'intégration

• Bibliothèque disponible• Facilité de développement

Support des standards• EIP• JBI / SCA

Page 28: ESB_Open_Source

#28Valtech Days 2008

Quel ESB choisir?

Jboss

Jboss ESB

Page 29: ESB_Open_Source

5. Retour d'expériences

Page 30: ESB_Open_Source

#30Valtech Days 2008

Cas 1

1 Lecture d'un fichier

5 Envoi d'un mail pour signaler la fin de l'opération

2 Écriture d'un fichier transformé

3 Appel d'un WS

4 Écriture d'un fichier transformé incluant les informations venant du WS

Servicemix 3.2.1

Page 31: ESB_Open_Source

#31Valtech Days 2008

Cas 2

HTTP JMS JMS HTTP

HTTP JMS JMS HTTP

Servicemix 3.2.2 Servicemix 3.2.2

INTRANET DMZ

Page 32: ESB_Open_Source

Bilan

Page 33: ESB_Open_Source

#33Valtech Days 2008

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.

Page 34: ESB_Open_Source

#34Valtech Days 2008

Références

Tijs Rademakers , Jos DirksenManning – 2008http://www.manning.com/rademakers/

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

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