La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

„La plate-forme EAI “ Initiation à Crossworlds

Présentations similaires


Présentation au sujet: "„La plate-forme EAI “ Initiation à Crossworlds"— Transcription de la présentation:

1 „La plate-forme EAI “ Initiation à Crossworlds
08/10/2019 „La plate-forme EAI “ Initiation à Crossworlds « La boite à outils » 8

2 Sommaire Objectif Configurer un connecteur Configurer un Meta object
08/10/2019 Sommaire Objectif Configurer un connecteur Configurer un Meta object Configurer un Business object Configurer une Map Configurer une Collaboration template Configurer une Collaboration object Configurer un trigger Ce document est un support de cours; il n ’est donc pas utilisable seul 08/10/2019

3 L ’objectif Présenter des exemples de mise en œuvre des différents composants de la plate-forme EAI 08/10/2019

4 Configurer un connecteur
Propriétés générales identiques pour tout type de connecteur Propriétés spécifiques spécifiques de chaque type de connecteur 08/10/2019

5 Attention ... WBI s ’exécute en Java:
les noms sont sensibles à la casse 08/10/2019

6 Un connecteur, en général
En règle générale: configurer 1 connecteur par application Synchrone/Asynchrone: la plupart des types de connecteurs sont synchrones le connecteur HTTP est asynchrone 08/10/2019

7 Configurer un connecteur, propriétés générales
Remarquer: Méthode de mise à jour Tous les attributs existants sont présentés Tous les attributs sont valorisés par défaut, certaines de ces valeurs n'ayant pas besoin d'être modifiées d'ordinaire Tous les attributs ne sont pas toujours nécessaires, suivant les choix faits (Queues, …) Les attributs peuvent être triés, supprimés, ajoutés 08/10/2019

8 Configurer un connecteur, propriétés générales
Attributs déterminants: Delivery transport: IDL (en Dev), MQS (en Prod), JMS (peu d ’indications) Attributs à renseigner: ApplicationName: le nom de l ’instance Locale: la langue Attributs à modifier au besoin: AgentTraceLevel: niveau de trace (1-5) 08/10/2019

9 Configurer un connecteur, propriétés générales
ControlerTraceLevel: niveau de trace (1-5) PollFrequency: 10 sec. par défaut, en milli secondes = key pour déclencher avec p 08/10/2019

10 Configurer un connecteur, propriétés spécifiques
Pour tout type: Deux champs supplémentaires apparaissent: Chiffrer, Description Si une valeur avait été cryptée, la demande de décryptage exigerait la re-saisie de cette valeur pour être affichée en clair Le champ Propriétés peut être trié, en cliquant dessus Dans ce domaine, il est possible d'ajouter ou de supprimer un attribut 08/10/2019

11 Configurer un connecteur, propriétés spécifiques
Connecteur MQSeries Remarquer: Chiffrer 08/10/2019

12 Configurer un connecteur, propriétés spécifiques, MQ
Attributs à renseigner: ApplicationPassword: le pwd de ApplicationUserName ApplicationUserName: le user MQSeries ArchiveQueue: une Queue Channel: communication Connecteur-MQ mgr ConfigurationMetaObject: le nom du MO DataHandlerClassName: nom du DH 08/10/2019

13 Configurer un connecteur, propriétés spécifiques, MQ
DataHandlerConfigMO: nom du MO pour le DH DataHandlerMIMEType: pour choisir un Mime HostName: nom du host portant le Q mgr Port: d ’ordinaire le 1414 d ’autres Queues 08/10/2019

14 Configurer un connecteur, propriétés spécifiques, MQ
Composants complémentaires: un Meta-object, pour le Data Handler des Queues applicatives 08/10/2019

15 Des exercices Configurer un connecteur MQSeries nommé TSMqsConnector
Des questions? 08/10/2019

16 Configurer un connecteur, propriétés spécifiques
Connecteur Jtext Peu de Propriétés spécifiques pour ce type de connecteur 08/10/2019

17 Configurer un connecteur, propriétés spécifiques Jtext
Les attributs sont simples et peu nombreux (à l ’inverse, voir MQS) remarque: en sortie, le connecteur Jtext fait uniquement des Create 08/10/2019

18 Configurer un connecteur, propriétés spécifiques Jtext
Composants complémentaires: un Meta-object, pour le Data Handler des répertoires où recevoir/envoyer les fichiers Pour un fichier MVS ou AS400, deux solutions sont envisageables: le fichier est au préalable transmis vers/de un répertoire Unix ou Windows le site MVS, AS400 est décrit au connecteur Jtext comme un site distant; le connecteur initialisera une connexion et une requête FTP vers le serveur FTP MVS pour charger/envoyer le fichier attendu 08/10/2019

19 Configurer un connecteur, propriétés spécifiques
Connecteur JDBC DB2 Oracle SQL Server Remarquer: le fenêtre de Log qui confirme, par exemple, la sauvegarde du composant 08/10/2019

20 Configurer un connecteur, propriétés spécifiques JDBC
Attributs à renseigner: DatabaseURL: jdbc:db2:nom_de_la_base EventTableName: nom de la table Event JDBCDriverClass: COM.ibm.db2.jdbc.app.DB2Driver RDBMSVendor: DB2 UniqueIDTableName: table de l ’identifiant unique table Archive: au besoin 08/10/2019

21 Configurer un connecteur, propriétés spécifiques JDBC
Composants complémentaires: en entrée: un trigger des tables: Event, Uid, Archive veiller à purger les tables (Archive, …) 08/10/2019

22 Configurer un connecteur, Objets métier supportés
Remarquer: la colonne Support d ’agent 08/10/2019

23 Configurer un connecteur, Objets métier supportés
La case Support d'agent doit être cochée pour un ASBO (provoque l ’envoi de la description du BO du Controler à l ’Agent) Les BO utiles au connecteur doivent avoir été créés au préalable dans le projet pour apparaître dans le menu déroulant Pour certains types de connecteurs, une autre catégorie de BO apparaîtra aussi ici, les Meta objects 08/10/2019

24 Configurer un connecteur, Mappes associées
Remarquer: la colonne Liaison explicite 08/10/2019

25 Configurer un connecteur, Mappes associées
S'il existe une seule Map référençant le BO, elle apparaîtra automatiquement dans le champ Mappes associées en face du BO concerné S'il existe plusieurs Maps dans lesquelles le BO est décrit, pour sélectionner une Map, cocher la case Liaison explicite Sélectionner la Map concernée dans le menu déroulant 08/10/2019

26 Configurer un connecteur, Mappes associées
Une Map pour un GBO? Si le flux passe dans un seul sens dans ce connecteur, le GBO n'a pas besoin de Map Par contre, si le flux "revenait" en sens inverse du premier passage dans ce connecteur, une Map devrait aussi être décrite pour le GBO (pour une opération de Retrieve) 08/10/2019

27 Configurer un connecteur, Fichiers Trace/Journal
Archives tournantes 08/10/2019

28 Configurer un connecteur, Fichiers Trace/Journal
Pour spécifier les caractéristiques des fichiers: Journal: il existe toujours (défaut: à la console) Trace: si Tracing > 0 08/10/2019

29 Configurer un connecteur, le résultat
Le fichier de configuration dans le répertoire Connectors Pas de mise à jour en direct 08/10/2019

30 Configurer un connecteur
Pour la/les Queues API: penser à les purger, sinon blocage 08/10/2019

31 Configurer un Meta object
Pour une instance de connecteur: MQSeries Jtext pas pour Jdbc 08/10/2019

32 Configurer un MO MQS Chaque attribut représente une combinaison BO_verbe avec un séparateur, l ’ underscore; par exemple: Customer_Update 08/10/2019

33 Configurer un MO MQS Dans le champ ApplSpecInfo de chaque attribut sont placés les propriétés qui s'appliquent à cet attribut spécifiquement; par exemple: InputFormat=LC_UP;OutputFormat=LC_UP 08/10/2019

34 Configurer un MO MQS Recommandation: créer un attribut Default qui permette de spécifier des propriétés s'appliquant à tous les cas de figure, s'ajoutant aux propriétés spécifiées dans les autres attributs Il est également possible de créer un MO simple en spécifiant un seul attribut Default et en y spécifiant toutes les propriétés nécessaires; elles s'appliqueront à toutes les combinaisons BO_verbe 08/10/2019

35 Des exercices Configurer un MO MQSeries nommé MO_TSExo1 Des questions?
08/10/2019

36 Configurer un MO Jtext Un connecteur Jtext a besoin d'un MO qui soit constitué de: un MO Parent au moins un MO fils Le MO Parent décrit: Le type de DH à utiliser Les répertoires 08/10/2019

37 Configurer un MO Jtext Le nom d'un MO Parent: champ1_champ2_champ3
avec ces spécifications: Champ1: = MO, pour indiquer qu'il s'agit d'un MO Champ2: = ConnectorName, pour savoir par quel connecteur ce MO est utilisé Champ3: = BOName, pour savoir à quel BO il correspond ce champ peut lui-même être constitué de strings liés par un underscore: facture_customer 08/10/2019

38 Configurer un MO Jtext Le champ3 peut être laissé à la valeur Default, ce qui aura pour effet de: faire utiliser ce MO générique par le connecteur correspondant pour tous les MO qui ne seraient pas spécifiés dans un MO particulier prendre/envoyer les fichiers dans les mêmes répertoires L'utilisation du seul MO_ connectorName_Default, sans créer d'autres MO, peut suffire à condition que les formats et les répertoires soient identiques 08/10/2019

39 Configurer un MO Jtext Le MO Fils décrit les informations de configuration pour le DH 08/10/2019

40 Configurer un MO Jtext En entrée, deux éléments différencient les fichiers: Le répertoire L'extension Ces deux valeurs sont spécifiables dans le MO Naturellement, si des fichiers différents doivent être traités, ils ne doivent pas porter les deux mêmes caractéristiques 08/10/2019

41 Configurer un MO Jtext En sortie, le nom du fichier être:
Spécifié explicitement dans l'attribut OutputFileName Laissé au mécanisme de création du connecteur: OutputFileName=Native 08/10/2019

42 Configurer un MO MQS Un connecteur Jtext a besoin d'un MO qui:
soit une liste de conversion pour chaque type d ’événement en spécifiant un attribut pour chacun: Customer_Create, Item_update, … est unique: un Connecteur supporte un seul MO indique l ’origine/la destination (Queues) 08/10/2019

43 Et pour les autres? Pour les types de connecteurs qui n ’utilisent pas de MO: les AppSpecInfo 08/10/2019

44 Configurer un Business object
Un BO peut être: Plat: composé de plusieurs attributs, tous de cardinalité simple Hiérarchique: composé de plusieurs attributs dont un/plusieurs est complexe, contenant chacun un BO fils 08/10/2019

45 Configurer un BO Dans un BO: Des AppSpecInfo
Les verbes supportés par l'objet, indiquant les opérations qui sont possibles sur les données transportées Des attributs, eux-mêmes porteurs de propriétés 08/10/2019

46 Configurer un BO Des AppSpecInfo peuvent être spécifiées à différents niveaux: L'objet: le nom d'une table DB2 Un attribut: le nom d'une colonne dans la table DB2 Un verbe: un ordre Select pour un verbe Retrieve 08/10/2019

47 Configurer un BO Chaque attribut dans un BO: doit avoir un nom unique
peut comporter une valeur par défaut ... 08/10/2019

48 Configurer un BO Jdbc Le nom de la table spécifié avec le paramètre TN dans AppSpecInfo de l'objet Le nom de la colonne spécifié avec le paramètre CN dans AppSpecInfo de l'attribut 08/10/2019

49 Configurer un BO Jdbc Un BO avec une Foreign key et un « fils »:
Un BO de mainframe montré ici pour les différents AppSpecInfo présents dans les attributs: 08/10/2019

50 Configurer un BO Jtext XML
Un BO Jext XML: reproduit la hiérachie présente dans le message XML correspondant est constitué de: un BO Top level un BO Root des BO « enfants » 08/10/2019

51 Configurer un BO Jtext XML
Le nom du BO Top level: Boprefix + nom de l ’élément XML AppSpecInfo des attributs: nom de chaque élément XML Utiliser l ’ODA (des limitations) 08/10/2019

52 La Map, en général La Map est appelée par le Controler
Une Map est toujours uni-directionnelle Le Mapping se faite en séquence, ligne après ligne 08/10/2019

53 Configurer une Map Une Map simple: 2 attributs seulement + le verbe
mapping 1 pour 1 des règles Déplacer uniquement Remarquer: les flèches marquant les correspondances 08/10/2019

54 Configurer une Map Dans une Map, tous les attributs ne sont pas toujours mappés: ObjEventId: jamais Remarquer: la colonne Règles 08/10/2019

55 Map, le contexte A spécifier en test: Event processing
Service call request Service call response Event response 08/10/2019

56 Les Relationships Au delà d’une Map
Entre « Participants »: les applications concernées Pour établir une correspondance entre: des valeurs, pour un attribut: Lookup relationship des clés, pour des BO: Identity relationship 08/10/2019

57 Une Lookup relationship
Pour établir la correspondance entre des valeurs d’attributs équivalentes mais de représentations différentes (aaa->123) Agit sur un attribut Ne référence pas l’attribut concerné (réutilisation) La correspondance peut être 1à1, 1àN, NàN 08/10/2019

58 Une Identity relationship
Pour établir la correspondance entre deux Participants par leurs clés Agit sur un BO La correspondance peut être 1à1 08/10/2019

59 Les Relationships, … Sont:
Créées/modifiées avec le Relationship manager stockées sur le Référentiel = des tables DB2 Remarque: il n ’est pas conseillé d ’en faire la création/maintenance par l ’« extérieur » (Business Objects, …) 08/10/2019

60 Les Relationships, ... Appelé par la Map Identity ou Lookup:
avec la Rule CrossReference Identity ou Lookup: mise en œuvre identique le déterminant: l ’attribut est/n ’est pas une clé 08/10/2019

61 Des exercices Configurer une Map nommée TS_Exo1_toExo1 pour transformer l ’ ASBO JDBC nommé TS_Exo1 en GBO JDBC nommé Exo1 Des questions? 08/10/2019

62 Configurer une Collaboration template
Cette collaboration: Reçoit: un BO, en haut Réalise: une lecture Fournit: rien 1 scénario 08/10/2019

63 Configurer une template
Cette collaboration: Reçoit: un BO Réalise: une création Fournit: rien Encore plus simple 08/10/2019

64 Configurer une template
Cette collaboration est nommée CollaborationFoundation: Elle est livrée en standard avec Crossworlds Plusieurs scénarios 08/10/2019

65 Configurer une template
Elle est destinée à servir de base pour des développements de fonctions de: Synchronisation: "transporter" un événement d'une application émettrice à une application réceptrice sans demander/attendre de retour Accès à des données: interrogation d'une application avec retour des données recherchées 08/10/2019

66 Configurer une template
Cette collaboration propose: la logique, le contrôle des données, la gestion des erreurs nécessaires 5 diagrammes vides, destinés à être utilisés pour des développements spécifiques elle supporte des verbes Create, Retrieve, Update, Delete 08/10/2019

67 Configurer une Collaboration object
Une Collaboration se connecte à: Un/plusieurs connecteurs Une autre collaboration Sur cette capture d'écran, l'"entrée" est à droite et la "sortie" à gauche: en effet, il n'est pas possible de demander à Crossworlds d'"orienter" ses représentations graphiques des Collaborations Sur cette capture d'écran, l'affichage des Maps a été demandé; remarquer que la "sortie" a 2 Maps 08/10/2019

68 Configurer une Collab Une Collab simple, « à tout faire » 08/10/2019

69 Une Collab ... Active? Des paramètres? Retour?
Une Collab doit être démarrée Des paramètres? Dans les Propriétés Retour? Il y a toujours un retour (résultat de Retrieve, code de retour, …) ==> il faut une Map de retour 08/10/2019

70 Une Collab ... Au démarrage une Collab signale à l ’Agent qu ’il peut envoyer des données quand il en aura A défaut, l ’événement ira en Archive et devra être ensuite recyclé 08/10/2019

71 Configurer un trigger L ’architecture: Le comportement:
L'exécution du Trigger fait partie de l'unité d'œuvre de la transaction applicative Le comportement: Une fois "armé", un Trigger reste opérationnel tant que l'ordre inverse ne lui est pas adressé Le connecteur se contente de surveiller la Event table (alimentée par le Trigger) 08/10/2019

72 Code complet disponible par ailleurs
Configurer un trigger Un exemple de code d ’un trigger: connect to CWREPOS CREATE TRIGGER trig1 AFTER INSERT ON tmaquette3 FOR EACH ROW MODE DB2SQL BEGIN ATOMIC DECLARE connector_id_p VARCHAR(40) ; DECLARE object_key_p VARCHAR(80) ; DECLARE object_name_p VARCHAR(40) ; DECLARE object_verb_p VARCHAR(40) ; DECLARE event_priority_p DECIMAL(5) ; DECLARE v_SimilarCounts DECIMAL ; DECLARE tmp_object_verb VARCHAR(30) ; SET connector_id_p = 'null' ; SELECT object_key_p = champ1 FROM INSERTED ; SET object_name_p = 'maquette3_ASBO_IN' ; SET object_verb_p = 'Create' ; SET event-priority_p = '1' ; SET v_SimilarCounts = SELECT count(*) ; SET tmp_object_verb = object_verb_p ; BEGIN INSERT INTO xworlds_events ( connector_id, object_key, object_name, object_verb, event_priority, event_status) VALUES (connector_id_p, object_key_p, object_name_p, tmp_object_verb, event_priority_p, 0); END Code complet disponible par ailleurs 08/10/2019

73 Des exercices Des questions? 08/10/2019

74 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 08/10/2019


Télécharger ppt "„La plate-forme EAI “ Initiation à Crossworlds"

Présentations similaires


Annonces Google