COURS JBPM

essay A+

ntroduction à la notion de Workflow Présentation de jBPM Le langage JDPL Outils Le moteur de workflow JBPM Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon – BP 540 76058 LE HAVRE CEDEX Claude. Duvallet@gm http://litis. univ-lehav p g Claude Duvallet — 1/ JBPM Introduction à la notion de Workflow e moteur de Workflow JBPM 2 aussi toutes les applications liées à la sécurité PKI (Gestion du cycle de vie des certificats). Provisionning d’identité. Quelques constats : Les développeurs sont rarement spécialisés métier.

Les consultants métiers ont rarement des connaissances echniques suffisantes pour manipuler du code. Les idées Création de moteur de workflow permettant un découpage entre les parties techniques et les parties métiers. Claude Duvallet 4/22 Généralisation de la notion de workflow (3/3) Certaines personnes ont réfléchis à des moteurs de workflow WfMC (Workflow Management Coalition). Les idées . Gérer, archiver les instances de workflow. Gérer les données manipulées au sein d’une instance de workflow. Orchestrer les différents modules que composent une instance de workflow (briques métiers).

En pratique cela donne : Une vision métier (représe 2 9 forme de eraphique) d’un via une interface web. Claude Duvallet — 6/22 Le langage DPL Exemples d’utilisation (112) L’équipe sécurité travaille sur le workflow pour l’application de PKI EJBCA, pourquoi ? Aucun client n’a le même besoin métier. Dans le cas d’une demande de certificat, il peut exister de très nombreux points d’entrée différents, et des cinématiques totalement différentes en fonction du point d’entrée. Les workflow métiers peuvent évoluer au sein d’un client, d’où l’idée de faire une application très modulaire.

Claude Duvaliet — 7/22 Exemples d’utilisation (2/2) pour bien comprendre, prenons un exemple La DRH – à la signature d’un contrat – rempli un formulaire web (outil de gestion des identi la société). 3 aspects pratiques de la gestion de Workflow Dans un premier temps, il est question de définir un langage permettant de représenter le workflow, malheureusement il en existe un certains nombres : BPM (Business Process Management) XPDL (XML Process Definition Language) BPEL (Business Process Execution Language) La définition de ces langages permettent d’utiliser indépendamment différents moteurs de workflow.

Permet également la création d’interface graphique permettant la manipulation des workflow. Claude Duvallet — 9/22 présentation de JBPM projet racheté par JBoss. Licence apache. ‘un (sinon le) des projets de workflow le mieux documenté. Très léger : 2 Jar Indépendants, ne nécessite pas l’utilisation d’un serveur d’application (ex : JBoss). Le seul à supporter la plupart des langues (XPDL, BPEL, etc. ). Enrichi XPDL pour donner JDPL (JBPM process Definition Language). 10/22 4 humain, PageFlow : pour la définition des enchaînements des formulaires, BPEL : pour l’orchestration des services web.

Les outils d’administration et monitoring workflow sont limités dans la version actuelle. 11/22 Le moteur de workflow JBPM (2/3) JBoss jBPM est un moteur de workflow et de gestion de processus métiers. I permet le contrôle des processus qui coordonnent les personnes, les applications et les sen,’ices. Avec son architecture modulaire, JBoss jBPM combine le développement des applications workflow avec un moteur de processus flexible et extensible Céditeur de processus JBoss jBPM représente graphiquement les étapes d’un processus métier et facilite le lien entre les analystes et les développeurs.

Puisque JBoss jBPM est présenté sous la forme d’une simple bibliothèque Java, il peut être utilisé de façon indépendante dans un programme Java ou avec un serveur d’applications comme JBoss Application Server, pour des applications d’entreprise hautement extensibles. 12/22 S avec une équipe de développement partagé entre la Belgique et les États Unis. En plus de la communauté animée par JBoss Group, le projet est actif avec des utilisateurs et validateurs en Europe et Etats-Unis. 3/22 Les fonctionnalités de jBPM (1/2) JBPM est un moteur de processus flexible et extensible : Conçu pour fonctionner seul ou pour fonctionner parfaitement au sein de toute application Java ou J2EE. Modèle de programmation orienté processus qui associe le meilleur de Java aux avantages des techniques de programmation déclaratives. Support des langages de processus JPDL, PageFlow et BPEL. Définition graphique des processus via le Graphical Process Designer (GPD).

Le langage JPDL proposé pour la définition des processus workflow humain est très intuitif mais on regrette que des standards workflow humain type XPDL ne soit pas supportés. Claude Duvaliet — 14/22 outils De futures versions mettront en œuvre la technologie innovante de ‘Process Virtual Machine’ développée en commun par JBoss, OW2 et Bull. 15/22 Caractéristiques de jBPM (112) Versions : La version actuelle est la 44. Depuis la version 4. x, on a une nouvelle architecture plus légère et facilement extensible.

Elle inclut le support complet du langage BPEL ainsi que Féditeur graphique BPEL grâce à l’intégration du plugin Eclipse BPEL Robustesse et performance : JBPM est déployé en production dans des organisations appartenant à des domaines d’activités très différents tels que les finances ou la santé. Documentation : La documentation en Anglais est complète. Elle couvre l’installation du produit, les concepts de base, les exemples d’utilisation ainsi que la définition des processus et les concepts liés à la programmation.

Elle est disponible sous forme d’un document html. 16/22 Intégration : JBPM peut être intégré dans des systèmes très légers type Java • • application Java stand-alone, • ou application web ainsi que dans systèmes plus complexes type 2EE. Cutilisation de JBPM dans des solutions non-java nécessite le développement d’une couche de communication web services. 17/22 JBPM Process Deflnition Language Un workflow est composé d’un ensemble de node Un (unique) startNode : étape à l’origine de la création de l’instance du workflow.

TaskNode : étape en attente d’une interaction avec l’utilisateur. State : étape en attente d’une action extérieure (webservices, attente de réponse d’un composant externe à l’application). Un ou plusieurs endNode : archivage de Finstance du workflow et libération des ressources. Les nodes task et state ont un état wait 18/22 8 autre au sein de Pinstance. 19/22 Le comportement d’un node Chaque node possède trois événements déclencheurs nNodeEnter : déclenchée à l’entrée du node. nNodeLeave : déclenchée à la sortie du node (n’a pas conscience du node suivant). onTransition : déclenchée lors de la transition vers le node suivant. Pour information : un événement n’est pas lié qu’à une seule action, mais peut déclencher plusieurs actions. Claude Duvaliet — 20/22 La gestion des données dans un workflow Très important : un node n’a as à connaître l’existence des autres nodes, il manipule de données dans un 9 Très important : un node n’a pas à connaître l’existence des autres nodes, il manipule un ensemble de données dans un