Workflow
Table des matières Analyse... 3 Définition générale d'un Workflow :... 3 Avantages...4 Workflow Pattern...5 Forme Mathématique...7 Terminologie...8 Langages, Notations et Projets... 9 Les Notations:...9 Les Langages... 9 Les Projets...9 Modèle de référence...10 Notre choix... 11
Analyse Définition générale d'un Workflow : Wikipedia : Un workflow est un flux d'informations au sein d'une organisation, comme par exemple la transmission automatique de documents entre des personnes. On appelle «workflow» (traduisez littéralement «flux de travail») la modélisation et la gestion informatique de l'ensemble des tâches à accomplir et des différents acteurs impliqués dans la réalisation d'un processus métier (aussi appelé processus opérationnel ou bien procédure d'entreprise). Le terme de «workflow» pourrait donc être traduit en français par «gestion électronique des processus métier». De façon plus pratique, le workflow décrit le circuit de validation, les tâches à accomplir entre les différents acteurs d'un processus, les délais, les modes de validation, et fournit à chacun des acteurs les informations nécessaires pour la réalisation de sa tâche. Pour un processus de publication en ligne par exemple, il s'agit de la modélisation des tâches de l'ensemble de la chaîne éditoriale. Il permet généralement un suivi et identifie les acteurs en précisant leur rôle et la manière de le remplir au mieux. Le moteur de workflow est le dispositif logiciel permettant d'exécuter une ou plusieurs définitions de workflow. Par abus de langage, on peut appeler ce dispositif logiciel tout simplement "workflow". http://ais.its.psu.edu/workflow/workflow_documentation.html : The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant* to another for action, according to a set of procedural rules. *participant = resource (human or machine)
Avantages En améliorant l'efficacité, l'automatisation permet l'élimination d'étapes complexes ou difficiles à suivre. Meilleur contrôle de processus standardisation de méthode de travail améliorant la gestion de processus métier Amélioration des services aux utilisateurs de meilleurs outils augmentent un meilleur niveau de réponse de la part des utilisateurs Flexibilité le contrôle direct du logiciel sur les processus permet de remodeller ces derniers en fonction des besoins clients Amélioration des processus métier recentralisation sur les processus métier amenant des simplifications et rationalisation
Workflow Pattern (pour plus d'information, voir -> http://www.workflowpatterns.com ) Patterns de contrôle classique Séquence - exécute deux activités ou plus en séquence Séparation en parallèle - exécute deux activités ou plus dans n'importe quel ordre ou en parallèle 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; aussi nommée barrière de synchronisation. Choix exclusif - choisi un chemin d'exécution parmi plusieurs choix basé sur une condition valide quand l'exécution du processus recherche le bon choix X Simple fusion - attend qu'un parmi un ensemble d'activités arrive avant de continuer; il est établi qu'une seule activité sera exécutée; typiquement, ces activités proviennent de différents chemins exclusifs
Remarque : Il existe encore d'autres types plus complexes de situations regroupés par thèmes (voir ci-dessous). Ces Patterns sont consultables à l'url donné en début de chapitre. Nous verrons plus tard dans quelle mesure nous avons choisi de nous baser sur de standards qui respectent ces principes. Advanced Branching and Synchronization Patterns Multiple Instance Patterns State-based Patterns Cancellation and Force Completion Patterns Iteration Patterns Termination Patterns Trigger Patterns
Forme Mathématique (pour plus d'information, voir -> http://en.wikipedia.org/wiki/petri_net ) Un réseau de Petri (en français on prononce Pétri) est un modèle mathématique servant à représenter divers systèmes (informatiques, industriel,...) travaillant sur des variables discrètes. jeton place transition arc Un réseau de Petri se représente par un graphe bipartite (composé de deux types de nœuds) orienté (composé d'arc(s)) reliant des places et des transitions (les nœuds). Deux places ne peuvent pas être reliées entre elles, ni deux transitions. Les places peuvent contenir des jetons, représentant généralement des ressources disponibles. La distribution des jetons dans les places est appelée le marquage du réseau de Petri. Les entrées d'une transition sont les places desquelles part une flèche pointant vers cette transition, et les sorties d'une transition sont les places pointées par une flèche ayant pour origine cette transition. Un réseau de Petri évolue lorsqu'on exécute une transition : des jetons sont pris dans les places en entrée de cette transition et envoyés dans les places en sortie de cette transition. L'exécution d'une transition (pour un réseau de base ou un réseau coloré) est une opération indivisible qui est déterminée par la présence du jeton sur la place d'entrée. L'exécution d'un réseau de Petri n'est pas déterministe, car il peut y avoir plusieurs possibilités d'évolution à un instant donné. Si chaque transition dans un réseau de Petri a exactement une entrée et une sortie alors ce réseau est un automate fini.
Terminologie Processus : ensemble d'activité. Activité : unité atomique de travail (équivalent à un noeud du graphe). Transition : dépendance exprimant une contrainte d'ordre entre deux activités (équivalent à une arête du graphe)
Langages, Notations et Projets (un comparatif rapide de l'existant nous renseigne sur le respect des patterns, voir -> http://www.workflowpatterns.com/evaluations/standard/index.php) Nous nous intéresseront à ceux écrits en vert. Les Notations: BPMN provenant de l'omg particulièrement l'organisation BPMI UML - diagramme d'activité Grafcet? Diagramme d'état/transition?... Les Langages BPEL par IBM et Microsoft BPML par BPMI YAWL par YAWL foundation XPDL par WfMC BPDM par BPMI (comme XPDL bas2 sur du XMI mais pas encore implemente) WF-XML par WfMC Les Projets Notation Langage WebSphere MQ Workflow d'ibm(engine) Oracle BPEL Designer? FDL WS-BPEL compatible BPEL Orchestra by Nova Bonita de BULLet INRIA(engine) BPEL? XPDL JBPM de JBOSS BPMN JPDL (ex-jbpm) BPEL PageFlow XPDL (en projet) ebpmn par Soyatec BPMN (stockage en XMI) JPED par WfMOpen? XPDL XML YAWL (suite) de YAWL? YAWL XML
Spring Web Flow? XML Modèle de référence
Notre choix Tout d'abord, on peut faire un constat à l'heure actuelle sur le fait qu'il existe beaucoup de standard sur le workflow mais que très peu sont utilisés et que les producteurs aiment bien faire 'à leur sauce'. Il a donc été très difficile de faire un choix objectif, chaque projet vantant ses propres mérites. Nombres de critiques nous ont permis de nous faire notre avis. Un autre facteur fut la qualité de l'installation et de la documentation fournie par les projets. En effet, nous essayerons de nous baser sur une solution qui a fait ses preuves et dont nous pouvons nous assurer d'un résultat. Ainsi... ( conclure)