1. 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
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