Chp3 - ESB

28
E-Services Chapitre 3 – Les Enterprise Service Bus (ESB) Dr. Lilia SFAXI GL5 - 2013-2014 Institut National des Sciences Appliquées et de Technologie Tunisie

description

Visitez http://liliasfaxi.wix.com/liliasfaxi

Transcript of Chp3 - ESB

Page 1: Chp3 - ESB

E-ServicesChapitre 3 – Les Enterprise Service Bus (ESB)

Dr. Lilia SFAXI

GL5 - 2013-2014

Institut National des Sciences Appliquées et de Technologie Tunisie

Page 2: Chp3 - ESB

2

Plan du Chapitre

Besoins des ESB

Rôle des ESB dans une SOA

Cas d’utilisation d’un ESB

Page 3: Chp3 - ESB

3

Plan du Chapitre

Besoins des ESB

Rôle des ESB dans une SOA

Cas d’utilisation d’un ESB

Page 4: Chp3 - ESB

4

Problématique d’Intégration

Construction des SI

o Chaque domaine métier bâtit un sous-système qui lui est propre

o Utilisation de technologies hétérogènes, rarement interopérables

Problématiques d’intégration:

o Comment déclencher, en réponse à un sous-système donné, un traitement dans un autre sous-système hétérogène?

o 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

Page 5: Chp3 - ESB

5Outils ETL : 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 sous-systè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

Page 6: Chp3 - ESB

6

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

Page 7: Chp3 - ESB

7

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

Page 8: Chp3 - ESB

8Les 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

Page 9: Chp3 - ESB

9Les ESB :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

Page 10: Chp3 - ESB

10

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

Page 11: Chp3 - ESB

11

Plan du Chapitre

Besoins des ESB

Rôle des ESB dans une SOA

Cas d’utilisation d’un ESB

Page 12: Chp3 - ESB

12

A quoi sert un ESB? (1/2)

Réconcilier les mondes hétérogènes

o Standards d’interopérabilité ou connecteurs spécialisés

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 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)…

Page 13: Chp3 - ESB

13

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 Mieux gérer les ressources

o Contrôler la charge

o 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

Page 14: Chp3 - ESB

14Fonctionnalités d’un ESB1. 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…)

Page 15: Chp3 - ESB

15Fonctionnalités d’un ESB2. 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

Page 16: Chp3 - ESB

16Fonctionnalités d’un ESB3. 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 Authentification

o Autorisation

o Confidentialité

o Audit

Contrôle des SLA et aptitude à modifier le comportement du bus (priorités…) pour assurer ces SLA

Page 17: Chp3 - ESB

17Fonctionnalités d’un ESB4. Du côté des standards

Format des données XML, schémas XSDSDO : 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

Page 18: Chp3 - ESB

18

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.

Page 19: Chp3 - ESB

19

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

Page 20: Chp3 - ESB

20

Plan du Chapitre

Besoins des ESB

Rôle des ESB dans une SOA

Cas d’utilisation d’un ESB

Page 21: Chp3 - ESB

21

Exposition : Le consommateur ne connaît que l’ESB, il invoque le service que ce dernier lui exposeRoutage : ESB détermine le fournisseur de service à invoquerTransformation : ESB réalise une médiation de format vers celui pris en charge par le fournisseurInvocation : ESB invoque le fournisseur

Couplage Lâche

Page 22: Chp3 - ESB

22

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

Composition / Agrégation de services

Page 23: Chp3 - ESB

23

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.

Gestion de versions

Page 24: Chp3 - ESB

24

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é

Gestion de la QoS

Page 25: Chp3 - ESB

25

É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

Intégration avec solution d’orchestration

Page 26: Chp3 - ESB

26

Domaines : équipes différentesplannings 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

Médiation Inter-domaine et Intra-domaine

Page 27: Chp3 - ESB

27

- 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

Exposition de services

Page 28: Chp3 - ESB

28

Sources

Livre Blanc

Xebia Business Integration Architect, Comprendre et Savoir utiliser un ESB dans une SOA, Xebia, 2007