soap, wsdl et uddi
DESCRIPTION
document informationnel concernant Soap,wsdl et uddiTRANSCRIPT
SOAP, WSDL ET UDDI
Réalisé: TRABELSI. L
PLAN
SOAP WSDL UDDI
SOAP
Simple Object Access Protocol: SOAP permet une normalisation des échanges de données. Les données sont encodées en XML et échangées par des appels de procédures à distance (RPC) en utilisant HTTP/SMPT/POP comme protocole de communication.
Standard W3C Simple, extensible et permet le diagnostic des
erreurs Fonctionne de manière synchrone et asynchrone. Indépendant de la plate-forme et du langage
Structure du message SOAP
SOAP ENVELOPE
SOAP HEADER
Envelope Contenant d’un message, Élément racine XML, Schéma XML
http://www.w3.org/2002/06/soap-envelope/
Header (optionnel) Entrées non applicatives, Ex : Numéros de session.
Body (obligatoire) Entrées applicatives, Ex : nom des procédures,
nom des paramètres, valeurs de paramètres,
Retour d’erreurs.
SOAP BODY
HEADER ENTRY
BODY ENTRY
SOAP ENVELOPPE
Structure du message SOAP
L’enveloppe: Élément obligatoire dans un message SOAP Il permet de spécifier la version de SOAP utilisée, en utilisant un
espace de nom http://www.w3.org/2003/05/soap-envelope Il permet aussi de spécifier les règles d’encodage (sérialisation et
désérialisation) mises en oeuvre dans le message (encodingStyle)
<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> ---------------------------!!Contenu de la requête!!--------------------------------- </soap:Body> </soap:Envelope>
Structure du message SOAP
L’Entête : Élément optionnel Il contient des éléments spécifiques à
l’application Il peut contenir trois types d’éléments:
Actor: Permet de préciser le destinataire final du message (message path)
MustUnderstand (0,1): Spécifie que le récepteur du message doit obligatoirement comprendre cet élément. Si ce n’est pas le cas, le récepteur arrête tout traitement
Encodingstyle: Même définition que pour l’enveloppe.
Structure du message SOAP
Le corps: obligatoire Contient les données ( paramètres) utilisées pour un appel de procédure distante effectué par le destinataire final. Ce ne sont pas des éléments SOAP, mais des éléments spécifiques à l’application.
Requête SOAP
<?xml version="1.0?><soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap-envelopesoap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body><m:GetPrice
xmlns:m="http://www.leaderprice.com/prices" ><m:Item>Apples</m:Item></m:GetPrice> </soap:Body>
</soap:Envelope>
<?xml version="1.0?><soap:Envelope xmlns:soap=
http://www.w3.org/2001/12/soap-envelopesoap:encodingStyle="http://www.w3.org/2001/12/soap-
encoding">
<soap:Body><m:GetPrice
xmlns:m="http://www.leaderprice.com/prices" >
<m:Item>Apples</m:Item></m:GetPrice>
</soap:Body></soap:Envelope>
Réponse SOAP
<?xml version="1.0"?><soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body><m:GetPriceResponse
xmlns:m="http://www.leaderprice.com/prices" ><m:Price>1.90</m:Price></m:GetPriceResponse>
</soap:Body></soap:Envelope>
<?xml version="1.0"?><soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-
encoding">
<soap:Body><m:GetPriceResponse
xmlns:m="http://www.leaderprice.com/prices" >
<m:Price>1.90</m:Price></m:GetPriceResponse>
</soap:Body></soap:Envelope>
Retour d’erreur
Les descripteurs d’erreurs Faultcode: identifier l’erreur
Version Mismatch: Le namespace donné ne permet pas de valider le message
MustUnderstand : L’élément de l’entête n’a pas été compris
Client: Le message n’a pas été correctement formé ou il manque certaines informations.
Server: Serveur non accessible ou erreur de décodage du message.
FaultString: Permet de préciser la nature de l’erreur. FaultActor: Information sur la localisation de l’erreur. Detail: Erreur spécifique à l’application liée aux
données présentes dans le corps du message.
Transport de messages SOAP
HTTP (HyperText Transfer Protocol) Protocole bidirectionnel synchrone : requête/réponse Transfert de fichiers (habituellement HTML) Requête méthode GET/méthode POST Simple et disponible sur toute plate-forme
Client HTTP
ServeurHTTP
POST www.loria.fr/script HTTP/1.1accept: text/htmlaccept: image/gifcontent-type: application/x-www-form-urlencoded
parametre1=valeur1¶metre2=valeur2
HTTP/1.0 200 OKcontent-type: text/html
<HTML><HEAD><TITLE>LORIA …
Exemple retour d’erreur
<env:Body> <env:Fault> <faultcode>env:VersionMismatch> </faultcode> <faultstring>Version Mismatch</faultstring> </env:Fault> </env:Body>
Liaison SOAP/HTTP
SOAP utilise le mode POST de HTTP Requête SOAP/HTTP
Ajout du champs "action" Acheminement et Filtrage par les serveurs HTTP
Content-Type: application/soap+xml Message SOAP
Réponse SOAP/HTTP Content-Type: application/soap+xml Etat 2xx
Requête SOAP reçue et traitée avec succès, Message SOAP envoyée contient la réponse
ou rien (one-way model). Etat 500
Requête SOAP échouée, Envoi d’un message SOAP contenant le retour d’erreur.
HTTP
MessageSOAP
GET /Leaderprice HTTP/1.1Host: www.leaderpriceserver.comContent-Type: text/xml; charset= " ISO-8859-1"Content-Length: nnnnAction: " www.leaderprice.com/prices"
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/" env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/>
</env:Envelope>
<env:Body><m:GetPrice
xmlns:m="www.leaderprice.com/prices"><m:Item>Apples</m:Item>
</m:GetPrice> </env:Body>
Réponse SOAP/HTTP
HTTP/1.1 200 OKContent-Type: application/soap+xml; charset=" ISO-8859-1"Content-Length: nnnn
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/" env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/>
</env:Envelope>
<env:Body>
<m:GetPriceResponse xmlns:m="www.leaderprice.com/prices">
<Price>1.90</Price></m:GetPriceResponse>
</env:Body>
Réponse SOAP/HTTP (erreur)
HTTP/1.1 500 Internal Server ErrorContent-Type: application/soap+xml; charset=" ISO-8859-1"Content-Length: nnnn
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/" env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/>
</env:Envelope>
<env:Body> <env:Fault> <faultcode>SOAP-ENV:MustUnderstand</faultcode> <faultstring>SOAP Must Understand Error</faultstring> </env:Fault> </env:Body>
WSDL
Web Services Description Language : Une description en XML des services web.
Il décrit de manière abstraite et indépendante du langage de programmation, l’ensemble des fonctionnalités offertes par un service. Il permet de connaître les protocoles, les serveurs, les ports, le format des messages, les entrées, les sorties, les exceptions possibles et les opérations réalisées par un service web.
Structure du message WSDL
UDDI
Universal Description, Discovery and Integration Standard de l’ « Organization for the Advancement oF
Structured Information Standard » (avril 2003) UDDI permet aux fournisseurs de services de s’inscrire et
de répertorier les services qu’ils proposent. UDDI ne contient que des références associées à des
services, et non les services eux-mêmes Il peut être public ou privé
Les annuaires publics sont hébergés par des sociétés comme IBM ou Microsoft.
Les annuaires publics sont moins développés que les annuaires privés parce qu’ils ne sont pas suffisamment sécurisés.
Les annuaires privés peuvent être hébergés par une société quelconque sur un réseau privé ou sur internet.
UDDI
L’annuaire UDDI est composé de: Pages blanches: Contiennent des
informations sur l’entreprise comme le nom de la société, l’adresse
Pages jaunes: Contiennent la description des services web, au format WSDL, déployés par l’entreprise.
Pages vertes : Contiennent les informations techniques détaillées sur les services fournis (processus métier, description de service….)
UDDI
Pages blanches ou businessEntity: Décrites sous la forme d’un schéma XML. Elles contiennent les éléments relatifs à
l’entreprise qui propose le service (nom, coordonnées, secteur d’activité, l’adresse du site web…)
UDDI
Pages jaunes ou ServiceEntity: Décrites aussi sous la forme d’un schéma
XML C’est un ensemble de services proposés
répondant à un besoin métier spécifique Contiennent aussi la description des
services web proposés par ce dernier (nom du service, description, code…)
Une entreprise peut avoir plusieurs métiers et donc plusieurs businessService.
UDDI
pages vertes: Contiennent les informations techniques sur un service web.
Contiennent aussi les références aux tmodels (spécification des interfaces des services web)
Bibliographie
Introduction aux Web Services (2010), Rahee Ghurbhurn, Ecole Nationale Supérieure de Mines,
WSDL : Décrire et configurer (2010), Mickaël BARON.