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.

Découverte de Talend Open Studio for MDM

Talend Open Studio for MDM est l’offre Open Source de Talend pour mettre en place rapidement un premier projet MDM simple.  Il s’agit d’une solution flexible et ouverte construite sur l’intégration et le profiling de données, regroupées au sein de la même plateforme.

Talend Open Studio for MDM propose un modèle de données orienté intégration, ouvert et extensible qui permet de gérer n’importe quel domaine (produits, clients, fournisseurs, achats, etc.). La solution se compose d’un studio de développement, d’une interface web pour gérer les données maîtres et d’un serveur MDM.

Le principe de fonctionnement est le suivant :

  1. Un utilisateur crée ou modifie un enregistrement maître dans l’interface web.
  2. En fonction de certaines conditions, un événement est déclenché.
  3. L’événement lance un service :
    • de processus de validation automatique ou manuel,
    • d’enrichissement d’informations,
    • d’intégration de données,
    • etc.

Afin de mieux comprendre les étapes nécessaires à la mise en place d’un tel fonctionnement, prenons l’exemple simple de la création et de la mise à jour d’un référentiel produits :

  1. Spécification de la structure d’une entité Produit dans un modèle de données.
  2. Définition d’un container de données pour stocker les enregistrements.
  3. Définition d’une vue pour configurer la génération automatique de l’interface web.
  4. Ajout / modification de produits dans notre catalogue via l’interface web.
  5. Déclenchement d’un Job à la création d’un produit pour renseigner automatiquement le prix du produit en fonction d’un processus donné.

Le développement se fait dans le studio qui regroupe les parties MDM, intégration et profiling dans la même interface.

La première étape consiste à créer le modèle de données Produit qui va regrouper l’ensemble des entités du référentiel.

Il faut ensuite créer la structure de l’entité décrivant le produit et définir ses attributs :

  • Un identifiant unique (séquence automatique).
  • Un nom.
  • Une description.
  • Un prix (optionnel).

Afin de stocker les enregistrements de l’entité Produit il faut créer un conteneur de données.

Il faut enfin créer la vue pour pouvoir visualiser les produits au travers de  l’interface web.

Une fois toutes ces opérations réalisées et tous les éléments publiés sur le serveur MDM, il est possible de créer des enregistrements au travers de l’application web Talend MDM.

Afin de renseigner automatiquement le prix du produit lors de la création d’un enregistrement, il va être nécessaire de créer un Job, qui va générer un prix en fonction de règles métiers, et un processus permettant d’appeler le job.

La création du processus qui va appeler le Job Talend se déclare au niveau de la liste des événements. Le processus prend le message XML de création du produit en entrée, le traite afin de le passer en paramètre au Job et déclenche le job.

La création du Job Talend se fait dans la partie Intégration du studio. Le Job prend le message XML en entrée, calcule le prix du produit et retourne un message XML avec l’ID et le prix du produit afin de mette à jour le champ prix de l’entité produit. Les composants tMDM spécifiques à la gestion des données de références sont utilisés pour fournir des fonctionnalités dédiées.

Une fois le job terminé, il doit être publié en tant que Web Services sur le serveur MDM.

Pour terminer, il faut créer un déclencheur (trigger) dans les évènements afin d’appeler automatiquement le processus. Il va ainsi permettre de renseigner automatiquement le prix lors de la création d’un nouveau produit.

Au-delà de cet exemple simple, il est possible avec Talend Open Studio for MDM, d’accéder à des fonctions plus avancées pour :

– Enrichir le modèle de données :

  • Création d’entités multiples (Famille, Magasin, …).
  • Ajout d’attributs de type image, liste de valeurs, valeurs multiples, etc.
  • Gestion multilingue des libellés et descriptions.
  • Gestion des formats d’affichage.
  • Gestion des relations (clés étrangères).
  • Héritage et polymorphisme (ex. adresse en fonction du pays).

– Enrichir les vues via l’appel d’un processus afin d’afficher des données externes via l’ajout de champs Lookup et ainsi éviter de stocker les données dans le référentiel MDM.

– En ajoutant des processus complémentaires pour :

  • Valider des données avant écriture (Before-Saving).
  • Valider la suppression d’un enregistrement (Before-Deleting).
  • Fournir des vues personnalisées de l’interface web (SmartView) afin de masquer un champ, afficher des icônes, etc.
  • Fournir des processus pouvant être déclenchés manuellement par l’utilisateur (Runnable Process).

Tout ce qui est réalisé avec la version Open Studio peut être facilement porté vers la version avec souscription, Talend Enterprise MDM, qui propose des fonctionnalités beaucoup plus avancées :

  • capacités de modélisation supplémentaires,
  • sécurité par rôle,
  • gestion des versions,
  • prise en charge des hiérarchies,
  • déploiement décentralisé avec synchronisation automatique,
  • monitoring,
  • fonction de gestion de la qualité de données,
  • création & exécution des workflows (BPM via BonitaSoft).

L’intégration de données avec Talend

Longtemps boudé par les cabinets de conseil américains car issu du monde de l’opensource, Talend s’est imposé parmi les grands de l’intégration de données dès 2009, pour consolider son statut de visionnaire dans le dernier Magic Quadrant for Data Integration du Gartner. 

Peut-être avez-vous déjà travaillé avec Talend ? La version community, gratuite, permet à n’importe quel développeur d’installer le studio TOS sur son poste afin de développer des jobs autonomes. Une première approche déjà très intéressante qui vous a peut-être permis de profiter de la richesse des nombreux composants Talend pour faire des migrations de données, des aquisitions de fichiers variés ou même des lectures d’annuaires ldap. 

La création de jobs, la gestion de métadonnées, des connexions aux principales bases de données du marché et fichiers… le tout gratuitement. Dans ces conditions, pourquoi devriez-vous investir dans Talend Integration Suite, la version à souscription de Talend ?

Première idée reçue qu’il faut combattre : opensource n’est pas synonyme de gratuit. En effet, même si l’acquisition de la brique logicielle ne représente aucun investissement, il sera néanmoins nécessaire de former vos équipes, faire appel à des consultants pour mettre en place des normes de développement, mais aussi et surtout développer en interne tout ou partie d’une mécanique qui permettra d’automatiser au mieux les tâches.

Alors oui, c’est possible. ASI l’a d’ailleurs mis en oeuvre à la demande de certains de ses clients pour des déploiements réduits. Néanmoins, il paraît rapidement nécessaire de passer sur l’offre Talend Integration Suite afin de bénéficier de fonctionnalités d’entreprise sans avoir à continuellement réinventer la roue !

Voici trois fonctionnalités sélectionnées parmi les fonctionnalités de la plateforme TIS qui vous seront à coup sûr utiles :

  • Référentiel centralisé
    TIS est basé sur un référentiel SVN centralisé : tous les projets développés sont stockés à un seul et même endroit et peuvent être versionnés au besoin. Lors de la maintenance d’un projet ou le développement d’une nouvelle fonctionnalité, le développeur pourra donc travailler dans une « branche » sans risque de perturber les autres traitements en production. Une fois sa modification validée, elle pourra être déplacée dans le « tronc » ou servir de base à une nouvelle version développée dans une autre « branche ». Il est aussi possible d’avoir plusieurs versions d’un même job, ce qui facilite les corrections et les retours en arrière en cas d’erreur.
  • Clic droit, visualiser
    Encore une fonctionnalité qui va vous permettre de gagner du temps dans vos développements : que ce soit pour valider la bonne alimentation d’un fichier ou comprendre les données sources, le développeur peut rester dans le studio de développement et s’épargner les continuels allers-retours entre différents éditeurs.
  • Activity Monitoring Console
    Présente à la fois dans le studio et dans le portail web Talend Administration Center (TAC), l’Activity Monitoring Console (AMC) permet aux développeurs ou aux équipes d’exploitation d’aller consulter les logs d’exécution des jobs. Les statistiques affichées permettent de prendre connaissance des éventuelles erreurs ou avertissements déclenchés pendant l’exécution d’un job, mais l’AMC va encore plus loin en proposant une vision graphique des exécutions. Ainsi, une courbe vous permettra d’analyser les temps d’exécution d’une chaîne sur une période ou un diagramme circulaire vous permettra d’analyser finement les temps d’exécution de chaque sous-job d’une chaîne.

Vous l’avez donc compris, TIS vous permettra de passer à la vitesse supérieure et d’améliorer la qualité de vos développement grâce à une plateforme complète. Alors pourquoi attendre ?

%d blogueurs aiment cette page :