„La plate-forme EAI “ Initiation à WBI 09/11/2018 „La plate-forme EAI “ Initiation à WBI « Développer avec WBI » 7
Sommaire Objectif Vue générale d ’un flux Concevoir 09/11/2018 Sommaire Objectif Vue générale d ’un flux Concevoir Conception d ’un connecteur, … Enregistrer, les domaines Les configurateurs Développer un connecteur, ... Ce document est un support de cours; il n ’est donc pas utilisable seul 09/11/2018
L ’objectif Conduire la conception et le développement de composants Crosswolds en suivant une démarche cohérente 09/11/2018
Vue générale d ’un flux Les composants Des objets Des fonctions 09/11/2018
Des exercices Comme thème des exercices, ce flux: 09/11/2018
Concevoir avec WBI La conception avec WBI consiste à définir: la manière de correspondre avec les applications des objets métier des traitements sur ces objets 09/11/2018
Concevoir, séquence de conception des composants La séquence recommandée consiste à développer dans l'ordre: Connecteurs et Data Handlers ASBO GBO Maps/Relationships Collaboration templates Collaboration Objects Cette séquence tient compte des dépendances entre types de composants (p.83 du document IBM Implementation guide for WebSphere Interchange server) 09/11/2018
Conception d ’un connecteur Distinguer Type de connecteur et Instance de connecteur Identifier le type de connecteur qui convient aux échanges avec l'application correspondante: Connecteur MQ Connecteur Jtext Connecteur Jdbc … 09/11/2018
Conception d ’un ASBO Commencer avec une structure très simple, tester avec le connecteur, ajouter un niveau de complexité, tester de nouveau, … Chercher dans la documentation pour ce type de connecteur s'il existe un Object Discovery Agent (ODA) pour ce type de données, ce qui permettrait un gain de temps appréciable Simultanément, développer les déclencheurs nécessaires à la création des événements 09/11/2018
Conception d ’un GBO Après avoir développé tous les ASBO, créer un GBO comme sur-ensemble des ASBO 09/11/2018
Conception d ’une Map S'appliquer à transcrire précisément les transformations nécessaires 09/11/2018
Conception d ’une Collaboration template Chercher dans le stock existant avant de partir dans un développement nouveau 09/11/2018
Enregistrer, les Domaines Projets utilisateur ou Bibliothèques des composants d'intégration: Sont enregistrés dans le répertoire WebSphereICS du poste de travail de l'utilisateur L'ICS n'a pas besoin d'être lancé Instances InterChange server: Sont enregistrés dans le Référentiel L'ICS doit être lancé 09/11/2018
Les configurateurs Il existe un configurateur pour: Un connecteur Un BO Une Map Une Relationship Une Collaboration template 09/11/2018
Développer un connecteur Distinguer Type de connecteur et Instance de connecteur Le configurateur = plusieurs onglets chaque champ = 255 car. Référencé par la Collaboration Des champs blancs, des champs grisés 09/11/2018
Connecteur, les onglets Propriétés standard: s'appliquant à tous les types de connecteurs Propriétés spécifiques à chaque type de connecteur Objets métier supportés Mappes associées Ressources Fichiers trace/journal Messagerie Gestionnaire de données 09/11/2018
Connecteur, les champs Les champs apparaissent avec des couleurs de fond spécifiques: Blanc: le contenu du champ peut être modifié Gris: le contenu ne peut pas être modifié La colonne Méthode de mise à jour est informationnelle; elle indique l'action éventuelle à prendre au cas où la valeur de l ’attribut aurait été mise à jour 09/11/2018
Connecteur, propriétés standards Les attributs ont tous des valeurs par défaut Les valeurs de plusieurs attributs sont susceptibles d'être modifiées: AgentTraceLevel: mis à 5 pour assister au debugging, ramené à 0 ensuite DeliveryTransport: IDL en test unitaires, MQ (ou JMS) ensuite PollFrequency: en 1/1000e de seconde pour Poller, No en veille La liste des attributs varie suivant le mode de communication choisi 09/11/2018
Connecteur, propriétés spécifiques La liste des attributs varie d'un type de connecteur à un autre, leurs valeurs également Chaque type de connecteur est présenté par un document IBM WBI spécifique Il faut se référer au document correspondant au type de connecteur pour une bonne compréhension des attributs et des valeurs à leur attacher Les informations détaillées sont disponibles dans la documentation usuelle 09/11/2018
Connecteur, objets métier Le connecteur prend en charge: Un ASBO Un GBO au minimum Pour ajouter un BO: placer le curseur dans le premier champ Nom de l'objet métier vide sélectionner le BO dans la liste présentée Préciser Support d'agent pour tous les ASBO 09/11/2018
Connecteur, Map Une Map doit être associée à chaque ASBO pour transformer son contenu dans le GBO, et réciproquement Pour ajouter une Map: Clic sur Liaison explicite Placer le curseur dans le champ Mappe associée vide Sélectionner la Map dans la liste présentée 09/11/2018
Connecteur, fichiers trace/journal Cet onglet permet de spécifier l'écriture des informations Log et Trace dans des fichiers spécifiques Pour ça: Clic sur Au fichier Rechercher/créer le fichier nécessaire Spécifier la dimension du fichier et le nombre des archives éventuelles 09/11/2018
Connecteur, sauvegarder Fichier/Sauvegarder sous/Vers le projet Sélectionner le Projet Saisir le nom du connecteur obligatoirement de la forme: nom_du_connecteurconnector Bouton Sauvegarder 09/11/2018
Connecteur, l ’Agent Pour chaque instance de connecteur: un Agent au moins une Queue MQ (JMS, +) doivent être créés en Windows/Unix 09/11/2018
Des exercices Créer un connecteur JDBC nommé MVJtextConnector Créer un connecteur JDBC nommé BAJdbcConnector 09/11/2018
Le Data Handler Le Data handler: une fonction générique est nécessaire pour "traduire" les données applicatives (des données « plates ») en objets métier n'est pas nécessaire / pas utilisé par certains types de connecteur (JDBC) permet d ’être « non intrusif » vis à vis des applications concernées est décrit dans Data handler guide 09/11/2018
Data Handler, le besoin Pour plusieurs types de connecteurs, il est nécessaire de fournir ces informations: Le type de format des données qui détermine le type de Data handler à utiliser Les références des emplacements où aller chercher / déposer les données Dans les données figurent principalement: Le nom du BO concerné Le Verbe à exécuter: Create, Retrieve, Update, Delete Les attributs 09/11/2018
Data handler, pour 5 types de données XML Data handler: données au format XML EDI Data handler: données au format EDI FixedWidth Data handler: données dans des champs de longueur fixée Delimited Data handler: données dans des champs identifiés par des séparateurs NameValue Data handler: données dans des champs identifiés par des noms 09/11/2018
Data handler, le Meta object La mise en œuvre d ’un DH nécessite la création d'un Business object qui, lui, est spécifique: un Meta Object Le Meta Object contient des informations de configuration (format de données, répertoires, queues, …) Le Meta Object « reste » dans le Connecteur (= pas transmis) Certains types de connecteurs n ’ont pas besoin de Meta object 09/11/2018
Data Handler, un BO Comme un Meta object est un Business object, sa configuration est réalisée exactement comme décrit par ailleurs pour un ASBO ou un GBO Simplement, les attributs à spécifier sont imposés par les besoins du Data handler utilisé Les informations détaillées sont disponibles dans la documentation usuelle 09/11/2018
Connecteur et Data Handler, la dynamique Le Connector Agent détecte un événement, instancie le Data handler correspondant, lui envoie les données applicatives (suivant le sens) En retour, le DH envoie le BO au Connector controler et aussi dans l ’autre sens 09/11/2018
Connecteur Jtext et Data Handler, « et Si ?» Par exemple, avec le connecteur Jtext: Si OK: le DH écrit le fichier traité avec l ’extension .SUCCESS Si erreur: le DH écrit le fichier traité avec l ’extension .FAIL Si Pas de souscription: le DH écrit le fichier traité avec l ’extension .UNSUB 09/11/2018
Un ASBO WBI travaille exclusivement sur des Objets métier un ASBO est un Objet métier spécifique d'une application Un ASBO interagit avec un connecteur Rien ne distingue un ASBO d'un GBO sinon l'utilisation qui en est faite 09/11/2018
ASBO, description La description d'un Business object peut être: Manuelle: Soit par recopie d'un BO existant + modifications Soit par saisie complète Automatique, en utilisant un Object Discovery Agent (ODA) quand il en existe: JDBC, XML 09/11/2018
ASBO, organisation UN BO peut être: "plat" hiérarchique, avec des "enfants" Dans un objet hiérarchique, la relation avec un "enfant" peut être: de cardinalité simple: un attribut correspond à un enfant de cardinalité multiple: un attribut correspond à plusieurs enfants 09/11/2018
ASBO, organisation Un enfant est un BO indépendant (pour créer un objet hiérarchique, l ’enfant doit exister au préalable) Décrire un enfant est intéressant pour isoler un ensemble cohérent et autonome de descriptions qui peut ensuite être réutilisé dans d'autres BO La cardinalité multiple permet de répondre aux besoins d'une relation 1 à N 09/11/2018
ASBO, attributs Décrire dans l'ASBO tous les attributs correspondant aux colonnes de la table, aux champs de l'enregistrement, … concerné Bénéfices: l'objet ressemble trait pour trait à la donnée, ce qui en facilite la lecture et la compréhension les évolutions ultérieures seront facilitées puisque l'ASBO n'aura pas à être modifié si un besoin supplémentaire se faisait sentir 09/11/2018
ASBO, les attributs Le nom Le type: Boolean, Integer, … La cardinalité La clé La Foreign key La propriété Required La propriété AppSpecInfo La longueur maximum La valeur par défaut Des commentaires 09/11/2018
ASBO, des attributs L'attribut ObjectEventId est indispensable puisque WBI l'utilise pour identifier chaque échange Le configurateur le génère automatiquement et le positionne en dernière ligne; il en interdit la suppression Cet attribut ne doit pas être décrit dans une Map ou utilisé par un Data handler 09/11/2018
ASBO, AppSpecInfo Un ASBO peut porter des informations de type AppSpecInfo Au niveau du BO, d ’un Verbe, d ’un attribut Dans un échange JDBC: TN=TableName, argument de Retrieve, CN= ColumnName Dans un échange XML: elem_name= nom_de_ l ’element AppSpecInfo n'est pas accessible au mapping 09/11/2018
ASBO, le configurateur Deux onglets: le verbe + AppSpecInfo les attributs Les quatre verbes apparaissent par défaut dans le configurateur; conserver celui/ceux qui s'appliquent au BO concerné Les informations détaillées sont disponibles dans la documentation usuelle 09/11/2018
ASBO, ODA Les bénéfices de l'utilisation d'un ODA: Bonne efficacité: saisie en une seule fois Fiabilité: pas d'erreur de saisie Facilité de mise à jour en cas de modification de l'objet Dans le configurateur: Faire /Fichier/Nouveau avec ODA Sélectionner l'ODA choisi 09/11/2018
ASBO, ODA L ’ODA JDBC, après configuration, se connecte à la base de données et affiche l'arborescence des schémas L ’ODA XML « lit » le fichier XML et produit l ’ASBO correspondant avec sa hiérarchie et ses paramètres 09/11/2018
Des exercices En partant de deux applications: TS (tests) et SL (solution) Créer un ASBO nommé MVMouvementStock , avec 3 attributs Créer un ASBO nommé BAMouvementStock , avec 3 attributs 09/11/2018
GBO Le GBO est un Objet métier générique propre à l'entreprise Il interagit avec la Collaboration Décrire dans le GBO tous les attributs correspondant aux attributs de tous les ASBO concernés Les informations détaillées sont disponibles dans la documentation usuelle 09/11/2018
Des exercices Créer un GBO nommé MouvementStock , avec 3 attributs 09/11/2018
Map Une Map fait correspondre les attributs d'un ASBO avec ceux d'un GBO, et réciproquement Les spécifications d'une Map décrivent les règles de transformation à appliquer aux valeurs des attributs Source pour les transformer en valeurs des attributs Cible 09/11/2018
Map Il faut décrire au minimum: Une Map d'entrée Une Map de sortie Les actions prises par une Map peuvent être de: Réunir plusieurs attributs en un seul Eclater un attribut en plusieurs Ignorer un attribut Gérer les différences des relations structurelles ou sémantiques Prendre en charge les Foreign keys ... 09/11/2018
Map Une Map est décrite par: Son nom Les noms des BO Source et Cible Les règles de transformations Une Map est développée en utilisant le Map designer 09/11/2018
Map 2 objets: un ASBO et un GBO et des correspondances/transformations d ’attributs 09/11/2018
Map Une Map doit être compilée pour être exécutable Pour que la compilation puisse s'exécuter: l'ICS doit être actif le CSM doit être connecté à l'ICS le Map designer doit avoir été démarré dans le CSM La compilation a pour effet de produire un fichier .class à partir du fichier .java contenant les spécifications saisies 09/11/2018
Map Une Map doit être « startée » pour être exécutée (comme un Connecteur, une Collaboration) Les informations détaillées sont disponibles dans la documentation usuelle 09/11/2018
Des exercices Créer une Map IN nommée MVMouvementStock_to_MouvementStock pour transformer l ’ASBO nommé MVMouvementStock en GBO nommé MouvementStock Créer une Map OUT nommée MouvementStock_to_BAMouvementStock pour transformer le GBO nommé MouvementStock en ASBO nommé BAMouvementStock 09/11/2018
Collaboration template Une Collaboration template décrit les traitements à exécuter sur des BO (GBO) Une Collaboration est constituée de scénarios; chaque scénario correspond à un type d'événement déclencheur, l'association d'un BO et d'un Verbe 09/11/2018
Collaboration template Un scénario est: constitué d'activités, de liaison entre les activités, d'appels externes, l'unité de base, représentée par une boite carrée représenté au moins par un diagramme, souvent accompagné de sous-diagrammes, dans un format UML 09/11/2018
Collaboration template Un scénario 09/11/2018
Collaboration template Pour mettre en œuvre une Collaboration: Rechercher une Collaboration existante qui soit proche/identique Mettre au point les scénarios et les diagrammes d'activité au moyen du Process designer Compléter en Java pour les éléments spécifiques Compiler le Template 09/11/2018
Collaboration template Il faut décrire au minimum: Une entrée: triggering event Une sortie: sending event par où les BO "entreront" et "sortiront" de la Collaboration, avec leurs verbes 09/11/2018
Collaboration template Au moins 2 ports 09/11/2018
Collaboration template Le début d'un Template: le symbole Début du scénario principal qui reçoit le Triggering event La fin d'un Template: émission d'un Service call Les informations détaillées sont disponibles dans la documentation usuelle 09/11/2018
Des exercices Créer une Template nommée Transferer pour traiter le GBO nommé MouvementStock 09/11/2018
Collaboration object La Collaboration est le composant fédérateur de tous les autres composants nécessaires au traitement d'un flux Une Collaboration communique avec les composants avec lesquels un Bind a été fait, chacun sur un Port Les informations détaillées sont disponibles dans la documentation usuelle 09/11/2018
La Collab, les Objets, les Connecteurs, même les Maps Collaboration object La Collab, les Objets, les Connecteurs, même les Maps 09/11/2018
Des exercices Créer une Collab Object pour assembler les composants créés 09/11/2018
Application des changements L’application des changements sur les composants WBI, une livraison par exemple, ne peut pas être réalisée de manière dynamique dans de nombreux cas, ce qui nécessite alors des arrêt/relance de l’ICS ou de certains composants comme les Connecteurs 09/11/2018
Application des changements, dans le CSM Les composants gérés dans le CSM peuvent être “ rafraichis ” par la fonction Refresh Ceci en permet l'utilisation par d'autres composants Par exemple, un Business Object nouvellement créé apparaîtrait, après Refresh, dans les panneaux de description d'un connecteur et pourrait être utilisé. 09/11/2018
Application des changements, dans l ’ICS Le déploiement de composants dans l'ICS n'en provoque pas automatiquement la prise en compte Il faut faire un Refresh pour que les composants déployés soient pris en compte par l'ICS Pour certains types de composants, une action supplémentaire peut être nécessaire; par exemple: Un Business Object: arrêt/démarrage de l'ICS Une Collaboration Object Des changements de Propriétés: mise à jour dynamique Des changements de code Java: mise à jour dynamique Une Map: mise à jour dynamique 09/11/2018
Mises en œuvre complémentaires Il faut créer: un Agent pour chaque instance de connecteur une(minimum)/des queues MQSeries des répertoires pour des échanges Jtext des tables d ’événement pour des échanges JDBC 09/11/2018
Créer un Agent Un Connecteur = Controler + Agent Controler: installé avec l ’ICS Agent: installé (souvent) avec l ’application concernée Start: sur le Controler le Controler contrôle son Agent 09/11/2018
Créer un Agent Des pre-requisites : l’installation du Connector Framework sur chaque système recevant un/des Agents un MQSeries Server pour assurer les échanges entre les Controlers et les Agents l'installation d'un fichier de configuration local, nécessaire en cas d'utilisation de JMS 09/11/2018
Créer un Agent, en Windows Créer le répertoire au nom du connecteur Recopier le contenu du répertoire type Renommer les 3 fichiers Créer le Script de lancement/arrêt + modifier le raccourci Créer les Queues techniques 09/11/2018
Des exercices Créer un Agent pour le connecteur JDBC nommé BAJdbcConnector 09/11/2018
Autres créations Voir le module Normes 09/11/2018
Des exercices Des questions? 09/11/2018
Fin du module Vos remarques et commentaires peuvent être notés sur la page concernée ou sur cette page avant de les transmettre à votre interlocuteur Ils aideront à améliorer cette initiation 09/11/2018