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 #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 #4
ESB & SOA #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 #7
Exemples d'eip #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 #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 #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 #11
Fonctions d'un ESB Transport /Routage Enrichissement de messages Médiation ESB Annuaire Transactions Transformation de messages Transformation Protocoles Sécurité Supervision #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 #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? #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 #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... #17
Apache Servicemix JBI OSGI SCA? file ftp mail xmpp quartz saxon bean camel IDE Eclipse / FUSE Integration Designer http cxf drools jms eip #18
PEtALS JBI IDE Eclipse / CIMERO 2 Filetransfer Mail Bonita POJO FTP SOAP CSV Script HTTP XMPP EIP Transcoder JMS XQuare BPEL XSLT #19
SUN Open ESB JBI Netbeans / BPEL Filetransfer Mail Aspect ETL FTP SOAP BPEL Scripting HTTP LDAP Camel SQL JMS... BPEL XSLT #20
Apache Camel EIP DSL : exemple : #21
Apache synapse WS-RM WS-Addressing WS-Security Service Registry Load Balancing Cache Spécifique Service Mediation Message Mediation (proxy) Endpoints HTTP Core Mediators Advanced JMS Transformation EIP Splitter Aggregator Mail Selection VFS Database #22
MULE Spécifique SCA? Transports Transformers IDE Eclipse 30 + Basic (12+) Compression Channel XML Encoding Endpoint Scripting Router Encryption Transformer #23
Spring Integration EIP JMS FTP Handler Router RMI MAIL Channel Splitter HTTP WS Endpoint Aggregator FILE Stream Ch.Adapter S.Activator #24
Jboss ESB Spécifique IDE Eclipse (Stéréotypes UML) File Mail BPEL Aggregator FTP SOAP Rules CBRouter HTTP JMS... SQL XSLT StatRouter Wiretap #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 #27
Quel ESB choisir? Jboss Jboss ESB #28
5. Retour d'expériences
Cas 1 1 Lecture d'un fichier 4 Écriture d'un fichier transformé incluant les informations venant du WS 5 Envoi d'un mail pour signaler la fin de l'opération 2 Écriture d'un fichier transformé Servicemix 3.2.1 3 Appel d'un WS #30
Cas 2 HTTP JMS JMS HTTP HTTP JMS JMS HTTP Servicemix 3.2.2 Servicemix 3.2.2 INTRANET DMZ #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. #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/ #34