Architecture SOA et service WCF

Slides:



Advertisements
Présentations similaires
Les Web Services Schéma Directeur des Espaces numériques de Travail
Advertisements

Module 5 : Implémentation de l'impression
Le struts validator – framework de validation
SOA et Services Web Dr. Rim Samia Kaabi 26 mars 2017.
Nouveautés pour les développeurs Office System Scott Burmester Responsable des programmes PSPS.
Xavier Blanc Web Services Xavier Blanc
Introduction aux environnements répartis
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
Stéphanie CLAPIÉ Antoine RENARD
Les webservices Samira Silhadi-Hacid Malika Tarafi.
Object Management Architecture (OMA)
L’architecture .net et ASP.net
Reference Model of Open Distributed Processing
Vue d'ensemble Implémentation de la sécurité IPSec
Cours 6 : Les Web Services et UDDI Mars Version 1.0 -
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
Cours 2 : Les Web Services Concepts Généraux
Les Web Services.
Le File Transfer Protocol
Génie Documentiel Delacrétaz Jean-Marc
UML (Unified Modeling Langage)
Introduction à la POO: Les classes vs les objets
Introduction aux services WEB
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
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
SECURITE DU SYSTEME D’INFORMATION (SSI)
XML-Family Web Services Description Language W.S.D.L.
Windows Communication foundation
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
Programmation Approche composants Ing5 SI
Le protocole FTP.
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.
Protocole 802.1x serveur radius
Services fournis par le SI et technologies associées
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Séminaire Service Interoperability on Context Level in Ubiquitous Computing Environments Davide Bazzi IIUF Etude de larticle: Service Interoperability.
Développement dapplication avec base de données Semaine 10 : WCF avec Entité Framework Automne 2013.
Sensibilisation a la modelisation
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Enseignant de cours : M. Bouzguenda Lotfi
SGBD orientés Objet Standards : OMG et ODMG.
Travail réalisé par : LATRECHE Imed Eddine MENASRIA Med Lamine
Présentation de CORBA et de IIOP
CENTRALISATION DES CANDIDATS LOCATAIRES
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
« Le plaisir du chercheur : retrousser les jupes de la nature » Jean Rostand Proposer une « Interface Homme Machine » en utilisant une technologie Client.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
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
Les sockets.
COMPARAISON ENTRE GNUTELLA ET FREENET
Les Servlets Présentation Cycle de vie Principe de fonctionnement
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
Web Services 17/01/2009.
Architecture Client/Serveur
Introduction aux technologies des web services en Java EE
Objectifs du développement Des agendas culturels et services quotidiens de La Libre Belgique et de La Dernière Heure et proposera des services d’informations.
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.
Universel Description Discovery and Integration « UDDI «
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.
Architecture SOA,service WCF et robotique Architecture d’application Hugo St-Louis.
Transcription de la présentation:

Architecture SOA et service WCF Architecture d’application Hugo St-Louis

Plan Historique Architecture SOA Service WCF Conclusion

Orientation composant 3/31/2017 Orienté objet Polymorphisme Encapsulation Classes & héritage 1980 Orientation composant Basée sur les interfaces Chargement dynamique Notion de métadonnées 1990 Evolution des applications sur un modèle distribué OBJET : au niveau langage COMPOSANT : exposition via IDL, assemblage, pb de gestion des versions et d’adhérence aux plate-formes SERVICE : impact de l’architecture distribuée, couplage faible, forte exposition aux métiers de l’entreprise Orientation Service Basée sur les message Schema & Contrat Liaisons via des règles 2000 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 d’entreprise ou par Internet en utilisant le protocole IP. L’utilisateur final n’a pas conscience de la nature distribuée de l’applicatif car il utilise une interface – Web ou autre –, dont le but est de fédérer tous les éléments distants pour atteindre l’objectif de l’application tout en masquant tous les mécanismes d’accès.

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

Technologies pour applications distribuées COM (Component Object Model) : technologie de communication inter application propre à l’environnement Windows. Cette technologie ne permet pas de construire à proprement parler des applications distribuées mais sert d’interface 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 d’Object 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. .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 d’objets entre les applications.

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

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 d’autres hébergés sous Linux ou Unix. C’est cette interopérabilité associée à une relative facilité de mise en oeuvre, qui fait que les services web sont aujourd’hui 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ées1 à l'aide de composants logiciels.

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 s’est souvent heurté à des problèmes de compatibilité entre plateformes, d’où le besoin d’une standardisation et la mise en commun des protocoles (SOAP, XML, …). De là est née la notion d’architecture orientée services (SOA).

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 l’heure dans un pays donné). Les détails d’un 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 d’autres services. Un service implémente ses propres composants et ses propres méthodes d’accès aux données, il ne doit dépendre d’aucun élément externe.

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 n’a 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 : L’accès à un service devrait être sécurisé, en utilisant un nom d’utilisateur et un mot de passe par exemple.

É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é.

É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).

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

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

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

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 d’accès au service. Quatrième étape : hébergement des services dans une application .NET.

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

Contrat de services [ServiceContract] – Ensemble d’opé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()

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

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 qu’elle soit sérialisable.

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

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 }

Erreurs SOAP Trois types d’exceptions 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

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

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

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

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

Exceptions durant le développement <system.serviceModel> <services> <service name = "EmployeeService" behaviorConfiguration = "Debugging"> ... </service> </services> <behaviors> <serviceBehaviors> <behavior name = "Debugging"> <serviceDebug includeExceptionDetailInFaults = "true"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>

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

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

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

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

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

Un peu d’algo? SI Vous avez des questions ALORS SINON Posez-les Exécuter l’exercice

Exercice Allons comprendre dans Visual Studio maintenant 