Magazine Internet

Quand doit-on utiliser WS?

Publié le 02 août 2011 par Jeremy.jeanson

Régulièrement j'entends dire que Workflow Services (WS) est moins performant que WCF. Cette belle "affirmation", qui ne devrait pas exister, montre encore à quel point Workflow Foundation est mal connu, et mal utilisé.

Pour faire simple, voici 3 arguments de poids:

1) WS utilise WCF…

2) Un service WCF classique a pour but de permettre à un utilisateur d'exécuter une méthode M() à un instant T en obtenant ou non un retour de cette méthode. On peut entrer une ou plusieurs fois dans ce service, ceci n'a pas d'importance et ne change pas la disponibilité du service.

3) Un workflow est un processus complexe évolutif et non pas une simple méthode. Utiliser WF4 comme s’il s'agissait d'une simple méthode M() est donc en soi une erreur (synonymes envisageables: infamie, abomination, branlette intellectuelle).

Pour ce qui est de WS (donc un workflow exposé via WCF) : il a pour but de permettre à un utilisateur d'exécuter une méthode M(), et de gérer côté serveur une instance de workflow en attente de l'appel d'une ou plusieurs autres méthodes. Il est clair qu'un WS est fait pour répondre à une série d'appels et non pas qu'à un seul.

Le principe de WS peut être représenté par le schéma suivant :

WF4 - workflow Services - base

L'utilisateur peut faire plusieurs appels sur le service qui fera évoluer le workflow. Ce workflow pouvant être amené à gérer de nombreuses ressources externes (voir même d'autres workflows). Et les appels pouvant être espacé d’une durée plus ou moins longues (secondes, mois, années)

Du point de vue chronologique :

  1. Le premier appel à une méthode M() du WS instanciera le workflow. M() n'est alors plus accessible. M() reste visible par le client, mais son appel déclenchera une erreur
  2. L'appel à une méthode N() ou O() fera évoluer le workflow. N() ou O() ne sont alors plus accessibles.
  3. Les appels suivants feront de même jusqu'à ce que le workflow prenne fin. (Qaund le workflow à pris fin on peut rappeler M().

WCF ne suffisant pas à lui seul pour répondre à ce genre de besoin, voici donc le scénario dans lequel il convient d’utiliser WS et non pas un simple service WCF.

Dans un prochain article, j'expliquerai clairement comment l'hôte WS (le WorkflowServiceHost) fait la distinction entre les différentes instances de workflow présentes côté serveur.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte