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

Post on 04-Apr-2015

109 views 0 download

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

Héberger un Workflow avec Windows Workflow Foundation

Pierre Couzy, architecte – Microsoft Francepierre.couzy@microsoft.com

Florent Santin, consultant – Winwise florent.santin@winwise.fr

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 !

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

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

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

Architecture technique

Processus hôte

Workflow Foundation

Runtime

Un Workflow

Une Activité

ServicesPoints d’extensibilité

Activités de base

Vos activités

Cette session parle de …

Processus hôte

Workflow Foundation

Runtime

Services

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.

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

Comment ajouter des services ?

Les services se déclarent à l’initialisation du runtime, en impératif …

.. ou en déclaratif

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é

Hosting embarqué (multi-host)

Présentation du service de persistance

Chargement d’une même instance de Workflow par 2 hosts successifs

Démo

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 ?

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

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

Host Centralisé

Hébergement par WCF

Persistance & performance

Démo

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 !

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

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

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

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

Hosting dans IIS

Monter le runtime dans IISGestion des threadsGestion des timers

Démo

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

Hosting dans IIS via les wizards

Refactorisation des workflowsAppel de l’assistant

Démo

Autres sessions TechDays

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

© 2007 Microsoft France

Votre potentiel, notre passion TM