ESB TP3 - Mise En Place D'un ESB Avec Talend

Transcription

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesTP3 - Mise en Place d’un ESB avec TalendESBTélécharger PDF[./tp3.pdf]Objectifs du TP1. Routage, médiation et transformation avec Talend ESB.2. Gestion du failover et répartition de charges, monitoring et authenti cationavec Talend ESB.Outils et Versions127.0.0.1:8000/tp3/1/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesTalend Open Studio for ESB[https://www.talend.com/download page type/talend-open-studio/]Version: 6.3.0DB Visualizer [https://www.dbvis.com/download/] Version 10.0Java nloads/indexjsp-138363.html] Version 1.8.0 121Con guration et Utilisation de l'ESB TalendLancement de deux instances de l'ESB TalendPour les besoins de notre TP, nous allons lancer deux instances de l’ESB Talend.Pour cela, l’environnement nous fournit une manière très simple de le faire:Aller dans le répertoire rep install talend /Runtime ESBSECopier le répertoire container et le renommer en alternate-container.Nous allons maintenant con gurer la deuxième instance de l’ESB (dansalternate-container) pour qu’elle se lance sur un port différent de la première.Pour cela:Lancer l’ESB : dans le répertoire alternate-container que vous venez de créer,aller vers bin et exécuter trun.bash (sur windows). Si vous êtes sur Linux oumac, placez-vous sous le répertoire alternate-container/bin et lancer dans unterminal la commande ./trun. La fenêtre suivante devrait s’a cher:127.0.0.1:8000/tp3/2/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServices AttentionLe premier contenaire ne doit pas être en exécution, sinon il y'aura un con it d'adresses. Il fautd'abord con gurer le second contenaire pour qu'il se lance sur un port différent, ce que nousallons faire dans l'étape suivante.Con gurer l'ESB : dans l’invite de commande a chée, taper:source scripts/configureC1.shUn a chage tel que le suivant va apparaître:Vous avez ainsi créé un ESB, que vous avez con guré pour se lancer sur le port8041, alors que, par défaut, il devrait se lancer sur le port 8040. Si vous voulezcréer une troisième instance, vous pouvez la con gurer en utilisant le chiercon gureC2.sh, de même pour une quatrième instance Pour revenir à lacon guration par défaut, utiliser con gureC0.sh.Arrêtez votre ESB, en cliquant sur ctrl-d, et relancez-le de nouveau.Lancez dans un autre terminal l’instance de l’ESB se trouvant sous lerépertoire d’origine container. Il est inutile de la con gurer, elle se lancera pardéfaut sur le port 8040.127.0.0.1:8000/tp3/3/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesPublier votre Service dans l'ESB et le TesterRevenir au service web SOAP HelloWorldService [./tp1/#service-web-soaphelloworld] que vous avez créé dans le TP1, et le publier sur l'ESB. Pour cela,ouvrir l'éditeur Talend Open Studio sur le projet Helloworld, et suivre les étapessuivantes:Faire un clic-droit sur le service HelloWorldService et choisir Exporter leservice. Choisir comme répertoire de destination le dossier deploy setrouvant dans le conteneur où vous désirez déployer le service. Un chierarchive de type kar sera alors créé sous ce répertoire, permettant ainsi sondéploiement à chaud (pas besoin de redémarrer l’ESB).Déployer votre service sur les deux instances d’ESB que vous avez démarré.Véri er que vos services sont actifs:en tapant list dans vos deux instances d’ESBen a chant les chiers WSDL du service sur les ports 8040 et 8041 aulieu de 8090.Pour tester votre service web:Dans le job consommateur de service, dans les propriétés du composanttESBConsumer, modi er le port du endpoint de 8090 à 8040Lancer votre job. Véri er que l’a chage se fait correctement sur la consoledu TOS-ESB.Véri er que votre service s’exécute bien sur l’ESB principal, en consultant leterminal où il est démarré. Vous devriez trouver un a chage semblable à celuici:Création des Routes127.0.0.1:8000/tp3/4/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesLes routes permettent de dé nir le comportement que doit prendre le messageselon son contenu. Dans notre exemple, nous allons dé nir deux types de routes:une route permettant de ltrer les messages par contenu, en envoyant lesmessages contenant le nom “Alice” vers un ESB, et le reste vers l’autre ESB. Unedeuxième route permettra de modi er le contenu de certains messages avant deles faire parvenir à leurs destinataires.Première Route: Filtrage des MessagesCréer une nouvelle route en cliquant-droit sur Routes - Créer une Route.Nous allons l’appeler FiltrageRoute.Dé nir votre route de manière à ce qu’elle ressemble à ce qui suit:Les composants utilisés sont:cCXF : fournit l'intégration avec Apache CXF pour la connexion auxservices JAX-WS.MessageRouter : route des messages dans différents canaux selon desconditions spéci ées.Con gurer la condition when, en précisant que c’est une condition de typesimple, dont le texte est :" {bodyAs(String)} contains 'Alice'"Cela veut dire que, si le corps du message contient Alice, la requête sera routée127.0.0.1:8000/tp3/5/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesvers le composant cCXF 2.Con gurer le composant cCXF 1:Adresse: DL: ce?WSDL]. RemarqueRemarquez ici que le port utilisé pour l'adresse est 8042: c'est le port choisi pour le servicefaçade fourni par la route. Le WSDL utilisé, par contre, est celui du service initial, exposé sur leport 8040, donc sur le premier ESB.Con gurer l’adresse de cCXF 2 sur le port 8040, et celle de cCXF 3 sur leport 8041, tout en gardant le même WSDL pour les trois composants.Lancer la route pour la tester. La console devra a cher connected.Pour utiliser cette route, vous devez recon gurer votre consommateur pour qu’illance sa requête sur le port 8042. Exécutez-le et observez le résultat sur lesterminaux des deux instances d’ESB démarrées. Que constatez-vous?Déploiement des Routes sur l'ESBDans leur état actuel, vos routes doivent être lancées manuellement pour êtreprises en considération. Pour les déployer sur votre ESB et les garder ainsitoujours actives, suivre les étapes suivantes:Faites un clic-droit sur votre route et sélectionner: Build Route (veillez à ceque le job FiltrageRoute soit bien arrêté).Choisir le répertoire deploy du conteneur de votre choix.Tester votre route en exécutant à nouveau le consommateur. AttentionVous ne devez en aucun cas déployer votre route sur deux contenaires, sinon, il y'aura un con it,car deux services façades seront exposés, ayant la même adresse.127.0.0.1:8000/tp3/6/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesDeuxième Route : Filtrage et Modi cation de MessagesDans cette nouvelle partie, nous allons modi er le corps du message aprèsl’avoir ltré. Pour cela:Dans Talend Studio, dupliquer votre route FiltrageRoute et la nommerModi cationRoute.Insérer un composant cSetBody (permettant de modi er le corps dumessage reçu) puis un composant cProcessor (permettant de remanierrapidement du code dans la route) entre le cMessageRouter et le cCXF 3. Lebut ici est de modi er le corps des messages reçus, selon leur contenu. Lerésultat obtenu ressemblera au suivant:Insérer le code suivant (de type Xpath) dans le cSetBody :"tns:HelloWorldServiceOperationRequest/in"Ceci permet de saisir le contenu de la balise in de la requête SOAP envoyée parle consommateur. Il ne faut pas oublier de dé nir le Namespace tns(http://www.talend.org/service/ [http://www.talend.org/service/]).Insérer le code suivant dans le processeur:String name exchange.getIn().getBody(String.class);String surname;if (name.contains("Bob")){surname "Bobby";}else{surname "Chucky";}exchange.getIn().setBody(" tns:HelloWorldServiceOperationRequest " 127.0.0.1:8000/tp3/7/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServices"xmlns:tns \"http://www.talend.org/service/\" in " surname " /in /tns:HelloWorldServiceOperationRequest ");Ce code permet de modi er le corps du message entrant en remplaçant le nompar un surnom.Modi er l'adresse du composant cCXF 1 pour qu'il se lance sur le port 8043.Sauvegarder et exporter votre route dans l’ESB. Lancer le consommateur denouveau et observez le résultat.Fonctionnalités Supplémentaires de l'ESBFailover et Répartition de ChargeService LocatorVia le Service Locator, l'ESB de Talend fournit des fonctionnalités de gestion defailover automatique et transparente ainsi que de répartition de charge via lelookup et l'enregistrement d'endpoints dynamiques dans Apache Zookeeper. LeService Locator maintient la disponibilité du service a n de répondre auxdemandes et aux Service Level Agreements (SLAs).Con guration du Service LocatorPour activer le service locator (SL), il faut:1. Déployer SL au niveau des conteneurs d’exécution Talend2. Activer la prise en compte du SL au niveau du service cible3. Con gurer le consommateur du service pour prendre en compte le SL1. DÉPLOIEMENT DU SL DANS LE CONTENAIREPour tester sa capacité à gérer le failover et la répartition des charges, le SL doitêtre déployé dans les différents conteneurs de services où sera déployé votreservice. Pour cela, taper dans l’invite de commande de chaque conteneur ESB:tesb:start-locator127.0.0.1:8000/tp3/8/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesIl est possible de visualiser votre SL dans la liste des services déployés sur leconteneur en tapant list sur votre terminal. Vous devriez trouver les lignessuivantes:2. ACTIVER SL DANS LE SERVICEPour activer la prise en compte de SL au niveau de notre service utilisateur dansTalend Studio:Clic-droit sur le serviceChoisir ESB Runtime OptionsCocher la case "Utiliser le Service Locator"Il faut veiller à re-déployer votre service dans les deux conteneurs aprèsl’activation de la fonctionnalité.3. ACTIVER SL DANS LE CONSOMMATEURAu niveau du consommateur du service, dans les propriétés du composant tESB,cocher la case Use Service Locator.Test du Service LocatorPour tester la répartition de charges : Lancer le consommateur plusieurs fois surle port 8040 et observez le résultat.Pour tester la gestion du failover : Arrêter le service sur le contenaire principal(8040). Pour cela, dans l'invite de commande du contenaire principal, taper list,puis chercher l'identi ant du service HelloWorldService. Taper ensuite : stop id service . Lancer le consommateur sur le endpoint 8040, et observez lerésultat.Service MonitoringLe composant SAM permet le logging et la surveillance des appels de service,réalisés avec le framework Apache CXF. Il peut être utilisé pour collecter, parexemple, les statistiques d’usage et le monitoring des fautes.127.0.0.1:8000/tp3/9/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesPour con gurer le Service Activity Monitoring:1. Déployer SAM au niveau du conteneur d’exécution Talend. Pour cela, taper :tesb:start-samVous remarquerez qu’une base de données Derby sera également déployéesur le conteneur: elle permet de stocker les informations sur l’activité desservices.2. Activer la prise en compte de SAM au niveau du service cible3. Con gurer le consommateur du service pour prendre en compte le SAMPour visualiser le résultat de la surveillance, utiliser un visualiseur de bases dedonnées, tel que Db Visualizer [https://www.dbvis.com/download/].Pour accéder à la base de données de monitoring, utiliser les paramètres decon guration suivants:Database connection con guration (Default): Derby/JavaDBDriver: JavaDB/Derby ServerDatabase Server: localhostDatabase Port: 1527Database: DBDB username: testDB password: testExécuter votre service plusieurs fois, et observer le résultat.Authenti cationSecurity Token Service (STS) : Implémentation du WS-TrustDans un environnement hétérogène, les services web doivent authenti er lesservices clients pour contrôler leur accès, grâce à la norme WS-Security, et en127.0.0.1:8000/tp3/10/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesimplémentant le WS-Trust. "Trust" veut dire "Con ance": le but ici est doncd’établir un lien de con ance entre le consommateur et le fournisseur.Pour cela, un courtier d’authenti cation est utilisé, fournissant un contrôled’accès pour les applications. Ce courtier délivre des jetons de sécurité utiliséspar les clients pour s’authenti er au service.Le STS (Security Token Service) est un service web qui fournit un tel courtierd’authenti cation. Ses jetons respectent le standard WS-Trust. Il offre lesfonctionnalités suivantes:Délivrer un jeton de sécurité basé sur des paramètres d’authenti cationcon gurés.Véri er la validité d’un paramètre d’authenti cationRenouveler un jeton de sécuritéAnnuler un jeton de sécuritéTransformer un jeton de sécurité donné en un autre de type différent.L’utilisation d’un STS simpli e grandement la gestion de la sécurité pour leservice et le client, car ils n’ont qu’à faire appel à ce STS, qui va gérer la logiquede sécurité, au lieu de la traiter eux-mêmes.Con guration des Paramètres de SécuritéPour associer des paramètres de con dentialité à un service, il faut suivre lesétapes suivantes:1. Déployer STS dans le conteneur d’exécution Talend2. Con gurer les paramètres de sécurité de votre conteneur3. Activer la prise en compte de STS dans votre service4. Con gurer votre client pour saisir les paramètres d’authenti cation.1. DÉPLOYER STS DANS LE CONTENEUR D’EXÉCUTIONPour installer le service STS dans votre conteneur, démarrer ce dernier, et taperl’instruction suivante dans le terminal:feature:install tesb-sts127.0.0.1:8000/tp3/11/13

02/02/2020TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServicesSi le service a bien été installé, vous pouvez véri er qu’il est bien démarré enexécutant la commande : list. Vous devriez trouver les lignes suivantes:2. CONFIGURER LES PARAMÈTRES DE SÉCURITÉ DE VOTRE CONTENEURComme c’est le STS qui prend en charge le contrôle d’accès, les paramètresd’authenti cation (le login/mdp par exemple) ne sont pas con gurés au niveaudu service fournisseur, mais au niveau du conteneur lui-même.Pour visualiser l’ensemble des utilisateurs autorisés sur votre conteneur, voirleurs mots de passes et rôles, et éventuellement en ajouter de nouveaux, ouvrirle chier: conteneur /etc/users.properties.Dans ce chier, les informations d'authenti cation sont sous la forme:user password,group. Ajouter une nouvelle ligne avec votre nom comme user etun mot de passe de votre choix, et choisir le groupe admin.3. ACTIVER STS DANS VOTRE SERVICEPour activer la prise en compte de STS au niveau de notre service utilisateurdans Talend Studio, dans ESB Runtime Options, cocher le type d’authenti cationdésiré (dans notre cas, Identi ant/Mot de passe)4. CONFIGURER LE CLIENTPour insérer le login/mdp dans votre application cliente, modi er les paramètresd’authenti cation de votre composant tESBConsumer dans votre jobconsommateur.127.0.0.1:8000/tp3/12/13

02/02/2020127.0.0.1:8000/tp3/TP3 - Mise en Place d’un ESB avec Talend ESB - TP eServices13/13

02/02/2020 TP3 - Mise en Place d'un ESB avec Talend ESB - TP eServices 127.1:8000/tp3/ 1/ 13 TP3 - Mise en Place d'un ESB avec Talend ESB Télécharger PDF [./tp3.pdf ] Objectifs du TP 1. Routage, médiation et transformation a vec Talend ESB. 2. Gestion du failo ver et répar tition de charges, monitoring et authentication avec Talend .