Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous...

27
Héberger un Workflow avec Windows Workflow Foundation Pierre Couzy, architecte – Microsoft France [email protected] Florent Santin, consultant – Winwise [email protected]

Transcript of Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

© 2007 Microsoft France

Votre potentiel, notre passion TM