Vous êtes sur la page 1sur 22

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Le moteur de workow JBPM


Claude Duvallet
Universit du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/duvallet/

Claude Duvallet 1/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Le moteur de Workow JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Claude Duvallet 2/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Gnralisation de la notion de workow (1/2)


Par workow on entends beaucoup de choses...
Cinmatique des interactions utilisateurs. La gestion des donnes.

Toutes les applications ont un workow :


Mais il est en gnral x, ou peu modiable.

Quelques exemples :
Un wizard, Un formulaire suivi dune validation.

Certaines applications mtiers ont une ncessit particulire de devoir sadapter aux besoins dune entreprise. Par exemple, tout gestionnaire de contenu (GED, CMS)
Rarement le mme processus de validation. Un nombre de validation diffrents, par des acteurs diffrents (un relecteur, suivi dune validation par un autre journaliste, puis une autre validation par un directeur de programme).
Claude Duvallet 3/22 JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Gnralisation de la notion de workow (2/3)

Mais aussi toutes les applications lies la scurit :


PKI (Gestion du cycle de vie des certicats). Provisionning didentit.

Quelques constats :
Les dveloppeurs sont rarement spcialiss mtier. Les consultants mtiers ont rarement des connaissances techniques sufsantes pour manipuler du code.

Les ides :
Cration de moteur de workow permettant un dcoupage entre les parties techniques et les parties mtiers.

Claude Duvallet 4/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Gnralisation de la notion de workow (3/3)


Certaines personnes ont rchis des moteurs de workow :
WfMC (Workow Management Coalition).

Les ides :
Grer, archiver les instances de workow. Grer les donnes manipules au sein dune instance de workow. Orchestrer les diffrents modules que composent une instance de workow (briques mtiers).

En pratique cela donne :


Une vision mtier (reprsentation sous forme de graphique) dun workow, gnralement ralis par un consultant mtier. Une glue technique permettant la mise en oeuvre du workow mtier.

Claude Duvallet 5/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Les WebFlow

Les webow (ou pageow) sont un cas particulier des workow dans le cas dune utilisation dun site web. Dcris lenchanement des pages. Pas de persistance systmatique. Une brique mtier (au sens workow) peut tre compos dun webow lorsquil y a interaction avec lutilisateur via une interface web.

Claude Duvallet 6/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Exemples dutilisation (1/2)

Lquipe scurit travaille sur le workow pour lapplication de PKI EJBCA, pourquoi ? Aucun client na le mme besoin mtier. Dans le cas dune demande de certicat, il peut exister de trs nombreux points dentre diffrents, et des cinmatiques totalement diffrentes en fonction du point dentre. Les workow mtiers peuvent voluer au sein dun client, do lide de faire une application trs modulaire.

Claude Duvallet 7/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Exemples dutilisation (2/2)


Pour bien comprendre, prenons un exemple :
La DRH - la signature dun contrat - rempli un formulaire web (outil de gestion des identits interne la socit). Cela provoque la demande de deux certicats pour cet utilisateur (signature et chiffrement). son arrive, lemploy gnre une carte puce avec son certicat de signature. Plus tard dans la journe, obtention de son certicat de chiffrement.

Et un autre totalement diffrent :


Une entreprise souhaite quiper tous ses routeurs de certicats pour authentication ipsec. Les routeurs gnrent une demande de certicat (via le protocole SCEP) auprs de la PKI. Un administrateur doit valider les demandes.

Claude Duvallet 8/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Les aspects pratiques de la gestion de Workow

Dans un premier temps, il est question de dnir un langage permettant de reprsenter le workow, malheureusement il en existe un certains nombres :
BPM (Business Process Management) XPDL (XML Process Denition Language) BPEL (Business Process Execution Language)

La dnition de ces langages permettent dutiliser indpendamment diffrents moteurs de workow. Permet galement la cration dinterface graphique permettant la manipulation des workow.

Claude Duvallet 9/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Prsentation de JBPM

Projet rachet par JBoss. Licence apache. Lun (sinon le) des projets de workow le mieux document. Trs lger : 2 jar indpendants, ne ncessite pas lutilisation dun serveur dapplication (ex : JBoss). Le seul supporter la plupart des langues (XPDL, BPEL, etc.). Enrichi XPDL pour donner JDPL (JBPM Process Denition Language).

Claude Duvallet 10/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Le moteur de workow jBPM (1/3)


JBPM est un moteur de workow et de gestion de processus BPEL, adapt aux individus, aux applications et aux services. Le produit est parfait pour tre intgre dans un environnement Java lightweight. Le kernel workow est trs lger et peut tre extensible pour supporter des langages de dnition de processus trs varies. Actuellement les langages suivants sont supports :
JPDL : pour le workow humain, PageFlow : pour la dnition des enchanements des formulaires, BPEL : pour lorchestration des services web.

Les outils dadministration et monitoring workow sont limits dans la version actuelle.

Claude Duvallet 11/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Le moteur de workow jBPM (2/3)


JBoss jBPM est un moteur de workow et de gestion de processus mtiers. Il permet le contrle des processus qui coordonnent les personnes, les applications et les services. Avec son architecture modulaire, JBoss jBPM combine le dveloppement des applications workow avec un moteur de processus exible et extensible. Lditeur de processus JBoss jBPM reprsente graphiquement les tapes dun processus mtier et facilite le lien entre les analystes et les dveloppeurs. Puisque JBoss jBPM est prsent sous la forme dune simple bibliothque Java, il peut tre utilis
de faon indpendante dans un programme Java ou avec un serveur dapplications comme JBoss Application Server, pour des applications dentreprise hautement extensibles.
Claude Duvallet 12/22 JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Le moteur de workow jBPM (3/3)

JBoss jBPM facilite les modications des processus mtiers complexes, ce qui amliore signicativement la souplesse de lentreprise. Le projet est hberg par la communaut JBoss et fait partie du stack middleware JEMS propos par JBoss Group. RedHat est le leader du projet avec une quipe de dveloppement partag entre la Belgique et les tats Unis. En plus de la communaut anime par JBoss Group, le projet est actif avec des utilisateurs et validateurs en Europe et tats-Unis.

Claude Duvallet 13/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Les fonctionnalits de jBPM (1/2)


JBPM est un moteur de processus exible et extensible : Conu pour fonctionner seul ou pour fonctionner parfaitement au sein de toute application Java ou J2EE. Modle de programmation orient processus qui associe le meilleur de Java aux avantages des techniques de programmation dclaratives. Support des langages de processus JPDL, PageFlow et BPEL. Dnition graphique des processus via le Graphical Process Designer (GPD). Le langage JPDL propos pour la dnition des processus workow humain est trs intuitif mais on regrette que des standards workow humain type XPDL ne soit pas supports.

Claude Duvallet 14/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Les fonctionnalits de jBPM (2/2)

Linterface graphique de dnition des processus sous forme de plugin Eclipse permet de masquer lutilisation du langage JPDL. Lintgration avec le framework JBoss Seam permet dinterfacer facilement le workow avec une application web. Les outils dadministration et monitoring workow sont trs limits dans la version actuelle. Nanmoins, elles offrent la possibilit dexcuter graphiquement un processus workow. De futures versions mettront en uvre la technologie innovante de Process Virtual Machine dveloppe en commun par JBoss, OW2 et Bull.

Claude Duvallet 15/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Caractristiques de jBPM (1/2)


Versions :
La version actuelle est la 4.4. Depuis la version 4.x, on a une nouvelle architecture plus lgre et facilement extensible. Elle inclut le support complet du langage BPEL ainsi que lditeur graphique BPEL grce lintgration du plugin Eclipse BPEL.

Robustesse et performance :
JBPM est dploy en production dans des organisations appartenant des domaines dactivits trs diffrents tels que les nances ou la sant.

Documentation :
La documentation en Anglais est complte. Elle couvre linstallation du produit, les concepts de base, les exemples dutilisation ainsi que la dnition des processus et les concepts lis la programmation. Elle est disponible sous forme dun document html.
Claude Duvallet 16/22 JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Caractristiques de jBPM (2/2)


Facilit demploi :
JBPM est une librairie gnrique pour la gestion des diffrents langages des processus. Cette gnricit rajoute de la complexit lors de la premire prise en main du produit. Le modle de base est bas sur le concept Graph Oriented Programming qui certes apporte de la exibilit mais qui diffre des approches traditionnelles de workow.

Intgration :
JBPM peut tre intgr dans des systmes trs lgers type Java : application Java stand-alone, ou application web ainsi que dans systmes plus complexes type
J2EE.

Lutilisation de JBPM dans des solutions non-java ncessite le dveloppement dune couche de communication web services.

Claude Duvallet 17/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Le langage JDPL

JBPM Process Denition Language Un workow est compos dun ensemble de node :
Un (unique) startNode : tape lorigine de la cration de linstance du workow. TaskNode : tape en attente dune interaction avec lutilisateur. State : tape en attente dune action extrieure (webservices, attente de rponse dun composant externe lapplication). Un ou plusieurs endNode : archivage de linstance du workow et libration des ressources.

Les nodes task et state ont un tat wait

Claude Duvallet 18/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Dautres types de nodes

Fork : sparation du workow en N branches devant se runir via un node de type join DecisionNode : condition sur une variable de linstance de workow (utilisation dun langage simple ou dlgation une classe java). Node : action interne lapplication mais nayant pas dinteraction ni avec lutilisateur ni avec un lment externe (exemple : notication par courriel). On relie tous ces nodes par des transitions, reprsentant le changement dun node un autre au sein de linstance.

Claude Duvallet 19/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Le comportement dun node

Chaque node possde trois vnements dclencheurs :


onNodeEnter : dclenche lentre du node. onNodeLeave : dclenche la sortie du node (na pas conscience du node suivant). onTransition : dclenche lors de la transition vers le node suivant.

Pour information : un vnement nest pas li qu une seule action, mais peut dclencher plusieurs actions.

Claude Duvallet 20/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

La gestion des donnes dans un workow

Trs important : un node na pas connatre lexistence des autres nodes, il manipule un ensemble de donnes dans un contexte dexcution. Cest--dire :
Il ny a pas de variables directement passes dun node lautre Un node utilise linstance du workow pour manipuler ses donnes Limitation possible de la visibilits des variables en utilisant le mcanisme des swimlanes

Claude Duvallet 21/22

JBPM

Introduction la notion de Workow Prsentation de jBPM Le langage JDPL Outils

Les outils

JBPM est livre sous la forme dun chier ZIP tlchargeable. Ce chier permet dinstaller JBPM avec Tomcat ou JBoss au moyen de Ant. Le plugin Eclipse GPD est intgr au sein de larchive. De nombreux exemples sont fornis avec larchive. La documentation ofcielle est assez bien fate.

Claude Duvallet 22/22

JBPM