La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Windows Communication foundation. Service Oriented Architecture SOA Les architectures des applications informatiques modernes repose sur le paradigme.

Présentations similaires


Présentation au sujet: "Windows Communication foundation. Service Oriented Architecture SOA Les architectures des applications informatiques modernes repose sur le paradigme."— Transcription de la présentation:

1 Windows Communication foundation

2 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 dautres technologies.

3 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). …

4 Problématique Toutes ces technologies sont fortement couplées à linfrastructure de communication du service quelles exposent. Le choix du protocole de communication est de la décision du développeur et non celui de ladministrateur système. Lévolution dune infrastructure à une autre nest pas forcement simple à mettre en place. Le code source contient la logique de communication.

5 Objectif de WCF WCF nest pas un nouveau protocole de communication, mais tentative une unification Proposer un modèle de programmation unifié pour lensemble 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

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

7 Structure dun service WCF Un hôte qui héberge le service et procure lenvironnement dexé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 linterface. Des points de terminaison (end point) qui permettent dexposer le service.

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

9 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 lentité du contrat.

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

11 Définition des Adresses OU (localisation du service) Url utilisée pour accéder au service.

12 Points de terminaisons Ils sont composés dau moins trois éléments (ABC) Address. Localisation du service. Binding.Protocole de communication (transport, encodage, securite, …). Contract. Contenu du service.

13 Les applications clientes Les applications qui consomment un service WCF ont besoin de connaitre: Le canal denvoi. Le contrat mis en œuvre. Les entités (si présente) Ladresse du service.

14 Réalisation dune application dhébergement du service. Gestion des exceptions dans le service.

15

16 Les différents modes dhé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)

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

18 Les différents états dun service Created : Linstance du service à été créer. Opening: Le service est en cours douverture. 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 naccepte plus de requête. Faulted: Le service a rencontrer une erreur fatale, est doit être fermé.

19 Transition détats Lorsque linstance de lobjet ServiceHost est créé celui-ci est dans létat Created. Dans cet état le service peut être configurer. Lappel 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 lexception. Vous devez impérativement faire avorter le service (abord()) pour larrêter correctement. Il est possible de revenir en état Openned depuis cet état. Vous arrêtez un service via lappel de la méthode Close (ou BeginClose) ou Abord, le service passe alors en état Closing, il naccepte 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 lobjet ServiceHost et ses ressources sont libérées. Cela explique quil faille rappeler le constructeur du service pour le redémarrer.

20 Diagramme de transition détat

21 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 lattribut ServiceBehavior. Exemple: [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] Public Class Service: Iservice… PerCall:Une instance de service est créée à chaque appel dune 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.

22

23 Les sources dexception 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.

24 Spécificité de lenvironnement SAO Le Framework.net offre déjà un service de gestion dexceptions, mais celui-ci est natif à lenvironnement et noffre 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 denvironnement.

25 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 derreurs 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 nimporte quelle chaine de caractères. Le client na donc aucun moyen de connaitre les types dexceptions pouvant être lever par lappel à une méthode de service. Lutilisation de FaultException sapparente donc à lutilisation de Exception pour lever une exception.

26 Exceptions fortement typées WCF implémente un mécanisme de gestion dexceptions typées. Lutilisation de lattribut 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 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; [DataMember] public string Message; [DataMember] 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.

27 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 lorsquune exception inattendue est levée. Dans le code via lattribut [ServiceBehavior(IncludeExceptionDetailInFaults=True)] devant la classe implémentant le service. Dans le fichier de configuration dans la balise serviceBehavior. Il est fortement déconseiller dutilisé lattribut car cela nécessite la recompilation du code pour modifier le comportement du service.

28 Gestion des messages inattendus Les clients WCF communiquent généralement avec le service par lintermédiaire dun 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, quune 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 naboutissent pas via lévénement UnknownMessageReceived. Cette événement permet de connaitre les clients non à jours, mais surtout les tentatives frauduleuse daccès à votre service.

29


Télécharger ppt "Windows Communication foundation. Service Oriented Architecture SOA Les architectures des applications informatiques modernes repose sur le paradigme."

Présentations similaires


Annonces Google