Vous êtes sur la page 1sur 16

Master 2 IDTW 2013/2014

Description des services web


avec WSDL
( Partie III )

29/11/2013 Service web et structure de données H. Meziane 1


Liaisons standards
 L’élement Binding décrit la relation entre les
opérations définies dans un type de port et les
formats de message et les protocoles qui prendront
en charge ces échanges.
 La spécification WSDL décrit deux liaisons standards :
 la liaison avec le protocole SOAP ;
 la liaison avec le protocole HTTP GET/POST.

29/11/2013 Service web et structure de données H. Meziane


2
Liaison avec le protocole SOAP

 La liaison SOAP étend WSDL avec les éléments


d’extensions suivants :
 soap: binding
 soap:operation
 soap:body

29/11/2013 Service web et structure de données H. Meziane


3
Exemple WSDL : HelloService.wsdl
<binding name="Hello_Binding" type="tns:Hello_PortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</output>
</operation>
</binding>
29/11/2013 Service web et structure de données H. Meziane
4
Soap: binding (1/3)

L’élément SOAP binding permet


d’indiquer que la liaison est associée au
format de message du protocole SOAP.
Cet élément ne fait pas état de l’encodage
ni du format de message.
L’élément Soap: binding doit être présent
quand on utilise la liaison soap.

29/11/2013 Service web et structure de données H. Meziane


5
Soap: binding (2/3)
< binding …….">
<soap:binding style= " rpc/document"
transport="http://schemas.xmlsoap.org/soap/http"/>
……….
• La valeur de l’attribut style est la valeur par défaut pour chaque
opération indiquée. Si cet attribut est omis il lui est assigné par
défaut le style « document ».

Rappel: La codification de cette liaison sont, suivant le cas, orientées RPC (Remote
Procedure Call), c’est-à-dire que les messages associés traitent des paramètres et
des valeurs de retour (et sont donc conformes au format RPC de SOAP 1.1 : voir
http://www.w3.org/TR/SOAP/#_Toc478383532), ou orientées document, c’est-à-
dire que ces messages traitent des documents (et sont donc conformes au format
standard de SOAP 1.1).
29/11/2013 Service web et structure de données H. Meziane
6
Soap: binding (3/3)

< binding …….">


<soap:binding style=« rpc/document"
transport="http://schemas.xmlsoap.org/soap/http"/>
……….
• La valeur de l’attribut transport(obligatoire) indique le mode de
transport des messages SOAP:
 http://schemas.xmlsoap.org/soap/http, correspond à
la liaison HTTP dans la specification SOAP.
 http://schemas.xmlsoap.org/soap/smtp indique la
liaison de transport SMTP.

29/11/2013 Service web et structure de données H. Meziane


7
Exemple WSDL : HelloService.wsdl
…….
<binding name="Hello_Binding"
type="tns:Hello_PortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
……..
Le nom de la liason est hello_binding dont l’attribut type fait référence au portType qu’elle relie, c.a.d
tns:Hello_PortType.
La valeur par defaut de l’element style est rpc ( les message de l’operation sayhello ont des parametres et
des valeur de retour.
L’element transport indique le mode de transport qui correspond à la liaison HTTP dans la specification
SOAP.

29/11/2013 Service web et structure de données H. Meziane


8
soap:operation (1/2)
Cet élément fournit globalement les informations sur l’opération :

<binding .... >


<operation .... >
<soap:operation soapAction="uri" style="rpc|document">
……
</operation>
</binding>
• L’attribut soapAction spécifie la valeur de l’en-tête SoapAction pour
cette opération. Cet attribut est utilisé pour indiquer l’intention de la
requête. Ceci permet de déterminer rapidement la nature de la requête,
sans examiner le message SOAP. soapAction="uri" est obligatoire pour
le protocole SOAP 1.1 a travers la liaison HTTP. En revanche, pour les
liaisons SOAP sur d’autres protocoles, il ne doit pas être précisé, et dans
ce cas, l’élément opération peut être omis.

29/11/2013 Service web et structure de données H. Meziane


9
soap:operation (2/2)
<binding .... >
<operation .... >
<soap:operation soapAction="uri" style="rpc|document">
……
</operation>
</binding>

• L’attribut style indique si l’opération est orientée RPC ou orienté


documents. Cette information peut être utilisée pour sélectionner
un modèle de programmation approprié. La valeur de cet attribut
affecte également la manière dont le corps du message SOAP est
construit.
• Si l’attribut style n’est pas spécifié sa valeur par défaut est
indiquée dans soap:binding. Si l’element soap:binding ne spécifie
pas un style, il lui est assigné par défaut la valeur document.
29/11/2013 Service web et structure de données H. Meziane
10
Exemple WSDL : HelloService.wsdl

<binding name="Hello_Binding" type="tns:Hello_PortType">


<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
…..…
</input>
<output>
…..…
</output>
</operation>
</binding>

29/11/2013 Service web et structure de données H. Meziane


11
soap:body
Cet élément permet de spécifier les détails des inputs et outputs des
messages. Dans notre exemple, L’élément body spécifie le style
d’encodage SOAP et l’URI du namespace associée avec le service
spécifié.
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice«
use="encoded"/>
</input>
L’attribut use indique si les parties du message sont encodées en utilisant les règles
d’encodages.

29/11/2013 Service web et structure de données H. Meziane


12
Principes de description d’un service (1/2)
 Les opérations et les messages sont décrits d’une manière
abstraite (ou réutilisable) et ils sont liés à un protocole de
réseau concret et un format de message pour définir une
destination.
 Les opérations dans le fichier WSDL peuvent être orientées
document ou orientées RPC comme définit par l’attribut style
de l’élément <soap:binding> dans le fichier.
 Lorsque le fichier WSDL identifie une simple opération du
protocole SOAP comme orienté document, les messages input
(requête) et output (réponse) spécifiés pour cette opération
contiennent des documents XML, alors que les opérations
orientées RPC ont des messages input qui contiennent les
paramètres d’entrée des opérations et messages output qui
contiennent les résultats des opérations.
29/11/2013 Service web et structure de données H. Meziane
13
Principes de description d’un service (2/2)
 Toute description d’un service comporte deux parties :
L’interface du service
L’implémentation du service
Lien
Définition de Type de Port
l’interface
du service Message
Fig. 1 - Eléments de description
Type
d’un service

Définition de Service
l’implémentation
du service Port

29/11/2013 Service web et structure de données H. Meziane


14
Relation entre la partie interface et implémentation WSDL
 La définition d’une interface est une définition abstraite ou
réutilisable de service qui peut être instanciée et référencée par
différentes définitions d’implémentation (java, web,…) de service.

<définitiopn….>
WSDL <types…>
Service interface <import…>
Document <message…>
<portType…>
<binding…>
</definition>

<définitiopn….>
WSDL service <import…>
Implémentation <service…>
Document <port…>
</service>
</definition>

29/11/2013 Service web et structure de données H. Meziane


15
Relation entre la partie interface et implémentation WSDL
 L’interface contient des éléments WSDL qui constituent la partie
réutilisable de la description du service :
 type : pour décrire les types de données complexes;
 message : pour décrire les types de données XML et les
paramètres dans le message;
 portType : pour définir les opérations (signatures) du service
Web.
 binding : pour décrire le protocole, le format de données et
d’autres attributs nécessaires à la spécification d’une
interface spécifique.
 La définition de l’implémentation de service est un document
WDSL. WSDL permet de décrire et de documenter facilement
les services Web.
29/11/2013 Service web et structure de données H. Meziane
16

Vous aimerez peut-être aussi