Extension de Tivoli Workload Automation
Transcription
Extension de Tivoli Workload Automation
IBM Tivoli Workload Automation Guide du développeur : Extension de Tivoli Workload Automation Version 9.2 SC11-6931-03 IBM Tivoli Workload Automation Guide du développeur : Extension de Tivoli Workload Automation Version 9.2 SC11-6931-03 Important Avant d'utiliser le présent document et le produit associé, prenez connaissance des informations générales figurant à la section «Remarques», à la page 27. Réf. US : SC14-7623-03 LE PRESENT DOCUMENT EST LIVRE EN L'ETAT SANS AUCUNE GARANTIE EXPLICITE OU IMPLICITE. IBM DECLINE NOTAMMENT TOUTE RESPONSABILITE RELATIVE A CES INFORMATIONS EN CAS DE CONTREFACON AINSI QU'EN CAS DE DEFAUT D'APTITUDE A L'EXECUTION D'UN TRAVAIL DONNE. Ce document est mis à jour périodiquement. Chaque nouvelle édition inclut les mises à jour. Les informations qui y sont fournies sont susceptibles d'être modifiées avant que les produits décrits ne deviennent eux-mêmes disponibles. En outre, il peut contenir des informations ou des références concernant certains produits, logiciels ou services non annoncés dans ce pays. Cela ne signifie cependant pas qu'ils y seront annoncés. Pour plus de détails, pour toute demande d'ordre technique, ou pour obtenir des exemplaires de documents IBM, référez-vous aux documents d'annonce disponibles dans votre pays, ou adressez-vous à votre partenaire commercial. Vous pouvez également consulter les serveurs Internet suivants : v http://www.fr.ibm.com (serveur IBM en France) v http://www.can.ibm.com (serveur IBM au Canada) v http://www.ibm.com (serveur IBM aux Etats-Unis) Compagnie IBM France Direction Qualité 17, avenue de l'Europe 92275 Bois-Colombes Cedex La présente édition s'applique à la version 9.2.0 de Tivoli Workload Scheduler (référence de logiciel 5698-WSH), ainsi qu'à toutes les éditions et modifications ultérieures, sauf mention contraire dans les nouvelles éditions. © Copyright IBM Corporation 2011, 2014. Table des matières Avis aux lecteurs canadiens . . . . . . v Figures . . . . . . . . . . . . . . vii Tableaux . . . . . . . . . . . . . . ix A propos de cette publication . . . . . xi Nouveautés de cette édition . . Nouveautés de cette édition pour Tivoli Workload Automation . . Nouveautés de cette publication Public visé . . . . . . . . Publications . . . . . . . Accessibilité . . . . . . . Formation technique Tivoli . . Informations sur le support . . . . . . l'extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 10 . . . . . . . . . . 10 10 11 11 12 . . xi . . . . xi . xi . xi . xii . xii . xii . xii Chapitre 4. Type de travail personnalisé avec plug-in d'options avancées . . . 13 Chapitre 1. Introduction à l'extension de Tivoli Workload Automation . . . . . . 1 Remarques . . . . . . . . . . . . . 27 Chapitre 2. Integration Workbench . . . 3 Index . . . . . . . . . . . . . . . 31 Installation d'Integration Workbench . . . Utilisation de l'aide d'Integration Workbench . de . . . . . . . Structure de projet de plug-in de gestion des événements . . . . . . . . . . . . Création d'un projet de plug-in de A à Z . Création d'un projet à partir d'un exemple de plug-in . . . . . . . . . . . . . Préparation au déploiement . . . . . . Génération et envoi d'un événement . . . Connexion à Tivoli Workload Scheduler . . . Documents de référence . . . . . . . . . . . . . . . . Structure de plug-in de type de travail personnalisé 19 Chapitre 5. Définition des travaux Java Création du fichier JAR de travail Java . Marques . . . . . . . . . . . . . . . . . 23 . 23 . 28 . 3 . 3 Chapitre 3. Plug-in de gestion des événements Tivoli Workload Scheduler . 5 Projet de plug-in de gestion des événements. © Copyright IBM Corp. 2011, 2014 . . . 6 iii iv IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Avis aux lecteurs canadiens Le présent document a été traduit en France. Voici les principales différences et particularités dont vous devez tenir compte. Illustrations Les illustrations sont fournies à titre d'exemple. Certaines peuvent contenir des données propres à la France. Terminologie La terminologie des titres IBM peut différer d'un pays à l'autre. Reportez-vous au tableau ci-dessous, au besoin. IBM France IBM Canada ingénieur commercial représentant agence commerciale succursale ingénieur technico-commercial informaticien inspecteur technicien du matériel Claviers Les lettres sont disposées différemment : le clavier français est de type AZERTY, et le clavier français-canadien de type QWERTY. OS/2 et Windows - Paramètres canadiens Au Canada, on utilise : v les pages de codes 850 (multilingue) et 863 (français-canadien), v le code pays 002, v le code clavier CF. Nomenclature Les touches présentées dans le tableau d'équivalence suivant sont libellées différemment selon qu'il s'agit du clavier de la France, du clavier du Canada ou du clavier des États-Unis. Reportez-vous à ce tableau pour faire correspondre les touches françaises figurant dans le présent document aux touches de votre clavier. © Copyright IBM Corp. 2011, 2014 v Brevets Il est possible qu'IBM détienne des brevets ou qu'elle ait déposé des demandes de brevets portant sur certains sujets abordés dans ce document. Le fait qu'IBM vous fournisse le présent document ne signifie pas qu'elle vous accorde un permis d'utilisation de ces brevets. Vous pouvez envoyer, par écrit, vos demandes de renseignements relatives aux permis d'utilisation au directeur général des relations commerciales d'IBM, 3600 Steeles Avenue East, Markham, Ontario, L3R 9Z7. Assistance téléphonique Si vous avez besoin d'assistance ou si vous voulez commander du matériel, des logiciels et des publications IBM, contactez IBM direct au 1 800 465-1234. vi IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Figures © Copyright IBM Corp. 2011, 2014 vii viii IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Tableaux © Copyright IBM Corp. 2011, 2014 ix x IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation A propos de cette publication Le manuel Guide du développeur : Extension de Tivoli Workload Automation décrit comment utiliser l'interface des services Web pour contrôler les objets IBM® Tivoli Workload Scheduler et IBM Tivoli Workload Scheduler pour z/OS dans leurs plans respectifs. Nouveautés de cette édition Prenez connaissance des nouveautés de cette édition. Pour plus d'informations à propos des fonctions nouvelles ou modifiées de cette édition, voir Récapitulatif des améliorations dans Tivoli Workload Automation Présentation. Pour plus d'informations sur les APAR de cette édition, voir les Notes sur l'édition de Tivoli Workload Scheduler à l'adresse http://www-01.ibm.com/support/ docview.wss?rs=672&uid=swg27041032 et Dynamic Workload Console Notes sur l'édition à l'adresse http://www-01.ibm.com/support/docview.wss?rs=672 &uid=swg27041033. Nouveautés de cette édition pour l'extension de Tivoli Workload Automation Cette section décrit les modifications apportées dans cette édition en ce qui concerne l'extension de Tivoli Workload Automation depuis la version 8.5, groupe de correctifs 01. Vous avez maintenant la possibilité de créer un plug-in de type de travail personnalisé. Ce plug-in ajoute un nouveau type de travail à la sélection de définitions de travail dans Dynamic Workload Console. Vous pouvez également créer un fichier JSDL approprié destiné à être utilisé dans la définition de travail dans Composer. Par ailleurs, ce plug-in contient un composant qui exécute le travail sur l'agent dynamique. Nouveautés de cette publication Cette publication est nouvelle. Toutefois, elle a été développée à partir des chapitres du manuel Tivoli Workload Scheduler API Guide et des rubriques d'aide de la version 8.5 de Integration Workbench, qui traitent des plug-in. Considérez toutes les informations qu'il contient comme de nouvelles informations. Public visé Cette publication fournit des informations sur l'ajout de fonctionnalités aux produits Tivoli Workload Automation grâce à la création de plug-in Java™. De préférence, le lecteur de ce manuel doit être un programmeur d'application spécialisé en Java ayant une bonne compréhension de l'infrastructure Tivoli Workload Automation et des interactions entre ses composants. Sinon, il peut s'agir du manager d'un programmeur correspondant à la description ci-dessus, qui veut améliorer ses connaissances sur les tâches que les plug-in permettent d'effectuer. © Copyright IBM Corp. 2011, 2014 xi Cette publication suppose que le programmeur d'application possède une expérience significative dans la création et l'utilisation de plug-in et de Java. Elle suppose également que toute connaissance relative au produit et nécessaire à la programmation de l'API (Interface de programme d'application) ou de l'interface des services Web a été acquise via la documentation du produit. Cette publication ne tente pas d'expliquer les concepts, procédures et pratiques Tivoli Workload Automation auxquels elle se rapporte. Ce manuel comporte également des informations utiles à l'administrateur informatique et à l'administrateur informatique Tivoli Workload Automation, à des fins de planification. Publications Le produit Tivoli Workload Automation fait l'objet de plusieurs publications. Pour connaître la liste des publications disponibles dans la bibliothèque du logiciel Tivoli Workload Automation, voir Publications sous Référence dans la documentation du produit. Pour connaître la liste des termes utilisés dans le produit Tivoli Workload Automation, voir Glossaire sous Référence dans la documentation du produit. Accessibilité Les fonctions d'accessibilité permettent aux personnes souffrant d'un handicap physique (par exemple, une mobilité réduite ou une déficience visuelle) de pouvoir utiliser les logiciels. Avec ce produit, vous pouvez utiliser les technologies d'assistance pour parcourir l'interface à l'aide de messages sonores. Vous pouvez également utiliser le clavier au lieu de la souris pour toutes les fonctions de l'interface graphique. Pour des informations complètes sur Dynamic Workload Console, voir l'annexe Accessibilité dans IBM Tivoli Workload Scheduler - Guide d'utilisation et de référence. Formation technique Tivoli Tivoli propose une formation technique. Pour plus d'informations sur la formation technique Tivoli, reportez-vous au site Web IBM Tivoli Education suivant : http://www.ibm.com/software/tivoli/education Informations sur le support IBM vous propose plusieurs façons d'obtenir de l'aide lorsque vous êtes confronté à un problème. Si vous rencontrez un incident avec un logiciel IBM, vous pouvez le résoudre rapidement. IBM vous permet d'obtenir l'assistance que vous souhaitez de plusieurs manières : xii IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation v En faisant des recherches dans les bases de connaissances : elles contiennent un grand nombre d'incidents recensés et de solutions, de remarques d'ordre technique et autres informations adéquates. v En vous procurant des correctifs : vous trouverez les versions les plus récentes disponibles pour votre produit. v En contactant le service de support logiciel IBM : si les deux solutions ci-dessus ne vous ont pas permis de résoudre votre incident, vous pouvez contacter directement un technicien IBM de plusieurs manières. Pour plus d'informations sur ces trois manières de résoudre un incident, voir l'annexe relative aux informations de support dans le manuel Tivoli Workload Scheduler - Guide d'identification et de résolution des problèmes. A propos de cette publication xiii xiv IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Chapitre 1. Introduction à l'extension de Tivoli Workload Automation Présente et introduit la procédure pour étendre Tivoli Workload Automation. Vous pouvez étendre Tivoli Workload Automation en créant des plug-in qui ajoutent une fonction utile aux activités de votre business dans deux domaines principaux : v L'automatisation de la charge de travail commandée par les événements v Types de travaux avec options avancées Vous pouvez aussi créer des travaux Java qui implémentent un projet Java que vous avez créé sur le poste de travail cible. L'automatisation de la charge de travail commandée par les événements L'automatisation de la charge de travail commandée par les événements est une fonction de Tivoli Workload Scheduler. Elle permet de déclencher Tivoli Workload Scheduler ou des actions externes lorsque des événements Tivoli Workload Scheduler ou des événements externes se produisent. Des actions liées à des événements sont automatiquement lancées lorsqu'elles sont déclenchées suite à une certaine condition d'événement. En règle générale, une condition d'événement et l'action qui y correspond sont définies dans une règle d'événement. Lorsqu'une règle est active, cela signifie qu'un périphérique de surveillance s'exécute pour détecter si l'événement défini dans la règle est en cours. Lorsque cet événement est détecté, l'action définie dans la règle démarre. Accédez à http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/ com.ibm.tivoli.itws.doc_8.5.1.1/awsrgmst84.htm#dqx2evntdrivworkauto pour plus d'informations sur l'automatisation de la charge de travail commandée par les événements. Tivoli Workload Scheduler est fourni avec un ensemble de conditions d'événement et d'actions liées à des événements utiles que vous configurez en règles d'événement. Cependant, si cela ne suffit pas à satisfaire vos besoins, vous pouvez utiliser Integration Workbench pour créer des plus-ins Java pour les conditions d'événement et les actions liées à des événements afin d'effectuer les tâches demandées. Par exemple, supposez que vous souhaitez envoyer un message Java Message Service lorsqu'un flot de travaux échoue. Vous pouvez créer un plug-in Java pour réaliser ce service, l'implémenter dans Tivoli Workload Scheduler et le combiner à la condition appropriée dans une règle d'événement dans Dynamic Workload Console. Types de travaux personnalisés avec options avancées Lorsque vous créez une définition de travail, vous pouvez choisir les types de travaux avec options standard ou options avancées. Les types de travaux avec © Copyright IBM Corp. 2011, 2014 1 options avancées sont implémentés différemment par rapport aux types de travaux avec options standard. La liste suivante répertorie ces différences : v Ils exigent que l'agent dynamique soit installé sur le poste de travail sur lequel ils doivent être exécutés v Ils sont implémentés par un plug-in séparé pour chaque type. Par exemple, les travaux de type Transfert de fichier peuvent être exécutés uniquement sur des postes de travail où l'agent dynamique est installé. Par ailleurs, ils sont exécutés par un plug-in de transfert de fichier. Si vous avez un travail dont les caractéristiques ne peuvent correspondre aux types de travaux prédéfinis dans Tivoli Workload Scheduler ou Tivoli Workload Scheduler pour z/OS (selon ce qui est approprié), vous pouvez créer un plug-in ayant les caractéristiques requises. Une fois implémenté dans le produit, il peut être sélectionné comme type de travail dans Dynamic Workload Console. Travaux Java Lorsque vous définissez un nouveau travail de planification dans Tivoli Workload Scheduler ou Tivoli Workload Scheduler pour z/OS, "Java" figure parmi les types de travaux possibles. Pour chaque travail Java que vous choisissez de définir, vous devez identifier : v Un fichier JAR contenant les classes Java et les méthodes que vous souhaitez exécuter sur le poste de travail cible (sur lequel l'agent dynamique doit être installé) v Un ensemble de paramètres à utiliser en tant qu'entrée pour ces classes et ces méthodes Dans une certaine mesure, le projet Java à exécuter peut effectuer toutes les tâches que vous lui demandez. Toutefois, pour que cette option prenne effet, vous devez respecter l'ensemble de règles décrit dans cette publication. 2 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Chapitre 2. Integration Workbench Décrit le module Integration Workbench de Software Development Kit. IBM Tivoli Workload Automation: Software Development Kit est fourni avec le module Integration Workbench dont vous pouvez vous servir pour utiliser l'interface de programme d'application Java et l'interface des services Web afin de développer vos propres applications. Cette section explique comment installer et utiliser l'aide d'Integration Workbench. Par ailleurs, cette aide contient des informations détaillées à propos des tâches que vous pouvez effectuer avec Integration Workbench, et les informations de référence détaillées à propos des méthodes et des classes disponibles : Installation d'Integration Workbench Présente l'installation d'Integration Workbench. Integration Workbench (un des composants de Software Development Kit - SDK) s'exécute sous Eclipse. Son installation, décrite en détail dans le manuel Tivoli Workload Scheduler - Guide de planification et d'installation, vous offre la possibilité d'installer Integration Workbench et une version d'Eclipse fournie et prise en charge en une seule fois. Sinon, Integration Workbench peut être installé en tant que site Eclipse à l'aide d'une version d'Eclipse existante et prise en charge, qui est disponible sur votre réseau. Dans les deux cas, à l'issue de l'installation, il existe une option pour afficher le fichier readmefirst.html dans le panneau où vous cliquez sur Terminer. Ce fichier contient des informations à propos du plan de travail et des explications relatives à son exécution. Ces informations sont également fournies dans «Utilisation de l'aide d'Integration Workbench». Pour plus d'informations sur Eclipse, allez à http://www.eclipse.org/. Utilisation de l'aide d'Integration Workbench Décrit comment accéder à la fonction d'aide d'Integration Workbench pour l'API Tivoli Workload Scheduler et les projets de plug-in. Pour utiliser l'aide d'Integration Workbench, procédez comme suit : 1. Lancez le plan de travail comme suit : Integration Workbench installé avec Eclipse UNIX Lancez le fichier suivant : <rép_base_TWS>/TWS/ IntegrationWorkbench/eclipse/eclipse Windows Accédez à Démarrer → Tivoli Workload Scheduler → Integration Workbench Integration Workbench installé en tant que site Eclipse Ouvrez votre version d'Eclipse comme à l'accoutumée. © Copyright IBM Corp. 2011, 2014 3 2. Sélectionnez l'emplacement où sauvegarder votre espace de travail Eclipse. Eclipse le demande chaque fois que vous l'exécutez ou que vous y exécutez le plan de travail, sauf si vous cochez l'option pour sauvegarder un emplacement spécifique par défaut. 3. Lorsque la fenêtre Eclipse s'ouvre, sélectionnez Help → Help Contents (Aide → Table des matières) 4. Développez IBM Tivoli Workload Scheduler Integration Workbench 5. Les options affichées fournissent diverses informations sur Tivoli Workload Scheduler Integration Workbench. Par exemple, pour afficher les détails de toutes les classes et méthodes employées dans l'API, développez Référence, puis sélectionnez API reference (Référence API). Remarque : Ces informations peuvent être lues en ouvrant le document suivant dans un navigateur Web : <rép_base_TWS>/TWS/IntegrationWorkbench/ readmefirst.html 4 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Chapitre 3. Plug-in de gestion des événements Tivoli Workload Scheduler Décrit les différents types de plug-in de gestion des événements. Les deux objets principaux constituant les règles d'événement sont les suivants : v Conditions d'événement v Actions Plug-in de condition d'événement Une condition d'événement est représentée par une instance de la classe EventCondition, qui se présente comme suit : v Un pluginName, qui identifie le plug-in (aussi appelé le fournisseur) qui surveille l'événement et est capable de le capturer v Un eventName, qui identifie la condition dans la règle v Un eventType, qui précise quel événement capturer v Un filteringPredicate, qui définit un filtre devant être appliqué au contenu d'événement afin de vérifier qu'il correspond à la condition d'événement v Un attribut scope en lecture seule, qui est calculé par le plug-in d'événement lorsque la règle est créée ou mise à jour. Il inclut une définition de la portée de la condition d'événement, dont la signification varie selon les types d'événements. Un plug-in d'événement est un ensemble de types d'événements regroupés car ils partagent des caractéristiques similaires, se focalisent sur la même zone opérationnelle ou surveillent des objets semblables. Plug-in d'action liée à un événement Une action est représentée par une instance de la classe RuleAction, qui est composée de : v Un pluginName, qui identifie le plug-in (ou fournisseur) d'action v Un ou plusieurs types d'actions spécifiques à exécuter sur un point de référence temporelle défini par responseType dans la règle v Un attribut scope en lecture seule, calculé par le plug-in d'action lorsque la règle est créée ou mise à jour. Il inclut une définition de la portée de l'action spécifique. Un plug-in d'action est un ensemble de types d'actions regroupées parce qu'elles partagent des caractéristiques similaires, se focalisent sur la même zone opérationnelle ou exploitent des objets semblables. Structure d'une condition ou action d'événement Dans Tivoli Workload Scheduler, les plug-in de condition et d'action d'événement sont constitués des composants suivants : TWSPluginConfiguration.xml Un fichier XML utilisé pour déclarer les conditions/actions d'événement, ainsi que les attributs qui s'y rapportent. © Copyright IBM Corp. 2011, 2014 5 TWSPlugin.properties Un fichier de propriétés qui définit les caractéristiques configurables suivantes du plug-in : v Le nom v Le type (condition ou action) v Le nom de classe Java qui implémente directement l'interface du plug-in Une ou plusieurs unités de compilation Java Une d'entre elles contient une classe qui implémente l'interface Java pour le plug-in d'événement (ce nom de classe est défini dans TWSPlugin.properties). La classe Java peut ajouter des fonctions au plug-in. Par ailleurs, elle peut également générer des événements ou des actions. Dans les échantillons de plug-in, ces fonctions sont, en règle générale, incluses dans d'autres unités de compilation contenues dans le même package Java. Projet de plug-in de gestion des événements Décrit le projet de plug-in de gestion des événements. Un projet de plug-in Tivoli Workload Scheduler est un projet Java d'un type particulier, qui peut être identifié dans la vue Navigateur à l'aide de l'icône suivante : Pour simplifier la création de plug-in de gestion des événements dans Eclipse, les projets ont une structure spécifique et incluent une action «Préparation au déploiement», à la page 10. Cette action, qui commence à partir des fichiers créés par l'utilisateur dans la structure du projet, regroupe les fichiers de plug-in dans un format prêt à être copié sur le processeur d'événement. La section «Structure de projet de plug-in de gestion des événements» décrit la structure d'un projet de plug-in Tivoli Workload Scheduler et le contenu de chaque dossier du projet. La section «Préparation au déploiement», à la page 10 décrit comment regrouper et déployer vos nouveaux plug-in sur Tivoli Workload Scheduler. v «Structure de projet de plug-in de gestion des événements» v «Préparation au déploiement», à la page 10 v «Génération et envoi d'un événement», à la page 11 Structure de projet de plug-in de gestion des événements Décrit la structure de projet de plug-in de gestion des événements. La figure suivante présente la structure typique d'un projet de plug-in de gestion des événements : 6 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation La structure affichée correspond à un plug-in de condition d'événement appelé MailReader, mais les projets de plug-in de condition d'événement et d'action liée à un événement ont la même structure : v Les classes Java contenues dans le dossier src sont décrites dans «Arbre source Java (code SRC)». v Le chemin de génération Java du projet de plug-in est décrit dans «Chemin de génération Java», à la page 8. v Le rôle et le contenu des autres dossiers de projets sont décrits dans «Autres dossiers de projet», à la page 8. v le fichier build.xml ANT est décrit dans «build.xml», à la page 9. v Le fichier TWSPlugIn.properties est décrit dans «TWSPlugin.properties», à la page 9. v Le fichier TWSPluginConfiguration.xml est décrit dans «TWSPluginConfiguration.xml», à la page 9. Arbre source Java (code SRC) Décrit l'arbre source Java de plug-in de gestion des événements. Lors de la création d'un projet de plug-in, ce dernier est configuré comme un projet Java avec des dossiers séparés pour les fichiers source et les fichiers classe. Le dossier source se nomme src. Il contient le code Java du plug-in. Une classe Java est également créée en parallèle au nouveau projet de plug-in. Cette classe implémente l'interface Java pour l'événement ou le plug-in d'action, selon ce qui est approprié. De plus, elle doit être présente dans chaque événement ou plug-in d'action. Consultez la documentation Java (Javadocs) des interfaces pour déterminer quelle méthode implémenter. Pour la journalisation et le traçage de votre code, utilisez les API de journalisation Java JSR-047 standard. Chapitre 3. Plug-in de gestion des événements Tivoli Workload Scheduler 7 Chemin de génération Java Décrit le chemin de génération Java des plug-in de gestion des événements. Les projets de plug-in Tivoli Workload Scheduler sont créés à l'aide des bibliothèques suivantes : Bibliothèque système JRE (Java SE Runtime Environment) par défaut Même lorsque JRE est défini sur sa valeur par défaut, n'oubliez pas que le processeur d'événement IBM Tivoli Workload Scheduler utilise la version 1.5 d'IBM JDK. Il est recommandé d'utiliser la version 1.5 d'IBM JDK pour les projets de plug-in Tivoli Workload Scheduler. Bibliothèque IBM Tivoli Workload Scheduler Cette bibliothèque contient tous les fichiers JAR Tivoli Workload Scheduler nécessaires à l'implémentation de plug-in Tivoli Workload Scheduler ou à l'utilisation des API (Interfaces de programme d'application) Tivoli Workload Scheduler. Par ailleurs, cette bibliothèque définit les règles d'accès des classes dans les fichiers JAR : les API publiques sont définies comme Accessible, tandis que les classes internes sont définies comme Discouraged (Découragé). L'utilisation des classes découragées est marquée à l'aide d'avertissements de compilateur par défaut. Dans tous les cas, l'utilisation de ces classes n'est pas prise en charge. Bibliothèques référencées Ces bibliothèques contiennent toutes les autres classes (par exemple, en cas de plug-in lecteur de messagerie, les classes obligatoires, pour les téléchargements du, l'accès au et la lecture du courrier électronique). Les bibliothèques supplémentaires nécessaires au code Java de plug-in peuvent être copiées vers le dossier lib et ajoutées au chemin de génération Java. Autres dossiers de projet Décrit les autres dossiers de projet de plug-in de gestion des événements. A l'exception de la source et des dossiers de fichiers classe standard, les dossiers suivants sont utilisés par le fichier Prepare for TWS Deployment (Préparation au déploiement de TWS) pour mettre le plug-in en package en vue de son déploiement sur le processeur d'événement. config Ce dossier permet de stocker des fichiers de configuration supplémentaires (par exemple, des fichiers de propriétés) que l'administrateur Tivoli Workload Scheduler doit modifier pour cette opération. L'action Prepare for TWS Deployment (Préparation au déploiement de TWS) copie ces fichiers vers le dossier dist en dehors du fichier JAR de plug-in. Pour accéder à ces fichiers à partir du code Java, chargez-les en tant que ressources depuis le chargeur de classe. 8 doc Ce dossier permet de stocker la documentation relative aux plug-in, par exemple, Javadocs ou la documentation à propos des événements et actions définis. lib Contient des bibliothèques JAR supplémentaires exigées par la classe Java de plug-in. L'action Prepare for TWS Deployment (Préparation au déploiement de TWS) copie ces fichiers JAR vers le dossier dist pour qu'ils IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation puissent être utilisés au moment de l'exécution. Les fichiers JAR de ce répertoire doivent être ajoutés manuellement aux bibliothèques de chemin de génération Java. dist Il s'agit du répertoire cible du processus Prepare for TWS Deployment (Préparation au déploiement de TWS). Après l'exécution de l'action Prepare for TWS Deployment (Préparation au déploiement de TWS) depuis le menu du projet, ce dossier contiendra tous les fichiers devant être copiés vers Tivoli Workload Scheduler. build.xml Décrit le fichier build.xml de plug-in de gestion des événements. Il s'agit d'un fichier de génération ANT standard. Vous pouvez le modifier pour l'adapter à vos besoins, mais n'oubliez pas que la cible dist dans le fichier est utilisée par l'action Prepare for TWS Deployment. TWSPlugin.properties Décrit le fichier TWSPlugin.properties de plug-in de gestion des événements. TWSPlugin.properties est un fichier de propriétés lu par Tivoli Workload Scheduler lorsque le plug-in est chargé. Lorsqu'un projet de plug-in est créé, il contient déjà un fichier TWSPlugin.properties. Ce dernier a été défini à l'aide des informations récoltées dans le nouvel assistant de projet de plug-in. Vous n'aurez pas besoin de le modifier, sauf si les informations sont ultérieurement modifiées. TWSPlugin.properties définit les caractéristiques configurables suivantes du fournisseur : v Nom du plug-in. Il doit correspond à la même valeur renvoyée par la classe Java du plug-in avec la méthode getPluginName et la même valeur définie comme nom du plug-in dans TWSPluginConfiguration.xml. v Type : événement ou action. v Nom de la classe Java qui implémente directement l'interface de plug-in. Exemple Ceci est un exemple de fichier TWSPlugin.properties pour un plug-in appelé MailReader. TWSPlugIn.name=MailReader TWSPlugIn.type=event TWSPlugIn.className=mycompany.mailreader.MailReaderPlugin «Arbre source Java (code SRC)», à la page 7 TWSPluginConfiguration.xml Décrit le fichier TWSPluginConfiguration.xml de plug-in de gestion des événements. TWSPluginConfiguration.xml permet de déclarer tous les événements ou toutes les actions fourni(e)s par le plug-in. Ce fichier définit les attributs de liste pour les événements ou les actions, leurs contraintes syntaxiques et (pour les événements uniquement) les conditions de filtre autorisées. Chapitre 3. Plug-in de gestion des événements Tivoli Workload Scheduler 9 Lorsqu'il est déployé sur Tivoli Workload Scheduler, ce fichier permet de gérer la configuration de l'événement qui filtre les prédicats ou les attributs d'action dans les règles d'événement. Modifiez ce fichier pour indiquer la structure des événements ou des actions fourni(e)s par le plug-in. Création d'un projet de plug-in de A à Z Décrit comment créer un projet de plug-in de gestion des événements de A à Z. A l'aide de Integration Workbench, vous pouvez créer des projets de plug-in de A à Z. Vous n'avez qu'à fournir les informations de base à propos du projet que vous souhaitez créer, et l'assistant s'occupe de tout le reste. Création d'un projet à partir d'un exemple de plug-in Décrit comment créer un projet de plug-in de gestion des événements à partir d'un exemple. A l'aide de Integration Workbench, vous pouvez créer des projets basés sur les exemples qui vous sont fournis. Cette méthode vous évitera d'avoir à créer la structure du projet de plug-in complète de A à Z. Choisissez l'exemple en fonction de vos exigences, puis modifiez-le selon vos besoins. Exemples possibles Décrit les exemples disponibles pour créer un projet de plug-in de gestion des événements. Les exemples que vous pouvez sélectionner sont les suivants : MailReaderPlugin Génère un événement Tivoli Workload Scheduler lorsqu'un courrier électronique est reçu. SmsSenderPlugin Génère et envoie un SMS. Préparation au déploiement Décrit comment se préparer à déployer un plug-in de gestion des événements. Cette action est disponible sur le menu des projets de plug-in Tivoli Workload Scheduler. Elle exécute la cible dist du fichier de génération ANT build.xml dans le projet. Cette action place, dans le dossier dist du projet, les fichiers que vous devrez ensuite copier vers le processeur d'événement Tivoli Workload Scheduler. Il comprend les éléments suivants : v Un fichier JAR avec les fichiers de classe Java et une copie de TWSPlugin.properties et TWSPluginConfiguration.xml v Le cas échéant, une copie des bibliothèques JAR de l'utilisateur présentes dans le dossier lib, le cas échéant v Le cas échéant, une copie du fichier de configuration présent dans le dossier config v Un dossier doc avec votre documentation relative aux plug-in au format HTML «build.xml», à la page 9 10 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation «Autres dossiers de projet», à la page 8 Génération et envoi d'un événement Décrit les différentes méthodes possibles pour générer et envoyer un événement. Il existe plusieurs moyens de générer des événements et de les envoyer à Tivoli Workload Scheduler. En voici quelques exemples : v La codification des instructions directement dans la définition de votre plug-in v En utilisant l'action sendevent en externe à partir de la définition de votre plug-in de l'une des façons suivantes : – Utilisation de la méthode sendEvent appelée par les classes Java – Exécution de la commande conman sendevent Connexion à Tivoli Workload Scheduler Décrit comment se connecter à Tivoli Workload Scheduler à partir d'un plug-in de gestion des événements. Connectez-vous à Tivoli Workload Scheduler à l'aide du code suivant : private Subject getSubject(String String String String Subject subject = null; try { LoginContext lc = null; serverName, serverPort, uid, pwd){ Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,INITIAL_CONTEXT_FACTORY); env.put(Context.PROVIDER_URL,"corbaloc:iiop:"+serverName+":"+serverPort); final InitialContext initialContext = new InitialContext(env); Object obj = initialContext.lookup(""); lc = new LoginContext(JAAS_MODULE, new WSCallbackHandlerImpl(uid,pwd)); lc.login(); subject = lc.getSubject(); } catch(javax.naming.NoPermissionException exc) { System.err.println("[TWSConn] - Login Error: "+exc); } catch(Exception exc) { System.err.println("[TWSConn] - Error: "+exc); } return subject; } Les données d'entrée utilisateur suivantes sont demandées : v serverName : nom de votre installation Tivoli Workload Scheduler v serverPort : le plus souvent, 33116 ou 33117 v uid : votre identifiant d'utilisateur Tivoli Workload Scheduler v pwd : mot de passe de votre compte Tivoli Workload Scheduler Chapitre 3. Plug-in de gestion des événements Tivoli Workload Scheduler 11 Documents de référence Décrit comment rechercher des documents de référence au sujet des plug-in de gestion des événements. L'aide de Integration Workbench contient tous les documents de référence dont vous pouvez avoir besoin. Pour accéder à ces documents, procédez comme suit : 1. A partir d'Integration Workbench, sélectionnez Help → Help Contents (Aide → Table des matières) 2. Développez Tivoli Workload Scheduler Integration Workbench, puis Référence 3. Obtenez les documents de référence correspondants aux sujets suivants : v Les informations requises pour pouvoir exécuter les assistants qui créent les projets de plug-in de A à Z ou à partir d'un exemple v Les informations relatives aux bibliothèques des fichiers JAR d'objet et d'exécution v La description des schémas XML v Un lien vers les informations relatives à Tivoli Event Integration Facility v Les références complètes pour chaque classe Java et chaque méthode utilisées dans le plug-in 12 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Chapitre 4. Type de travail personnalisé avec plug-in d'options avancées Présente le type de travail personnalisé avec plug-in d'options avancées. Dans Tivoli Workload Scheduler et Tivoli Workload Scheduler pour z/OS, vous pouvez créer des travaux de divers types. Le type d'un travail détermine ses caractéristiques. Par exemple, un travail de type Transfert de fichier possède toutes les caractéristiques nécessaires pour effectuer un transfert de fichier. Lorsque vous effectuez une sélection dans le but de créer un travail de ce type, vous êtes invité à entrer les paramètres de transfert de fichier (quel fichier, depuis et vers quel emplacement) dans un panneau dédié sur Dynamic Workload Console. Lorsque vous choisissez un type de travail dans Dynamic Workload Console, les types de travaux sont divisés en deux groupes : Les travaux avec options standard Travaux basiques qui exécutent scripts et commandes. Les travaux avec options avancées Ces travaux sont plus spécialisés. Ils sont implémentés avec un plug-in, et peuvent être exécutés uniquement sur des postes de travail sur lesquels l'agent dynamique a été installé, même s'ils ne sont pas destinés à être planifiés dynamiquement. Dans Dynamic Workload Console, choisissez, parmi un ensemble de ces types de travaux, celui qui couvre les activités les plus fréquentes qu'une organisation peut avoir à effectuer (par exemple, le transfert de fichier, les services Web, la base de données et Java). Toutefois, si vous souhaitez planifier un type de travail qui ait des exigences différentes de celles des types de travaux prédéfinis, vous pouvez créer votre propre plug-in pour ajouter un nouveau type de travail qui soit approprié aux besoins de votre business. Pour ce faire, utilisez Integration Workbench. Pour effectuer les opérations incluses dans le type de travail personnalisé avec les plug-in d'options avancées, vous devez posséder un accès en exécution (run) défini dans le fichier de sécurité sur le poste de travail sur lequel vous planifiez d'exécuter le plug-in. Les conditions suivantes s'appliquent : v Si l'opération est effectuée sur Tivoli Workload Scheduler Connector, l'accès en affichage (display) et en exécution (run) sont requis sur l'unité centrale correspondant au poste de travail sur lequel le travail est créé. v Si l'opération est effectuée sur le poste de travail où le travail s'exécute, l'accès en affichage (display) est nécessaire sur le poste de travail Workload Broker. Pour savoir comment configurer le fichier de sécurité et définir les mots clés d'accès run et object, voir Tivoli Workload Scheduler - Guide d'administration. Analyse d'un plug-in de type de travail personnalisé Un plug-in de type de travail personnalisé est constitué des éléments suivants : v Un panneau Dynamic Workload Console où l'utilisateur entre les détails de la définition de travail v Le composant de serveur du plug-in qui effectue la validation optimale et crée la définition de travail © Copyright IBM Corp. 2011, 2014 13 v Le composant d'agent du plug-in exécutant le travail sur le poste de travail cible Procédure pour la création d'un plug-in de type de travail personnalisé Voici les étapes de la création d'un plug-in de type de travail personnalisé : 1. Conception d'un panneau d'interface graphique Vous générez votre propre panneau pour Dynamic Workload Console. Ce panneau est à utiliser comme formulaire d'entrée pour votre type de travail personnalisé. L'outil VisualBuilder AUIML (Language Abstract User Interface Markup) permet de créer un panneau d'interface utilisateur. En outre, vous pouvez ajouter des : v Boutons v Cases à cocher v Zones de liste déroulante v v v v v v Zones d'édition Zones de liste Groupes Boîtes de pastilles Listes dynamiques Listes de paires dynamiques Prenez note des restrictions suivantes : v Lorsque vous nommez vos objets d'interface graphique, n'utilisez pas le préfixe tws qui est réservé à une utilisation interne. Pour la même raison, évitez d'utiliser les termes suivants comme noms distincts (ils peuvent toutefois faire partie de chaînes) : – name – member – workstation – job – jobstream v L'imbrication à deux niveaux n'est pas autorisée pour les groupes de boutons d'option ou de cases à cocher. Vous ne pouvez également pas placer de zones obligatoires dans les groupes imbriqués à deux niveaux. Si vous incluez les zones nom d’utilisateur et mot de passe dans les panneaux, vous pouvez bénéficier du widget suivant (fourni avec le produit) qui permet à l'utilisateur (la personne définissant le travail dans la plupart des cas) de choisir la source du mot de passe requis. Le widget s'affiche lorsque vous cliquez sur le bouton des points de suspension (...) placé à côté de la zone de mot de passe : 14 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation où les possibilités sont les suivantes : Mot de passe Prend la valeur de mot de passe entrée dans la zone Mot de passe. Utilisateur Ajoute la chaîne de caractères ${password:valeur_zone_nom_utilisateur} dans la zone de mot de passe. Sur des agents dynamiques Ce paramètre est résolu lors de l'exécution avec la valeur de mot de passe définie pour Nom d’utilisateur dans la base de données Tivoli Workload Scheduler à l'aide du panneau de définition Utilisateur ou de la commande composer user. Vous pouvez également indiquer l'utilisateur (et le mot de passe correspondant) d'un autre poste de travail s'il est défini dans la base de données. Consultez la description du bouton Variable. Avertissement : Les définitions d'utilisateurs ne disposent pas d'intégrité référentielle. Cela implique que, si une définition d'utilisateur, référencée dans la section des données d'identification, est modifiée ou supprimée, aucun message d'avertissement ou d'erreur n'est renvoyé jusqu'à l'exécution du travail. Sur les agents Tivoli Workload Scheduler for z/OS Ce paramètre est résolu lors de l'exécution avec la valeur de mot de passe définie pour Nom d’utilisateur dans Tivoli Workload Scheduler pour la base de donnée z/OS en utilisant l'instruction d'initialisation USSREC, où la Chapitre 4. Type de travail personnalisé avec plug-in d'options avancées 15 valeur Nom d’utilisateur est définie par le paramètre USRNAM et le mot de passe par USRPSW. Agent utilisateur Ajoute la chaîne de caractères ${agent:password.zone_valeur_nom_utilisateur} dans la zone de mot de passe. Ce paramètre est résolu lors de l'exécution avec la valeur de mot de passe définie pour Nom d’utilisateur en local sur l'agent dynamique ou sur l'agent Tivoli Workload Scheduler for z/OS qui exécutera le travail (ou sur n'importe quel agent d'un pool ou d'un pool dynamique susceptible d'exécuter le travail) avec la commande param. Variable Ce paramètre est résolu lors de l'exécution avec la valeur définie pour la variable entrée dans la zone (à l'aide de la notation {nom_variable}). Sur des agents dynamiques La variable doit avoir été définie localement sur l'agent, via la commande param, ou dans la base de données Tivoli Workload Scheduler, en utilisant le panneau Utilisateur ou la commande composer username. Par exemple : v Variable définie localement sur l'agent. Entrez la commande comme suit : ${agent:file_With_Sections.password.dbPwd} v Variable définie dans la base de données. Entrez la commande comme suit : ${password:workstation#user} Vous pouvez utiliser ce bouton pour indiquer le mot de passe de l'utilisateur distant d'un autre poste de travail (tant qu'il a été défini dans la base de données) en entrant la chaîne suivante dans la zone adjacente : ${password:nom_poste_travail#valeur_zone_nom_utilisateur} Sur les agents Tivoli Workload Scheduler for z/OS Utilisez cette zone si vous souhaitez utiliser le mot de passe défini pour un utilisateur différent de celui spécifié dans la zone Nom de l’utilisateur. Par exemple, si vous définissez un travail Transfert de fichier et que les noms d'utilisateur local et distant sont identiques (user1), vous pouvez différencier le mot de passe en définissant deux entrées d'instruction d'initialisation USRREC (une pour user1 et l'autre pour user1remote, par exemple). Une fois cette étape passée, dans la zone de mot de passe de l'utilisateur distant, indiquez : ${password:user1remote} Le mécanisme classique de substitution de variable qui utilise les variables définies dans les tables de variables de base de données Tivoli Workload Scheduler for z/OS n'est pas pris en charge dans cette zone. 16 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Les variables sont résolues lorsque vous générez un plan et lorsque vous soumettez un travail ou un flot de travail. Lorsque des travaux sont en cours de définition, les variables ne sont pas résolues et ne peuvent pas être utilisées dans les listes ou pour des tests de connexion. Vous devez ajouter l'instruction suivante dans le codage de la zone de mot de passe pour afficher le widget et associer l'option choisie à la zone : BINDING="passwordSelector#modeling.widgets.password.PasswordSelector:<nomUtilisateur>" 2. Ajout de boutons au panneau pour effectuer des actions de service (facultatif) Si vous le souhaitez, vous pouvez ajouter des boutons à vos panneaux personnalisés dans Dynamic Workload Console pour effectuer, par exemple, les actions de service suivantes : v Ouverture d'une liste de sélection des valeurs possibles pour un paramètre de travail à partir du connecteur v Ouverture d'une liste de sélection des valeurs possibles pour un paramètre de travail à partir d'un agent Lorsque vous ajoutez le bouton que vous associez à l'action correspondante dans une zone ACTION au sein du plug-in. La définition d'une action nécessite les éléments suivants : v Définition de l'action dans la définition du plug-in AUIML v Option déterminant si l'action doit être effectuée sur le connecteur (dès que vous cliquez sur le bouton) v Méthode permettant d'effectuer l'action demandée Une ou plusieurs des actions suivantes peuvent être déclenchées : v Le statut d'une zone peut être défini sur Erreur, suivi d'un message décrivant cette erreur v Un menu contextuel peut être affiché v Les informations relatives au diagnostic peuvent être tracées sur Dashboard Application Services Hub v Une liste de sélection peut être affichée 3. Création d'un projet de plug-in Utilisez Integration Workbench pour générer un projet de plug-in. Cette étape consiste à créer un package avec vos fichiers de plug-in et tout ce dont vous avez besoin pour les déployer. Procédez comme suit : 1. Sur la barre d'outils, sélectionnez Fichier→Nouveau→Projet.... La fenêtre New Project (Nouveau projet) s'affiche. 2. Dans la liste des assistants, faites un double-clic sur IBM Tivoli Workload Scheduler, puis sur TWS Executor Project (Programme d'exécution TWS). L'assistant TWS Executor Project (Programme d’exécution TWS) s'ouvre. 3. Entrez un nom pour votre projet. 4. Entrez un nom de package pour le plug-in. 5. Entrez le nom du programme d'exécution de travail en rapport avec le plug-in. 6. Entrez le nom panel_filename.AUIML (ou utilisez la barre de recherche). 7. Entrez les noms d'un ou plusieurs fichiers panel_filename.properties files (ou utilisez la barre de recherche pour les sélectionner). Chapitre 4. Type de travail personnalisé avec plug-in d'options avancées 17 8. Entrez le nom du fichier d'icônes correspondant (ou utilisez la barre de recherche). Le fichier d'icônes ne peut être que d'un seul type : PNG. 9. Cliquez sur Terminer. L'assistant crée le projet de programme d'exécution et génère : v Un fichier .XSD qui définit le schéma de ka définition de travail v Toutes les classes requises pour mapper le fichier JSDL v Un fichier labels.properties dans lequel vous pouvez insérer vos libellés Pour insérer plus de libellés, modifiez le fichier labels.properties situé dans le dossier RESOURCES (RESSOURCES) du projet. Ce fichier comprend déjà un libellé par défaut. Ajoutez chaque libellé localisé au format : language code = label à l'aide des mêmes paramètres régionaux que ceux utilisés dans le fichier de propriétés correspondant. L'ID plug-in correspond au nom du plug-in en minuscule. Modifiez les fichiers de projet de plug-in Modifier les fichiers créés pour le projet : v Attribuez un nom au panneau qui s'affichera dans le menu déroulant Nouveau Définition de travail sur Dynamic Workload Console (vous pouvez également ajouter des noms localisés) v Définissez la version de plug-in si vous ne souhaitez pas utiliser la valeur par défaut, 1.0.0 v Ajoutez des messages, y compris tout message localisé auquel vous souhaitez faire référence dans votre codification v Codez toute validation que vous souhaitez accorder au moment de la saisie et de l'exécution v Créez des listes de sélection pour les valeurs de zone v Codez toute exigence de sortie spéciale dont vous avez besoin pour ce type de travail 4. Test du plug-in Utilisez le projet de test (projet automatiquement généré par l'assistant TWS Executor Project (Projet de programme d'exécution TWS) lorsque vous créez le projet de plug-in) pour tester le plug-in. 5. Déploiement du plug-in Exportez les fichiers de plug-in packagés depuis le plan de travail Eclipse vers un dossier sur votre ordinateur (ou celui de quelqu'un d'autre). Cela vous permet de les installer sur les agents et de les rendre opérationnels. Procédez comme suit : 1. Dans le panneau Package Explorer (Explorateur de package), cliquez avec le bouton droit de la souris sur le nom du package, puis sélectionnez Exporter.... 2. Dans la fenêtre Exporter, faites un double-clic sur IBM Tivoli Workload Scheduler, puis sur TWS Executor (Programme d'exécution TWS). Une liste de projets TWS Executor (Programme d'exécution TWS) définis s'affiche. 3. Sélectionnez le projet souhaité dans la liste, puis entrez le dossier de destination sur votre ordinateur (ou celui de quelqu'un d'autre). 4. Cliquez sur Terminer. 18 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Cela entraîne la création d'un fichier JAR appelé plug-in_id_version.jar (où plug-in_id correspond au nom de votre plug-in en minuscule) dans le dossier de destination de l'ordinateur que vous avez sélectionné. Ce nom ne peut être modifié. 6. Installation du plug-in sur les gestionnaires de domaine maître, les gestionnaires de domaine dynamiques et les postes de travail de sauvegarde associés, le cas échéant Copiez le fichier JAR du plug-in dans le chemin installation_dir/TWS/ applicationJobPlugIn des gestionnaires de domaine maître, des gestionnaires de domaine dynamiques et des postes de travail de sauvegarde associés, le cas échéant. Redémarrez WebSphere Application Server pour appliquer les changements. 7. Installation et configuration du plug-in sur les agents Procédez comme suit : 1. Copiez le plug-in dans le chemin d'accès ../TWA/TWS/JAVAEXT/eclipse/ plugins de chaque agent dynamique à l'emplacement où vous souhaitez l'exécuter. 2. Sur chaque agent, modifiez le fichier config.ini situé dans le chemin d'accès ../TWA/TWS/JAVAEXT/eclipse/configuration en ajoutant la ligne suivante : plug-in_id@4:start où plug-in_id correspond au nom de votre plug-in en minuscule. Remarque : Vous pouvez installer une seule version du même plug-in sur le gestionnaire de domaine maître, le gestionnaire de domaine dynamique et les agents où vous souhaitez exécuter le plug-in. Si vous créez une version du plug-in, installez-le sur le gestionnaire de domaine maître, sur le gestionnaire de domaine dynamique et sur les agents et supprimez la version précédente. Structure de plug-in de type de travail personnalisé Présente la structure d'un plug-in de type de travail personnalisé. Chapitre 4. Type de travail personnalisé avec plug-in d'options avancées 19 Lorsque vous créez un projet de plug-in de type de travail personnalisé dans Integration Workbench, un écran semblable à la figure ci-contre apparaît : Les sections suivantes fournissent des informations de plan à propos de la procédure que vous devez suivre pour modifier le projet afin de l'adapter à vos besoins. <NomProjet>Action.java 20 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Ce fichier contient les classes qui contrôlent la validation du travail. Comme vous pouvez le voir sur la capture d'écran, vous pouvez coder la validation à effectuer lorsque le travail est défini (en règle générale, il s'agit d'une validation sémantique) et une fois le travail exécuté (par exemple, la vérification de l'existence d'un fichier). <NomProjet>ApplicationDescriptor.java Dans le descripteur d'application, vous pouvez ajouter manuellement la propriété catégorie pour décrire le type de plug-in. La propriété doit avoir l'identificateur d'une catégorie prédéfinie ou une valeur définie par l'utilisateur. Les identificateurs des catégories de plug-in prédéfinies sont : v native v ERP v database v v v v file_transfer cloud system_management business_analytics Si le plug-in ne correspond à aucune des catégories prédéfinies, vous pouvez entrer une nouvelle catégorie qui sera ajoutée à la liste des types de plug-in dans la section concepteur de charge de travail de Dynamic Workload Console. L'exemple suivant présente le descripteur d'application d'un plug-in de la catégorie database : EJB Application descriptor service provider com.ibm.scheduling.agent.database.jobexecutor.DatabaseApplicationDescriptor application=database factory=com.ibm.scheduling.agent.database.jobexecutor.DatabaseJobExecutor FactorysupportedWorkstations=agent,pool,d-pool supportedOS=UNIX,WNT,OTHER,IBM_i Chapitre 4. Type de travail personnalisé avec plug-in d'options avancées 21 isJobStoppable=true producesJobOutput=true category=database schemaLocation=com/ibm/scheduling/resources/xsd/JSDL-DATABASE.xsd namespace=http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdldatabase version=${agent.executors.ver} label=Database Père de <NomProjet>Action.java Contient des éléments utiles et variés, y compris : v Le consignateur v Une méthode permettant de découvrir le nom du journal de travail v La possibilité de personnaliser le contenu du message de confirmation de réussite v La possibilité de modifier les codes de sortie v Des méthodes permettant d'annuler le travail com.<Nom de société>.<NomProjet>.msg Contient le fichier de propriétés où vous ajoutez les messages. Les messages peuvent être localisés en ajoutant le code des paramètres régionaux. JSDL-<NOM DU PROJET>.xsd Contient le schéma XML du panneau que vous avez créé. En règle générale, le schéma ne nécessite aucun changement et peut constituer un précieux point de référence. MANIFEST.MF Ce fichier enregistre la version de votre projet de plug-in. labels.properties Lorsque vous attribuez un nom à votre type de travail tel que vous souhaitez qu'il s'affiche sur la liste déroulante Créer des définitions de charge de travail Nouveau Définition de travail dans Dynamic Workload Console. Les versions localisées peuvent également être spécifiées ici. Elles sont automatiquement utilisées lorsque la console est en cours d'utilisation sur des systèmes avec l'ensemble des paramètres régionaux correspondants. Développement du plug-in Au cours du processus de développement, vous pouvez décider de modifier le panneau de données d'entrée. Si c'est le cas, vous pouvez utiliser l'option permettant de régénérer le plug-in à l'aide du panneau modifié. Tout code ajouté sera traité comme suit : v Si vous avez supprimé une zone du panneau, vous devez supprimer manuellement tout code associé que vous avez ajouté. v Si vous avez modifié une zone dans le panneau, vous devez vérifier si le code qui y est associé s'applique toujours. Si ce n'est pas le cas, modifiez-le. v Si vous avez ajouté des zones, insérez le code supplémentaire nécessaire. Test du plug-in Un projet de test est automatiquement créé au moment de la création du projet de plug-in. Il contient un fichier appelé job.xml, qui peut être lancé comme une application Java pour exécuter un travail Tivoli Workload Scheduler. Sinon, ce fichier peut être utilisé comme un modèle de définition de travail dans Composer. 22 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Chapitre 5. Définition des travaux Java Décrit comment créer des travaux Java qui permettent d'étendre l'aptitude de Tivoli Workload Automation. Pour définir un travail qui exécute un travail Java en utilisant Dynamic Workload Console, procédez comme suit. 1. Dans l'arborescence de navigation, développez Charge de travail > Conception et cliquez sur Créer des définitions de charge de travail 2. Indiquez un nom de moteur, distribué ou z/OS. Le concepteur de charge de travail s'ouvre. 3. Dans le panneau liste de travail, sélectionnez la définition de travail Java. Nouveau > Base de données et intégrations > Java Nouveau > Définition de travail > Base de données et Intégrations > Java Les propriétés du travail sont affichées dans le panneau de droite pour édition. 4. Dans le panneau des propriétés, indiquez les attributs de la définition de travail que vous êtes en train de créer. Vous trouverez des détails sur tous les attributs dans l'aide contextuelle disponible sur chaque panneau. 5. Cliquez sur Enregistrer pour stocker la définition du travail dans la base de données. Lorsque vous définissez un travail de ce type, vous devez fournir les éléments suivants : v Un fichier JAR (préparé par vos soins) contenant les classes et les méthodes que vous souhaitez implémenter une fois le travail exécuté v Un ensemble de paramètres fournissant au travail les informations relatives à l'exécution Vous trouverez dans les sections ci-après la procédure permettant de préparer le fichier JAR. Vous y trouverez également la description de la manière d'utiliser le bouton Obtention des informations de classe, (affiché sur l'interface) pour obtenir des informations à propos des classes du fichier JAR sélectionné. Création du fichier JAR de travail Java Décrit comment créer le fichier JAR utilisé avec un travail Java. Un travail Java peut utiliser n'importe quel fichier JAR créé d'après les règles et la procédure suivantes. 1. Insérez le fichier JAR Tivoli Workload Automation dans le chemin de génération La classe qui implémente l'interface Dynamic Workload Console est incluse dans le fichier JAR suivant : Sur le serveur <racine_TWA>/TWA/TWS/applicationJobPlugIn/ com.ibm.scheduling.agent.java_<version>.jar © Copyright IBM Corp. 2011, 2014 23 Sur un agent dynamique <racine_TWA>/TWA/TWS/JavaExt/eclipse/plugins/ com.ibm.scheduling.agent.java_<version>.jar où <version> est la version de Tivoli Workload Scheduler relative au groupe de correctifs le plus récent appliqué. Ce fichier JAR doit être inséré dans votre chemin de génération Java. 2. Créez votre classe pour implémenter TWSExecutable Créez une classe qui implémente une classe appelée TWSExecutable, dont la signature est la suivante : public abstract interface TWSExecutable { public abstract void validateParameters(Parameters paramParameters) throws Exception; public abstract void execute(Parameters paramParameters) throws Exception; } Remarque : Cette classe peut être utilisée sur des agents sur les versions 8.5.1 ou 8.6 du groupe de correctifs 1. Cette classe implémente deux méthodes : validateParameters Cette méthode est la première appelée en cas d'exécution d'un travail Java. Elle permet de valider la saisie des paramètres lorsque le travail a été défini. Si une exception se produit, elle sera écrite dans le journal de travail. execute Cette méthode-ci est celle qui exécute réellement le travail. Les éléments suivants sont des méthodes de la classe validateParameters : getParameter S'il est fourni avec l'argument d'un des paramètres, il renvoie la valeur réelle. getParameterList Renvoie une liste de tous les paramètres définis comme paires valeur-nom. getOutputFile Renvoie le chemin d'accès du journal de travail de sortie. Remarque : Si vous souhaitez écrire dans le journal, n'oubliez jamais de le fermer. 3. Si vous le souhaitez, fournissez des informations à la personne définissant le travail L'interface comprend un bouton Obtention des informations de classe. Pour implémenter ce bouton, utilisez la classe TWSExecutableInformation, dont la signature est la suivante : 24 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation public abstract interface TWSExecutableInformation { public abstract String getInformation(); } Remarque : Cette classe peut être utilisée sur la version 8.6. uniquement. Cette classe est implémentée lorsque l'utilisateur clique sur le bouton Obtention des informations de classe. Ainsi, vous pouvez l'utiliser pour fournir des informations d'aide relatives au travail dans le fichier JAR sélectionné par l'utilisateur. 4. Incluez toute bibliothèque obligatoire Si votre travail Java exige une ou plusieurs bibliothèques ou autres fichiers, copiez-les vers le dossier où vous avez enregistré le fichier JAR. Lorsque la personne définissant le travail identifie le fichier JAR, le produit ne charge pas uniquement le fichier JAR, mais également tous les autres éléments compris dans le dossier sur l'agent. Voici un exemple du code dont il est question dans cette rubrique : package com.test.Trial; import java.io.BufferedWriter; import java.io.FileWriter; import com.ibm.scheduling.agent.java.jobexecutor.TWSExecutable; import com.ibm.scheduling.agent.java.jobexecutor.TWSExecutableInformation; import com.ibm.scheduling.agent.java.parametersdomain.Parameters; public class Trial implements TWSExecutable, TWSExecutableInformation{ /* * Writes the parameter "parm1" to the log */ @Override public void execute(Parameters arg0) throws Exception { String parm1 = arg0.getParameter("parm1"); String filename = arg0.getOutputFile(); BufferedWriter out = new BufferedWriter(new FileWriter(filename)); out.write(parm1); out.close(); } /* * Validates the parameter "parm1", throwing the exception to the log */ @Override public void validateParameters(Parameters arg0) throws Exception { String parm1 = arg0.getParameter("parm1"); if(parm1.equals("XXX")) throw new Exception("The parameter parm1 is not correct"); } /* * Tells the user of the interface who has clicked the Get Class * Information button what the class does. */ Chapitre 5. Définition des travaux Java 25 @Override public String getInformation() { String msg = "This class writes the parm1 parameter in the output log"; return msg; } } 26 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Remarques Le présent document peut contenir des informations ou des références concernant certains produits, logiciels ou services IBM non annoncés dans ce pays. Pour plus de détails, référez-vous aux documents d'annonce disponibles dans votre pays ou adressez-vous à votre partenaire commercial IBM. Toute référence à un produit, logiciel ou service IBM n'implique pas que seul ce produit, logiciel ou service IBM puisse être utilisé. Tout autre élément fonctionnellement équivalent peut être utilisé, s'il n'enfreint aucun droit d'IBM. Il est de la responsabilité de l'utilisateur d'évaluer et de vérifier lui-même les installations et applications réalisées avec des produits, logiciels ou services non expressément référencés par IBM. IBM peut détenir des brevets ou des demandes de brevet couvrant les produits mentionnés dans le présent document. La remise de ce document ne vous donne aucun droit de licence sur ces brevets ou demandes de brevet. Si vous désirez recevoir des informations concernant l'acquisition de licences, veuillez en faire la demande par écrit à l'adresse suivante : IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. Pour le Canada, veuillez adresser votre courrier ├á : IBM Director of Commercial Relations IBM Canada Ltd 3600 Steeles Avenue East Markham, Ontario L3R 9Z7 Canada Les informations sur les licences concernant les produits utilisant un jeu de caractères double octet peuvent être obtenues par écrit auprès d'IBM à l'adresse suivante : Octroi de licence de propriété intellectuelle Législation sur la propriété intellectuelle et légale IBM Japan, Ltd. 19-21, Nihonbashi-Hakozakicho, Chuo-ku Tokyo 103-8510, Japon Le paragraphe suivant ne s'applique ni au Royaume-Uni, ni dans aucun pays dans lequel il serait contraire aux lois locales. LES INFORMATIONS SONT LIVREES EN L'ETAT SANS AUCUNE GARANTIE EXPLICITE OU IMPLICITE. IBM DECLINE NOTAMMENT TOUTE RESPONSABILITE RELATIVE A CES INFORMATIONS EN CAS DE CONTREFAÇON, AINSI QU'EN CAS DE DEFAUT D'APTITUDE A L'EXECUTION D'UN TRAVAIL DONNE. Certaines juridictions n'autorisent pas l'exclusion des garanties implicites ou explicites, auquel cas l'exclusion ci-dessus ne vous sera pas applicable. © Copyright IBM Corp. 2011, 2014 27 Le présent document peut contenir des inexactitudes ou des coquilles. Ce document est mis à jour périodiquement. Chaque nouvelle édition inclut les mises à jour. IBM peut, à tout moment et sans préavis, modifier les produits et logiciels décrits dans ce document. Les références à des sites Web non-IBM sont fournies à titre d'information uniquement et n'impliquent en aucun cas une adhésion aux contenus de ces sites Web. Les éléments figurant sur ces sites Web ne font pas partie des éléments du présent produit IBM et l'utilisation de ces sites relève de votre seule responsabilité. IBM pourra utiliser ou diffuser, de toute manière qu'elle jugera appropriée et sans aucune obligation de sa part, tout ou partie des informations qui lui seront fournies. Les licenciés souhaitant obtenir des informations permettant : (i) l'échange des données entre des logiciels créés de façon indépendante et d'autres logiciels (dont celui-ci), et (ii) l'utilisation mutuelle des données ainsi échangées, doivent adresser leur demande à : IBM Corporation 2Z4A/101 11400 Burnet Road Austin, TX 78758 U.S.A. Ces informations peuvent être soumises à des conditions particulières, prévoyant notamment le paiement d'une redevance. Le logiciel sous licence décrit dans ce document et tous les éléments sous licence disponibles s'y rapportant sont fournis par IBM conformément aux dispositions de l'ICA , des Conditions internationales d'utilisation des logiciels IBM ou de tout autre accord équivalent. Le présent document peut contenir des exemples de données et de rapports utilisés couramment dans l'environnement professionnel. Ces exemples mentionnent des noms fictifs de personnes, de sociétés, de marques ou de produits à des fins illustratives ou explicatives uniquement. Toute ressemblance avec des noms de personnes, de sociétés ou des données réelles serait purement fortuite. Marques IBM, le logo IBM et ibm.com sont des marques d'International Business Machines Corporation aux Etats-Unis et/ou dans certains autres pays. Si ces marques et d'autres marques d'IBM sont accompagnées d'un symbole de marque (® ou ™), ces symboles signalent des marques d'IBM aux Etats-Unis à la date de publication de ce document. Ces marques peuvent également exister et éventuellement avoir été enregistrées dans d'autres pays. La liste actualisée de toutes les marques d'IBM est disponible sur la page Web "Copyright and trademark information" à http://www.ibm.com/legal/copytrade.shtml. Java ainsi que tous les logos et toutes les marques incluant Java sont des marques d'Oracle et/ou ses sociétés affiliées. 28 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Microsoft et Windows sont des marques de Microsoft Corporation aux Etats-Unis et/ou dans certains autres pays. UNIX est une marque enregistrée aux Etats-Unis et dans certains autres pays, dont seule la société The Open Group peut concéder la licence. Remarques 29 30 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Index A J accessibilité xii action, méthode et commande sendEvent 11 aide d'Integration Workbench utilisation 3 Java jobs C conventions utilisées dans les publications xii D Dynamic Workload Console accessibilité xii E envoi d'événements 11 F formation xii technique xii 23 P plug-in gestion des événements 5 arbre source Java 7 autres dossiers de projet 8 chemin de génération Java 8 documents de référence 12 fichier build.xml 9 fichier TWSPlugin.properties 9 fichier TWSPluginConfiguration.xml 9 préparation au déploiement 10 projet 6 projet, création à partir d'un exemple 10 projet, création de A à Z 10 projet, modèles (exemples) 10 structure 6 gestion des événements, connexion à Tivoli Workload Scheduler 11 type de travail personnalisé 13, 20 publications xii G génération d'événements 11 gestion des événements envoi d'événements 11 génération d'événements 11 gestion des événements, plug-in 5 arbre source Java 7 autres dossiers de projet 8 chemin de génération Java 8 connexion à Tivoli Workload Scheduler création de A à Z 11 documents de référence 12 fichier build.xml 9 fichier TWSPlugin.properties 9 fichier TWSPluginConfiguration.xml 9 préparation au déploiement 10 projet 6 création à partir d'un exemple 10 création de A à Z 10 modèles (exemples) 10 structure 6 glossaire xii T technique, formation xii Tivoli, formation technique xii Tivoli Workload Automation extension 1 type de travail personnalisé, plug-in 20 types de travaux Java 23 13, U utilisation aide d'Integration Workbench 3 I installation Integration Workbench Integration Workbench installation 3 3 © Copyright IBM Corp. 2011, 2014 31 32 IBM Tivoli Workload Automation - Guide du développeur : Extension de Tivoli Workload Automation Numéro de programme : 5698-T08, 5698-WSH et 5698-WSE SC11-6931-03