![Page 1: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/1.jpg)
Héberger un Workflow avec Windows Workflow Foundation
Pierre Couzy, architecte – Microsoft [email protected]
Florent Santin, consultant – Winwise [email protected]
![Page 2: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/2.jpg)
Avant de commencer…
Cette session suppose une connaissance préalable des grands principes de Workflow FoundationNous parlerons très peu de l’écriture de workflowsUne session d’introduction est programmée en salle 253… il est encore temps de changer d’avis !
![Page 3: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/3.jpg)
Agenda
Un bref rappelScénarios sans concurrence d’accès
Hosting embarqué (mono-host)Hosting embarqué (multi-host)
Gestion de la concurrenceHosting centralisé
Robustesse, montée en chargeHosting réparti dans IIS
Les solutions pré-packagéesLe wizard Web Services / MOSS
Conclusion
![Page 4: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/4.jpg)
Un bref rappel
Un Workflow est un ensemble d’activités qui coordonnent des personnes et/ou des logiciels…
ValidationResponsableExemples : ValidationInventaire
Diagramme de flux
…en définissant un chemin d’exécution
Automate à états
![Page 5: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/5.jpg)
Buts de conception & prérequis
Un framework applicatif permettant l’intégration et le développement de Workflow.
C’est également un modèle de programmation extensible
Il nécessite le framework 3.0 et Visual Studio 2005 pour tirer pleinement parti des fonctionnalités offertes
Proposer une plate-forme sur laquelle tout l’écosystème Microsoft puisse
s’appuyer
![Page 6: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/6.jpg)
Architecture technique
Processus hôte
Workflow Foundation
Runtime
Un Workflow
Une Activité
ServicesPoints d’extensibilité
Activités de base
Vos activités
![Page 7: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/7.jpg)
Cette session parle de …
Processus hôte
Workflow Foundation
Runtime
Services
![Page 8: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/8.jpg)
Les services de Workflow Foundation
•Permet l’échange d’informations entre les applications hôtes et le moteur de Workflow
Communication
•Gestion des threads
Scheduling
•Permet d’enregistrer l’état du Workflow dans un référentiel (base de données…)
Persistance
•Permet de conserver une trace des étapes d’exécution d’un Workflow dans un référentiel (base de données…)
Tracking Etc.
![Page 9: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/9.jpg)
Hosting embarqué (mono-host)
Introduction de la notion de service, distinction WF / Host
Réalisation d’un client stand-alone (Host embarqué) Winform
Démo
![Page 10: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/10.jpg)
Comment ajouter des services ?
Les services se déclarent à l’initialisation du runtime, en impératif …
.. ou en déclaratif
![Page 11: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/11.jpg)
Le service de persistance
Sérialise et stocke des instances de WFUne implémentation en standard
Sql Server
Quand est-il invoqué ?Par défaut : rarement (Tx/Comp, Terminate/suspend, demande explicite)Par configuration : à chaque Idle
A quelle(s) étape(s) peut-on persister ? A certains moments-clés de la vie d’un WFEn sortie d’activité
![Page 12: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/12.jpg)
Hosting embarqué (multi-host)
Présentation du service de persistance
Chargement d’une même instance de Workflow par 2 hosts successifs
Démo
![Page 13: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/13.jpg)
Utilisation d’un Host central
Quel que soit ce host (Web Service, Executable, Sharepoint, ….) :
Comment gérer les communications entre le client et le host ?Comment gérer la concurrence d’accès entre le host et les clients ?Comment gérer la montée en charge ?
![Page 14: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/14.jpg)
Gestion des communications
Contrats et gestion d’étatL’activation initiale est statelessLes appels ultérieurs font référence à une instanceLe contrat de communication WF ne comporte pas de notion d’instance
Deux approches pour véhiculer l’ID d’instance
Approche du wizard WS : cookieApproche plus générale : encapsuler les contrats
![Page 15: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/15.jpg)
Gestion de la concurrence
Le cas idéal : workflow sans concurrence
Enchaînement d’actions atomiques dans un automate à états finisExemple : routage d’un utilisateur sur un automate d’accueil téléphonique
Le reste du temps, la concurrence est gérée
Par le Host (via le runtime) s’il est uniquePar le service de persistance sinon
![Page 16: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/16.jpg)
Host Centralisé
Hébergement par WCF
Persistance & performance
Démo
![Page 17: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/17.jpg)
Un retour sur la persistance
C’est la sérialisation binaire .NetAttention au contenu de vos instances
Attention aux performancesCPU : complexité de la sérialisationDisque : volume d’une instance sérialisée
Les données persistées sont opaques (pas de requêtage en base)On double souvent le service par une persistance métier (dans les instances)
Soit par personnalisation du service de TrackingSoit à la main !
![Page 18: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/18.jpg)
Robustesse, montée en charge
Lorsque la charge augmente, on doitMonter les hosts en fermeMonter la base en cluster
Deux nouvelles situations à traiter :Un host peut tomber avec N instances en mémoire
Mécanisme de détection des instances en perdition
N hosts peuvent tenter d’accéder à une instance
Mécanisme de verrou sur chargement
![Page 19: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/19.jpg)
Comment monter une ferme WF ?
WCF a de bonnes qualités de communication, dans quel processus l’installer ?
Dans COM+Dans un service WindowsDans IIS
IIS est très intéressantMonitoring, relance, protection contre le crash, … Modèle de WebGardenDéploiement très simple
Seule limite : http only.. Pour le moment
![Page 20: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/20.jpg)
IIS 2 IIS xIIS 1
Hébergement en ferme
WorkflowRuntime 1
Host 1
SQL
SQLPersistenceService
WorkflowRuntime 2
Host 2
SQLPersistenceService
WorkflowRuntime 3
Host 3
SQLPersistenceService
WorkflowRuntime N
Host N
SQLPersistenceService
![Page 21: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/21.jpg)
Les spécificités d’IIS
Threads d’instanceLe runtime de WF ne crée jamais de thread, et compte sur un service de scheduling pour lui en fournirPar défaut, le scheduler prend dans un threadpool, mais dans ASP.Net on risque une famine de threadsLe ManualWorkflowSchedulerService « emprunte » le thread courant
Thread d’activation asynchroneVotre code ne peut pas fournir de thread lorsqu’aucune page ne s’exécute..Le ManualWorkflowSchedulerService peut créer un thread de background destiné à faire tourner les instances indépendamment des pages
![Page 22: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/22.jpg)
Hosting dans IIS
Monter le runtime dans IISGestion des threadsGestion des timers
Démo
![Page 23: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/23.jpg)
Les solutions pré-packagées
MOSSFournit toute la structure d’hébergementComporte des designers spécialisésTourné vers des scénarios métier précis
Web Services WizardImpose ses propres activités de communicationGère toute la communication Masque les problèmes de threading et timersIndépendant d’un service précis de persistance
![Page 24: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/24.jpg)
Hosting dans IIS via les wizards
Refactorisation des workflowsAppel de l’assistant
Démo
![Page 25: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/25.jpg)
Autres sessions TechDays
![Page 26: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/26.jpg)
La référence technique
pour les IT Pros :technet.microsoft.com
La référence techniquepour les développeurs :msdn.microsoft.com
S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée
Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs
Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique
Visual Studio 2005 +
Abonnement MSDN Premium
Abonnement TechNet Plus :
Versions d’éval + 2 incidents support
![Page 27: Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session](https://reader036.vdocuments.fr/reader036/viewer/2022062511/551d9da5497959293b8d7538/html5/thumbnails/27.jpg)
© 2007 Microsoft France
Votre potentiel, notre passion TM