Cours 5 : Les Web Services et WSDL Mars Version 1.0 -

Slides:



Advertisements
Présentations similaires
Fondations des services Web Les technologies SOAP
Advertisements

Lalimentation de STAR par imports STAR 8ième cercle – 27 septembre 2013.
Xavier Blanc Web Services Xavier Blanc
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.
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Architectures Orientées Services
Julien HERON.
Les espaces de nommage XML par Philippe Poulard 1
Les webservices Samira Silhadi-Hacid Malika Tarafi.
l'impact sur le eBusiness
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Cours 6 : Les Web Services et SOAP Mars Version 1.0 -
Cours 6 : Les Web Services et UDDI Mars Version 1.0 -
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février Version 1.0 -
TP 3-4 BD21.
INTRODUCTION.
FLSI602 Génie Informatique et Réseaux
Génie Documentiel Delacrétaz Jean-Marc
Introduction aux Web Services Partie 1. Technologies HTML-XML
Common Gateway Interface
Principes de programmation (suite)
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Chapitre 5 Web Services : Le nouveau standard JAX-WS 2.0
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
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
XML-Family Web Services Description Language W.S.D.L.
Administration de SharePoint
Labview Programmation réseau Communication par sockets
Initiation aux bases de données et à la programmation événementielle
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
TRANSMISSION DES DONNEES.
RDF(S)
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
Le formulaire Les chaînes de requêtes. Les chaînes de requêtes (QueryStrings) correspondent à des informations associées à l'adresse URL avec un point.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Web Services HTTP UDDI SOAP WSDL Besnik SELJIMI, Novembre 2003
Séminaire Service Interoperability on Context Level in Ubiquitous Computing Environments Davide Bazzi IIUF Etude de larticle: Service Interoperability.
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
Enseignant de cours : M. Bouzguenda Lotfi
Initiation au web dynamique
CENTRALISATION DES CANDIDATS LOCATAIRES
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
JavaScript Nécessaire Web.
INTRODUCTION.
Cours de programmation web
Algorithmique et programmation (1)‏
Le web service
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
Mastère Professionnel Systèmes de Communication et Réseaux
Universal Plug and Play. Idée Connecter tout: PCs, appareils intelligents, et appareils domestiques Computer partout: Universal Plug and Play connectivité.
Les RPC remote procedure call
 Formulaires HTML : traiter les entrées utilisateur
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
eXtensible Markup Language. Généralités sur le XML.
Representational State Transfer - REST
Architecture Client/Serveur
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
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.
Web Services.
INF2005– Programmation web– A. Obaid Variantes de HTML.
Cours 10 : Les Web Services et WSDL Février Version 1.0 -
Transcription de la présentation:

Cours 5 : Les Web Services et WSDL Mars 2011 - Version 1.0 - Les technologies XML Cours 5 : Les Web Services et WSDL Mars 2011 - Version 1.0 -

Pour remédier à cet état de fait il a été normaliser un langage: WSDL Web Services – WSDL Comme on l’a vu avec XML RPC il est souvent difficile rien qu’à lecture d’un document XML : De déterminer les paramètres à lui fournir De connaître la structure du document en retour De connaître les éventuels code erreur D’anticiper les traitements effectués. Pour remédier à cet état de fait il a été normaliser un langage: WSDL

WSDL 1 est prévu pour fonctionner avec SOAP 1.1 Web Services – WSDL WSDL : Web Service Description Language Langage XML dédié à la description de tous les éléments nécessaires pour interagir avec un service réseau (ou service web). W3C WSDL 1 : http://www.w3.org/TR/wsdl WSDL 2 : http://www.w3.org/TR/2007/REC-wsdl20-20070626/ WSDL 1 est prévu pour fonctionner avec SOAP 1.1 WSDL 2 est prévu pour fonctionner avec SOAP 1.2

Web Services – WSDL un service réseau (service Web), WSDL est un langage XML qui permet de décrire: un service réseau (service Web), et comment l’ invoquer (localisation, paramètre, structure de retour, ..) Objectif : Décrire les services comme un ensemble d’opérations et de messages abstraits reliés à des protocoles et des serveurs réseaux Cet objectif se rapproche d’IDL pour CORBA. WSDL standardise les schémas XML utilisés pour établir une connexion entre émetteurs et récepteurs. Par conséquent, il est possible d’automatiser certaines opérations nécessaires à l’appel

Web Services – WSDL Un document WSDL est donc associé à un Web Service afin d’en décrire l’ensemble des éléments qu’il expose vers le monde extérieur : types de données (XSD) types de messages liaisons avec le protocole de transport et le format des messages (SOAP 1.X, HTTP Get et HTTP Post, ou encore MIME) Les services sont vus comme des ensembles de ports réseaux

Web Services – WSDL <types> <message> <portType> Contient les définition de types utilisant un système de typage (comme XSD). <message> Décrit les noms et types d’un ensemble de champs à transmettre (Paramêtres d’une invocation, valeur du retour, …) <portType> Décrit un ensemble d’opérations. Chaque opération a zero ou un message en entrée, zero ou plusieurs message de sortie ou de fautes <binding> Spécifie une liaison d’un <porttype> à un protocole concret (SOAP1.1, HTTP1.1, MIME, …). Un porttype peut avoir plusieurs liaisons ! <port> Spécifie un point d’entrée (endpoint) comme la combinaison d’un <binding> et d’une adresse réseau. <service> Une collection de points d’entrée (endpoint) relatifs.

Web Services – WSDL L’élément <types> contient les définition de types utilisant un système de typage (comme XSD). Exemple <types> <xsd:schema targetNamespace="http://exemple.com/personne.xsd" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <xsd:complexType name=“Personne”> <xsd:element name=“Nom” type=“xsd:string”> <xsd:element name=“Prenom” type=“xsd:string”> <xsd:element name=“Age” type=“xsd:float”> </complexType> </types>

Web Services – WSDL L’élément <message> décrit les noms et types d’un ensemble de champs à transmettre (Paramètres d’ invocation, valeur du retour, …) Exemple <message name="GetPersonne"> <part name="body" type="per:Personne"/> </message> <message name="AddPersonne"> <part name="Nom" type="xsd:string"/> <part name="Prenom" type="xsd:string"/> <part name="Age" type="xsd:float"/>

Web Services – WSDL L’élément <portType> décrit un ensemble d’opérations. Plusieurs types d’opérations One-way : Le point d’entrée reçoit un message (<input>). Request-response : Le point d’entrée reçoit un message (<input>) et retourne un message corrélé (<output>) ou un ou plusieurs messages d’erreur (<fault>). Solicit-response : Le point d’entrée envoie un message (<ouput>) et recoit un message corrélé (<input>) ou un ou plusieurs messages d’erreur (<fault>). Notification : Le point d’entrée envoie un message de notification (<ouput>) Paramètres Les champs des messages constituent les paramètres (in,out, inout) des opérations

Web Services – WSDL Element <portType> exemple : <portType name="CarnetAdresse"> <operation name="AddPersonne"> <input message="AddPersonneRequest"/> </operation> <operation name="GetPersonneParNom"> <input message="GetPersonneParNom Request"/> <output message=" GetPersonneParNom Response"/> </portType>

Web Services – WSDL L’élément <binding> spécifie La liaison d’un <portType> à un protocole concret (SOAP1.1, HTTP GET/POST, MIME, …). Un <portType> peut avoir plusieurs <binding> pour répondre à plusieurs protocoles. La balise suivante : <soap:binding transport="uri" style="soap_style" /> précise que le binding est de type SOAP. La balise <transport> définit le type de transport http://schemas.xmlsoap.org/soap/http pour utiliser SOAP/HTTP

Web Services – WSDL La balise <style> définit la façon dont sont créer les messages SOAP de toutes les opérations rpc : Encodage RPC défini par SOAP RPC document : Encodage sous forme d’élément XML c’est ce mode qui est utilisé par défaut. Pour chaque <operation> de <portType> : il faut préciser l’URI de l’opération : <soapAction> Il est aussi possible de repréciser la façon dont sont créés les messages SOAP : <style> Pour chaque message de chaque opération, il faut définir comment sera créé le message SOAP

Web Services – WSDL Exemple de binding sur SOAP et HTTP <binding type="CarnetAdresseBinding"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> <operation name="GetPersonneParNomOpe"> <soap:operation soapAction="http://exemple.com/ GetPersonneParNom " /> <input> <soap:body use="encoded" encodingStyle="schemas.xmlsoap.org/soap/encoding"/> </input> <output> </output> </operation> </binding>

L’élément <port> est associé à un <portType> Web Services – WSDL L’élément <port> est associé à un <portType> Dans le cadre de SOAP, un élément <port> à une adresse (qui correspond à l’adresse http) Exemple : <port name="CarnetAdressePort" binding="per:CarnetAdresseBinding "> <soap:address location="http://example.com/GetPersonneParNom"/> </port>

L’élément <service> définit l’ensemble des points d’entrées Web Services – WSDL L’élément <service> définit l’ensemble des points d’entrées Exemple : <service name=“CarnetAdresseService"> <port name=" CarnetAdressePort " binding="per:PersonnesBinding"> <soap:address location="http://example.com/GetPersonneParNom"/> </port> </service>

Web Services – WSDL <?xml version="1.0" ?> <definitions name="CarnetAdresse" targetNamespace="http://exemple.com/carnetAdresse.wsdl" xmlns:per="http://example.com/carnetAdresse.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xsd:schema targetNamespace="http://exemple.com/personne.xsd" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <xsd:complexType name=“Personne”> <xsd:element name=“Nom” type=“xsd:string”> <xsd:element name=“Prenom” type=“xsd:string”> <xsd:element name=“Age” type=“xsd:float”> </complexType> </types> <message name="GetPersonne"> <part name="body" type="Personne"/> </message> <message name="AddPersonne"> <part name="Nom" type="xsd:string"/> <part name="Prenom" type="xsd:string"/> <part name="Age" type="xsd:float"/> <portType name="CarnetAdresse"> <operation name="AddPersonne"> <input message="AddPersonneRequest"/> </operation> <operation name="GetPersonneParNom"> <input message="GetPersonneParNom Request"/> <output message=" GetPersonneParNom Response"/> </portType>

Web Services – WSDL <binding type="CarnetAdresseBinding"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> <operation name="GetPersonneParNomOpe"> <soap:operation soapAction="http://exemple.com/ GetPersonneParNom " /> <input> <soap:body use="encoded" encodingStyle="schemas.xmlsoap.org/soap/encoding"/> </input> <output> </output> </operation> </binding> <service name=“CarnetAdresseService"> <port name=" CarnetAdressePort " binding="per:PersonnesBinding"> <soap:address location="http://example.com/GetPersonneParNom"/> </port> </service> </definitions>