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.

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

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 dintroduction est programmée en salle 253 … il est encore temps de changer davis !

Un bref rappel Scénarios sans concurrence daccès Hosting embarqué (mono-host) Hosting embarqué (multi-host) Gestion de la concurrence Hosting centralisé Robustesse, montée en charge Hosting réparti dans IIS Les solutions pré-packagées Le wizard Web Services / MOSS Conclusion

Un Workflow est un ensemble dactivités qui coordonnent des personnes et/ou des logiciels… ValidationResponsable Exemples : ValidationInventaire Diagramme de flux …en définissant un chemin dexécution Automate à états

Un framework applicatif permettant lintégration et le développement de Workflow. Cest é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 sappuyer

Processus hôte Workflow Foundation Runtime Un Workflow Une Activité Services Points dextensibilité Activités de base Vos activités

Processus hôte Workflow Foundation Runtime Services

Permet léchange dinformations entre les applications hôtes et le moteur de Workflow Communication Gestion des threads Scheduling Permet denregistrer létat du Workflow dans un référentiel (base de données…) Persistance Permet de conserver une trace des étapes dexécution dun Workflow dans un référentiel (base de données…) TrackingEtc.

Les services se déclarent à linitialisation du runtime, en impératif ….. ou en déclaratif

Sérialise et stocke des instances de WF Une 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 dun WF En sortie dactivité

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 daccès entre le host et les clients ? Comment gérer la montée en charge ?

Contrats et gestion détat Lactivation initiale est stateless Les appels ultérieurs font référence à une instance Le contrat de communication WF ne comporte pas de notion dinstance Deux approches pour véhiculer lID dinstance Approche du wizard WS : cookie Approche plus générale : encapsuler les contrats

Le cas idéal : workflow sans concurrence Enchaînement dactions atomiques dans un automate à états finis Exemple : routage dun utilisateur sur un automate daccueil téléphonique Le reste du temps, la concurrence est gérée Par le Host (via le runtime) sil est unique Par le service de persistance sinon

Cest la sérialisation binaire.Net Attention au contenu de vos instances Attention aux performances CPU : complexité de la sérialisation Disque : volume dune 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 Tracking Soit à la main !

Lorsque la charge augmente, on doit Monter les hosts en ferme Monter 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 daccéder à une instance Mécanisme de verrou sur chargement

WCF a de bonnes qualités de communication, dans quel processus linstaller ? Dans COM+ Dans un service Windows Dans IIS IIS est très intéressant Monitoring, relance, protection contre le crash, … Modèle de WebGarden Déploiement très simple Seule limite : http only.. Pour le moment

IIS 2IIS x IIS 1 Workflow Runtime 1 Host 1 SQL Persistence Service Workflow Runtime 2 Host 2 SQL Persistence Service Workflow Runtime 3 Host 3 SQL Persistence Service Workflow Runtime N Host N SQL Persistence Service

Threads dinstance Le runtime de WF ne crée jamais de thread, et compte sur un service de scheduling pour lui en fournir Par défaut, le scheduler prend dans un threadpool, mais dans ASP.Net on risque une famine de threads Le ManualWorkflowSchedulerService « emprunte » le thread courant Thread dactivation asynchrone Votre code ne peut pas fournir de thread lorsquaucune page ne sexécute.. Le ManualWorkflowSchedulerService peut créer un thread de background destiné à faire tourner les instances indépendamment des pages

MOSS Fournit toute la structure dhébergement Comporte des designers spécialisés Tourné vers des scénarios métier précis Web Services Wizard Impose ses propres activités de communication Gère toute la communication Masque les problèmes de threading et timers Indépendant dun service précis de persistance

Sinformer - Un portail dinformations, 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 Abonnement MSDN Premium Abonnement TechNet Plus : Versions déval + 2 incidents support

© 2007 Microsoft France Votre potentiel, notre passion TM