Analyse d’une solution de gestion de processus ACube moteur workflow Analyse d’une solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz
Sommaire 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 ACube - présentation du projet GL Mercredi 30 janvier 2008
Introduction – Acube Plateforme 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 ACube - présentation du projet GL Mercredi 30 janvier 2008
Rappel des besoins Inté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 ACube - présentation du projet GL Mercredi 30 janvier 2008
Cas d’usage ACube - présentation du projet GL Mercredi 30 janvier 2008 IDE Création d’un diagramme d’état-transition Processus enregistré au format XML Moteur de gestion de processus Liste des processus instanciables Liste des processus instanciés Liste des actions possibles sur un processus ACube - présentation du projet GL Mercredi 30 janvier 2008
Définition d’un workflow 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 ACube - présentation du projet GL Mercredi 30 janvier 2008
Avantages d’un workflow Permet 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 ACube - présentation du projet GL Mercredi 30 janvier 2008
Workflow - Terminologie Processus : 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 ACube - présentation du projet GL Mercredi 30 janvier 2008
Workflow patterns Basic Control Flow Patterns Advanced Branching and Synchronization Patterns Multiple Instance Patterns State-based Patterns Cancellation and Force Completion Patterns Iteration Patterns Termination Patterns Trigger Patterns ACube - présentation du projet GL Mercredi 30 janvier 2008 9 9
Séquence Exécution de deux activités ou plus en séquence 10 ACube - présentation du projet GL Mercredi 30 janvier 2008 10 10
Séparation en parallèle Exécution de deux activités ou plus dans n'importe quel ordre ou en parallèle ACube - présentation du projet GL Mercredi 30 janvier 2008 11 11
Synchronisation Synchronise 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 ACube - présentation du projet GL Mercredi 30 janvier 2008 12 12
Synchronisation (2) 13 ACube - présentation du projet GL Mercredi 30 janvier 2008 13 13
Choix exclusif Choisir un chemin d'exécution parmi plusieurs choix Basé sur une condition valide quand l'exécution du processus recherche le bon choix ACube - présentation du projet GL Mercredi 30 janvier 2008 14 14
Simple fusion Attendre qu'une activité parmi un ensemble d'activités arrive à terme avant de continuer Une seule activité sera exécutée Typiquement, ces activités proviennent de différents chemins exclusifs ACube - présentation du projet GL Mercredi 30 janvier 2008 15 15
Simple fusion (2) 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 ACube - présentation du projet GL Mercredi 30 janvier 2008 16 16
Notations 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 ACube - présentation du projet GL Mercredi 30 janvier 2008
Langages BPML : 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) ACube - présentation du projet GL Mercredi 30 janvier 2008 18 18
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 ACube - présentation du projet GL Mercredi 30 janvier 2008 19 19
WebSphere MQ Workflow (IBM) Les projets Notation Langage WebSphere MQ Workflow (IBM) FDL WS-BPEL Oracle BPEL Designer BPEL Orchestra (Nova) Bonita (Bull et Inria) XPDL jBPM (jBoss) BPMN JPDL (ex-jBPM) PageFlow XPDL (en projet) eBPMN (Soyatec) XMI jPED (Wf MOpen) XML YAWL (groupe BPM du QUT) Spring Web Flow ACube - présentation du projet GL Mercredi 30 janvier 2008 20 20
Modèle de référence 21 ACube - présentation du projet GL Mercredi 30 janvier 2008 21 21
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 ACube - présentation du projet GL Mercredi 30 janvier 2008 22 22
Architecture générale ACube - présentation du projet GL Mercredi 30 janvier 2008 23 23
API de jBPM 24 ACube - présentation du projet GL Mercredi 30 janvier 2008 24 24
IHM 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 … ACube - présentation du projet GL Mercredi 30 janvier 2008 25 25
Listing des processus 26 ACube - présentation du projet GL Mercredi 30 janvier 2008 26 26
Détail d’une instance d’un processus ACube - présentation du projet GL Mercredi 30 janvier 2008 27 27
Listing des tâches à effectuer ACube - présentation du projet GL Mercredi 30 janvier 2008 28 28
Création simple d’un processus ACube - présentation du projet GL Mercredi 30 janvier 2008 29 29
Création simple d’un processus (2) ACube - présentation du projet GL Mercredi 30 janvier 2008 30 30
Implémentation d’une instance d’un processus 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 ACube - présentation du projet GL Mercredi 30 janvier 2008 31 31
Implémentation de plusieurs instances de plusieurs 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) ACube - présentation du projet GL Mercredi 30 janvier 2008 32 32
La 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 ACube - présentation du projet GL Mercredi 30 janvier 2008 33 33
Démonstrations 34 ACube - présentation du projet GL Mercredi 30 janvier 2008 34 34