ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin...

34
ACube ACube moteur workflow moteur workflow Analyse d’une solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz

Transcript of ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin...

Page 1: ACube moteur workflow Analyse dune solution de gestion de processus Présenté par : Eric Bonin Benjamin Fuentes Thomas Laborde Vivien Ruiz.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

DémonstrationsDémonstrations

34Mercredi 30 janvier 2008ACube - présentation du projet GL