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

Architecture SOA et service WCF Architecture dapplication Hugo St-Louis.

Présentations similaires


Présentation au sujet: "Architecture SOA et service WCF Architecture dapplication Hugo St-Louis."— Transcription de la présentation:

1 Architecture SOA et service WCF Architecture dapplication Hugo St-Louis

2 Plan Historique Architecture SOA Service WCF Conclusion

3 PolymorphismeEncapsulation Classes & héritage Basée sur les message Schema & Contrat Liaisons via des règles Basée sur les interfaces Chargement dynamique Notion de métadonnées 1990 Orienté objet Orientation Service Orientation composant

4 Les applications distribués Une application distribuée est une application dont tous les éléments qui la composent (classes, persistance, logique métier) sont distants géographiquement et communiquent entre eux via des réseaux locaux dentreprise ou par Internet en utilisant le protocole IP. Lutilisateur final na pas conscience de la nature distribuée de lapplicatif car il utilise une interface – Web ou autre –, dont le but est de fédérer tous les éléments distants pour atteindre lobjectif de lapplication tout en masquant tous les mécanismes daccès.

5 Technologies pour applications distribuées Le principe même des applications distribuées nest pas nouveau. Beaucoup de technologies et de protocoles, souvent incompatibles entre eux ont été mis en œuvre pour permettre aux composants dune application distribuée, de communiquer entre eux.

6 Technologies pour applications distribuées COM (Component Object Model) : technologie de communication inter application propre à lenvironnement Windows. Cette technologie ne permet pas de construire à proprement parler des applications distribuées mais sert dinterface pour faire communiquer des applications sur une même machine. (les différents logiciels de la suite bureautique Microsoft Office par exemple). DCOM (Distributed Component Object Model) : version Distribuée de COM. Corba : Common Object Request Broker Architecture, est une architecture logicielle, pour le développement de composants et dObject Request Broker ou ORB. Ces composants, qui sont assemblés afin de construire des applications complètes, peuvent être écrits dans des langages de programmation distincts, être exécutés dans des processus séparés, voire être déployés sur des machines distinctes.architecture logicielleObject Request Broker.Net Remoting : technologie de communication inter application incluse dans le Framework.Net 2.0, basée sur un modèle client/serveur permettant la communication et la transmission dobjets entre les applications.

7 Technologies pour applications distribuées - RMI : équivalent Java du.Net Remoting

8 Termes que vous avez peut- être déjà entendu parlé - Services Web : technologie permettant de faire communiquer des composants entre eux, indépendamment de la plateforme sur laquelle ils sont hébergés, en utilisant un protocole de communication et un format de fichier unique et standardisé basé sur du XML. Contrairement aux technologies évoquées précédemment, grâce à la nature standardisée des échanges, il devient tout à fait possible de faire communiquer des modules hébergés sous Windows avec dautres hébergés sous Linux ou Unix. Cest cette interopérabilité associée à une relative facilité de mise en oeuvre, qui fait que les services web sont aujourdhui une des technologies les plus utilisées, pour construire des applications distribuées. Middleware : est un logiciel tiers qui crée un réseau d'échange d'informations entre différentes applications informatiques. Le réseau est mis en œuvre par l'utilisation d'une même technique d'échange d'informations dans toutes les applications impliquées 1 à l'aide de composants logiciels.logicielapplications informatiques 1composants logiciels

9 La naissance du SOA Malgré le fait que des technologies comme DCOM, RMI ou.Net Remoting permettent de transporter les objets et donc de dépasser les frontières de la machine grâce au réseau, on sest souvent heurté à des problèmes de compatibilité entre plateformes, doù le besoin dune standardisation et la mise en commun des protocoles (SOAP, XML, …). De là est née la notion darchitecture orientée services (SOA).

10 Les 4 grands principes du SOA La définition du service est explicite : Un service est une classe exposée à travers les réseaux. Le but de ce service est de fournir une prestation bien définie (exemple : fournir la date et lheure dans un pays donné). Les détails dun service (la manière dont il doit être appelé, les paramètres à spécifier…) sont contenus dans un document standardisé, qui fait office de contrat entre le client et le serveur. Les services sont autonomes : Un service se doit dêtre totalement autonome. On doit pouvoir le remplacer ou le déplacer sans que cela affecte dautres services. Un service implémente ses propres composants et ses propres méthodes daccès aux données, il ne doit dépendre daucun élément externe.

11 Les 4 grands principes du SOA Les clients et les services ne partagent que des contrats : On a vu dans le premier principe du SOA, que les services exposent des contrats pour exposer aux clients leurs fonctionnalités et comment les utiliser. Cette interface est la seule chose que le serveur partage avec le client. Comme en programmation orientée objet, le client na pas a connaitre comment procède le service pour arriver à ses fins. En aucun cas, le service et le client ne doivent partager du code. La compatibilité est basée sur les règles : Laccès à un service devrait être sécurisé, en utilisant un nom dutilisateur et un mot de passe par exemple.

12 Éléments du SOA Il n'existe pas à proprement parler de spécifications officielles d'une architecture SOA, néanmoins les principales notions fédératrices que l'on retrouve dans une telle architecture sont les suivantes : La notion de service, c'est-à-dire une fonction encapsulée dans un composant que l'on peut interroger à l'aide d'une requête composée d'un ou plusieurs paramètres et fournissant une ou plusieurs réponses. Idéalement chaque service doit être indépendant des autres afin de garantir sa réutilisabilité et son interopérabilité.

13 Éléments du SOA La description du service, consistant à décrire les paramètres d'entrée du service et le format et le type des données retournées. Le principal format de description de services est WSDL (Web Services Description Language), normalisé par le W3C. La publication (en anglais advertising) et la découverte (discovery) des services. La publication consiste à publier dans un registre (en anglais registry ou repository) les services disponibles aux utilisateurs, tandis que la notion de découverte recouvre la possibilité de rechercher un service parmi ceux qui ont été publiés. Le principal standard utilisé est UDDI (Universal Description Discovery and Integration), normalisé par l'OASIS. L' invocation, représentant la connexion et l'interaction du client avec le service. Le principal protocole utilisé pour l'invocation de services est SOAP (Simple Object Access Protocol).

14 Standards de larchitecture Les standards sont un élément clé dune SOA, ils assurent linteropérabilité Transporte SOAP W3C Simple Object Access Protocol Spec pour Repository/Registry UDDI Microsoft, IBM, HP Universal Description Discovery and Integration WSDL W3C Web Services Description Language Décrit le contrat Les trois piliers des Services Web

15 WCF SOA est une architecture Ce nest pas un ou des produits Par conséquent, Microsoft se devait de donner son interprétation de la solution. Ils ont donc créé WCF.

16 WCF WCF est une technologie qui permet de faciliter la mise en place des applications distribuées en servant de socle commun aux architectures orientées services (SOA : Service Oriented Architecture). WCF se veut être un modèle uniforme de distribution de services : - Faiblement couplé pour plus de souplesse ; - Adapté à toutes situations et besoins de communication : Disponibilité ; Interopérabilité ; Sécurité.

17 Les bases fondamentales de WCF Première étape : définition du contrat. On définit les signatures des méthodes composant notre service WCF, et du format des données à échanger. Seconde étape : implémentation du contrat. On implémente les services. Troisième étape : configuration du service. On définit les endPoints, autrement dit les points daccès au service. Quatrième étape : hébergement des services dans une application.NET.

18 Contrats Contrats de Service Définit les opérations, communications, comportements. Contrats de Donnée Définit les types de données et de paramètres. Contrats derreur (Fault) Définit les types derreur Contrats de Message Définit les formats de message Contrats de Service Définit les opérations, communications, comportements. Contrats de Donnée Définit les types de données et de paramètres. Contrats derreur (Fault) Définit les types derreur Contrats de Message Définit les formats de message

19 Contrat de services [ServiceContract] – Ensemble dopérations [OperationContract] – Méthode unique [ServiceContract] – Ensemble dopérations [OperationContract] – Méthode unique [ServiceContract] public interface IService { [OperationContract] string GetData(int value); } public class ConcreteService : IService { public string GetData(int value) {... } public string OtherMethod() {... } }

20 Contrat de données [DataContract] – Un type = un data contrat [DataMember] – Membres du contrat [DataContract] – Un type = un data contrat [DataMember] – Membres du contrat [DataContract] public class CustomType { [DataMember] public bool MyFlag { get; set; } [DataMember] public string MyString { get; set; } }

21 Transfert de données Sur un réseau les données sont sérialisées. Le Framework.Net contient déjà un attribut de sérialisation Si vous voulez utiliser des type de données pour les transféré, assurez-vous quelle soit sérialisable. Sur un réseau les données sont sérialisées. Le Framework.Net contient déjà un attribut de sérialisation Si vous voulez utiliser des type de données pour les transféré, assurez-vous quelle soit sérialisable.

22 Contrat de données DataContract: céer spécifiquement pour WCF Les attributs contiennent les propriétés nom et namespace DataMember: spécifie quelle propriété fera partie du contrat EmitDefaultValue, IsRequired, Name, Order properties DataContract: céer spécifiquement pour WCF Les attributs contiennent les propriétés nom et namespace DataMember: spécifie quelle propriété fera partie du contrat EmitDefaultValue, IsRequired, Name, Order properties

23 Contrat de données [DataContract(Name="Contact")] public class Person { [DataMember(IsRequired=true, Name="SurName")] public string LastName; public string FirstName; //Not included in contract }

24 Erreurs SOAP Trois types dexceptions possibles: Erreur de Communication Erreur inattendue du service Erreur contextuelle du service Les exceptions.NET sont spécifique à cette technologie Toutes les exceptions sur le réseaux seront du type SOAP Faults Trois types dexceptions possibles: Erreur de Communication Erreur inattendue du service Erreur contextuelle du service Les exceptions.NET sont spécifique à cette technologie Toutes les exceptions sur le réseaux seront du type SOAP Faults

25 Erreurs Pour WCF, les SOAP faults sont des objets de type FaultException Les services doivent émettre des FaultExceptions et non des Exceptions Pour WCF, les SOAP faults sont des objets de type FaultException Les services doivent émettre des FaultExceptions et non des Exceptions

26 Contrats derreur Spécifie le type des Exceptions, émis par une opération [ServiceContract] public interface IEmployeeService { [OperationContract] [FaultContract(typeof(FaultException))] public void AddEmployee(Employee e); }

27 Code du serveur Toujours émettre des Exceptions de type Fault Exceptions public class EmployeeService { public void AddEmployee(Employee e) {... throw new FaultException (errorMsg); }

28 Code du client EmployeeServiceProxy proxy = new EmployeeServiceProxy(); try {... proxy.AddEmployee(emp); } catch(FaultException e) { //Will catch all other types of Fault exceptions... }

29 Exceptions durant le développement ... ...

30 Points de terminaison (end points) WCF repose sur trois éléments : A ddress Où se trouve le service ? adresse à laquelle le client doit se connecter pour utiliser le service. B inding Comment parler au service ? protocole à utiliser par le client pour communiquer avec le service. WCF repose sur trois éléments : A ddress Où se trouve le service ? adresse à laquelle le client doit se connecter pour utiliser le service. B inding Comment parler au service ? protocole à utiliser par le client pour communiquer avec le service.

31 Adresse Combinaison du transport, nom du server, port & path Le transport est défini par le type de binding Examples net.tcp://localhost:8002/MyService net.pipe://localhost/MyPipe net.msmq://localhost/private/MyService net.msmq://localhost/MyService Combinaison du transport, nom du server, port & path Le transport est défini par le type de binding Examples net.tcp://localhost:8002/MyService net.pipe://localhost/MyPipe net.msmq://localhost/private/MyService net.msmq://localhost/MyService

32 Binding Transport HTTP TCP MSMQ Formats dencodage des messages Plain text Binary Message Transmission Optimization Mechanism (MTOM) Communication Sécurisées No security Transport security Message security Authenticating and authorizing callers Transport HTTP TCP MSMQ Formats dencodage des messages Plain text Binary Message Transmission Optimization Mechanism (MTOM) Communication Sécurisées No security Transport security Message security Authenticating and authorizing callers

33 Adresse et binding La configuration du fichier de configuration sera couverte plus en détail dans le cours de « Composants et Services »

34 Hébergements possibles IIS HTTP seulement WAS (Windows Activation Service) Utilisable avec nimporte quel transport Vista and Windows Server 2008 Self hosting Utilisable avec nimporte quel transport Hébergée dans Console, WinForms, … IIS HTTP seulement WAS (Windows Activation Service) Utilisable avec nimporte quel transport Vista and Windows Server 2008 Self hosting Utilisable avec nimporte quel transport Hébergée dans Console, WinForms, …

35 Un peu dalgo? SI V ous avez des questions ALORS Posez-les SINON Exécuter lexercice

36 Exercice Allons comprendre dans Visual Studio maintenant


Télécharger ppt "Architecture SOA et service WCF Architecture dapplication Hugo St-Louis."

Présentations similaires


Annonces Google