Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Mohamed HAMMOUDA
1
Les Web Services : SOAP
2
Les Web Service : Une définition
3
Les composants des Web Service
4
SOAP Echange de messages à travers soap
HTTP
RPC
local
Réponse
Parser Parser
XML Serveur
XML
d'application
CLIENT SERVEUR
5
SOAP Le protocole SOAP (1/4)
6
SOAP Le protocole SOAP (2/4)
Prenons l’exemple d’un message SOAP appelant une méthode echoString(string), qui prend en
paramètre une chaîne de caractères.
7
SOAP Le protocole SOAP (3/4)
<Envelope>
<Header>
<Transaction>3<Transaction>
</Header>
<Body>
<echoStringResponse>
<return>Hello!</return>
</echoStringResponse>
</Body>
</Envelope>
Si une erreur se produit, la réponse contient l’élément Fault (dans le corps du message).
8
SOAP Le protocole SOAP (4/4)
Dans le cas où des données binaires devraient transiter (comme une image par
exemple), il est également possible d’envoyer un message SOAP avec
attachement et ce grâce à un message MIME (Multimedia Internet Mail
Extension).
Pour pouvoir référencer une pièce jointe depuis le corps du message SOAP, une
URI est utilisée, faisant référence à la pièce jointe.
9
SOAP La couche transport
Le protocole HTTP (HyperText Transfert Protocol) est l’un des protocoles les
plus utilisés sur Internet. La plupart des clients web (IE, …) l’utilisent pour
communiquer avec un serveur.
Ce protocole définit le format des requêtes qu’un client peut envoyer ainsi que les
résultats qu’il peut attendre.
Chaque requête contient une URL qui contient l’identifiant d’un objet demandé par
le client (ex.: pages HTML, images, …).
10
SOAP La couche transport (1/3)
• Quand un client envoie une requête, il l’envoie grâce à une méthode (GET, POST ou HEAD), suivie d’une
URI (Uniform Ressource Identifier) qui identifie la ressource demandée. Après cette URI se trouve la
version du protocole HTTP (1.0 ou 1.1) ;
• Dans les lignes suivantes se trouvent les entêtes qui précisent par exemple quels sont les documents
acceptés par client, de quel type de client il s’agit, …
• Après les entêtes se trouve le corps de la requête, rempli seulement lorsque la méthode POST est utilisée
Les méthodes
GET Utilisé pour demander un document : GET index.html
HEAD Comme GET, mais aucune information ne se trouve dans le corps du résultat.
Notamment utilisé pour voir si un document a été mis à jour.
• La réponse du serveur contient le statut de la réponse, les entêtes puis le corps de la réponse (par
exemple le contenu d’un document HTML ;
• Différents statuts existent. Les principaux sont : 200 (ok), 400 (mauvaise requête), 403 (client non
autorisé), 404 (document inexistant), 500 (erreur d’exécution –sur le serveur). 11
SOAP La couche transport (2/3)
Il décrit :
A noter : WSDL pourrait décrire n’importe quel protocole de messagerie basé sur
XML.
A noter (2) : les documents WSDL ne sont jamais générés par des développeurs,
mais le sont grâce à des outils qui automatisent la tâche (par exemple, il existe
des outils qui prennent une classe Java et qui créent le WSDL correspondant).13
SOAP La couche transport (3/3)
Ci-dessous le document WSDL décrivant un WS proposant une méthode d’addition.
<wsdl:definitions targetNamespace="http://192.168.0.12:8080/axis/SimpleWS.jws"/>
<wsdl:message name="addRequest">
<wsdl:part name="i1" type="xsd:int"/>
<wsdl:part name="i2" type="xsd:int"/> Décrit les messages
</wsdl:message> qui circulent
< <wsdl:portType name="SimpleWS">
<wsdl:operation name="add" parameterOrder="i1 i2">
Abstraction décrivant une opération
<wsdl:input message="impl:addRequest" name="addRequest"/>
<wsdl:output message="impl:addResponse" name="addResponse"/>
</wsdl:operation>
</wsdl:portType>
Protocole d’accès et format des
<wsdl:binding name="SimpleWSSoapBinding" type="impl:SimpleWS">
messages
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="add">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="addRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://192.168.0.12:8080/axis/SimpleWS.jws" use="encoded"/>
</wsdl:input>
<wsdl:output name="addResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://192.168.0.12:8080/axis/SimpleWS.jws" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SimpleWSService">
<wsdl:port binding="impl:SimpleWSSoapBinding" name="SimpleWS">
<wsdlsoap:address location="http://192.168.0.12:8080/axis/SimpleWS.jws"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Définit comment est disponible
(SOAP) la méthode et à quelle adresse
14
SOAP Le UDDI
1 L’entreprise A
développe et déploie
un service web (WS)
Entreprise WS L’entreprise A
A
répond à B
6
5
L’entreprise B
invoque WS
2
L’entreprise A
publie WS
Entreprise
L’entreprise B, à la recherche d’un service du B
type WS, envoie une demande de recherche
au serveur UDDI
3
4
Le serveur UDDI renvoie l’adresse
de WS (plus d’autres info comme la
description du service. cf plus loin)
Serveur
UDDI 16
SOAP SOAP : Conclusion
UDDI est un annuaire qui répertorie les sociétés et les services web
qu’elles proposent ; UDDI est basé sur une architecture distribuée.
17