Université Abderrahmane Mira de Béjaia
Faculté des Sciences Exactes
Département d’Informatique
Module : Services Web (M2 – GL – ReSyD – IA (S3))
Cours 04 : WSDL
Présenté par Dr BRAHAMI EL BOUHISSI H.
2017-2018
WSDL (Web Service Description Language)
O Standard du W3C :
Version 1.1 en 2001
Version 2.0 en 2007, encore peu supporté par les outils
O Objectif : décrire l'interface publique d'un Web Service (contrat de
service)
O Grammaire dérivée d’XML
O Web Service = ensemble de ports de connexions mettant à disposition
des opérations qui reçoivent et envoient des messages
O Deux types d’informations :
Fonctionnelles : interface du service (signature des méthodes…)
Techniques : URL, protocole…
O Fichier WSDL : utilisable par des outils de génération de code
WSDL (Web Service Description Language)
Regroupe les informations nécessaires pour interagir avec le service
•Les méthodes, les paramètres et valeurs retournées, le protocole
de transport utilisé, la localisation du service
Document indispensable au déploiement de Services Web
•Publication et recherche de services au sein de l’annuaire se font
via les documents WSDL
• Pour l’accès à un service particulier, un client se voit retourné
l’URL du fichier WSDL décrivant l’implémentation du service
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 3
WSDL : Version
Description à 2 niveaux: Séparation entre la partie abstraite et concrète
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 4
Structure d’un fichier WSDL 1.1
•Elément Type
Types des paramètres (schéma XML)
•Elément Message
Appel et retour d'opération
•Elément Port type
Groupe d'opération
•Elément Binding
URL de l'opération
Type de protocole
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 5
Structure d’un fichier WSDL 1.1
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 6
Exemple WSDL 1.1: [Link]
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 7
L'élément définition
L'élément racine dans un document WSDL est <wsdl:definition>. Il
contient un attribut targetNamespace qui définit un certain nombre
d'espaces de noms namespace auquel tous les noms déclarés dans un
élément du document WSDL appartiennent, ce qui permet d'éviter les
conflits de nommage.
<wsdl:definition name="customerExemple"
targetNamespace="[Link]
xmlns:soap="[Link]
xmlns:wsdl="[Link]
xmlns="[Link]
Dans cet exemple, l'attribut targetNamespace a pour valeur l'URL :
«[..][Link]/[Link]». Cela signifie que tous les noms
déclarés dans ce document WSDL appartiennent à cet espace de noms.
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 8
Les espaces de noms
• Un espace de noms est identifié par une URI (Uniform Resource
Identifier) qui permet de l'identifier de manière unique.
• Schéma XML : [Link]
• La déclaration d'un espace de noms par défaut se fait dans le
premier élément qui utilise le vocabulaire, grâce au mot
clef xmlns comme XML namespace.
• Exemple : xmlns="mon_uri"
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 9
Structure d’un WSDL : <Types>
• Un type décrit la structure de données transmises dans un
message.
• Contient les définition de types utilisant un système de typage
par défaut XML Schema (XSD).
• Pouvant contenir des types simples et complexes
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 10
Structure d’un WSDL : <message>
• Décrit les données associées à une opération (1 requête et 1 réponse
HTTP par opération, 1 message d'erreur ”fault” optionnel).
• Un document WSDL peut contenir zéro ou plusieurs messages.
• Chaque message peut être un composé de plusieurs parties
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 11
Structure d’un WSDL : <portType>
• Un document WSDL peut contenir 0 à plusieurs portType
• L’élément portType contient un seul attribut name. La convention de
nommage nameOfWebService PortType.
• Composé d'un ensemble d'opérations abstraites (i.e. signature de la
méthode). Une opération est composée d’un message pour l’appel
(Input) et un pour le retour (Output).
Définition d’un seul type de port, avec les opérations abstraites,
14/12/2017 correspondant aux
Dr BRAHAMI déclarations
EL BOUHISSI - Services Webde méthodes dans l’interface Java
- WSDL 12
Structure d’un WSDL : <binding>
• Une liaison (ou binding) décrit la façon dont un portType (en
d’autres termes l’abstraction du service, i.e. ses opérations
abstraites) est mis en œuvre pour un protocole particulier
(HTTP par exemple) et un mode d’invocation (RPC par
exemple).
• Pour un portType, on peut avoir plusieurs liaisons, pour
différencier les modes d’invocation (RPC ou autres) ou de
transport (HTTP ou autre) des différentes opérations.
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 13
Structure d’un WSDL : <binding>
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 14
Structure d’un WSDL : <binding>
Une liaison WSDL décrit comment le service est lié à un protocole de messagerie,
généralement le protocole de messagerie SOAP. Une liaison WSDL SOAP peut être une
liaison de style Remote Procedure (RPC) ou une liaison de style document.
Le style RPC spécifie que le <soap: body> contient un élément avec le nom de la méthode
Web appelée. Cet élément contient à son tour une entrée pour chaque paramètre et la
valeur de retour de cette méthode.
Avec le style de document, les parties de message apparaissent directement sous
l'élément <soap: body>. Il n'existe pas de règles de formatage SOAP pour ce que contient
le <soap: body>. L'application serveur est responsable du mappage des objets serveur
(paramètres, appels de méthode, etc.) et des valeurs des documents XML.
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 15
Structure d’un WSDL : <service>
• Un service est décrit comme un ensemble de points finaux du réseau
appelés « ports »
• Un port spécifie une URL qui correspond à l’implémentation du
service par un fournisseur.
• Le port est associé à un « binding » définissant ainsi un simple point
de terminaison (endpoint:@ où se situe le WS)
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 16
WSDL : exemple d’interface de service
O Avec des types simples
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 17
WSDL : exemple d’interface de service
O Avec des types complexes
Déclarés dans un fichier XSD (XML Schema) séparé
Ou déclarés dans le fichier WSDL
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 18
Exercice
Annoter ce WSDL de vos commentaires :à quoi il sert, comment
s’en servir d’un point de vue client, quelles données vont circuler
quand on l’utilise, etc.
Cliquez ici pour visualiser le Fichier WSDL
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 19
Solution
Ce service web offre une unique opération : sur envoi d’un
message de type GetLastTradePrice, l’opération nommée
GetLastTradePrice va s’exécuter. L’URL pour déclencher cette
opération depuis un navigateur web devrait
[Link]
Symbol=MonEntreprisePreferee.
Le message sera véhiculé par une enveloppe SOAP (on a
défini un soap binding). Le type de donnée en entrée est un
tickerSymbol prenant une valeur de type chaine de
caractères. En réponse, on obtient un price que l’on peut
interpréter comme un flottant.
14/12/2017 Dr BRAHAMI EL BOUHISSI - Services Web - WSDL 20