1. Workflow Foundation 4.5 avec Visual Studio 2012
Module 1 : Introduction
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 1
2. MODULE 1 - INTRODUCTION
Section 1 : Langages
Graphiques
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 2
3. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
Graphique versus textuel
Image plus parlante que des milliers de mots
Expressivité accrue
Simplicité envers les parties prenantes (client, équipe)
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 3
4. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
Langages Graphiques, avantages et
inconvénients
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 4
Avantages
• Expressivité
• Simplicité
• Accessibilité
Inconvénients
• Modélisation
d’aspects
complexes
• Exécutabilité
5. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
Langages Graphiques, Exemples
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 5
UML BPMN
6. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
UML (Unified Modeling Language)
Langage de modélisation standardisé par l’Object Management Group
Composé de plusieurs diagrammes où chaque diagramme est utilisé dans une étape du cycle
de vie d’un logiciel
Le diagramme de cas d’utilisation capture les besoins utilisateur
Le diagramme des classes modélise les classes du système
Le diagramme d’activité modélise le déroulement d’un processus métier ou d’un processus
technique
Le diagramme de séquence modélise une séquence d’évènements
Le diagramme de composants modélise l’architecture logique du système
Le diagramme de déploiement modélise l’architecture physique du système
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 6
7. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
UML – Diagramme des cas
d’utilisation
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 7
Site d'annonces
Utilisateur
Acheteur
Vendeur
CréerUnCompte
ChercherUneAnnonce
FaireUneOffre
CreerUneAnnonce
8. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
UML – Diagramme de classes
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 8
Engin
+ marque: string
+ modele: string
+ getPoids() : double
Voiture
+ nombrePlaces: int
Camion Bus
VoitureTouristique VoitureUtilitaire
+ chargeUtile: double
9. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
UML – Diagramme d’activité
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 9
Recevoir Commande
Stock disponible
Approvisionner
Mettre à jour
inventaire
Notifier
[Non]
[Oui]
10. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
UML – Diagramme de séquence
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 10
Utilisateur
AlbumManager
original :Album
Copie :Album
opt Copier
[Si liste n'est pas vide est si l'album n'est pas verrouillé]
dupliquerAlbum(int)
getAlbum(int) :
Album
getPhotos() :Photo[*]
liste= :Photo[*]
renommer(String)
copierPhotos(liste)
12. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
UML – Diagramme de déploiement
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 12
«device»
Serveur BDD
«database»
BDD
«device»
Serveur Application
Application web
Serveur web
PC Client
«executable»
Navigateur
TCP HTTP
13. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
UML – Avantages et Inconvénients
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 13
Avantages
• Standard
• Orienté
développement
• Complet
Inconvénients
• Non exécutable
• Complexe à cause
de la multiplicité
de diagrammes et
de profils
14. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
BPMN (Business Process Model
Notation)
Un procédé métier est une séquence d’activités exécutées dans le but d’aboutir à une valeur
ajoutée
BPMN est un formalisme permettant de modéliser les processus métier et est actuellement à
la version 2.0
BPMN modélise un processus en une séquence d’activité
BPMN modélise la collaboration lorsque la séquence implique plus d’un participant
BPMN modélise la chorégraphie qui représente l’ensemble des interactions entre les
participants
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 14
15. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
BPMN 2 - Exemple
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 15
Source : http://blog.octo.com/retour-d-experience-bpmn/
16. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
BPMN– Avantages et Inconvénients
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 16
Avantages
• Simple
• Promeut la
collaboration
Inconvénients
• Orienté métier
(pas
développement)
• Non exécutable
17. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
Workflows
Ensemble de tâches exécutées par une ou plusieurs personnes
Modélisés graphiquement
Passage d’informations ou de documents entre les différentes étapes
Un moteur de workflow est une plateforme permettant d’exécuter les workflow
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 17
18. MODULE 1 - INTRODUCTION
SECTION1-LANGAGESGRAPHIQUES
Pourquoi les workflows ?
Représentation graphique accessible pour toutes les parties prenantes
Intervention de plusieurs acteurs et utilisateurs
Tâches pouvant durer un temps considérable
Supervision et persistance
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 18
19. MODULE 1 - INTRODUCTION
Section 2 :
Introduction à
Workflow Foundation
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 19
20. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Qu’est-ce que WF ?
Moteur d’exécution de workflows bâti sur .NET Framework
Permet la construction visuelle de logiciels
Conduit par les évènements
Facilite la modélisation des besoins des clients
Supporte un ensemble de services (hébergement, exécution, persistances, suivi,…)
Supporte les processus de longue exécution
Supporte la réutilisation facile de blocs logiciels
Intégration poussée avec WCF
Intégration avec le cloud (Windows Azure)
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 20
21. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Historique
Première version avec .NET 2.0 (2005)
Version 3.5 avec .NET 3.5 (2007)
Réécriture complète (VS 2012), Version 4.5
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 21
22. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Nouveauté de WF 4.0
Designer basé sur WPF
L’activité « Activity » est la basé des workflows
Intégration des flowcharts et des machines à états
Nouvelles activités (flowchart,…)
Variables et transmission d’informations à travers les arguments
Nouvelles options d’hébergement des workflows
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 22
23. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Nouveauté de WF 4.5
Versionnement des workflows
Activité « NoPersistScope » qui empêche la persistance de ses activités enfants
Amélioration du designer (recherche)
Expressions en C#
Ajout d’annotations dans le designer
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 23
24. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Composants de WF 4.5
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 24
Moteur
d’exécution
Activités Workflows Designer
Gestion des
données
Persistance Suivi
25. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Moteur d’exécution
Exécute les workflows et gère leur déroulement asynchrone
Le moteur d’exécution peut être intégré à une application, on parle alors d’hébergement
(hosting)
Les workflows peuvent être hébergés dans une application .NET
Les workflows peuvent être hébergés dans un service
Les workflows peuvent être hébergés dans Sharepoint
Les workflows peuvent être hébergés dans Windows Server
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 25
26. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Cycle de vie d’un workflow
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 26
Evènement Déclenchement Evènement WF associé
Instanciation Lorsqu’une nouvelle instance d’un workflow est créée WorkflowCreated
Démarrage Lorsqu’un workflow est exécuté WorkflowStarted
Chargement Lorsque le workflow est chargé en mémoire WorkflowLoaded
Annulation Lorsque l’exécution d’un workflow est annulée WorkflowAborted
Mise en veille Lorsque le workflow entre en mode veille en attente d’un
évènement
WorkflowIdled
Déchargement Lorsque le workflow est déchargé de la mémoire WorkflowUnLoaded
Suspension Lorsque le workflow est suspendu WorkflowSuspended
Reprise Lorsque le workflow reprend son exécution suite à une
suspension
WorkflowResumed
27. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Cycle de vie d’un workflow - Suite
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 27
Evènement Déclenchement Evènement WF associé
Terminaison Lorsque l’exécution d’un workflow est terminée anormalement WorkflowTerminated
Persistance Lorsque le workflow est persisté WorkflowPersisted
Complétion Lorsque l’exécution d’un workflow est terminée normalement WorkflowCompleted
28. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Activités
Noyau des workflows, un workflow est lui-même une activité qui est composée d’autres
activités
Il y a des activités simples et des activités composites
L’exécution d’un workflow est le déroulement des activités qu’il contient (séquentiel, parallèle,
conditionnel,…etc.)
WF fournit des dizaines d’activités prédéfinies
L’utilisateur peut créer ses propres activités
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 28
29. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Type Description Exemples
Contrôle de flux Contrôle le séquencement (parallèle, séquentiel,
conditionnel, boucle) des activités
DoWhile, ForEach, Parallel
Graphes de flux Workflows conformes aux graphes de flux Flowchart, FlowDecision
Machine à états Workflows conformes aux machines à états/transitions StateMachine, State
Messagerie Inclusion de messages provenant de sources externes Send, Receive
Exécution Des activités qui interagissent avec le moteur d’exécution Persist, TerminateWorkflow
Primitives Activités primitives Assign, Delay, WriteLine
Transactions Permettent l’exécution transactionnelle des activités TransactionScope, Compensate
Collections Activités traitant des collections d’objets AddToCollection
Erreurs Gestion des erreurs et des exceptions TryCatch, Throw
Types d’activités
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 29
30. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Workflows
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 30
Séquentiels
Diagrammes
de flux
Machine
d’états
31. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Workflows séquentiels
Style hérité de WF 3.5
Définit une séquence d’évènements
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 31
32. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Workflows séquentiels - Exemple
Calcul d’une commission d’une transaction bancaire
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 32
33. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Workflows diagrammes de flux
Modélisation plus naturelle des processus métier
Le designer s’adapte mieux aux grands workflows
Langage déclaratif
Une expressivité accrue
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 33
34. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Workflows diagrammes de flux -
Exemple
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 34
35. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Workflows machine à état
Modélise une entité (un système, un sous-système ou un objet) ayant un ensemble d’états finis
Une entité passe par un état initial jusqu’à un état final en transitant par plusieurs états
intermédiaires
L’action qui fait passer le workflow d’un état à un autre, est appelée transition
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 35
36. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Workflows machine à états- Exemple
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 36
37. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Création de workflows
Le moyen le plus commun de création de workflows est le designer
Les workflows peuvent être créés par code
Les workflows peuvent être chargés à partir d’un fichier
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 37
38. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Création de workflows par code -
Exemple
var workflow = new Sequence()
{
};
workflow.Activities.Add(new WriteLine() {
Text = "Un workflow créé par code !"
});
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 38
39. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Workflow dans un fichier XML - Exemple
<Activity mc:Ignorable="sap sap2010 sads" x:Class="Demo1.XmlWorkflow"
sap2010:ExpressionActivityEditor.ExpressionActivityEditor="C#« xmlns=http://schemas.microsoft.com/netfx/2009/xaml/activities
xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006
xmlns:sads="http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger"
<WriteLine Text="Un workflow chargé à partir d'un fichier" sap2010:WorkflowViewState.IdRef="WriteLine_1"
sads:DebugSymbol.Symbol="dzxGOlxGb3JtYXRpb25XRlxEZW1vc1xDaGFwaXRyZSAxXERlbW8xXERlbW8xXFhtbFdvcmtmbG93LnhhbWwCIw
MjlwECAQEjEyMzAgEC" />
<sap2010:WorkflowViewState.IdRef>Demo1.XmlWorkflow_1</sap2010:WorkflowViewState.IdRef>
<sap2010:WorkflowViewState.ViewStateManager>
<sap2010:ViewStateManager>
<sap2010:ViewStateData Id="WriteLine_1" sap:VirtualizedContainerService.HintSize="211,62" />
<sap2010:ViewStateData Id="Demo1.XmlWorkflow_1" sap:VirtualizedContainerService.HintSize="251,142" />
</sap2010:ViewStateManager>
</sap2010:WorkflowViewState.ViewStateManager>
</Activity>
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 39
40. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Le Designer
Editeur graphique qui est conjonction avec la boîte à outils, facilite la création et l’édition de
workflows
Conçu en WPF pour rendre plus souple l’édition de workflows
Facilite des opérations telles que le zoom, l’organisation de workflows complexes et la
navigation dans un workflow
Peut être intégré à une application externe pour modifier un workflow en dehors de Visual
Studio
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 40
41. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
La barre à outils
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 41
42. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
La Gestion des données
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 42
Arguments Variables
Expressions
43. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Les arguments
Un argument est une donnée qui est fournie en entrée à un workflow ou qui est récupérée
après son exécution
Il existe trois types d’arguments : In (entrée), Out (sortie) et InOut(entrée / sortie)
Un argument est caractérisé par un nom et un type
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 43
44. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Les variables
Les variables sont des espaces de données caractérisés par un type et un nom
Comme les langages de programmation, les variables sont utilisées pour le calcul et/ou le
stockage de données
Une variable a une portée : visible et accessible dans tout le workflow ou dans le contexte
d’une seule activité uniquement
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 44
45. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Les expressions
Expression mathématique ou logique permettant d’évaluer des résultats par des activités
À partir la version 4.5, WF utilise C# pour la syntaxe des expressions (avant la version 4.5, VB
était utilisé)
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 45
46. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
La persistance
Lorsque le workflow entre dans un état d’inactivité et que la persistance est activée, le moteur
enregistre ce workflow dans un référentiel (SQL Server) pour libérer la mémoire et les
ressources utilisées par ce workflow
La persistance aide aussi à reprendre le workflow suite à une panne matérielle ou tout autre
interruption
Lorsqu’un évènement attendu par un workflow persisté a lieu, le moteur charge le workflow à
partir du référentiel pour continuer son exécution
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 46
47. MODULE 1 - INTRODUCTION
SECTION2–INTRODUCTIONÀWORKFLOWFOUNDATION
Le suivi
Les outils de suivi permettent de fournir des indicateurs sur l’état et sur l’avancement d’un
workflow
Ces indicateurs permettent de prendre des décisions de débogage ou sur l’utilisation ou
l’optimisation des ressources système
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 47
48. MODULE 1 - INTRODUCTION
Tutoriaux
TUTORIEL 1.1, DÉCOUVERTE D’UNE APPLICATION WF
TUTORIEL 1.2, CRÉATION DE NOTE PREMIÈRE
APPLICATION WF
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 48