SlideShare une entreprise Scribd logo
1  sur  6
Web Services« Services Web en français »
Représentent un mécanisme de communication entre applications distantes à travers
le réseau internet indépendant de tout langage de programmation et de toute plate-
forme d'exécution :
A. utilisant le protocole HTTP comme moyen de transport. Ainsi, les
communications
s'effectuent sur un support universel, maîtrisé et généralement non filtré par les
pare-feux ;
B. employant une syntaxe basée sur la notation XML « WSDL et SOAP ou XML-
RPC » pour décrire les appels de fonctions distantes et les données échangées
;
C. organisant les mécanismes d'appel et de réponse.
Grâce aux services web, les applications peuvent être vues comme un ensemble de
services métiers,structurés et correctement décrits, dialoguant selon un standard
international plutôt qu'un ensemble d'objets et de méthodes entremêlés.
Couches du Web Services
Le fonctionnement des services web repose sur un modèle en couches, dont les trois
couches fondamentales sont les suivantes :
Invocation : visant à décrire la structure des messages échangés par les applications,
« SOAP ou XML-RPC »
Découverte : pour permettre de rechercher et de localiser un service web particulier
dans un annuaire de services décrivant
1- le nom de la société,
2- l'objectif de chaque service, etc.
Le protocole standard le plus utilisé pour la découverte de services est UDDI.
Description : dont l'objectif est la description des interfaces (paramètres des
fonctions, types de données) des services web.
Le protocole standard le plus utilisé pour la description de services est WSDL.
Le standard pour les WebServices et
WSDL + SOAP + UDDI
Quel que soit le standard utilisé, le principe de programmation est le même :
***** l'appel de méthode distante est réalisé grâce à une bibliothèque cliente qui
transmet la demande au fournisseur de service en la formattant en XML de manière
transparente;
***** au niveau du serveur une bibliothèque serveur décode la requête, le serveur
fait ses traitement, puis répond grâce à cette même bibliothèque;
***** la bibliothèque client décode enfin la réponse afin qu'elle puisse être utilisée
par l'application client.
SOAP
SOAP (Simple Object Access Protocol) est un protocole définit à l'origine par
Microsoft, puis standardisé par le W3C, utilisant la notation XML permettant de
définir les mécanismes d'échanges d'information entre des clients et des fournisseurs
de services web.
Le mécanisme de transport des messages SOAP peut être le protocole HTTP,SMTP,
FTP, etc.
Il existe des bibliothèques SOAP pour de très nombreux langages, dont Perl, C, C++,
C#,Python, Java, Visual Basic/.NET, PHP, Ruby, etc.
Il permet la transmission de messages entre objets distants, ce qui veut dire qu'il
autorise un objet à invoquer des méthodes d'objets physiquement situés sur un autre
serveur
Le protocole SOAP est composé de deux parties :
 une enveloppe, contenant des informations sur le message
lui-même afin de permettre son acheminement et son
traitement,
 un modèle de données, définissant le format du message,
c'est-à-dire les informations à transmettre.
SOAP Building Blocks
A SOAP message is an ordinary XML document containing the following elements:
 An Envelope element that identifies the XML document as a SOAP message
 A Header element that contains header information
 A Body element that contains call and response information
 A Fault element containing errors and status information
All the elements above are declared in the default namespace for the SOAP envelope:
Syntax Rules
Here are some important syntax rules:
 A SOAP message MUST be encoded using XML
 A SOAP message MUST use the SOAP Envelope namespace
 A SOAP message MUST use the SOAP Encoding namespace
 A SOAP message must NOT contain a DTD reference
 A SOAP message must NOT contain XML Processing Instructions
<?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:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
Consumers of a Web Service do not need to know anything about the platform,
object model, or programming language used to implement the service;
they only need to understand how to send and receive SOAP
messages (HTTP and XML)
Fonctionement des WebServices
Côté Client :d'abord. Comme nous l'avons vu, tous nos dialogues avec le serveur
exécutant le service web sont faits via SOAP. Rappelez-vous, SOAP ne spécifie pas le
transport mais HTTP est commun. Cet exemple présume l'utilisation d'HTTP (mais
vous pourriez tout aussi bien utiliser SMP). En tant que tels, nos messages au serveur
seront des requêtes SOAP-XML enveloppées dans des requêtes HTTP. De même, les
réponses du serveur seront des réponses HTTP qui renferment des réponses SOAP-
XML. Maintenant, nous, développeurs côté client, nous ne voulons pas nous occuper
de tous les détails de sérialisation SOAP et de l'encodage de HTTP. Nous employons
alors un package SOAP qui le fera pour nous. Il s'agit typiquement d'une librairie que
nous linkons dans notre propre code client. Nous invoquons ensuite le service,
simplement en invoquant la méthode appropriée du package SOAP (typiquement en
spécifiant l'URL du service, le nom du service et tous les paramètres requis).
Le premier travail d'un package est de sérialiser l' invocation de ce service en
requête SOAP. Il doit ensuite encoder ce message dans une requête HTTP et l'envoyer
à l'URL spécifiée.
Ce que fait le serveur avec cette requête est détaillée plus bas dans cette page. Mais
pour le moment, tenons pour acquis le renvoi par le serveur d'un message encodé
HTTP contenant la réponse SOAP. Nous nous reposons sur le même package SOAP
pour exécuter l'inverse de ce qui fut fait au stade de la requête, c'est-à-dire que le
package décode le message HTTP et extrait le message SOAP, ensuite désérialise le
message SOAP et obtient la valeur de retour de l'appel de la méthode. Cette valeur
de retour trouvée est ensuite passée comme valeur de retour à l'invocation originale
de la méthode par le code client.
Que se passe t-il dans ce diagramme: le code client crée un appel de service en invoquant la
méthode appropriée du package SOAP (1). Le serialiseur SOAP du package SOAP convertit cette
invocation en requête SOAP et l'envoie à l'encodeur HTTP (2). L'encodeur HTTP enveloppe le message
SOAP dans une requête HTTP et l'envoie au serveur SOAP (3). La réponse est reçue par le module
d'encodage/décodage HTTP du serveur SOAP(4); ce module décode et extrait la réponse SOAP qui la
remet au deserialiseur SOAP (5). Le eserialiseur SOAP deserialise le message et passe le résultat au
code client (6) comme valeur de retour de l'invocation originale (1).
Côté Serveur : C'est légèrement plus complexe car nous avons besoin d'un process
"listener" (Le Listener est le process serveur qui est en attente de connexion client). Nous
avons également besoin d'une implémentation du service lui-même. A part cela, nous nous
reposons sur un package SOAP de la même façon que du côté client.
Le listener est souvent implémenté au travers d'un servlet qui s'exécute comme une
application web sur un appserver (serveur d'application web) (comme c'est le cas lorsque
nous utilisons Apache SOAP du côté serveur). L'appserver sera configuré
pour passer toutes les requêtes destinées à une certaine
URL (l'URL du service SOAP) à un servlet particulier
(appelons-le servlet SOAP).
Le travail du servlet SOAP est d'extraire le message XML-SOAP de la requête HTTP, de le
désérialiser (de ce fait, séparer le nom de la méthode et les paramètres fournis), et
d'invoquer la méthode du service en conséquence. Le résultat de la méthode est alors
sérialisé, encodé HTTP et renvoyé au demandeur.
Que se passe t-il dans ce diagramme: l'appserver (le serveur d'application web) reçoit une
requête HTTP du Client SOAP destinée à l'URL de service SOAP(1) et, en conséquence de quoi,
le passe au servlet SOAP (2). Le servlet SOAP utilise les fonctionnalités de décodage SOAP et
HTTP incluses dans le package pour extraire les détails de l'appel des services (3 et 4), c'est-à-
dire le nom et les paramètres de la méthode. Une fois muni de ceux-ci, le servlet SOAP peut
invoquer la méthode (5 et 6), encoder la réponse (7 et 8) et fournir la réponse HTTP au
handler de requêtes HTTP (9), qui à son tour, répond au client SOAP (10). Notez que la boite
Servlet Thread indique simplement ce qui s'exécute dans la machine virtuelle du servlet.
Avantages
 UtiliserSOAPviaHTTPfacilite lacommunicationetévitelesproblèmesde proxyset pare-feu
par rapport à destechnologiesplusanciennes
 SOAPest
o assezouvertpours'adapterà différentsprotocolesde transport.
o indépendantde laplate-forme.
o indépendantdulangage.
o extensible.
Inconvénients
 En raisondu nombre d'informationsqu'impose le formatXML,SOAPpeutalourdir
considérablementleséchangesparrapportà des middlewares comme CORBA ouICE,ce qui
n'estpas forcémentunhandicapquandlesvolumesde donnéestransitésparSOAPsont
faiblesparrapportau volume total de donnéeséchangées.
 SOAPdécritla manière dontlesapplicationsdoiventcommuniquerentre elles,certains
considèrentque le couplagereste fortentre le serveuretsesclients.Une modificationde
l'API impliqueainsi une évolutioncôté client,contrairementàune architecture orientée
ressourcestelle que REST.

Contenu connexe

Tendances

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
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlinangeeLee
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Heithem Abbes
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec JavaFrancois ANDRE
 
Administration ubuntu-serveur-installation-ftp-serveur-bernier-francois
Administration ubuntu-serveur-installation-ftp-serveur-bernier-francoisAdministration ubuntu-serveur-installation-ftp-serveur-bernier-francois
Administration ubuntu-serveur-installation-ftp-serveur-bernier-francoisspeegel
 
Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutantKorteby Farouk
 
Serveur ftp
Serveur ftpServeur ftp
Serveur ftpSam Rich
 
Administration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveurAdministration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveurTECOS
 
Installation et configuration d'apache tomcat
Installation et configuration d'apache tomcatInstallation et configuration d'apache tomcat
Installation et configuration d'apache tomcatManassé Achim kpaya
 

Tendances (19)

Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
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
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Soap
SoapSoap
Soap
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
 
Jsp
JspJsp
Jsp
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec Java
 
Administration ubuntu-serveur-installation-ftp-serveur-bernier-francois
Administration ubuntu-serveur-installation-ftp-serveur-bernier-francoisAdministration ubuntu-serveur-installation-ftp-serveur-bernier-francois
Administration ubuntu-serveur-installation-ftp-serveur-bernier-francois
 
Cours JSP
Cours JSPCours JSP
Cours JSP
 
Java RMI
Java RMIJava RMI
Java RMI
 
Atelier 3
Atelier 3Atelier 3
Atelier 3
 
Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutant
 
Serveur ftp
Serveur ftpServeur ftp
Serveur ftp
 
Administration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveurAdministration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveur
 
Cours php
Cours php Cours php
Cours php
 
7 rest
7 rest7 rest
7 rest
 
Le Réseau et Java
Le Réseau et JavaLe Réseau et Java
Le Réseau et Java
 
Installation et configuration d'apache tomcat
Installation et configuration d'apache tomcatInstallation et configuration d'apache tomcat
Installation et configuration d'apache tomcat
 

En vedette

Wep semántica
Wep semánticaWep semántica
Wep semánticajuannoly
 
La+misión..
La+misión..La+misión..
La+misión..monilika
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmosAndrés Ibarra
 
Presentación2
Presentación2Presentación2
Presentación2chais1984
 
Livre blanc, les medias sociaux, tome 2, juin 2012
Livre blanc, les medias sociaux, tome 2, juin 2012Livre blanc, les medias sociaux, tome 2, juin 2012
Livre blanc, les medias sociaux, tome 2, juin 2012rollandfield
 
Memoria dos
Memoria dosMemoria dos
Memoria dosUPN
 
Presentació llibre clusters jmh 5 nov 2010 vf
Presentació llibre clusters jmh 5 nov 2010 vfPresentació llibre clusters jmh 5 nov 2010 vf
Presentació llibre clusters jmh 5 nov 2010 vfnarmengou
 
OpinionWay pour Mondial Assistance - Les Français et les vacances - Vague 15 ...
OpinionWay pour Mondial Assistance - Les Français et les vacances - Vague 15 ...OpinionWay pour Mondial Assistance - Les Français et les vacances - Vague 15 ...
OpinionWay pour Mondial Assistance - Les Français et les vacances - Vague 15 ...contactOpinionWay
 
La+misión..
La+misión..La+misión..
La+misión..monilika
 
Carteles de distribución del tiempo
Carteles de distribución del tiempoCarteles de distribución del tiempo
Carteles de distribución del tiempocarolina olguin
 
La quinzaine des maths au collège d'Onet
La quinzaine des maths au collège d'OnetLa quinzaine des maths au collège d'Onet
La quinzaine des maths au collège d'OnetDG WEB
 
French powerpoint
French powerpointFrench powerpoint
French powerpointbrian0x
 

En vedette (20)

Wep semántica
Wep semánticaWep semántica
Wep semántica
 
La+misión..
La+misión..La+misión..
La+misión..
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmos
 
Plan de unidad
Plan de unidadPlan de unidad
Plan de unidad
 
Tarea 4 nueva
Tarea 4 nuevaTarea 4 nueva
Tarea 4 nueva
 
Presentación2
Presentación2Presentación2
Presentación2
 
Htc
HtcHtc
Htc
 
Constitución de los derechos humanos
Constitución de los derechos humanosConstitución de los derechos humanos
Constitución de los derechos humanos
 
Livre blanc, les medias sociaux, tome 2, juin 2012
Livre blanc, les medias sociaux, tome 2, juin 2012Livre blanc, les medias sociaux, tome 2, juin 2012
Livre blanc, les medias sociaux, tome 2, juin 2012
 
Memoria dos
Memoria dosMemoria dos
Memoria dos
 
Statuts
StatutsStatuts
Statuts
 
Presentació llibre clusters jmh 5 nov 2010 vf
Presentació llibre clusters jmh 5 nov 2010 vfPresentació llibre clusters jmh 5 nov 2010 vf
Presentació llibre clusters jmh 5 nov 2010 vf
 
Trabajo mary
Trabajo maryTrabajo mary
Trabajo mary
 
OpinionWay pour Mondial Assistance - Les Français et les vacances - Vague 15 ...
OpinionWay pour Mondial Assistance - Les Français et les vacances - Vague 15 ...OpinionWay pour Mondial Assistance - Les Français et les vacances - Vague 15 ...
OpinionWay pour Mondial Assistance - Les Français et les vacances - Vague 15 ...
 
La+misión..
La+misión..La+misión..
La+misión..
 
Carteles de distribución del tiempo
Carteles de distribución del tiempoCarteles de distribución del tiempo
Carteles de distribución del tiempo
 
La quinzaine des maths au collège d'Onet
La quinzaine des maths au collège d'OnetLa quinzaine des maths au collège d'Onet
La quinzaine des maths au collège d'Onet
 
Pariscup
PariscupPariscup
Pariscup
 
French powerpoint
French powerpointFrench powerpoint
French powerpoint
 
Mi enlace 4 año 2012
Mi enlace 4 año 2012Mi enlace 4 año 2012
Mi enlace 4 año 2012
 

Similaire à Soap

Similaire à Soap (20)

Soap
SoapSoap
Soap
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
Soap, wsdl et uddi
Soap, wsdl et uddiSoap, wsdl et uddi
Soap, wsdl et uddi
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
03_-_SOA_-_SOAP.pdf
03_-_SOA_-_SOAP.pdf03_-_SOA_-_SOAP.pdf
03_-_SOA_-_SOAP.pdf
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Presentation SOAP
Presentation SOAPPresentation SOAP
Presentation SOAP
 
Les socket ing1_issat
Les socket ing1_issatLes socket ing1_issat
Les socket ing1_issat
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
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
 
Ch3_Couche application.pptx
Ch3_Couche application.pptxCh3_Couche application.pptx
Ch3_Couche application.pptx
 
Atelier gwt
Atelier gwtAtelier gwt
Atelier gwt
 
Presentation
PresentationPresentation
Presentation
 
education
educationeducation
education
 

Soap

  • 1. Web Services« Services Web en français » Représentent un mécanisme de communication entre applications distantes à travers le réseau internet indépendant de tout langage de programmation et de toute plate- forme d'exécution : A. utilisant le protocole HTTP comme moyen de transport. Ainsi, les communications s'effectuent sur un support universel, maîtrisé et généralement non filtré par les pare-feux ; B. employant une syntaxe basée sur la notation XML « WSDL et SOAP ou XML- RPC » pour décrire les appels de fonctions distantes et les données échangées ; C. organisant les mécanismes d'appel et de réponse. Grâce aux services web, les applications peuvent être vues comme un ensemble de services métiers,structurés et correctement décrits, dialoguant selon un standard international plutôt qu'un ensemble d'objets et de méthodes entremêlés. Couches du Web Services Le fonctionnement des services web repose sur un modèle en couches, dont les trois couches fondamentales sont les suivantes : Invocation : visant à décrire la structure des messages échangés par les applications, « SOAP ou XML-RPC » Découverte : pour permettre de rechercher et de localiser un service web particulier dans un annuaire de services décrivant 1- le nom de la société, 2- l'objectif de chaque service, etc. Le protocole standard le plus utilisé pour la découverte de services est UDDI. Description : dont l'objectif est la description des interfaces (paramètres des fonctions, types de données) des services web. Le protocole standard le plus utilisé pour la description de services est WSDL. Le standard pour les WebServices et WSDL + SOAP + UDDI Quel que soit le standard utilisé, le principe de programmation est le même : ***** l'appel de méthode distante est réalisé grâce à une bibliothèque cliente qui transmet la demande au fournisseur de service en la formattant en XML de manière transparente; ***** au niveau du serveur une bibliothèque serveur décode la requête, le serveur fait ses traitement, puis répond grâce à cette même bibliothèque; ***** la bibliothèque client décode enfin la réponse afin qu'elle puisse être utilisée par l'application client.
  • 2. SOAP SOAP (Simple Object Access Protocol) est un protocole définit à l'origine par Microsoft, puis standardisé par le W3C, utilisant la notation XML permettant de définir les mécanismes d'échanges d'information entre des clients et des fournisseurs de services web. Le mécanisme de transport des messages SOAP peut être le protocole HTTP,SMTP, FTP, etc. Il existe des bibliothèques SOAP pour de très nombreux langages, dont Perl, C, C++, C#,Python, Java, Visual Basic/.NET, PHP, Ruby, etc. Il permet la transmission de messages entre objets distants, ce qui veut dire qu'il autorise un objet à invoquer des méthodes d'objets physiquement situés sur un autre serveur Le protocole SOAP est composé de deux parties :  une enveloppe, contenant des informations sur le message lui-même afin de permettre son acheminement et son traitement,  un modèle de données, définissant le format du message, c'est-à-dire les informations à transmettre.
  • 3. SOAP Building Blocks A SOAP message is an ordinary XML document containing the following elements:  An Envelope element that identifies the XML document as a SOAP message  A Header element that contains header information  A Body element that contains call and response information  A Fault element containing errors and status information All the elements above are declared in the default namespace for the SOAP envelope: Syntax Rules Here are some important syntax rules:  A SOAP message MUST be encoded using XML  A SOAP message MUST use the SOAP Envelope namespace  A SOAP message MUST use the SOAP Encoding namespace  A SOAP message must NOT contain a DTD reference  A SOAP message must NOT contain XML Processing Instructions <?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:Header> ... </soap:Header> <soap:Body> ... <soap:Fault> ... </soap:Fault> </soap:Body> </soap:Envelope> Consumers of a Web Service do not need to know anything about the platform, object model, or programming language used to implement the service; they only need to understand how to send and receive SOAP messages (HTTP and XML)
  • 4. Fonctionement des WebServices Côté Client :d'abord. Comme nous l'avons vu, tous nos dialogues avec le serveur exécutant le service web sont faits via SOAP. Rappelez-vous, SOAP ne spécifie pas le transport mais HTTP est commun. Cet exemple présume l'utilisation d'HTTP (mais vous pourriez tout aussi bien utiliser SMP). En tant que tels, nos messages au serveur seront des requêtes SOAP-XML enveloppées dans des requêtes HTTP. De même, les réponses du serveur seront des réponses HTTP qui renferment des réponses SOAP- XML. Maintenant, nous, développeurs côté client, nous ne voulons pas nous occuper de tous les détails de sérialisation SOAP et de l'encodage de HTTP. Nous employons alors un package SOAP qui le fera pour nous. Il s'agit typiquement d'une librairie que nous linkons dans notre propre code client. Nous invoquons ensuite le service, simplement en invoquant la méthode appropriée du package SOAP (typiquement en spécifiant l'URL du service, le nom du service et tous les paramètres requis). Le premier travail d'un package est de sérialiser l' invocation de ce service en requête SOAP. Il doit ensuite encoder ce message dans une requête HTTP et l'envoyer à l'URL spécifiée. Ce que fait le serveur avec cette requête est détaillée plus bas dans cette page. Mais pour le moment, tenons pour acquis le renvoi par le serveur d'un message encodé HTTP contenant la réponse SOAP. Nous nous reposons sur le même package SOAP pour exécuter l'inverse de ce qui fut fait au stade de la requête, c'est-à-dire que le package décode le message HTTP et extrait le message SOAP, ensuite désérialise le message SOAP et obtient la valeur de retour de l'appel de la méthode. Cette valeur de retour trouvée est ensuite passée comme valeur de retour à l'invocation originale de la méthode par le code client. Que se passe t-il dans ce diagramme: le code client crée un appel de service en invoquant la méthode appropriée du package SOAP (1). Le serialiseur SOAP du package SOAP convertit cette invocation en requête SOAP et l'envoie à l'encodeur HTTP (2). L'encodeur HTTP enveloppe le message SOAP dans une requête HTTP et l'envoie au serveur SOAP (3). La réponse est reçue par le module d'encodage/décodage HTTP du serveur SOAP(4); ce module décode et extrait la réponse SOAP qui la remet au deserialiseur SOAP (5). Le eserialiseur SOAP deserialise le message et passe le résultat au code client (6) comme valeur de retour de l'invocation originale (1).
  • 5. Côté Serveur : C'est légèrement plus complexe car nous avons besoin d'un process "listener" (Le Listener est le process serveur qui est en attente de connexion client). Nous avons également besoin d'une implémentation du service lui-même. A part cela, nous nous reposons sur un package SOAP de la même façon que du côté client. Le listener est souvent implémenté au travers d'un servlet qui s'exécute comme une application web sur un appserver (serveur d'application web) (comme c'est le cas lorsque nous utilisons Apache SOAP du côté serveur). L'appserver sera configuré pour passer toutes les requêtes destinées à une certaine URL (l'URL du service SOAP) à un servlet particulier (appelons-le servlet SOAP). Le travail du servlet SOAP est d'extraire le message XML-SOAP de la requête HTTP, de le désérialiser (de ce fait, séparer le nom de la méthode et les paramètres fournis), et d'invoquer la méthode du service en conséquence. Le résultat de la méthode est alors sérialisé, encodé HTTP et renvoyé au demandeur. Que se passe t-il dans ce diagramme: l'appserver (le serveur d'application web) reçoit une requête HTTP du Client SOAP destinée à l'URL de service SOAP(1) et, en conséquence de quoi, le passe au servlet SOAP (2). Le servlet SOAP utilise les fonctionnalités de décodage SOAP et HTTP incluses dans le package pour extraire les détails de l'appel des services (3 et 4), c'est-à- dire le nom et les paramètres de la méthode. Une fois muni de ceux-ci, le servlet SOAP peut invoquer la méthode (5 et 6), encoder la réponse (7 et 8) et fournir la réponse HTTP au handler de requêtes HTTP (9), qui à son tour, répond au client SOAP (10). Notez que la boite Servlet Thread indique simplement ce qui s'exécute dans la machine virtuelle du servlet.
  • 6. Avantages  UtiliserSOAPviaHTTPfacilite lacommunicationetévitelesproblèmesde proxyset pare-feu par rapport à destechnologiesplusanciennes  SOAPest o assezouvertpours'adapterà différentsprotocolesde transport. o indépendantde laplate-forme. o indépendantdulangage. o extensible. Inconvénients  En raisondu nombre d'informationsqu'impose le formatXML,SOAPpeutalourdir considérablementleséchangesparrapportà des middlewares comme CORBA ouICE,ce qui n'estpas forcémentunhandicapquandlesvolumesde donnéestransitésparSOAPsont faiblesparrapportau volume total de donnéeséchangées.  SOAPdécritla manière dontlesapplicationsdoiventcommuniquerentre elles,certains considèrentque le couplagereste fortentre le serveuretsesclients.Une modificationde l'API impliqueainsi une évolutioncôté client,contrairementàune architecture orientée ressourcestelle que REST.