SlideShare une entreprise Scribd logo
1  sur  23
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
   Envelope
       Contenant d’un message,
                                                       SOAP
       Élément racine XML,
        Schéma XML                                     ENVELOPPE
                                                       SOAP HEADER
           http://www.w3.org/2002/06/soap-envelope/
   Header (optionnel)
                                                          HEADER ENTRY
       Entrées non applicatives,
       Ex : Numéros de session.
   Body (obligatoire)                                   SOAP BODY
       Entrées applicatives,
                                                       SOAP ENVELOPE
       Ex : nom des procédures,
        nom des paramètres,
        valeurs de paramètres,                             BODY ENTRY
       Retour d’erreurs.
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
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
<?xml version="1.0?>
   xmlns:soap=http://www.w3.org/2001/12/soap-envelope
        <soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap-
   soap:encodingStyle="http://www.w3.org/2001/12/soap-
envelope
   encoding">
        soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

        <soap:Body>
               <soap:Body>
                        <m:GetPrice
                <m:GetPrice
                         xmlns:m="http://www.leaderprice.com/prices" >
                  xmlns:m="http://www.leaderprice.com/prices" >
                        <m:Item>Apples</m:Item>
                <m:Item>Apples</m:Item>
                        </m:GetPrice>
                </m:GetPrice>
                </soap:Body>
       </soap:Envelope>
        </soap:Body>
   </soap:Envelope>
Réponse SOAP

<?xml version="1.0"?>
   <soap:Envelope
<?xml version="1.0"?>
   xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
        <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-
   soap:encodingStyle="http://www.w3.org/2001/12/soap-
envelope"
   encoding">
        soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

              <soap:Body>
        <soap:Body>
                      <m:GetPriceResponse
              <m:GetPriceResponse
                       xmlns:m="http://www.leaderprice.com/prices" >
                        <m:Price>1.90</m:Price>
  xmlns:m="http://www.leaderprice.com/prices" >
                      </m:GetPriceResponse>
              <m:Price>1.90</m:Price>
              </soap:Body>
      </soap:Envelope>
              </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

                  POST www.loria.fr/script HTTP/1.1
                  accept: text/html
                  accept: image/gif
                  content-type:
                  application/x-www-form-urlencoded
Client            parametre1=valeur1&                     Serveur
HTTP              parametre2=valeur2
                                                           HTTP
                  HTTP/1.0 200 OK
                  content-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
GET /Leaderprice HTTP/1.1
  SOAP utilise le mode POST de HTTP
Host: www.leaderpriceserver.com
  Requête SOAP/HTTP                                                     HTTP
Content-Type: text/xml; charset= " ISO-8859-1"
       Ajout du champs "action"
Content-Length: nnnn
Action: "  Acheminement et Filtrage par les serveurs HTTP
          www.leaderprice.com/prices"                                   Message
                                                                         SOAP
     Content-Type: application/soap+xml
 <env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/"
     Message SOAP
      env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/>
    Réponse SOAP/HTTP
       Content-Type: application/soap+xml
      Etat 2xx
      <env:Body>
            Requête SOAP reçue et traitée avec succès,
                  <m:GetPrice xmlns:m="www.leaderprice.com/prices">
            Message SOAP envoyée contient la réponse
                           <m:Item>Apples</m:Item>
             ou rien (one-way model).
                  </m:GetPrice>
       Etat 500
      </env:Body>
        Requête SOAP échouée,
        Envoi d’un message SOAP        contenant le retour d’erreur.
 </env:Envelope>
Réponse SOAP/HTTP
HTTP/1.1 200 OK
Content-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:Body>
               <m:GetPriceResponse
      xmlns:m="www.leaderprice.com/prices">
                         <Price>1.90</Price>
               </m:GetPriceResponse>
       </env:Body>
 </env:Envelope>
Réponse SOAP/HTTP (erreur)
HTTP/1.1 500 Internal Server Error
Content-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:Body>
          <env:Fault>
            <faultcode>SOAP-ENV:MustUnderstand</faultcode>
            <faultstring>SOAP Must Understand Error</faultstring>
          </env:Fault>
       </env:Body>
 </env:Envelope>
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.

Contenu connexe

Tendances

Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Les web services
Les web servicesLes web services
Les web servicesdihiaselma
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web Nazih Heni
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpelLilia Sfaxi
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Migration d'une Architecture Microservice vers une Architecture Event-Driven ...
Migration d'une Architecture Microservice vers une Architecture Event-Driven ...Migration d'une Architecture Microservice vers une Architecture Event-Driven ...
Migration d'une Architecture Microservice vers une Architecture Event-Driven ...Daniel Rene FOUOMENE PEWO
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 

Tendances (20)

Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Les web services
Les web servicesLes web services
Les web services
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Migration d'une Architecture Microservice vers une Architecture Event-Driven ...
Migration d'une Architecture Microservice vers une Architecture Event-Driven ...Migration d'une Architecture Microservice vers une Architecture Event-Driven ...
Migration d'une Architecture Microservice vers une Architecture Event-Driven ...
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 

Similaire à Soap, wsdl et uddi

Presentation
PresentationPresentation
Presentationbois
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnHINDGUENDOUZ
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
BordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaBordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaCamblor Frédéric
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfngombeemmanuel
 
Introduction à la sécurité des WebServices
Introduction à la sécurité des WebServicesIntroduction à la sécurité des WebServices
Introduction à la sécurité des WebServicesConFoo
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlinangeeLee
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esbLilia Sfaxi
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_servicesCamus LANMADOUCELO
 
Création de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBCréation de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBLilia Sfaxi
 
Tp soa avec talend esb
Tp soa avec talend esbTp soa avec talend esb
Tp soa avec talend esbAlahyane Ahmed
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 

Similaire à Soap, wsdl et uddi (20)

03_-_SOA_-_SOAP.pdf
03_-_SOA_-_SOAP.pdf03_-_SOA_-_SOAP.pdf
03_-_SOA_-_SOAP.pdf
 
Presentation
PresentationPresentation
Presentation
 
Soap
SoapSoap
Soap
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
BordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaBordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets Java
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
 
Soap
SoapSoap
Soap
 
Introduction à la sécurité des WebServices
Introduction à la sécurité des WebServicesIntroduction à la sécurité des WebServices
Introduction à la sécurité des WebServices
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esb
 
7 rest
7 rest7 rest
7 rest
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services
 
Création de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBCréation de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESB
 
Tp soa avec talend esb
Tp soa avec talend esbTp soa avec talend esb
Tp soa avec talend esb
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 

Soap, wsdl et uddi

  • 1. SOAP, WSDL ET UDDI Réalisé: TRABELSI. L
  • 2. PLAN  SOAP  WSDL  UDDI
  • 3. 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
  • 4. Structure du message SOAP  Envelope  Contenant d’un message, SOAP  Élément racine XML, Schéma XML ENVELOPPE  SOAP HEADER  http://www.w3.org/2002/06/soap-envelope/  Header (optionnel) HEADER ENTRY  Entrées non applicatives,  Ex : Numéros de session.  Body (obligatoire) SOAP BODY  Entrées applicatives, SOAP ENVELOPE  Ex : nom des procédures, nom des paramètres, valeurs de paramètres, BODY ENTRY  Retour d’erreurs.
  • 5. 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>
  • 6. 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
  • 7. 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.
  • 8. Requête SOAP <?xml version="1.0?> <soap:Envelope <?xml version="1.0?> xmlns:soap=http://www.w3.org/2001/12/soap-envelope <soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap- soap:encodingStyle="http://www.w3.org/2001/12/soap- envelope encoding"> soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <soap:Body> <m:GetPrice <m:GetPrice xmlns:m="http://www.leaderprice.com/prices" > xmlns:m="http://www.leaderprice.com/prices" > <m:Item>Apples</m:Item> <m:Item>Apples</m:Item> </m:GetPrice> </m:GetPrice> </soap:Body> </soap:Envelope> </soap:Body> </soap:Envelope>
  • 9. Réponse SOAP <?xml version="1.0"?> <soap:Envelope <?xml version="1.0"?> xmlns:soap="http://www.w3.org/2001/12/soap-envelope" <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap- soap:encodingStyle="http://www.w3.org/2001/12/soap- envelope" encoding"> soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <soap:Body> <m:GetPriceResponse <m:GetPriceResponse xmlns:m="http://www.leaderprice.com/prices" > <m:Price>1.90</m:Price> xmlns:m="http://www.leaderprice.com/prices" > </m:GetPriceResponse> <m:Price>1.90</m:Price> </soap:Body> </soap:Envelope> </m:GetPriceResponse> </soap:Body> </soap:Envelope>
  • 10. 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.
  • 11. 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 POST www.loria.fr/script HTTP/1.1 accept: text/html accept: image/gif content-type: application/x-www-form-urlencoded Client parametre1=valeur1& Serveur HTTP parametre2=valeur2 HTTP HTTP/1.0 200 OK content-type: text/html <HTML><HEAD><TITLE>LORIA …
  • 12. Exemple retour d’erreur <env:Body> <env:Fault> <faultcode>env:VersionMismatch> </faultcode> <faultstring>Version Mismatch</faultstring> </env:Fault> </env:Body>
  • 13. Liaison SOAP/HTTP GET /Leaderprice HTTP/1.1  SOAP utilise le mode POST de HTTP Host: www.leaderpriceserver.com  Requête SOAP/HTTP HTTP Content-Type: text/xml; charset= " ISO-8859-1"  Ajout du champs "action" Content-Length: nnnn Action: "  Acheminement et Filtrage par les serveurs HTTP www.leaderprice.com/prices" Message SOAP Content-Type: application/soap+xml <env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/"  Message SOAP env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/>  Réponse SOAP/HTTP  Content-Type: application/soap+xml  Etat 2xx <env:Body>  Requête SOAP reçue et traitée avec succès, <m:GetPrice xmlns:m="www.leaderprice.com/prices">  Message SOAP envoyée contient la réponse <m:Item>Apples</m:Item> ou rien (one-way model). </m:GetPrice> Etat 500  </env:Body>  Requête SOAP échouée,  Envoi d’un message SOAP contenant le retour d’erreur. </env:Envelope>
  • 14. Réponse SOAP/HTTP HTTP/1.1 200 OK Content-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:Body> <m:GetPriceResponse xmlns:m="www.leaderprice.com/prices"> <Price>1.90</Price> </m:GetPriceResponse> </env:Body> </env:Envelope>
  • 15. Réponse SOAP/HTTP (erreur) HTTP/1.1 500 Internal Server Error Content-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:Body> <env:Fault> <faultcode>SOAP-ENV:MustUnderstand</faultcode> <faultstring>SOAP Must Understand Error</faultstring> </env:Fault> </env:Body> </env:Envelope>
  • 16. 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.
  • 18. 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.
  • 19. 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….)
  • 20. 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…)
  • 21. 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.
  • 22. 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)
  • 23. Bibliographie  Introduction aux Web Services (2010), Rahee Ghurbhurn, Ecole Nationale Supérieure de Mines,  WSDL : Décrire et configurer (2010), Mickaël BARON.