acube moteur workflow analyse dune solution de gestion de processus présenté par : eric bonin...
TRANSCRIPT
ACubeACubemoteur workflowmoteur workflow
Analyse d’une solution de gestion de processus
Présenté par :• Eric Bonin• Benjamin Fuentes• Thomas Laborde• Vivien Ruiz
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
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
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
Cas d’usageCas d’usage
5Mercredi 30 janvier 2008ACube - présentation du projet GL
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
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
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
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
SéquenceSéquence
Exécution de deux activités ou plus en séquence
10Mercredi 30 janvier 2008ACube - présentation du projet GL
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
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
Synchronisation (2)Synchronisation (2)
13Mercredi 30 janvier 2008ACube - présentation du projet GL
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
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
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
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
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
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
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
Modèle de référenceModèle de référence
21Mercredi 30 janvier 2008ACube - présentation du projet GL
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
Architecture généraleArchitecture générale
23Mercredi 30 janvier 2008ACube - présentation du projet GL
API de jBPMAPI de jBPM
24Mercredi 30 janvier 2008ACube - présentation du projet GL
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
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
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é
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
Création simple d’un processusCréation simple d’un processus
29Mercredi 30 janvier 2008ACube - présentation du projet GL
Création simple d’un processus (2)Création simple d’un processus (2)
30Mercredi 30 janvier 2008ACube - présentation du projet GL
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
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
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
DémonstrationsDémonstrations
34Mercredi 30 janvier 2008ACube - présentation du projet GL