Vous êtes sur la page 1sur 41

Faculté des Sciences de Sfax

Architecture SOA et services web

Chapitre 3: SOAP

.
Dr.Ing. Raouia Bouabdallah

.
2021/2022
Protocole SOAP

• SOAP (Simple Object Access Protocol)


• Une spécification de communication entre les Web Services par
Chapitre 3: SOAP

échange de messages en XML

• Il est employé pour implémenter des services Web

• Il est une recommandation du W3C

• Il repose entièrement sur des standards.

• Il est portable

• Il est interopérable

• Il est simple et léger

Dr. Ing. Raouia Bouabdallah


2
Protocole SOAP
Principe fonctionnement SOAP
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


3
Mode de fonctionnement
Chapitre 1: Technologies XML

Dr. Ing. Raouia Bouabdallah


4
Protocole SOAP

• Un message SOAP doit :


➢ Etre codé en XML
➢Avoir une enveloppe SOAP
Chapitre 3: SOAP

➢Avoir un entête SOAP(header)


➢Avoir un corps SOAP(body)

• Un message SOAP ne doit pas:

➢ Contenir une référence à une DTD.

Dr. Ing. Raouia Bouabdallah


5
Protocole SOAP
Message SOAP
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


6
Protocole SOAP
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


7
Protocole SOAP
<SOAP-ENV:Header>

• C'est un bloc optionnel qui contient des informations d'en-têtes sur le


message.
Chapitre 3: SOAP

• La balise <SOAP-ENV:Header> permet de passer dans le message


des informations complémentaires.
• Informations de l’entête <HEADER>
• Entrées non applicatives(transaction, session…), identifiants,
certificats de sécurité.
• Si il est présent, ce bloc doit toujours se trouver avant le bloc Body à
l'intérieur du bloc Envelope.

Dr. Ing. Raouia Bouabdallah


8
Protocole SOAP

<SOAP-ENV:BODY>

• Informations du corps <SOAP-ENV:BODY>


• Représentation d’un appel de procédures par un ensemble d’entrées.
Chapitre 3: SOAP

• Règles d’encodage des données


• Type simple
• Type composite (structure, vecteur) ,
• Schéma XML.
• http://www.w3.org/2002/06/soap-encoding

Dr. Ing. Raouia Bouabdallah


9
Protocole SOAP
Requête HTTP invoquant une méthode GetOrders
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


10
Protocole SOAP
Réponse à la méthode présidente: GetOrders
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


11
Protocole SOAP
Les données dans un message SOPA
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


12
Protocole SOAP
Les données dans un message SOPA
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


13
Protocole SOAP
Les données dans un message SOPA
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


14
Protocole SOAP
Les données dans un message SOPA
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


15
Protocole SOAP
Les données dans un message SOPA
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


16
Protocole SOAP
Les données dans un message SOPA
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


17
Protocole SOAP
Les données dans un message SOPA
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


18
Protocole SOAP

• Les mécanismes de sécurité peuvent être introduite au


niveau transport avec SOAP à travers le HTTP\s
Chapitre 3: SOAP

• WS-Security(Web Services Security) propose 2


mécanismes pour améliorer la sécurité d'une
transaction :
• la certification, pour l'attestation des documents,
• la confidentialité, pour protéger la diffusion du
message.

Dr. Ing. Raouia Bouabdallah


19
Protocole SOAP

• Inclusion de la signature dans l'entête de l'enveloppe


SOAP pour authentifier le corps du message.
<SOAP-SEC:Signature>
Chapitre 3: SOAP

• Le W3C met en évidence l'ajout d'attribut


"mustUnderstand" spécifiant si le traitement de la
signature est obligatoire.

Dr. Ing. Raouia Bouabdallah


20
WSDL (web Service Description Language)
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


21
WSDL (web Service Description Language)
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


22
WSDL (web Service Description Language)
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


23
WSDL (web Service Description Language)
Préfixe URI de l’espace denoms Description
wsdl http://schemas.xmlsoap Spécifiel’espacede noms WSDL du framework de
.org/wsdl/ définition deservice.
soap http://schemas.xmlsoap.org/ Spécifiel’espacede noms WSDL en casd’utilisation de
wsdl/soap/ la liaison WSDL SOAP.
http http://schemas.xmlsoap.org/ Spécifiel’espacede noms WSDL en casd’utilisation de
Chapitre 3: SOAP

wsdl/http/ la liaison WSDL HTTP GET/POST


soapenc http://schemas.xmlsoap.org/ Spécifiel’espacede noms d’encodagedécritdansle
soap/encoding/ protocole SOAP 1.1 ou1.2
soapenv http://schemas.xmlsoap.org/ Spécifie l’espace de noms d’enveloppedécrit dans le
soap/envelope/ protocole SOAP 1.1 ou1.2
xsi http://www.w3.org/2000/10/XM Spécifiel’espacede noms instance décritdans la
L Schema‐instance spécification XML Schema
(si cette spécification est utilisée pour définirles
types dedonnées).
xsd http://www.w3.org/2000/10 Spécifiel’espacede noms schéma décritdansla
/ XMLSchema spécification XML Schema
(si cette spécification est utilisée pour définirles
types dedonnées).
tns Divers Spécifie, par convention, l’espace de nomspropre au
document WSDL (tns = this namespace). Défini par le
concepteur dudocument
Dr. Ing. Raouia Bouabdallah
24
WSDL (web Service Description Language)
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


25
WSDL (web Service Description Language)
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


26
WSDL (web Service Description Language)
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


27
WSDL (web Service Description Language)
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


28
WSDL - Structure d’un WSDL : <Definition>
❑ L’élément définitionsspécifie que le nom du document est le SayhelloWSet
contient les différents Namespaces qui vont être utilisés tout le long du document.

❑ L’attribut targetNamespaceet une convention de XMLschema permettant au


Chapitre 3: SOAP

document WSDL de se référer .

<definitions name=« SayHelloWS"


targetNamespace="http://www.ecerami.com/wsdl/SayHelloWS.wsdl"

xmlns=http://schemas.xmlsoap.org/wsdl/
Spécification WSDL

xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/ Spécification SOAP


xmlns:xsd=http://www.w3.org/2001/XMLSchema > Spécification XML
Schema

Dr. Ing. Raouia Bouabdallah


29
WSDL - Structure d’un WSDL : <Definition>
L’utilisation des namespaces est important pour la différentiation des différents éléments
et permet au document de faire référence à plusieurs spécification externes, incluant la
spécification WSDL,la spécification SOAPet la spécification XML Schéma.
Chapitre 3: SOAP

<definitions name="SayHelloWS" targetNamespace="http://sayhelloWSpackage/"


xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://sayhelloWSpackage/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsp="http://www.w3.org/ns/ws‐policy"

Dr. Ing. Raouia Bouabdallah


30
WSDL - Structure d’un WSDL : <Types>
❑ L’élément typedécrit la structure de données transmises dans un
message.
❑ Contient les définitions de types utilisant un système de typage
par défaut qui est XML SchemaDefinition(XSD).
Chapitre 3: SOAP

❑ L’élément type peut contenir des types simples et complexes.

<definition….> xmlns:xsd=http://www.w3.org/2001/XMLSchema>
<types>
<xsd:schema…./>
</types> WSDL utilise XSD (XML Schema Definition )
</definition….> afin de garantir une interopérabilité maximale ainsi qu’une
indépendance au niveau des plates‐formes.

Dr. Ing. Raouia Bouabdallah


31
WSDL - Structure d’un WSDL : <Types>
Chapitre 3: SOAP

Dr. Ing. Raouia Bouabdallah


32
WSDL - Structure d’un WSDL : <Message>
❑ Les messages sont décomposés en une ou plusieurs parties(part).
❑ Chaque partie est associée à un type de message à l’aide de
l’attribut < type>.
Chapitre 3: SOAP

❑ A chacun des parties du message (Part) lui est définis un


attribut nameunique.

Dr. Ing. Raouia Bouabdallah


33
WSDL - Structure d’un WSDL : <Message>
❑ Les éléments message sont situés directement sous l’élément
racine du document WSDL.
Chapitre 3: SOAP

<definitions ....>
<message name="messageName1">
<part name="Att1" type="value2"/>

</message>
<message name="messageName2">

</message>

</definitions>

Dr. Ing. Raouia Bouabdallah


34
WSDL - Structure d’un WSDL : <Message>

▪ Deux éléments messages sont définis.


▪ Le premier représente un message de requête: Hello(Request).
▪ le second représente un message de réponse: HelloResponse.
▪ Chaquemessagecontientunélément part.
Chapitre 3: SOAP

▪ Pour la requête, part spécifie les noms des paramètres de la fonctions


avec leur types: le paramètre firstName , type: xsd:string
▪ Pour la réponse, part spécifie les valeurs de retour de la fonction. Dans ce
cas on spécifie la valeur retournée par greeting. Si la fonction possède plusieurs
arguments ou retourne
plusieurs valeurs, on spécifiera
<WSDL: messagename="Hello"> multiple éléments part.

< WSDL: part name="firstName" type="xsd:string"/>


</ WSDL: message>
< WSDL: messagename="HelloResponse">
< WSDL: part name="greeting" type="xsd:string"/>
</ WSDL: message>
Dr. Ing. Raouia Bouabdallah
35
WSDL - Structure d’un WSDL : <PortType>
❑ Les portTypessont utilisés pour définir les traitements offerts par un serviceweb.

❑ Un portTypeest composé d'un ensemble d'opérations abstraites.

❑ Une opération est composée d’un message pour l’appel (Input) et un message
Chapitre 3: SOAP

pour le retour (Output).

Dr. Ing. Raouia Bouabdallah


36
WSDL - Structure d’un WSDL : <PortType>
❑ Un portTypepeut comporter plusieurs types opérations.
❑ Les opérations d’un portType peuvent être de natures suivantes :

✓ Opération unidirectionnelle
Chapitre 3: SOAP

✓ Requête/réponse
✓ Notification

Dr. Ing. Raouia Bouabdallah


37
WSDL - Structure d’un WSDL : <PortType>
Opérationunidirectionnelle (One‐way) :
❖ le fourniseur reçoit un message mais ne renvoie jamais de réponse.
❖ Ce type d’opération définit un message d’entrée (input), mais pas de message de sortie
(output), nierreur.
Chapitre 3: SOAP

Client <Input> Service


One‐Way

Cette configuration s’exprime enWSDL

<operation name="nmOperation">
<input name="nmAtt" message="value"/>
</operation>

Dr. Ing. Raouia Bouabdallah


38
WSDL - Structure d’un WSDL : <PortType>
Requête/réponse (Request‐response)
❖ le service reçoit un message et envoie une réponse.
❖ L’opération possède un élément input,suivi par un élément output.
❖ Un élément optionnel Faultpeut être spécifié pour encapsuler une erreur .
Chapitre 3: SOAP

<Input> 1
Client Service
<output> 2

Request‐response
Cette configuration s’exprimeenWSDL
<operation name="nmOper" parameterOrder="value">
<input name="nmAtt" message="value"/>
<output name="nmAtt" message="value"/>
<fault name="err"message="qvalue"/>*
</operation>

Note : * veux dire optionnel


Dr. Ing. Raouia Bouabdallah
39
WSDL - Structure d’un WSDL : <PortType>
Notification
❖ mode de communication selon lequel un fournisseur (service) envoie un
message, mais sans besoin de réponse du client.
❖ L’opération possède un seul élément output.
Chapitre 3: SOAP

Client <output> Service


Notification

Cette configuration s’exprimeenWSDL


<operation name="nmOperation">
<output name="nmAtt"message="value"/>
</operation>

Dr. Ing. Raouia Bouabdallah


40
WSDL - Structure d’un WSDL : <PortType>
Notification
❖ mode de communication selon lequel un point final (service) envoie un
message, mais sans besoin de réponse du client.
❖ L’opération possède un seul élément output.
Chapitre 3: SOAP

Client <output> Service


Notification

Cette configuration s’exprime ainsi enWSDL


<operation name="nmOperation">
<output name="nmAtt"message="value"/>
</operation>

Dr. Ing. Raouia Bouabdallah


41

Vous aimerez peut-être aussi