Transcript WCF

WCF
Windows Communication foundation
Service Oriented Architecture SOA
• Les architectures des applications informatiques
modernes repose sur le paradigme de blocs de
services.
• Ces blocks de services doivent être accessibles et
consommables rapidement et avec le moins de
contraintes techniques spécifique (indépendance
de technologie et de plateforme).
• Une première réponse a été apportée par les
services web, mais il existe d’autres technologies.
Technologies distribuées chez
Microsoft
•
•
•
•
DCOM.
MS Message Queue (MSMQ).
.Net Remoting.
Web Services.
Problématique
• Toutes ces technologies sont fortement
couplées à l’infrastructure de communication
du service qu’elles exposent.
• Il n’est pas évident de faire le bon choix
technologique dans la phase d’étude du
projet.
• L’évolution d’une infrastructure à une autre
n’est pas forcement simple à mettre en place.
Objectif de WCF
• Proposer un modèle de programmation unifié
pour l’ensemble des technologies distribuées
de Microsoft.
• Permettre de construire des applications
indépendantes du mécanisme de
communication sous-jacent.
• WCF est une réponse structurée et intégrée au
framework .net
Structure d’un service WCF
• Un hôte qui héberge le service et procure
l’environnement d’exécution.
• Un contrat de service qui définit via une
interface et des entités les opérations
implémentées par le service.
• Le service qui implémente l’interface.
• Des points de terminaison (end point) qui
permettent d’exposer le service.
Entités
• Les opérations implémentées par les services
agissent sur des entités.
• Les entités sont des types d’objet ‘creux’ qui
ne contiennent que des champs et des
propriétés get/set public.
• Les attributs DataContract et DataMenber
permettent de spécifier les éléments a
intégrer dans l’entité du contrat.
Interface
• L’interface permet de définir les opérations
implémentées par le service.
• Les attributs ServiceContract et
OperaionContract servent a spécifier les
éléments exposés dans le contrat.
Le service
• Le service WCF doit implémenter l’interface
de service précédemment créée.
• C’est dans ce code que se trouve la logique
métier du service.
Points de terminaisons
• Ils sont composés d’au moins trois éléments
(ABC)
– Address. Localisation du service.
– Binding. Protocole de communication (transport,
encodage, securite, …).
– Contract. Contenu du service.
Hébergement des services
• La classe ServiceHost est responsable du
chargement du service et de la configuration
des points de terminaisons.
– Dans IIS interagit avec cette classe de manière
automatique.
– Les services et applications windows doivent
implémenter cette classe.
Choisir le mode d’hébergement
La classe ServiceHost
• La classe ServiceHost a besoin de:
– Le type de la classe qui met en œuvre le service.
– Les adresses sur lesquelles elle doit guetter les
requêtes. (possibilité de le faire via le fichier
app.config).
• La classe ServiceHost expose des événements
permettant de suivre son état.
Les applications clientes
• Les applications qui consomment un service
WCF ont besoin de connaitre:
– Le canal d’envoi.
– Le contrat mis en œuvre.
– Les entités (si présente)
– L’adresse du service.