1. Institut National des Sciences Appliquées et de Technologie Tunisie
E-Services
Chapitre 3 – Les Enterprise Service Bus (ESB)
Dr. Lilia SFAXI
GL5 - 2013-2014
4. 3
Problématique d’Intégration
Construction des SI
o
o
Chaque domaine métier bâtit un sous-système qui lui est propre
Utilisation de technologies hétérogènes, rarement interopérables
Problématiques d’intégration:
o
o
Comment déclencher, en réponse à un sous-système donné, un traitement dans un autre
sous-système hétérogène?
Comment assurer la consistance et propagation des données entre plusieurs sous-systèmes?
Deux types de solutions:
o
Les outils ETL (Extract-Transform-Load)
o
Les solutions middleware
5. Outils ETL :
4
Extract-Transform-Load
Réponse à la problématique: Assurer la consistance et propagation des données
entre plusieurs sous-systèmes
Permettent la synchronisation, consolidation et propagation des données entre soussystèmes hétérogènes
o
Extraction des données du système maître
o
Transcodage et traitement de ces données
o
Mise à jour des systèmes fils
Apparus à l’origine pour le chargement des datawarehouses
Inconvénients
o
Approche centrée sur les données
o
Ne permet pas de résoudre la problématique d’intégration des processus
6. 5
Middlewares Network Centric (1/2)
Fournissent un infrastructure technique pour la médiation entre deux ou plusieurs
systèmes
MOM (Message Oriented Middleware)
o
Système Store and Forward
o
Sémantique asynchrone : Le client construit un message et le transmet au middleware, qui
le route vers le ou les systèmes cibles
o
Pas de couplage technique entre les participants
o
Solutions principalement propriétaires : Toutes les parties doivent connaître le mode
d’interfaçage du middleware
o
Capacités de routage limitées, obligeant à configurer explicitement les routes à prendre
7. 6
Middlewares Network Centric (2/2)
ORB (Object Request Broker)
o
S’appuie sur la spécification CORBA
o
Sémantique d’invocation point à point synchrone ou asynchrone, avec un protocole et
encodage standardisés
o
Objectif : architecture d’intégration universelle
o
Inconvénients : complexité de mise en œuvre, et problèmes d’interopérabilité des
implémentations (contrairement aux promesses de la spécification)
➪
Solutions très techniques
➪
Couplage fonctionnel fort
8. Les EAI :
Enterprise Application Integration
Architecture Hub and Spoke: Un composant central :
o
Assure la médiation physique entre le client et sa cible
o
Prend en charge les problématiques techniques de bas niveau (localisation, disponibilité,
communication, transcodage, traces, sécurité…)
Permettent d’assurer la transformation des données pour limiter le couplage fonctionnel entre
systèmes
Permettent d’appliquer des règles de routage sophistiquées
Jouent le rôle d’orchestrateur : hébergent des processus métier de haut niveau
Inconvénients
o
Architecture propriétaire :
protocole d’échange et de transport
technologie interne
Formats et encodages des données
besoin de connecteurs spécifiques aux éditeurs
o
SPOF (Single Point of Failure)
o
Mélange de rôles (médiation et orchestration) Brique complexe
7
9. Les ESB :
8
Enterprise Service Bus
Les EAI se sont transformés en deux types de produits:
o
Les ESB pour les fonctions d’interconnexion et de médiation
o
Les solutions de type BPM pour l’orchestration des processus
Contrairement aux EAI, les données ne doivent pas être ramenées à l’ESB
pour être traitées, mais sont envoyées aux applications via des connecteurs
distants
Construit conformément aux principes SOA : Ses différentes parties sont
faiblement couplées et peuvent être déployées séparément si nécessaire
ESB s’appuient en général sur des standards
10. 9
ESB : Définition
Architecture de services distribuée, qui inclut un modèle de conteneur léger pour
héberger des composants d’intégration comme services distants
Permet de :
o
Délivrer des messages entre applications et services
o
Réaliser les transformations des données XML
o
Router les messages selon leur contenu
Framework de sécurité flexible
Infrastructure de gestion qui permet de configurer, déployer et gérer vos services
distants
12. 11
A quoi sert un ESB? (1/2)
Réconcilier les mondes hétérogènes
o
Découpler consommateurs et fournisseurs de services
o
Consommateur ne voit que l’ESB, et ne connaît si le format ni le protocole utilisé par le fournisseur
Agréger les services de niveau N pour construire des services de niveau N+1
o
Standards d’interopérabilité ou connecteurs spécialisés
Si l’agrégation est complexe ou nécessite des structures de contrôle de flux d’exécution, il utilise
un moteur d’orchestration (BPEL par exemple)
Tracer les messages
o
Traçabilité et monitoring des traitements
o
Peut utiliser une solution tierce pour adresser les problématiques de SLA, QoS, BAM (Business
Activity Monitoring)…
13. 12
A quoi sert un ESB? (2/2)
Exposer des services d’applications qui ne supportent pas la fonctionnalité de
médiation (Mainframes ou progiciels)
Mutualiser les accès aux applications
o
o
Contrôler la charge
o
Mieux gérer les ressources
Appliquer des règles de sécurité ou priorité
Minimiser les coûts des connecteurs
o
Le connecteur est déployer une seule fois sur l’ESB au lieu d’être déployé sur chaque
application cliente
Implémenter un système de cache pour décharger certaines applications
14. Fonctionnalités d’un ESB
13
1. Adaptation aux environnements hétérogènes
ESB apporte une couche d’abstraction vis à vis des technologies utilisées dans le SI
Ne dépend pas d’un SE ou d’un langage
Supporte plusieurs standards : WS, XML, JCA
Expose les services de manière uniforme quelque soit la technologie sous-jacente
Utilise XML comme langage standard de représentation et traitement des données
Offre un panel ouvert de connecteurs spécialisés vers les différentes briques du SI
(mainframes, applications propriétaires, progiciels…)
15. Fonctionnalités d’un ESB
2. Médiation et Routage
Support de différentes sémantiques d’échange (synchrone, asynchrone…)
Gestion des règles de routage sur les messages
Gestion de la priorité des messages
Transformation et conversion de messages
Manipulation des messages : enrichissement, transformation, combinaison,
découpage…
Validation des données entrantes ou sortantes
Gestion des versions de services de façon transparente
14
16. Fonctionnalités d’un ESB
15
3. Management, Monitoring, Contrat de Service
Suivi et fiabilisation des échanges
Garantie de livraison des messages en conservant les messages non consommés
Suivi des traitements effectués et messages reçus
Gestion de la sécurisation des services
o
o
Autorisation
o
Confidentialité
o
Authentification
Audit
Contrôle des SLA et aptitude à modifier le comportement du bus (priorités…) pour
assurer ces SLA
17. Fonctionnalités d’un ESB
16
4. Du côté des standards
Format des données
XML, schémas XSD
SDO : Service Data Object : norme de représentation des données
indépendamment du système de stockage, utilisée dans les SOA
Transformation des données
XSLT et XQuery (langage de requête pour l’extraction, transf. et reconstruction
de docs XML )
Exposition de services
WS, WS-Security
Accès aux brokers de
messages
JMS (Java Message Service) pour l’accès aux MOM
Accès aux applications
JCA (Java Connector Architecture) : interface pour l’accès à des applications
tierces
Architecture des composants
SCA (Service Component Architecture)
Architecture Interne
JBI (Java Business Integration) :
- conteneur de services dans un ESB
- gère l’intégration : création de services à partir des applications et entités IT
(basée sur les standards de WS)
- ne gère pas le routage, l’agrégation et l’administration
18. 17
Synthèse
Connectivité
« Super-connecteur », supporte plusieurs protocoles de transport synchrones et
asynchrone
Routage
Routage de messages basé sur des règles (de contenu, contexte..), et s’appuyant
sur un annuaire de services et moteur de règles
Médiation
Adaptation du format des messages, protocole
Exposition de services
Transformation en service de tout composant ou traitement d’application
Agrégation simple de
services
Agrégation simple de services de niveau N pour construire des services de niveau
N+!. Pour les agrégations complexes, utilisation d’un moteur d’orchestration
Traitement d’évènements
complexes
Création de règles de corrélation et de jointure d’évènements
Contrat de Service
SLA, QoS, gestion des priorités, sécurisation des messages, garantie de livraison…
Supervision et Audit
Audit, traçabilité, mesure, administration et exploitation.
19. 18
Risques
Un ESB n’est pas nécessaire au démarrage d’une SOA
o
Nécessité d’une réflexion plus large au niveau du SI et d’un certain niveau de maturité de la
SOA.
o
Il faut d’abord définir la démarche, méthode, organisation et implémentation de la SOA.
Un ESB ne doit pas être considéré comme un orchestrateur de services
Un ESB ne doit pas embarquer trop de métier dans les médiations qu’il propose.
L’ESB peut devenir un goulot d’étranglement
o
Plus les médiations sont complexes, plus il y’a perte de performances
21. 20
Couplage Lâche
Exposition : Le consommateur ne connaît que l’ESB, il invoque le service que ce dernier lui expose
Routage : ESB détermine le fournisseur de service à invoquer
Transformation : ESB réalise une médiation de format vers celui pris en charge par le fournisseur
Invocation : ESB invoque le fournisseur
22. 21
Composition / Agrégation de services
ESB expose un service virtuel qu’il construit par composition ou agrégation de plusieurs autres services
Assemblage simple de services, pas une orchestration de processus
23. 22
Gestion de versions
2 cas :
- Versions incompatibles : Le choix d’une version se fait par routage
- Versions compatibles : ESB appelle la nouvelle version en appliquant une transformation des données.
24. 23
Gestion de la QoS
QoS : temps de réponse moyen / fraîcheur des données
- ESB peut déterminer quelle implémentation invoquer en fonction de la QoS désirée (utilisation d’un
moteur de règles)
- ESB peut géolocaliser les services, pour choisir le plus approprié
25. 24
Intégration avec solution d’orchestration
Éviter de lier fortement l’orchestrateur de processus avec les services qu’il appelle
- ESB convertit les données au format de conception du processus
- ESB expose tous les services avec la même technologie pour simplifier la réalisation du processus
- ESB crée un nouveau service en agrégeant plusieurs services existants
26. 25
Médiation Inter-domaine et Intra-domaine
Domaines :
équipes différentes
plannings différents
budgets différents
- ESB introduit aux frontières des domaines
- Dé-corrélation et découplement des appels
entre domaines
- ESB peut être utilisé dans un échange B2B
comme douanier entre applications internes
et partenaires
- ESB gère :
* conversion des protocoles
* conversion des formats
* aspects de sécurité
* traçabilité des échanges
27. 26
Exposition de services
- Exposition des services d’une application existante (legacy)
- Interrogation des systèmes existants pour créer les services du SI, grâce à des connecteurs dédiés
- Possibilité de créer une instance d’ESB distincte du médiateur, si les services exposés ont vocation à
durer