Windows Communication foundation

Slides:



Advertisements
Présentations similaires
Les protocoles réseau.
Advertisements

Le struts validator – framework de validation
SOA et Services Web Dr. Rim Samia Kaabi 26 mars 2017.
Agenda de la journée 10h00 : La place dASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide dapplications Web en ASP.NET 12h00 : Construire.
Service Software Factory François MERAND Responsable groupe architectes DPE – Division Plateformes & Ecosystème Microsoft France
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
Personnalisation des sites SharePoint avec SharePoint Designer 2007
Architectures Orientées Services
DUDIN Aymeric MARINO Andrès
L’architecture .net et ASP.net
Reference Model of Open Distributed Processing
Vue d'ensemble Implémentation de la sécurité IPSec
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
Assistance à distance Parfois on se sent bien seul face à un problème informatique surtout si on n’est qu’un simple utilisateur. Lorsqu'un problème survient.
Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP.
Sécurité Informatique
Oct.-2000DESS IIDEE © B. BAH 1 ASP Caractéristiques dun fichier ASP Son extension : « *.asp » La balise: Son indépendance vis à vis de toute plate–forme,
Les Services Web Avec.NET version 1.1. Un service Web en bref… Méthodes ou objets accessible à distance via SOAP (Simple Object Access Protocol ); SOAP.
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Module 1 : Préparation de l'administration d'un serveur
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
Développement Rapide dApplications Web avec.NET « Mon premier site »
Architecture SOA et service WCF
Programmation Approche composants Ing5 SI
28 novembre 2012 Grégory Petit
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
.Net Remoting.
Les relations clients - serveurs
Module 8 : Maintenance des logiciels à l'aide des services SUS
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Développement dapplication avec base de données Semaine 10 : WCF avec Entité Framework Automne 2013.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
4 - Annuaires Les Annuaires d ’Entreprises Offres et solutions
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Cliquez pour modifier le style de titre du masque ManageEngine ADAudit Plus Qu'est-ce qui change ? Qu'est-ce qui va changer ? Fonctions clés d'ADAudit.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Introduction à la plateforme .NET
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Tutorat en bio-informatique
Dyalog.Net Peter Donnelly Managing Director Dyadic Systems Toronto 30/10/2002.
Les sockets.
MOCK.
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Notifications et Communication réseau D. BELLEBIA – 18/12/2007NSY208 CNAM.
L’enseignement de spécialité SLAM
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Citrix ® Presentation Server 4.0 : Administration Module 9 : Déploiement d'applications.
Web Services 17/01/2009.
Les bases du protocole Modbus
Création JJ Pellé novembre 2014Musique : David Schombert.
Architecture Client/Serveur
Introduction aux technologies des web services en Java EE
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Introduction Module 1.
Chapitre 8 Protection du trafic réseau à l'aide de la sécurité IPSec et de certificats Module S43.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
FACTORY systemes Module 2 Section 1 Page 2-3 Installation d’Industrial SQL FORMATION InSQL 7.0.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Chapitre 9 Configuration de Microsoft Windows XP Professionnel pour fonctionner sur des réseaux Microsoft Module S41.
Transcription de la présentation:

Windows Communication foundation 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 COM DCOM. COM+ (transaction, appel asynchrone) MS Message Queue (MSMQ). Enteprise services (wrapper .Net de COM+) Web Services. .Net Remoting (natif .net). …

Problématique Toutes ces technologies sont fortement couplées à l’infrastructure de communication du service qu’elles exposent. Le choix du protocole de communication est de la décision du développeur et non celui de l’administrateur système. L’évolution d’une infrastructure à une autre n’est pas forcement simple à mettre en place. Le code source contient la logique de communication.

Objectif de WCF WCF n’est pas un nouveau protocole de communication, mais tentative une unification 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

Modèle de programmation unifié ASMX SOAP .NET Remoting Interopérabilité avec d’autres plateformes Extensibilité Disponibilité transparente Programmation par attribut Programmation orienté message Support des protocoles WS-* Enterprise Services System.Messaging WSE

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.

WCF dans le .net Framework Le framework 3.0 Implémentation de WPF. Implémentation de WCF. Implémentation de WF. Implémentation de CardSpace. Le framework 3.0 repose sur le même runtime que le framework 2.0. Intégré en natif dans VisualStudio 2008 mais pris en charge dès VS 2005.

Définition des contracts QUOI (que mets a disposition votre service) Les opérations implémentées par le service. La structure des données utilisées par le service. Les attributs DataContract et DataMenber permettent de spécifier les éléments a intégrer dans l’entité du contrat.

Définition des Bindings COMMENT (quel protocole sont utilisés) Définition du protocole de transport. Définition de l’encodage des messages. Définition des information de cryptage et de sécurité.

Définition des Adresses OU (localisation du service) Url utilisée pour accéder au 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.

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.

TP 2 Réalisation d’une application d’hébergement du service. Gestion des exceptions dans le service.

Hébergement d’un service

Les différents modes d’hébergement Dans IIS (principalement pour les applications web). Dans une application Windows (principalement pour les tests et le développement). Dans un service Windows (pour des applications intranets et orientée process)

Hébergement des services La classe ServiceHost est responsable du chargement du service et de la configuration des points de terminaisons. IIS interagit avec cette classe de manière automatique. Les services et applications Windows doivent implémenter cette classe. La classe ServiceHost expose des événements et des propiétés permettant de suivre son état.

Les différents états d’un service Created : L’instance du service à été créer. Opening : Le service est en cours d’ouverture. Opened : Le service et est à l’écoute. Closing : Le service est en cours de fermeture, il fini le traitement des requêtes en cours. Closed : Le service est fermé et n’accepte plus de requête. Faulted : Le service a rencontrer une erreur fatale, est doit être fermé.

Transition d’états Lorsque l’instance de l’objet ServiceHost est créé celui-ci est dans l’état Created. Dans cet état le service peut être configurer. L’appel de la méthode Open (ou BeginOpen) démarre le service et le passe en état Opening. Durant l’état Opening le service tente de créer les piles de canaux pour chaque points de terminaisons définis. Sur une exception se produit le service passe en état Faulted. Si tous les canaux sont ouverts avec succès le service passe dans l’état Opened. En état Opened le service traite les requêtes des clients et les dirige vers le service. Si une exception est générer a ce stade le service passe en état Faulted. En état Faulted les service ne traite plus aucune demande de requête client, a ce stade vous pouvez toujours examiner les propriétés du service pour tenter de déterminer la cause de l’exception. Vous devez impérativement faire avorter le service (abord()) pour l’arrêter correctement. Il est possible de revenir en état Openned depuis cet état. Vous arrêtez un service via l’appel de la méthode Close (ou BeginClose) ou Abord, le service passe alors en état Closing, il n’accepte plus de nouvelle requête entrante, mais termine le traitement de requêtes en cours, sauf dans le cas de la méthode Abord. Dans l’état Closed, le service est éliminé de l’objet ServiceHost et ses ressources sont libérées. Cela explique qu’il faille rappeler le constructeur du service pour le redémarrer.

Diagramme de transition d’état

Gestion des instances de service Il est possible de modifier la façon dont le runtime WCF crée une instance du service, grâce à la propriété InstanceContextMode de l’attribut ServiceBehavior. Exemple: [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] Public Class Service: Iservice… PerCall :Une instance de service est créée à chaque appel d’une opération. PerSession :Une instance de service est démarrée pour chaque session cliente. Single : Une instance unique du service est créée pour tous les services et toutes les sessions, elle est créée lors du premier appel.

Traitement des exceptions dans un environnement SOA

Les sources d’exception dans WCF Erreur dans le traitement coté serveur. Réseau physique indisponible ou défaillant. Mauvais formatage des messages par le client. Indisponibilité du serveur. Indisponibilité du client.

Spécificité de l’environnement SAO Le Framework .net offre déjà un service de gestion d’exceptions, mais celui-ci est natif à l’environnement et n’offre aucune ouverture sur des plateformes non Microsoft, ce qui contraire à la notion de SOA. WCF doit donc être capable de formater les exceptions et de les propager dans un format compréhensible par le plus grand nombre d’environnement.

Utilisation des exceptions SOAP Une partie de la spécification SOAP décrit la mise en forme et le traitement des erreurs (SOAP Fault) en format SOAP. Cela permet de propager des erreurs entre le service et le client. WCF propose une classe System.ServiceModel.FaultException qui implémente cette spécification SOAP pour renvoyer des messages d’erreurs aux applications clientes. Throw new FaultException(« erreur de connexion à la base de données », new FaultCode(« DataBaseAccess »)); Toute les opérations de service sont susceptibles de renvoyer au client un message FaultException. Générer une exception via FaultException, ne permet pas de typer les exceptions, le client doit analyser la valeur de FaultCode, mais celui-ci peut être n’importe quelle chaine de caractères. Le client n’a donc aucun moyen de connaitre les types d’exceptions pouvant être lever par l’appel à une méthode de service. L’utilisation de FaultException s’apparente donc à l’utilisation de Exception pour lever une exception.

Exceptions fortement typées WCF implémente un mécanisme de gestion d’exceptions typées. L’utilisation de l’attribut FaultContract, dans la définition des opérations de contrat, permet de spécifier au client la liste des exceptions susceptibles d’être levées par la méthode de service. [FaultContract(typeof(DataSourceFaultException))] [OperationContract] List<Categorie> GetCategories(); La définition des FaultContract doit donc être sérialisable et le schéma de données doit être inclus dans le contrat de données exposé par le service. [DataContract] public class DataSourceFaultException { [DataMember] public string Data; public string Message; public string Source; } Les exceptions fortement typées non spécifiées dans les opérations de contrats ne sont pas propagées vers le client.

Gestion des exceptions inattendues Les exceptions inattendues sont des exceptions qui se produisent sur le serveur et qui ne sont pas catchées. Vous pouvez indiquer à WCF de générer des FaultException lorsqu’une exception inattendue est levée. Dans le code via l’attribut [ServiceBehavior(IncludeExceptionDetailInFaults=True)] devant la classe implémentant le service. Dans le fichier de configuration dans la balise serviceBehavior. Il est fortement déconseiller d’utilisé l’attribut car cela nécessite la recompilation du code pour modifier le comportement du service.

Gestion des messages inattendus Les clients WCF communiquent généralement avec le service par l’intermédiaire d’un objet proxy, généré à partir du contrat de service du service, a un instant T. Avec l’évolution de votre service, il peut arriver, si les proxys des clients ne sont pas mis à jours, qu’une méthode ne soit plus disponible ou que son prototype ait été modifié dans le service. Dans ce cas le service est incapable de répondre à la demande du client, car elle ne correspond plus à une opération de contrat. La classe ServiceHost de WCF offre la possibilité de surveiller les demandes clients qui n’aboutissent pas via l’événement UnknownMessageReceived. Cette événement permet de connaitre les clients non à jours, mais surtout les tentatives frauduleuse d’accès à votre service.

TP 3