Service Web Expo SOAP
Service Web Expo SOAP
Service Web Expo SOAP
*********
République du Bénin
****
Filière : Informatique 3
THEME : SOAP
Membres du groupe
1- AGOSSEVI Ange-Marie
2- AZONDJEDO Dolores
3- OMITCHO Svenson
Supervisé par
ADEKAMBI Akambi
2
I. Service Web
A. Qu’est-ce qu’un service Web ?
3
II. SOAP
SOAP est un protocole de communication entre application basé sur le
langage XML. Initialement SOAP désignait l’acronyme de Simple
Object Access Protocol. Il est une recommandation du W3C. (World
Wide Web Consortium). D’après cette recommandation, SOAP est
destiné à être un protocole léger dont le but est d’échanger des
informations structurées dans un environnement décentralisé et
distribué. SOAP a été implémenté en gardant comme optique deux
objectifs principaux : la simplicité et la possibilité d’extension. Pour
cela, ce protocole utilise la technologie XML (Extended Markup
Language) pour définir un format de message qui puisse être échangé
sur différents protocoles de transport.
1. Origines
- 1998 : proposition d'un groupe de sociétés
- Microsoft, DevelopMentor et Userland Software En 1999 :
soumission à l'IETF et émission d'une spécification officielle
- Arrivée d'autres acteurs importants : IBM, Lotus, Compac,
IONA, Intel… En 2001 : Proposition de SOAP 1.1
- 8 mai 2001 : Diffusion des spécifications de SOAP 1.1 par le
W3C
- 17 décembre 2001 : SOAP 1.2 Working draft du W3C.
2. Objectifs
Assurer la communication entre applications d’une même
entreprise (intranet)
Assurer les échanges interentreprises entre applications et
services Web
5
Les règles d’encodage qui a l’identifiant suivant :
"http://schemas.xmlsoap.org/soap/encoding/"
Notons qu’une message SOAP ne doit pas contenir de DTD.
L’enveloppe SOAP
Elle est la racine d’un message SOAP identifiée par la balise
<soapenv:Enveloppe>. C’est lui qui contient le message et ses
différentes sous-blocs. Il s'agit du bloc racine XML. Il peut contenir
un attribut encodingStyle dont la valeur est une URL vers un fichier
de typage XML qui décrira les types applicables au message SOAP.
La spécification impose que la balise et les sous balises soient
explicitement associées à un namespace. La spécification SOAP
définit deux namespaces :
SOAP-ENV ou soapenv :
http://schemas.xmlsoap.org/soap/envelope/
SOAP-ENC : http://schemas.xmlsoap.org/soap/encoding/
Header : c'est un bloc optionnel qui contient des informations d'en-
têtes sur le message. S’il est présent, ce bloc doit toujours se trouver
avant le bloc Body à l'intérieur du bloc Envelope.
Body : c'est le bloc qui contient le corps du message. Il doit
absolument être présent de manière unique dans chaque message et
être contenu dans le bloc Envelope. SOAP ne définit pas comment est
structuré le contenu de ce bloc. Cependant, il définit le bloc Fault qui
peut s'y trouver.
Fault : ce bloc est la seule structure définie par SOAP dans le bloc
Body. Il sert à reporter des erreurs lors du traitement du message, ou
lors de son transport. Il ne peut apparaître qu'une seule fois par
message. Sa présence n'est pas obligatoire.
6
L’en-tête d’un message SOAP
L’en-tête d’un message SOAP est utilisé pour transmettre des
informations supplémentaires sur ce même message
L’en-tête est défini par la balise <SOAP-ENV: Header>
L’élément peut être facultatif
Doit être placé avant le corps
Différents usages de l’en-tête ?
Informations authentifiant l’émetteur
Contexte d’une transaction
Pour certains protocoles de transport (FTP par exemple), l’en-
tête peut être utilisé pour identifier l’émetteur du message
Un message SOAP peut transiter par plusieurs intermédiaires
avant le traitement par le récepteur final
Le Corps SOAP
Le corps d’un message SOAP est constitué par un élément
<SOAP-ENV:Body>
L’élément <SOAP-ENV: Body> peut contenir soit
Une erreur en réponse à une requête (élément <SOAP-ENV :
Fault> )
Des informations adressées au destinataire du message SOAP
respectant un encodage déterminé
L’encodage des informations est précisé par les bindings du
document WSDL Attribut style (Document et RPC)
Attribut use (encoded et litteral)
Pour faire simple nous utiliserons les services Web dans le cadre
de l’appel à une procédure distante
7
7. Utilisation de SOAP dans une architecture client serveur
8
9
Annexe
1- Aborescence
2- Client.php
10
3- serveur.php
11
Autre source : https://deltastateonline.github.io/soap.tutorial
12