![Page 1: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/1.jpg)
ACubeACubemoteur workflowmoteur workflow
Analyse d’une solution de gestion de processus
Présenté par :• Eric Bonin• Benjamin Fuentes• Thomas Laborde• Vivien Ruiz
![Page 2: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/2.jpg)
SommaireSommaire Introduction
Définition, concept d’un workflow◦ définition – terminologie◦ principes de base◦ notations, langages, projet◦ modèle de référence◦ choix effectué
Intégration de jBPM◦ Architecture générale◦ API de jBPM◦ IHM◦ Implémentations
implémentation simple d’une instance d’un processus implémentation de plusieurs instances de plusieurs processus
ACube
Démonstration
2Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 3: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/3.jpg)
Introduction – AcubeIntroduction – AcubePlateforme de développement unifiée
But du projet : ajouter de nouvelles fonctionnalités aux frameworks existants◦ framework ergonomique
HTML, CSS, Javascript, AJAX◦ framework serveur J2EE
StrutsCX
Projet GL :intégrer à ACube (A3) un module
permettant de gérer des processus
3Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 4: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/4.jpg)
Rappel des besoinsRappel des besoinsIntégrer côté framework serveur J2EE un moteur
de gestion de processus (ou workflow)
Mettre en place côté framework ergonomique une liste de processus accessibles aux utilisateurs
Permettre aux utilisateurs d’instancier des processus et de suivre leur avancement
Offrir aux administrateurs la possibilité de créer facilement des processus sous forme de diagrammes d’état-transition
4Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 5: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/5.jpg)
Cas d’usageCas d’usage
5Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 6: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/6.jpg)
Définition d’un Définition d’un workflowworkflow
Flux d’information au sein d’une organisation
Modélisation et gestion informatique d’ensembles de tâches à accomplir
Le workflow définit un circuit de validation
Workflow => gestion informatisée de processus métier
6Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 7: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/7.jpg)
Avantages d’un Avantages d’un workflowworkflowPermet d’assurer un suivi de tâches à
effectuer en identifiant les acteurs et leurs rôles
Meilleur contrôle de processus
Amélioration des services aux utilisateurs
Flexibilité accrue
Amélioration des processus métier
7Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 8: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/8.jpg)
WorkflowWorkflow - Terminologie - TerminologieProcessus : ensemble d’activités, équivalent
au graphe d’état-transition
Activité : unité atomique de travail, équivalent à un nœud du
graphe d’état-transition
Transition : dépendance exprimant une contrainte d’ordre entre deux activités, équivalent à une arête du graphe d’état-
transition
8Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 9: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/9.jpg)
Workflow patternsWorkflow patterns
Basic Control Flow PatternsAdvanced Branching and Synchronization
PatternsMultiple Instance PatternsState-based PatternsCancellation and Force Completion
PatternsIteration PatternsTermination PatternsTrigger Patterns
9Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 10: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/10.jpg)
SéquenceSéquence
Exécution de deux activités ou plus en séquence
10Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 11: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/11.jpg)
Séparation en parallèleSéparation en parallèle
Exécution de deux activités ou plus dans n'importe quel ordre ou en parallèle
11Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 12: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/12.jpg)
SynchronisationSynchronisationSynchronise deux activités ou plus qui
peuvent être exécutées dans n'importe quel ordre ou en parallèle
Les activités suivantes ne peuvent pas être lancées tant que les activités précédentes ne sont pas accomplies
Barrière de synchronisation
12Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 13: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/13.jpg)
Synchronisation (2)Synchronisation (2)
13Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 14: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/14.jpg)
Choix exclusifChoix exclusif
14Mercredi 30 janvier 2008ACube - présentation du projet GL
Choisir un chemin d'exécution parmi plusieurs choix
Basé sur une condition valide quand l'exécution du processus recherche le bon choix
![Page 15: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/15.jpg)
Simple fusionSimple fusion
15Mercredi 30 janvier 2008ACube - présentation du projet GL
Attendre qu'une activité parmi un ensemble d'activités arrive à terme avant de continuer
Une seule activité sera exécutéeTypiquement, ces activités proviennent de différents
chemins exclusifs
![Page 16: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/16.jpg)
Simple fusion (2)Simple fusion (2)
16Mercredi 30 janvier 2008ACube - présentation du projet GL
Site très complet - référence dans le monde des workflow
http://www.workflowpatterns.com
Modélisation mathématique des workflow
http://en.wikipedia.org/wiki/Petri_net
![Page 17: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/17.jpg)
NotationsNotations
BPMN : Business Process Modeling Notation, développé par BPMI et soutenu par OMG
UML : Unified Modeling Language, diagramme d’activité
Grafcet : diagramme d’état-transition
17Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 18: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/18.jpg)
LangagesLangagesBPML : Business Process Modeling
Language (organisation BPMI)
BPDM : Business Process Definition Metamodel, par OMG (basé sur XMI)
BPEL : Business Process Execution Language, par IBM et Microsoft
XPDL : XML Process Definition Language, standard de la WfMC (Workflow Management Coalition)
18Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 19: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/19.jpg)
Langages (2)Langages (2)YAWL : Yet Another Workflow Language, développé
par le groupe BPM du QUT (Queensland University of Technology)
Wf-XML : basé sur XML, par la WfMC
19Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 20: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/20.jpg)
Les projetsLes projets
20Mercredi 30 janvier 2008ACube - présentation du projet GL
Notation Langage
WebSphere MQ Workflow (IBM)
FDLWS-BPEL
Oracle BPEL Designer BPEL
Orchestra (Nova) BPEL
Bonita (Bull et Inria) XPDL
jBPM (jBoss) BPMN JPDL (ex-jBPM)BPEL
PageFlowXPDL (en projet)
eBPMN (Soyatec) BPMN XMI
jPED (Wf MOpen) XPDLXML
YAWL(groupe BPM du QUT)
XML
Spring Web Flow XML
![Page 21: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/21.jpg)
Modèle de référenceModèle de référence
21Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 22: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/22.jpg)
Choix effectuéChoix effectué Beaucoup de standard sur les workflow mais très peu
utilisés et souvent très différents les uns des autres
Difficulté d’en choisir un en particulier, chacun vantant ses mérites
Premiers tests : l’installation, la prise en main et la documentation
Au final, nous choisirons jBPM de jBoss pour sa qualité d’installation (plugin eclipse) et la documentation de son API
Bonita d’IBM n’a pu être approfondi par manque de temps
22Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 23: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/23.jpg)
Architecture généraleArchitecture générale
23Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 24: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/24.jpg)
API de jBPMAPI de jBPM
24Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 25: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/25.jpg)
IHMIHM
Nécessité d’une Interface Homme-Machine pour décrire le fonctionnement de l’application
Maquettes simples
Partiels de page .jsp
Quelques exemples tout de suite …
25Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 26: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/26.jpg)
Listing des processusListing des processus
26Mercredi 30 janvier 2008ACube - présentation du projet GL
1
N om
2m odifier effacer
m odifier effacer
nouveau
Lancer une instance
Lancer une instance
P1
P2
ID
Liste des processus
Vers éditeur de processus
C rée juste un processus
![Page 27: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/27.jpg)
Détail d’une instance d’un processusDétail d’une instance d’un processus
27Mercredi 30 janvier 2008ACube - présentation du projet GL
ID :
ID
N om : P1
1 lancer
2 lancer
Liste des transitions suivantes
Valider titi
R efuser titi
Vers ...
Vers ...
Activ ité AActiv ité B
Liste des tâches
T1
T2
Processus en cours
O kO k
ETAT : ACTIV ITE O
R etour à la liste
Lance une page pour effectuer la tache
Lance la transition vers la bonne activ ité
![Page 28: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/28.jpg)
Listing des tâches à effectuerListing des tâches à effectuer
28Mercredi 30 janvier 2008ACube - présentation du projet GL
Processus : ID :P 1
ID
1 lancer
2 lancer
Liste des tâches
T1
T2
Processus : ID :C 3
ID
6 lancer
8 lancer
Liste des tâches
T6
T7
Liste des tâches à fa ire
![Page 29: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/29.jpg)
Création simple d’un processusCréation simple d’un processus
29Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 30: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/30.jpg)
Création simple d’un processus (2)Création simple d’un processus (2)
30Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 31: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/31.jpg)
Parsing du fichier XML en utilisant les bibliothèques fournies par jBoss
Création d’une instance à partir du parsing du XML
Déplacement dans le graphe d’état-transition par envoi de signaux à l’instance, signaux paramétrés par le nom des transitions lorsque plusieurs choix sont disponibles
Possibilité de connaître l’état du processus :◦ nom du nœud du graphe actuellement visité◦ liste des transitions partantes et arrivantes sur le nœud
Création d’un war et déploiement de l’application sur Tomcat : inclusion des bibliothèques de jBoss
31Mercredi 30 janvier 2008ACube - présentation du projet GL
Implémentation d’une instance d’un processusImplémentation d’une instance d’un processus
![Page 32: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/32.jpg)
Implémentation de plusieurs instances de Implémentation de plusieurs instances de plusieurs processusplusieurs processus
Un processus peut avoir plusieurs instances de démarrées : liste de ses instances
Chaque processus est identifié par son id et son nom
Chaque instance provient d’un processus et est identifiée par son id
Problème avec la configuration de la persistance des objets (Hibernate & Acube)
32Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 33: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/33.jpg)
La solution de secoursLa solution de secours
Objet Context ignoré et utilisation abusive de l’objet Session
Passage lourd de bean en Session (liste de bean parfois)
Solution qui marche
Solution à remplacer dans une future reprise du projet par une gestion du contexte dans Acube
33Mercredi 30 janvier 2008ACube - présentation du projet GL
![Page 34: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz](https://reader035.vdocuments.pub/reader035/viewer/2022062511/551d9db5497959293b8d99a7/html5/thumbnails/34.jpg)
DémonstrationsDémonstrations
34Mercredi 30 janvier 2008ACube - présentation du projet GL