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.