Découverte de Talend Open Studio for ESB

L’Enterprise Service Bus, ou ESB, est un ensemble de moyens techniques et organisationnels dont le but est de permettre la communication entre des applications qui, à la base, ne sont pas pensées pour fonctionner ensemble.

 On peut considérer l’ESB comme une nouvelle génération d’EAI (Enterprise Application Integration). La différence majeure avec l’EAI réside dans le fait que l’ESB propose une architecture distribuée décentralisée grâce à l’orchestration de services. Ceux-ci contiennent la logique d’intégration et peuvent être déposés au plus près des applications sources si nécessaire.

Talend offre 3 éditions pour la mise en place d’un ESB :

  • Talend ESB Standard Edition, framework Open Source basée Apache.
  • Talend Open Studio for ESB, édition Open source avec un environnement de développement.
  • Talend Enterprise ESB, version avec souscription avec fonctions de déploiement et gestion.

Lors de la première prise en main de Talend Open Studio for ESB, on constate qu’il faut démarrer manuellement plusieurs services en ligne de commande afin que la plate-forme soit opérationnelle. Il faut notamment le faire pour le Talend Runtime Container, qui permet de déployer et gérer les jobs et les services Web de manière distante. Ce service OSGi (Open Services Gateway initiative) s’appuie sur Apache Karaf.

Le studio de Talend Open Studio for ESB s’appuie sur le studio de la plateforme unifiée de Talend. Il s’agit donc du même studio, basé sur Eclipse, avec des composants dédiés aux fonctionnalités ESB permettant de gérer la gestion des messages, les services Web, le routage et la transformation des données. Il permet ainsi de développer et de publier des services Web Java, des applications REST et des routes de médiation afin de faire communiquer les applications entre elles.

La première étape consiste à créer un service Web au niveau de l’arborescence du référentiel afin de pouvoir le déployer au niveau du Runtime Container.

Par défaut, on obtient un service Web ayant un input et un output avec la structure ci-dessous :

Il est possible de le modifier afin d’ajouter des opérations ou des paramètres supplémentaires.

Il préférable d’importer les structures XML d’entrée et de sortie du service Web dans le référentiel afin d’éviter de les définir manuellement par la suite.

Afin de pouvoir accéder au service Web, il faut alors assigner un job Talend au service Web. Par défaut, Talend crée un Job avec des composants tESBProviderRequest et tESBProviderResponse. Il est alors possible d’ajouter d’autres composants, comme tXMLMap et tLogRow dans l’exemple ci-dessous, afin de traiter les règles de traitement des données.

Enfin, il faut déployer le service dans le Runtime Container via un export dans le répertoire \container\deploy. Le service Web est automatiquement accessible. Il n’est pas nécessaire de redémarrer le service runtime.

Il est maintenant possible de « consommer » notre service Web depuis n’importe quelle autre application. On peut par exemple l’appeler depuis un autre Job Talend via un composant tESBConsumer. Dans l’exemple ci-dessous, on génère des lignes que l’on va enrichir grâce à l’appel du service Web.

Il faut configurer dans le tESBConsumer l’adresse du service Web à appeler.

Il est également possible de créer une route afin d’appeler des services Web différents selon les données de la requête. Pour cela il faut passer en perspective Mediation dans le studio.

La palette du studio permet alors d’accéder à une liste de composants propres à la gestion des routes de médiation.

La première étape consiste à créer une nouvelle route dans le référentiel.

On paramètre le composant cCXF_1 afin qu’il écoute le service Web que nous avons créé précédemment, et qui est hébergé sur le Runtime Container (port 8040). On configure les composants cCXF_2 et cCXF_3 pour qu’ils déclenchent chacun un service Web différent en fonction de la valeur des données qui transitent dans le message. Ces services Web peuvent être hébergés sur le même Runtime Container ou sur d’autres Runtime Container ayant des ports différents.

Dans la condition when1 du composant cMessageRouter, on crée une règle de filtrage afin d’appeler le bon service Web en fonction du contenu des données.

On peut alors lancer notre Job de route, qui va attendre qu’un message soit envoyé au niveau de notre service Web sur le port 8040. Une fois le service Web appelé, on constate qu’en fonction de la valeur des données du message, il passe bien par des routes différentes et qu’il déclenche donc bien des services Web différents.

La version Talend Enterprise ESB avec souscription offre en plus un gestionnaire de déploiement et des fonctions de travail en mode collaboratif.

À propos ASI
ASI accompagne dans leur transformation digitale les organisations publiques et privées, ETI et Grands Groupes. Notre métier est de comprendre les besoins et d’identifier les usages à valeur ajoutée afin de concevoir, réaliser et déployer des solutions digitales qui améliorent l’Expérience des collaborateurs et des clients dans 3 grands domaines : - La Digitalisation des Processus et Services : conception et développement d’applications métiers, services clients, web et mobile… - La Data Intelligence : reporting et analyse, gouvernance des données, Big Data... - La Connaissance et la Collaboration : intranet/ portail collaboratif, réseau social d'entreprise, base de connaissances, CRM… Créée en 1993 et implantée dans 10 villes en France (Paris, Lyon, Marseille, Rennes, Brest, Nantes, Niort, Tours, Bordeaux et Toulouse), ASI compte 360 collaborateurs. Contactez-nous pour vos projets : 0806 700 800 (service gratuit + prix appel) / asicom@asi.fr

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :