Workflow Foundation 4.5 avec Visual Studio 2012
Module 5 : Workflows en tant que Services avec WCF
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 1
MODULE 4 – SERVICES AVANCÉS
Section 1 : Introduction
à WCF
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 2
MODULE 4 – SERVICE AVANCÉS
SECTION1:INTRODUCTIONÀWCF
Qu’est-ce que WCF ?
 Windows Communication Foundation
 Technologie .NET permettant de développer des services web
 Permet d’intégrer ou de changer de comportements ou de protocole sans modifier le code
 Supporte de multiples technologies et protocoles (REST, HTTP, remoting, …)
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 3
MODULE 4 – SERVICE AVANCÉS
SECTION1:INTRODUCTIONÀWCF
Principe ABC
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 4
A :
Adresse
B :
Binding
C :
Contrat
MODULE 4 – SERVICE AVANCÉS
SECTION1:INTRODUCTIONÀWCF
Adresse
 Url indiquant la localisation du service
Par exemple : http://localhost/NotificationService
 Le service peut être accédé via un point (EndPoint) qui est caractérisé par une adresse
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 5
MODULE 4 – SERVICE AVANCÉS
SECTION1:INTRODUCTIONÀWCF
Binding
 Définit le protocole reliant le service aux différents clients
 Par exemple « basicHttpBinding » est un binding basique et facile basé sur le protocole HTTP
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 6
MODULE 4 – SERVICE AVANCÉS
SECTION1:INTRODUCTIONÀWCF
Contrats
 Un contrat est une relation entre des modules logiciels distants
 Un contrat de service est un service distant fournissant certaines fonctionnalités
 Un contrat de données spécifie le format des données qui transitent sur le réseau
 Les contrats sont spécifiées par des interfaces et des classes décorées par des attributs
spécifiques
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 7
MODULE 4 – SERVICE AVANCÉS
SECTION1:INTRODUCTIONÀWCF
Contrats - Exemple
[ServiceContract]
public interface INotificationService
{
[OperationContract]
void Notifier(string Nom, bool Acceptation);
}
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 8
MODULE 4 – SERVICE AVANCÉS
SECTION1:INTRODUCTIONÀWCF
Configuration des services WCF
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 9
Par fichier de
configuration
Par code
MODULE 4 – SERVICE AVANCÉS
SECTION1:INTRODUCTIONÀWCF
Hébergement
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 10
Dans des
applications
IIS AppFabric
Services
Windows
Azure
MODULE 4 – SERVICES AVANCÉS
Section 2 : Intégration
de WF avec WCF
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 11
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
Pourquoi intégrer ?
 Pour permettre aux workflows d’être disponibles sous forme de services
 Pour mettre en place des services persistants et de longues exécution
 Pour permettre aux intervenants d’êtres distants géographiquement
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 12
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
L’activité « Receive »
 Attend une requêtes de l’extérieur en exposant un service
 La propriété « OperationName » définit le nom du service
 La propriété « ServiceContractName » spécifie le nom du contrat
 Le contenu définit les paramètres ou le contenu du message attendu par le service
 La propriété « CanCreateInstance indique si une nouvelle instance du workflow est créée si le
service est invoqué
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 13
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
Les paramètres des activités de
messagerie
 Spécifie les données reçues ou émises par les activités
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 14
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
L’activité « Send »
 Invoque un service WCF
La propriété « OperationName » spécifie le nom du service
La propriété « ServiceContractName », spécifie le nom du contrat
 La propriété « EndPoint », spécifie l’adresse et le binding du service à appeler
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 15
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
L’activité « ReceiveAndSendReply »
 Crée un service à double chemin
 Renvoie une valeur en retour à celui qui a invoqué le service
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 16
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
L’activité « SendAndSendReply »
 Invoque un service et attend une réponse du service
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 17
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
La corrélation
 Pour chaque invocation d’un service, une nouvelle instance peut être créée
 Lorsqu’un workflow contient plusieurs activités « Receive », il est difficile de lier le bon service
à la bonne instance
 La corrélation se base sur un ensemble de variables pour identifier la bonne instance à
invoquer
 Par exemple « un identifiant unique », « GUID »,…
 Une activité de messagerie peut initialiser une corrélation
 Une activité de messagerie peut suivre une corrélation
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 18
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
Initialisation d’une corrélation
 Indique au moteur qu’on crée une nouvelle corrélation sur des données idéalement uniques
 Utilise un « handle » de corrélation
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 19
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
Suivre une corrélation
Une deuxième activité de messagerie peut suivre une corrélation pour connecter le deuxième
service à la bonne instance
 La propriété « CorrelatesOn » est utilisée
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 20
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
Modèles Visual Studio
VS 2012 propose le modèle « Application Service Workflow » pour faciliter la création de
services Workflow
 Les workflows service ont l’extension XAMLX
 Les workflows services sont facilement hébergés sur WCF
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 21
MODULE 3 - DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT
SECTION2:INTÉGRATIONDEWFETWCF
Tutoriel 5.1
Workflow d’embauche sous forme de service
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 22

Workflow Foundation - Cours 5

  • 1.
    Workflow Foundation 4.5avec Visual Studio 2012 Module 5 : Workflows en tant que Services avec WCF WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 1
  • 2.
    MODULE 4 –SERVICES AVANCÉS Section 1 : Introduction à WCF WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 2
  • 3.
    MODULE 4 –SERVICE AVANCÉS SECTION1:INTRODUCTIONÀWCF Qu’est-ce que WCF ?  Windows Communication Foundation  Technologie .NET permettant de développer des services web  Permet d’intégrer ou de changer de comportements ou de protocole sans modifier le code  Supporte de multiples technologies et protocoles (REST, HTTP, remoting, …) WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 3
  • 4.
    MODULE 4 –SERVICE AVANCÉS SECTION1:INTRODUCTIONÀWCF Principe ABC WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 4 A : Adresse B : Binding C : Contrat
  • 5.
    MODULE 4 –SERVICE AVANCÉS SECTION1:INTRODUCTIONÀWCF Adresse  Url indiquant la localisation du service Par exemple : http://localhost/NotificationService  Le service peut être accédé via un point (EndPoint) qui est caractérisé par une adresse WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 5
  • 6.
    MODULE 4 –SERVICE AVANCÉS SECTION1:INTRODUCTIONÀWCF Binding  Définit le protocole reliant le service aux différents clients  Par exemple « basicHttpBinding » est un binding basique et facile basé sur le protocole HTTP WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 6
  • 7.
    MODULE 4 –SERVICE AVANCÉS SECTION1:INTRODUCTIONÀWCF Contrats  Un contrat est une relation entre des modules logiciels distants  Un contrat de service est un service distant fournissant certaines fonctionnalités  Un contrat de données spécifie le format des données qui transitent sur le réseau  Les contrats sont spécifiées par des interfaces et des classes décorées par des attributs spécifiques WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 7
  • 8.
    MODULE 4 –SERVICE AVANCÉS SECTION1:INTRODUCTIONÀWCF Contrats - Exemple [ServiceContract] public interface INotificationService { [OperationContract] void Notifier(string Nom, bool Acceptation); } WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 8
  • 9.
    MODULE 4 –SERVICE AVANCÉS SECTION1:INTRODUCTIONÀWCF Configuration des services WCF WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 9 Par fichier de configuration Par code
  • 10.
    MODULE 4 –SERVICE AVANCÉS SECTION1:INTRODUCTIONÀWCF Hébergement WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 10 Dans des applications IIS AppFabric Services Windows Azure
  • 11.
    MODULE 4 –SERVICES AVANCÉS Section 2 : Intégration de WF avec WCF WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 11
  • 12.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF Pourquoi intégrer ?  Pour permettre aux workflows d’être disponibles sous forme de services  Pour mettre en place des services persistants et de longues exécution  Pour permettre aux intervenants d’êtres distants géographiquement WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 12
  • 13.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF L’activité « Receive »  Attend une requêtes de l’extérieur en exposant un service  La propriété « OperationName » définit le nom du service  La propriété « ServiceContractName » spécifie le nom du contrat  Le contenu définit les paramètres ou le contenu du message attendu par le service  La propriété « CanCreateInstance indique si une nouvelle instance du workflow est créée si le service est invoqué WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 13
  • 14.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF Les paramètres des activités de messagerie  Spécifie les données reçues ou émises par les activités WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 14
  • 15.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF L’activité « Send »  Invoque un service WCF La propriété « OperationName » spécifie le nom du service La propriété « ServiceContractName », spécifie le nom du contrat  La propriété « EndPoint », spécifie l’adresse et le binding du service à appeler WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 15
  • 16.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF L’activité « ReceiveAndSendReply »  Crée un service à double chemin  Renvoie une valeur en retour à celui qui a invoqué le service WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 16
  • 17.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF L’activité « SendAndSendReply »  Invoque un service et attend une réponse du service WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 17
  • 18.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF La corrélation  Pour chaque invocation d’un service, une nouvelle instance peut être créée  Lorsqu’un workflow contient plusieurs activités « Receive », il est difficile de lier le bon service à la bonne instance  La corrélation se base sur un ensemble de variables pour identifier la bonne instance à invoquer  Par exemple « un identifiant unique », « GUID »,…  Une activité de messagerie peut initialiser une corrélation  Une activité de messagerie peut suivre une corrélation WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 18
  • 19.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF Initialisation d’une corrélation  Indique au moteur qu’on crée une nouvelle corrélation sur des données idéalement uniques  Utilise un « handle » de corrélation WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 19
  • 20.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF Suivre une corrélation Une deuxième activité de messagerie peut suivre une corrélation pour connecter le deuxième service à la bonne instance  La propriété « CorrelatesOn » est utilisée WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 20
  • 21.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF Modèles Visual Studio VS 2012 propose le modèle « Application Service Workflow » pour faciliter la création de services Workflow  Les workflows service ont l’extension XAMLX  Les workflows services sont facilement hébergés sur WCF WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 21
  • 22.
    MODULE 3 -DIAGRAMMES DE FLUX ET DIAGRAMMES DE MACHINES D’ETAT SECTION2:INTÉGRATIONDEWFETWCF Tutoriel 5.1 Workflow d’embauche sous forme de service WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 22