SlideShare a Scribd company logo
1 of 28
Workflow Foundation 4.5 avec Visual Studio 2012
Module 4 : Services Avancés
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 1
MODULE 4 – SERVICES AVANCÉS
Section 1 : Persistance
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 2
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Pourquoi la persistance ?
 Libérer les ressources occupées par un processus dont l’exécution peut prendre une longue
durée (jours, mois,…)
 Reprendre des activités importantes après une panne ou une défaillance.
 Un nombre important de workflows s’exécutant simultanément prendrait beaucoup de
ressources système. Il serait judicieux de décharger les workflows inactifs.
 Un mécanisme de persistance est indispensables pour les processus de longue exécution
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 3
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Activer la persistance
 La persistance des workflows n’est pas activée par défaut. Les workflows s’exécutent alors
uniquement en mémoire.
 Lorsque la persistance est activée, lorsqu’un workflow est en mode veille, le service le
décharge de la mémoire et le persiste dans un référentiel (par exemple une base de données).
 WF4.5 fournit un mécanisme de persistance qui s’intègre facilement avec SQL Server.
 En plus de la persistance et le déchargement, le service fournit un mécanisme permettant de
restituer un workflow à son état d’avant la persistance
La persistance permet aussi à un workflow d’être exécutés par plusieurs hôtes.
 La persistance ne fonctionne qu’avec des hôtes de type « WorkflowApplication » ou
« WorkflowServiceHost »
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 4
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Instances de workflow
 Une instance d’un workflow est une exécution d’un workflow.
 Souvent, plusieurs instances d’un workflow s’exécutent simultanément. Par exemple, plusieurs
instances du workflow d’embauche.
 Chaque instance peut être sur un point d’exécution différent des autres instances.
 Chaque instance est identifiée par un identifiant unique de type GUID
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 5
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Déclencheurs de persistance
 Lorsque le workflow est en mode veille
 Lorsque le moteur est instruit implicitement de déclencher une persistence
Lorsqu’un workflow se termine
Lorsqu’une transaction se termine
 Lorsqu’une activité « Persist » est exécutée
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 6
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
La persistance en utilisant SQL Server
 La persistance peut être assurée en utilisant n’importe quel référentiel mais .NET Framework
facilite son implémentation en utilisant SQL Server
 Le sous-répertoire SQL du répertoire .NET Framwork contient les scripts nécessaires à la
création de la base de données sous SQL Server
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 7
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Scripts de persistance
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 8
Script Description
SqlWorkflowInstanceStoreSchema.sql Crée la base de données de persistance (tables)
SqlWorkflowInstanceStoreLogic.sql Crée les procédures stockées nécessaires à la mise en place de
la persistance
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Schéma de la BDD de persistance
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 9
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Table des instances (InstancesTable)
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 10
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
La classe « SqlWorkflowInstanceStore »
 Permet de configurer un référentiel de stockage sous SQL Server
 La propriété « ConnectionString » permet de connecter le store à une base de données SQL
Server de persistance
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 11
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
La propriété « PersistIdle » de
WorkflowApplication
 « Delegate » permettant de spécifier le comportement en cas de veille induisant à la
persistance
 Retourne une des valeurs suivantes :
 Unload : persiste et décharge le workflow de la mémoire
 Persist : persiste le workflow mais ne le décharge pas
 None : ne persiste pas et ne décharge pas le workflow
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 12
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
L’activité « Persist »
 Permet de « forcer » la persistance lorsqu’elle est exécutée
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 13
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
L’activité « NoPersistScope »
 Empêche la persistance lorsqu’une des activités enfants est exécutée
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 14
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
L’activité « NoPersistScope »
 Empêche la persistance lorsqu’une des activités enfants est exécutée
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 15
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Les participants de persistance
 Des données peuvent être attachées aux workflows en plus de états de ces activités
 Les participants de persistance attachent des données au workflow
 Un participant est une classe héritant de « PersistentParticipant »
 Il faut implémenter les méthodes « CollectValues » et « PublishValues » pour écrire et lire les
données vers et depuis la base de données
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 16
MODULE 4 – SERVICE AVANCÉS
SECTION1:PERSISTANCE
Tutoriel 4.1
 Implémentation d’un long processus d’embauche en utilisant la persistance
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 17
MODULE 4 – SERVICES AVANCÉS
Section 2 : Suivi
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 18
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Pourquoi le suivi ?
 Pour connaître l’évolution de mon workflow (activités, états, …)
Monitoring : durées, interventions
 Temps : temps d’exécution des workflow
 Logs : pour analyse et maintenance
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 19
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Le service de suivi
 Capture les évènements émis par les moteurs de workflow
Les évènement sont appelés enregistrements
Un enregistrement est représenté par la classe « TrackingRecord »
 Un enregistrement contient des informations sur le workflow, les activités et les signets
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 20
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Informations de l’enregistrement
 Annotations : méta-données sur les activités
 Heure / date de l’évènement
 Identifiant de l’instance
 Niveau (erreur, avertissement, info,…)
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 21
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Types d’enregistrement
 Lorsque le workflow change d’état, un enregistrement de type « WorkflowInstanceRecord »
est émis : suspension, terminaison, erreur,…
Un enregistrement de type « ActivityStateRecord » est émis lorsque une activité change d’état
Lorsqu’une erreur est déclenchée, un enregistrement de type « FaultPropagatedRecord » est
émis
 Lorsqu’un signet est émis, un enregistrement de type « BookmarkResumptionRecord » est
émis
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 22
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Enregistrements personnalisés
 L’utilisateur peut créer ses propres enregistrements
 Les enregistrements personnalisés sont des classes héritant de « CustomTrackingRecord »
 Le contexte de l’activité est utilisé pour émettre l’enregistrement en utilisant la méthode
« Track »
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 23
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Profils de suivi
 Permettent de spécifier quelles activités suivre pendant l’exécution
 La propriété « Queries » définit une requête permettant de filtrer les activités.
 Les profils peuvent être définis en XML (en mode service) ou par code lorsqu’on travaille avec
« WorkflowApplication » ou « WorkflowInvoker »
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 24
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Configuration XML d’un profil
<tracking><profiles>
<trackingProfile name="Custom Tracking Profile">
<workflow>
<workflowInstanceQueries>
<workflowInstanceQuery>
<states><state name="*"/></states>
</workflowInstanceQuery>
</workflowInstanceQueries>
</workflow>
</trackingProfile>
</profiles></tracking>
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 25
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Création d’un profil par code
TrackingProfile = new TrackingProfile()
{
Name = "Formation WF",
Queries = {
new WorkflowInstanceQuery()
{
States = {"*"}
}
}
}
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 26
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Les participants de suivi (Trackers)
 Des extensions permettant d’inclure le suivi
 WF 4.5 a changé le mécanisme de suivi
 WF 4.5 fournit une implémentation standard d’un tracker qui écrit sur l’observateur des
évènements appelée « EtwTrackingParticipant »
 On peut implémenter un tracker en héritant de la classe « TrackingParticipant »
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 27
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:SUIVI
Tutoriel 4.2
 Mise en place du suivi
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 28

More Related Content

Similar to Workflow Foundation Module 4

Ol66 g formation-outils-d-analyse-de-performance-pour-ibm-i-6-1-et-7-1
Ol66 g formation-outils-d-analyse-de-performance-pour-ibm-i-6-1-et-7-1Ol66 g formation-outils-d-analyse-de-performance-pour-ibm-i-6-1-et-7-1
Ol66 g formation-outils-d-analyse-de-performance-pour-ibm-i-6-1-et-7-1CERTyou Formation
 
Km612 g formation-ibm-infosphere-business-glossary-essentials-v9-1
Km612 g formation-ibm-infosphere-business-glossary-essentials-v9-1Km612 g formation-ibm-infosphere-business-glossary-essentials-v9-1
Km612 g formation-ibm-infosphere-business-glossary-essentials-v9-1CERTyou Formation
 
Es42 g formation-atelier-d-implementation-de-parallel-sysplex
Es42 g formation-atelier-d-implementation-de-parallel-sysplexEs42 g formation-atelier-d-implementation-de-parallel-sysplex
Es42 g formation-atelier-d-implementation-de-parallel-sysplexCERTyou Formation
 
Présentation du Progiciel ProPlus.Net:La solution de suivi de production à co...
Présentation du Progiciel ProPlus.Net:La solution de suivi de production à co...Présentation du Progiciel ProPlus.Net:La solution de suivi de production à co...
Présentation du Progiciel ProPlus.Net:La solution de suivi de production à co...Link Software International
 
Présentation de la plateforme Cloud Simplicité
Présentation de la plateforme Cloud SimplicitéPrésentation de la plateforme Cloud Simplicité
Présentation de la plateforme Cloud SimplicitéSimplicité Software
 
Azure Automation, Le nouveau service pour automatiser vos tâches
Azure Automation, Le nouveau service pour automatiser vos tâchesAzure Automation, Le nouveau service pour automatiser vos tâches
Azure Automation, Le nouveau service pour automatiser vos tâchesJean-Luc Boucho
 
Agilité à l'échelle à la dsi @Pôle Emploi (SAFe) - Michel Levaslot - Agile en...
Agilité à l'échelle à la dsi @Pôle Emploi (SAFe) - Michel Levaslot - Agile en...Agilité à l'échelle à la dsi @Pôle Emploi (SAFe) - Michel Levaslot - Agile en...
Agilité à l'échelle à la dsi @Pôle Emploi (SAFe) - Michel Levaslot - Agile en...Agile En Seine
 
Ngt71 g formation-ibm-puresystems-smartcloud-entry-implementation-dans-ibm-pu...
Ngt71 g formation-ibm-puresystems-smartcloud-entry-implementation-dans-ibm-pu...Ngt71 g formation-ibm-puresystems-smartcloud-entry-implementation-dans-ibm-pu...
Ngt71 g formation-ibm-puresystems-smartcloud-entry-implementation-dans-ibm-pu...CERTyou Formation
 
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentauxTm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentauxCERTyou Formation
 
Alphorm.com Formation Cisco CCNP TSHOOT
Alphorm.com Formation Cisco CCNP TSHOOTAlphorm.com Formation Cisco CCNP TSHOOT
Alphorm.com Formation Cisco CCNP TSHOOTAlphorm
 
Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...
Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...
Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...hamdane mohamed elkamel
 
Tv355 g formation-ibm-tivoli-monitoring-6-3-mise-en-oeuvre
Tv355 g formation-ibm-tivoli-monitoring-6-3-mise-en-oeuvreTv355 g formation-ibm-tivoli-monitoring-6-3-mise-en-oeuvre
Tv355 g formation-ibm-tivoli-monitoring-6-3-mise-en-oeuvreCERTyou Formation
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...Sid Ahmed Benkraoua
 
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline SimonMémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline SimonEmeline Simon
 
Découvrez le guide d'utilisation de My Easy Center 2.0
Découvrez le guide d'utilisation de My Easy Center 2.0Découvrez le guide d'utilisation de My Easy Center 2.0
Découvrez le guide d'utilisation de My Easy Center 2.0Easy Center Corp Consulting
 

Similar to Workflow Foundation Module 4 (20)

Ol66 g formation-outils-d-analyse-de-performance-pour-ibm-i-6-1-et-7-1
Ol66 g formation-outils-d-analyse-de-performance-pour-ibm-i-6-1-et-7-1Ol66 g formation-outils-d-analyse-de-performance-pour-ibm-i-6-1-et-7-1
Ol66 g formation-outils-d-analyse-de-performance-pour-ibm-i-6-1-et-7-1
 
Km612 g formation-ibm-infosphere-business-glossary-essentials-v9-1
Km612 g formation-ibm-infosphere-business-glossary-essentials-v9-1Km612 g formation-ibm-infosphere-business-glossary-essentials-v9-1
Km612 g formation-ibm-infosphere-business-glossary-essentials-v9-1
 
Workflow
WorkflowWorkflow
Workflow
 
Es42 g formation-atelier-d-implementation-de-parallel-sysplex
Es42 g formation-atelier-d-implementation-de-parallel-sysplexEs42 g formation-atelier-d-implementation-de-parallel-sysplex
Es42 g formation-atelier-d-implementation-de-parallel-sysplex
 
Présentation du Progiciel ProPlus.Net:La solution de suivi de production à co...
Présentation du Progiciel ProPlus.Net:La solution de suivi de production à co...Présentation du Progiciel ProPlus.Net:La solution de suivi de production à co...
Présentation du Progiciel ProPlus.Net:La solution de suivi de production à co...
 
Présentation de la plateforme Cloud Simplicité
Présentation de la plateforme Cloud SimplicitéPrésentation de la plateforme Cloud Simplicité
Présentation de la plateforme Cloud Simplicité
 
Azure Automation, Le nouveau service pour automatiser vos tâches
Azure Automation, Le nouveau service pour automatiser vos tâchesAzure Automation, Le nouveau service pour automatiser vos tâches
Azure Automation, Le nouveau service pour automatiser vos tâches
 
Agilité à l'échelle à la dsi @Pôle Emploi (SAFe) - Michel Levaslot - Agile en...
Agilité à l'échelle à la dsi @Pôle Emploi (SAFe) - Michel Levaslot - Agile en...Agilité à l'échelle à la dsi @Pôle Emploi (SAFe) - Michel Levaslot - Agile en...
Agilité à l'échelle à la dsi @Pôle Emploi (SAFe) - Michel Levaslot - Agile en...
 
Ngt71 g formation-ibm-puresystems-smartcloud-entry-implementation-dans-ibm-pu...
Ngt71 g formation-ibm-puresystems-smartcloud-entry-implementation-dans-ibm-pu...Ngt71 g formation-ibm-puresystems-smartcloud-entry-implementation-dans-ibm-pu...
Ngt71 g formation-ibm-puresystems-smartcloud-entry-implementation-dans-ibm-pu...
 
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentauxTm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
Tm023 g formation-ibm-tivoli-monitoring-6-3-les-fondamentaux
 
Alphorm.com Formation Cisco CCNP TSHOOT
Alphorm.com Formation Cisco CCNP TSHOOTAlphorm.com Formation Cisco CCNP TSHOOT
Alphorm.com Formation Cisco CCNP TSHOOT
 
Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...
Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...
Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...
 
Tv355 g formation-ibm-tivoli-monitoring-6-3-mise-en-oeuvre
Tv355 g formation-ibm-tivoli-monitoring-6-3-mise-en-oeuvreTv355 g formation-ibm-tivoli-monitoring-6-3-mise-en-oeuvre
Tv355 g formation-ibm-tivoli-monitoring-6-3-mise-en-oeuvre
 
Mise en oeuvre du 5S
Mise en oeuvre du 5SMise en oeuvre du 5S
Mise en oeuvre du 5S
 
Cours spring
Cours springCours spring
Cours spring
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline SimonMémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
 
Présentation.pptx
Présentation.pptxPrésentation.pptx
Présentation.pptx
 
Azure alm
Azure almAzure alm
Azure alm
 
Découvrez le guide d'utilisation de My Easy Center 2.0
Découvrez le guide d'utilisation de My Easy Center 2.0Découvrez le guide d'utilisation de My Easy Center 2.0
Découvrez le guide d'utilisation de My Easy Center 2.0
 

More from Mohammed Amine Mostefai

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Mohammed Amine Mostefai
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationMohammed Amine Mostefai
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsMohammed Amine Mostefai
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionMohammed Amine Mostefai
 
Module 8 programmation avancée d'asp.net
Module 8   programmation avancée d'asp.netModule 8   programmation avancée d'asp.net
Module 8 programmation avancée d'asp.netMohammed Amine Mostefai
 
Module 6 développement d'applications de bases de données avec asp.net
Module 6   développement d'applications de bases de données avec asp.netModule 6   développement d'applications de bases de données avec asp.net
Module 6 développement d'applications de bases de données avec asp.netMohammed Amine Mostefai
 
Module 4 navigation et homogénéisation des les applications web
Module 4   navigation et homogénéisation des les applications webModule 4   navigation et homogénéisation des les applications web
Module 4 navigation et homogénéisation des les applications webMohammed Amine Mostefai
 
Module 3 intégration de traitement dans les applications web asp.net
Module 3   intégration de traitement dans les applications web asp.netModule 3   intégration de traitement dans les applications web asp.net
Module 3 intégration de traitement dans les applications web asp.netMohammed Amine Mostefai
 
Module 2 introduction à asp.net web forms
Module 2   introduction à asp.net web formsModule 2   introduction à asp.net web forms
Module 2 introduction à asp.net web formsMohammed Amine Mostefai
 
Module 1 introduction au développement web avec visual studio 2012
Module 1   introduction au développement web avec visual studio 2012Module 1   introduction au développement web avec visual studio 2012
Module 1 introduction au développement web avec visual studio 2012Mohammed Amine Mostefai
 

More from Mohammed Amine Mostefai (20)

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - Personnalisation
 
Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de Documents
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - Introduction
 
Pratiques agiles
Pratiques agilesPratiques agiles
Pratiques agiles
 
Introduction à Scrum
Introduction à ScrumIntroduction à Scrum
Introduction à Scrum
 
Méthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XPMéthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XP
 
Méthodes Agiles - Généralités
Méthodes Agiles - GénéralitésMéthodes Agiles - Généralités
Méthodes Agiles - Généralités
 
Introduction aux technologies mobiles
Introduction aux technologies mobilesIntroduction aux technologies mobiles
Introduction aux technologies mobiles
 
Présentation cloud journée azure
Présentation cloud   journée azurePrésentation cloud   journée azure
Présentation cloud journée azure
 
Le Langage CSS
Le Langage CSSLe Langage CSS
Le Langage CSS
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
 
Module 8 programmation avancée d'asp.net
Module 8   programmation avancée d'asp.netModule 8   programmation avancée d'asp.net
Module 8 programmation avancée d'asp.net
 
Module 6 développement d'applications de bases de données avec asp.net
Module 6   développement d'applications de bases de données avec asp.netModule 6   développement d'applications de bases de données avec asp.net
Module 6 développement d'applications de bases de données avec asp.net
 
Module 5 validation de données
Module 5   validation de donnéesModule 5   validation de données
Module 5 validation de données
 
Module 4 navigation et homogénéisation des les applications web
Module 4   navigation et homogénéisation des les applications webModule 4   navigation et homogénéisation des les applications web
Module 4 navigation et homogénéisation des les applications web
 
Module 3 intégration de traitement dans les applications web asp.net
Module 3   intégration de traitement dans les applications web asp.netModule 3   intégration de traitement dans les applications web asp.net
Module 3 intégration de traitement dans les applications web asp.net
 
Module 2 introduction à asp.net web forms
Module 2   introduction à asp.net web formsModule 2   introduction à asp.net web forms
Module 2 introduction à asp.net web forms
 
Module 1 introduction au développement web avec visual studio 2012
Module 1   introduction au développement web avec visual studio 2012Module 1   introduction au développement web avec visual studio 2012
Module 1 introduction au développement web avec visual studio 2012
 

Workflow Foundation Module 4

  • 1. Workflow Foundation 4.5 avec Visual Studio 2012 Module 4 : Services Avancés WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 1
  • 2. MODULE 4 – SERVICES AVANCÉS Section 1 : Persistance WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 2
  • 3. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Pourquoi la persistance ?  Libérer les ressources occupées par un processus dont l’exécution peut prendre une longue durée (jours, mois,…)  Reprendre des activités importantes après une panne ou une défaillance.  Un nombre important de workflows s’exécutant simultanément prendrait beaucoup de ressources système. Il serait judicieux de décharger les workflows inactifs.  Un mécanisme de persistance est indispensables pour les processus de longue exécution WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 3
  • 4. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Activer la persistance  La persistance des workflows n’est pas activée par défaut. Les workflows s’exécutent alors uniquement en mémoire.  Lorsque la persistance est activée, lorsqu’un workflow est en mode veille, le service le décharge de la mémoire et le persiste dans un référentiel (par exemple une base de données).  WF4.5 fournit un mécanisme de persistance qui s’intègre facilement avec SQL Server.  En plus de la persistance et le déchargement, le service fournit un mécanisme permettant de restituer un workflow à son état d’avant la persistance La persistance permet aussi à un workflow d’être exécutés par plusieurs hôtes.  La persistance ne fonctionne qu’avec des hôtes de type « WorkflowApplication » ou « WorkflowServiceHost » WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 4
  • 5. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Instances de workflow  Une instance d’un workflow est une exécution d’un workflow.  Souvent, plusieurs instances d’un workflow s’exécutent simultanément. Par exemple, plusieurs instances du workflow d’embauche.  Chaque instance peut être sur un point d’exécution différent des autres instances.  Chaque instance est identifiée par un identifiant unique de type GUID WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 5
  • 6. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Déclencheurs de persistance  Lorsque le workflow est en mode veille  Lorsque le moteur est instruit implicitement de déclencher une persistence Lorsqu’un workflow se termine Lorsqu’une transaction se termine  Lorsqu’une activité « Persist » est exécutée WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 6
  • 7. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE La persistance en utilisant SQL Server  La persistance peut être assurée en utilisant n’importe quel référentiel mais .NET Framework facilite son implémentation en utilisant SQL Server  Le sous-répertoire SQL du répertoire .NET Framwork contient les scripts nécessaires à la création de la base de données sous SQL Server WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 7
  • 8. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Scripts de persistance WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 8 Script Description SqlWorkflowInstanceStoreSchema.sql Crée la base de données de persistance (tables) SqlWorkflowInstanceStoreLogic.sql Crée les procédures stockées nécessaires à la mise en place de la persistance
  • 9. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Schéma de la BDD de persistance WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 9
  • 10. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Table des instances (InstancesTable) WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 10
  • 11. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE La classe « SqlWorkflowInstanceStore »  Permet de configurer un référentiel de stockage sous SQL Server  La propriété « ConnectionString » permet de connecter le store à une base de données SQL Server de persistance WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 11
  • 12. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE La propriété « PersistIdle » de WorkflowApplication  « Delegate » permettant de spécifier le comportement en cas de veille induisant à la persistance  Retourne une des valeurs suivantes :  Unload : persiste et décharge le workflow de la mémoire  Persist : persiste le workflow mais ne le décharge pas  None : ne persiste pas et ne décharge pas le workflow WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 12
  • 13. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE L’activité « Persist »  Permet de « forcer » la persistance lorsqu’elle est exécutée WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 13
  • 14. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE L’activité « NoPersistScope »  Empêche la persistance lorsqu’une des activités enfants est exécutée WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 14
  • 15. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE L’activité « NoPersistScope »  Empêche la persistance lorsqu’une des activités enfants est exécutée WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 15
  • 16. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Les participants de persistance  Des données peuvent être attachées aux workflows en plus de états de ces activités  Les participants de persistance attachent des données au workflow  Un participant est une classe héritant de « PersistentParticipant »  Il faut implémenter les méthodes « CollectValues » et « PublishValues » pour écrire et lire les données vers et depuis la base de données WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 16
  • 17. MODULE 4 – SERVICE AVANCÉS SECTION1:PERSISTANCE Tutoriel 4.1  Implémentation d’un long processus d’embauche en utilisant la persistance WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 17
  • 18. MODULE 4 – SERVICES AVANCÉS Section 2 : Suivi WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 18
  • 19. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Pourquoi le suivi ?  Pour connaître l’évolution de mon workflow (activités, états, …) Monitoring : durées, interventions  Temps : temps d’exécution des workflow  Logs : pour analyse et maintenance WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 19
  • 20. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Le service de suivi  Capture les évènements émis par les moteurs de workflow Les évènement sont appelés enregistrements Un enregistrement est représenté par la classe « TrackingRecord »  Un enregistrement contient des informations sur le workflow, les activités et les signets WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 20
  • 21. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Informations de l’enregistrement  Annotations : méta-données sur les activités  Heure / date de l’évènement  Identifiant de l’instance  Niveau (erreur, avertissement, info,…) WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 21
  • 22. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Types d’enregistrement  Lorsque le workflow change d’état, un enregistrement de type « WorkflowInstanceRecord » est émis : suspension, terminaison, erreur,… Un enregistrement de type « ActivityStateRecord » est émis lorsque une activité change d’état Lorsqu’une erreur est déclenchée, un enregistrement de type « FaultPropagatedRecord » est émis  Lorsqu’un signet est émis, un enregistrement de type « BookmarkResumptionRecord » est émis WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 22
  • 23. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Enregistrements personnalisés  L’utilisateur peut créer ses propres enregistrements  Les enregistrements personnalisés sont des classes héritant de « CustomTrackingRecord »  Le contexte de l’activité est utilisé pour émettre l’enregistrement en utilisant la méthode « Track » WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 23
  • 24. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Profils de suivi  Permettent de spécifier quelles activités suivre pendant l’exécution  La propriété « Queries » définit une requête permettant de filtrer les activités.  Les profils peuvent être définis en XML (en mode service) ou par code lorsqu’on travaille avec « WorkflowApplication » ou « WorkflowInvoker » WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 24
  • 25. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Configuration XML d’un profil <tracking><profiles> <trackingProfile name="Custom Tracking Profile"> <workflow> <workflowInstanceQueries> <workflowInstanceQuery> <states><state name="*"/></states> </workflowInstanceQuery> </workflowInstanceQueries> </workflow> </trackingProfile> </profiles></tracking> WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 25
  • 26. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Création d’un profil par code TrackingProfile = new TrackingProfile() { Name = "Formation WF", Queries = { new WorkflowInstanceQuery() { States = {"*"} } } } WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 26
  • 27. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Les participants de suivi (Trackers)  Des extensions permettant d’inclure le suivi  WF 4.5 a changé le mécanisme de suivi  WF 4.5 fournit une implémentation standard d’un tracker qui écrit sur l’observateur des évènements appelée « EtwTrackingParticipant »  On peut implémenter un tracker en héritant de la classe « TrackingParticipant » WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 27
  • 28. MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:SUIVI Tutoriel 4.2  Mise en place du suivi WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 28