Professional Documents
Culture Documents
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Communiquer :
SOAP
SOAP est une spcification de communication entre services Web par
change de messages en XML au travers du Web. Simple et facile implmenter dans les serveurs Web ou dans les serveurs dapplications, SOAP
est indpendant des langages de programmation ou des systmes
dexploitation employs pour limplmentation des services Web. Les
concepteurs de SOAP ont, en effet, russi prserver la plus grande gnralit dans la reprsentation en XML des principes des protocoles de
communication. Sinspirant des gnrations prcdentes de RPC (Remote
Procedure Call) et de RPC objet (Corba, DCOM), ils se sont attachs en
formaliser la dfinition dans des documents XML changs sur le Web,
sous forme de dialogue entre le client et le serveur. SOAP repose sur XML
et sur quelques standards drivs, les NameSpaces et XML Schema, en
particulier.
47
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
SOAP est dvelopp conjointement par Microsoft, IBM, Lotus Development (une division dIBM), DevelopMentor et UserLand Software sous les
auspices du W3C. SOAP 1.1 fit lobjet dune note soumise au W3C en mai
2000, et SOAP 1.2 dun document de travail (working draft) en juillet 2001.
Microsoft a dj, quant lui, annonc lintgration de SOAP dans la plateforme .NET, en particulier dans BizTalk Server, le fer de lance de la stratgie Internet de lditeur de Redmond.
SOAP est dfini comme un protocole lger dchange de donnes dans un
rseau de pair pair, cest--dire dcentralis. Sappuyant sur XML, SOAP
propose un mcanisme simple de reprsentation des diffrents aspects
dun message entre applications. Nimposant aucun modle de programmation spcifique, SOAP peut donc tre utilis dans tous les styles de
communication : synchrone ou asynchrone, point point ou multipoint,
intranet ou Internet.
La spcification SOAP se divise en quatre parties :
lenveloppe SOAP, qui dfinit le contexte dun message, son destinataire, son contenu et diffrentes options ;
les rgles de codage SOAP, dfinissant la reprsentation des donnes
dune application dans le corps dun message SOAP (en particulier leur
structure) ;
un protocole de RPC dfinissant la succession des requtes et des
rponses ;
la dfinition de lutilisation de HTTP comme couche de transport des
messages SOAP.
Les rgles de codage utilisent abondamment XML Schema pour dcrire la
structure des donnes constitutives des messages SOAP.
48
fut lorigine le champion, repris par Microsoft dans DCOM. Les travaux
de lOMG, dune part, et lapport radical de COM aux produits de Microsoft, dautre part, ont produit, dans les annes 1990, des versions orientes objet de ces RPC : IIOP dans la norme Corba bien quofficiellement
la norme stipule quun protocole fond sur DCE-RPC est galement
acceptable et DCOM dans Windows NT.
Structurellement, DCOM et IIOP sont identiques. En effet, un RPC orient
objet doit imprativement contenir certaines donnes (identit des objets
et des mthodes appeles, leurs paramtres, etc.) :
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
RPONSE
tat du traitement
En-tte ventuel
Paramtres
En-tte ventuel
Paramtres
49
nont rien de commun avec le format utilis par DCOM, les OBJREF
reprsents par les UUID, des suites de 128 caractres hexadcimaux.
DCOM et IIOP sont adapts des rseaux se caractrisant par une qualit
de service homogne, une latence contrle et une administration rigoureuse. Cest plutt le cas des rseaux intranet dentreprise.
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
CORBA
HTTP
DNS (Domain
Name Server) :
nuds Internet
responsables de
lidentification de
ladresse IP dune
machine daprs son
nom (URL).
linstar de DCOM et dIIOP, HTTP est une couche RPC au-dessus de TCP/
IP. Les requtes et les rponses HTTP sont traites par un serveur Web
(comme IIS de Microsoft ou comme Apache) auquel se connecte un client
HTTP, gnralement un navigateur Web. Requtes et rponses sont
composes dun en-tte et dun corps de message ; toutes sont exprimes
en texte ASCII (et non en binaire comme dans les protocoles prcdents).
Lors dun change HTTP (voir figure 2-1), le client ouvre un canal de
communication (socket) sur le port n 80 du serveur demand, charge
pour les DNS1 de trouver ladresse IP correcte. La requte et la rponse
HTTP circulent sur ce canal qui ne reste ouvert, par dfaut, que le temps
dun change. Si plusieurs requtes sont issues du mme client vers le
mme serveur cest le cas par exemple pour le tlchargement dune
page Web contenant des images stockes sous forme de fichiers spars
sur le serveur , la requte peut indiquer que le canal doit rester ouvert
par loption Keep-Alive.
Le protocole HTTP prvoit tout une srie de codes derreur (dont le
fameux code 404 illustr par la figure 2-2) ou dinformation pour renvoyer,
le cas chant, le rsultat du traitement de la requte au poste client.
Requte et rponse HTTP ont chacune leur en-tte spcifique, qualifi par
des mots-cls et leurs valeurs (voir annexe 1).
50
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
51
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Figure 2-2. change entre navigateur et serveur Web en cas derreur de traitement.
52
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
HTTPR
HTTPR, pour HTTP Reliable (fiable), est une proposition dIBM, datant de
juillet 2001, pour une extension du protocole HTTP visant le fiabiliser. Ce
sont des rgles supplmentaires permettant dassurer que tous les messages HTTP sont livrs leurs destinations exactement une fois et sans altration de leur contenu. En cas de dfaillance, le protocole signale le
message comme non livr. HTTPR est une extension de HTTP 1.1, hritant
donc de toutes les possibilits de cette version quant SSL, la communication au travers des pare-feu (firewalls) et des proxies.
Considrons le cas dun programme envoyant un ordre dachat un serveur
sur le rseau. En cas de dfaillance de livraison du message sans avertissement de lmetteur, lordre dachat est perdu. linverse, si le message est
livr plusieurs fois sans que le destinataire ne soit notifi de la rptition,
plusieurs ordres dachat seront effectivement passs au lieu dun. La solution classique est pour lmetteur de rpter lenvoi du message jusqu
rception dun accus de rception du destinataire. Du coup, le message
doit lui-mme contenir son identification afin que le destinataire reconnaisse les duplicatas ventuels. Cette solution reste nanmoins difficile
mettre en place dans tous les contextes de dfaillance imaginables. Le
schma habituel spare dailleurs la logique de communication de la logique de lapplication comme lillustre la figure 2-3.
Figure 2-3.
Communication
synchrone sans
fiabilit.
Dans le cas de dfaillances dans lenvoi ou dans la rception des messages, cest malgr tout aux programmes client et serveur de dcider de la
conduite suivre, surchargeant ainsi chacune des applications.
53
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Dans le cas dun protocole dit fiable (voir figure 2-4), la couche de communication est munie dune forme de mmoire persistante (fichiers, bases de
donnes, etc.) laquelle elle confie une copie de chaque message entrant
et sortant, aprs leur avoir attribu un numro ou une identit unique.
Cette unicit permet de grer correctement les renvois ventuels en cas
de dfaillance de communication ou bien de procder une comparaison
avec un tat antrieur des applications lorsque les applications ellesmmes sont dfaillantes. Le protocole est tendu aux communications
asynchrones en dotant le programme client dune mmoire persistante,
conservant lidentit des messages envoys et des messages de retour
reus.
La proposition HTTPR dIBM suggre limplmentation de cette couche
supplmentaire de gestion de transport au-dessus du protocole standard
HTTP 1.1. Lmetteur de messages utilise alors la requte HTTP Post pour
transporter les informations supplmentaires, ncessaires la gestion de
la livraison des messages. La spcification prvoit que plusieurs
messages scuriss puissent tre transports dans la mme requte
HTTP de manire diminuer la frquence des changes dans le cas
dchanges importants. Des agents HTTPR de simples programmes
intermdiaires qui envoient et rceptionnent les messages, associs
une sauvegarde persistante grent alors la communication avec fiabilit
en sappuyant sur ces informations supplmentaires, ainsi que la reprise
ventuelle sur erreur de transmission ou sur dfaillance de lmetteur.
54
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
55
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Figure 2-6. La structure XML de lenveloppe SOAP (schma gnr avec loutil XML Spy).
56
soap/enco-
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
<SOAP-ENV:Body>
<!-- Valeur du titre -->
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
57
Le serveur peut ignorer cette information sans prjudice pour le traitement du corps du message (mustUnderstand a la valeur 0). Un autre
serveur pourra, quant lui, utiliser cette information pour une trace
daudit, par exemple, de lusage dun service Web.
Un message SOAP peut avoir traverser plusieurs intermdiaires
avant datteindre son destinataire final. Dans ce cas, len-tte joue un rle
primordial : chaque arrt le long de litinraire, le serveur intermdiaire
extrait de len-tte ce qui le concerne en propre et ajoute ce qui est ncessaire au serveur intermdiaire suivant (voir figure 2-7). Les lments
concernant un serveur intermdiaire sont marqus par la prsence de
lattribut SOAP-ENV:ACTOR avec une valeur conventionnelle :
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
SOAP-ENV:Actor="http://schemas.xmlsoap.org/soap/actor/next"
Figure 2-7. Len-tte dans une srie de transferts successifs de messages SOAP
58
CORBA
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
59
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
dans laquelle les accesseurs sont les noms Compte et Montant utiliss comme balises. Une transaction dbit-crdit, peine plus complexe,
serait de la mme manire reprsente dans un message sous la structure
SOAP suivante :
<t:transaction xmlns:t="http://monServeur/banque">
<credit>
<compte>125612</compte>
<montant>250.75</montant>
</credit>
<debit>
<compte>125760</compte>
<montant>250.75</montant>
</debit>
</t:transaction>
60
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Une fois ces structures dfinies, lappel dune mthode Java sur ces oprations se droule suivant le schma de la figure 2-8.
Les finesses supplmentaires se greffant ces rgles gnrales telles
que la reprsentation en SOAP de la nullit ou de labsence de certains
champs dune valeur compose, font appel des mcanismes standardiss de reprsentation des donnes complexes, traits par la norme
XML Schema. Cest aussi le cas dans la situation o la valeur dun champ
dune structure se trouve tre une instance dun sous-type du type prvu
(dans le cas que nous exposons, il suffit dimaginer par exemple une
sous-classe de la classe Operation contenant des champs
supplmentaires : ces derniers doivent alors figurer galement dans le
message SOAP).
Enfin, pour illustrer lusage des pointeurs lintrieur dun message SOAP,
ajoutons notre scnario bancaire une seconde transaction dbit-crdit
faisant circuler le mme montant entre trois comptes. La reprsentation
nave venant naturellement lesprit est la suivante :
<t:double-transaction xmlns :t="http://monServeur/banque">
<transaction-B-vers-C>
<credit>
<compte>125612</compte>
<montant>250.75</montant>
</credit>
<debit>
<compte>125760</compte>
<montant>250.75</montant>
</debit>
</transaction-B-vers-C>
<transaction-A-vers-B>
<credit>
<compte>125760</compte>
<montant>250.75</montant>
</credit>
<debit>
<compte>125900</compte>
<montant>250.75</montant>
</debit>
</transaction-A-vers-B>
</t:double-transaction>
61
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
62
Figure 2-8. Structure du programme traitant les messages
SOAP sur le serveur
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
63
<POINT><x>5</x><y>6</y></POINT>
<POINT><x>7</x><y>8</y></POINT>
</points>
</t:POINTLIST>
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
64
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
65
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Figure 2-10. Rfrences des pices jointes dans un message SOAP : URI absolu
Notons quun message SOAP peut parfaitement ne pas faire rfrence aux
pices jointes groupes avec lui dans le mme message MIME. De mme,
la rsolution effective des URI dun message SOAP faisant rfrence des
pices jointes nest pas ncessairement du ressort de linterprteur SOAP
lui-mme : en fonction du traitement du message, ces rfrences seront
rsolues ou non par le service Web sollicit.
SOAP avec pices jointes induit quelques changements mineurs dans les
requtes suivant le protocole de transport auquel on fait appel, HTTP ou
SMTP, par exemple. Dans le premier cas, lattribut Content-Type:
Multipart/Related apparat dans len-tte HTTP lexclusion de tous
les attributs HTTP redondants avec ceux de MIME (comme ContentTransfer-Encoding, par exemple). Dans le second cas, les en-ttes
SMTP et MIME sont simplement fusionns : il ny a pas de redondance.
66
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Figure 2-11. Rfrences des pices jointes dans un message SOAP : URI relatif
Limportance de SOAP avec pices jointes pour les services mtier est
indiscutable. Le consortium ebXML, par exemple, a abandonn son
protocole de messagerie propritaire pour adopter SOAP ds que ce
dernier protocole a permis lattachement de pices jointes. SOAP avec
pices jointes contribue la gnralisation de ladoption de SOAP comme
service de communication entre services et applications Web.
67
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
68
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Terme
Commentaire
En-tte WS-Routing
Message WS-Routing
Dfaillance WS-Routing
metteur/rcepteur WS-Routing
Chemins WS-Routing
Le chemin et le chemin de retour WS-Routing sont constitus de la squence (et de la mme en ordre inverse)
des metteurs et des rcepteurs WS-Routing au travers
desquels circule un message WS-Routing.
Ce chemin est construit automatiquement par le protocole lors de la transmission initiale de lmetteur au
rcepteur. Ce chemin est ventuellement utilis pour
faire parvenir lmetteur les rponses du rcepteur.
Intermdiaire WS-Routing
Proxy WS-Routing
Tunnel WS-Routing
Gateway WS-Routing
certaines conditions, un intermdiaire WS-Routing peut ajouter dynamiquement de nouveaux intermdiaires au chemin de routage. Le
chemin na donc pas ncessairement tre compltement connu au
moment de lmission des messages.
Enfin, lintermdiaire peut ventuellement ajouter des informations
permettant de reconstituer un chemin de retour des messages SOAP,
tablissant ainsi une communication point point bi-directionnelle
entre metteur et rcepteurs originels.
Cette communication bi-directionnelle permise par WS-Routing est indpendante de la couche de transport physique retenue pour lchange des
messages. La spcification nimpose pas de choix et propose, par exem-
69
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
ple, des liaisons WS-Routing pour TCP (qui est bi-directionnel) et pour
UDP (qui nest pas bi-directionnel).
Le rle des intermdiaires WS-Routing est finalement de permettre
laccs aux informations relatives la transmission des messages SOAP
et de faciliter le franchissement de barrires spcifiques de communications (pare-feu, protocoles spcifiques de transport, etc.). Les informations de transmission de messages SOAP sont utiles des applications
dadministration, par exemple, ainsi ventuellement qu des applications complmentaires assurant des services de scurit, daudit, de chiffrement ou dauthentification et de collaboration reposant sur lexamen
des itinraires suivis par les messages changs dans un rseau SOAP.
Cest dans ces derniers cas quun intermdiaire WS-Routing peut tre
amen ajouter un intermdiaire WS-Routing dynamiquement. Nous
retrouvons ici le pattern dinterposition de services, dont lusage est gnral
dans les serveurs dapplications avec la notion de composant logiciel et
de conteneur. Ainsi, par exemple, lauthentification de la communication
entre un metteur et un rcepteur SOAP peut simplement tre assure par
un intermdiaire WS-Routing qui ajoute systmatiquement aux chemins
WS-Routing sur lequel il se trouve, un dtour par un autre intermdiaire
WS-Routing charg de la vrification de lidentit de lmetteur. Ainsi les
messages sont automatiquement authentifis sans que lmetteur ou le
destinataire naient eux-mmes appeler explicitement le service
dauthentification.
Les gateways WS-Routing assurent la traduction entre le protocole vhiculant les messages SOAP et des protocoles extrieurs, spcifiques. Comme
un connecteur, le gateway transpose les messages dun protocole de transport lautre et, en retour, traduit (du mieux quil est possible si lquivalence nest pas parfaite) les codes derreurs et de dfaillance du protocole
externe.
Dfinition
to
from
via
70
Balise WS-Routing
Dfinition
fwd
rev
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Seul llment to est prsent dans len-tte WS-Routing indiquant ici une
communication directe avec le destinataire.
Dans le second exemple, un message est mis par A vers C via un intermdiaire WS-Routing B. Le message issu de A vers B est le suivant (avec un
chemin de retour initialement vide) :
<S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<m:path xmlns:m="http://schemas.xmlsoap.org/rp/">
<m:action>http://www.im.org/chat</m:action>
<m:to>soap://C.com/some/endpoint</m:to>
<m:fwd>
<m:via>soap://B.com</m:via>
</m:fwd>
<m:rev>
<m:via/>
</m:rev>
71
<m:from>mailto:chauvet@eyrolles.com</m:from>
<m:id>uuid:20020802-1403-4351-b623-5dsf35sgs5d6
</m:id>
</m:path>
</S:Header>
<S:Body>
Le corps du message SOAP
</S:Body>
</S:Envelope>
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Cette fois, llment rev est automatiquement renseign par le traitement au nud B.De plus, B a ajout et renseign lattribut vid dans
llment rev, qui est lidentit du canal de communication ayant reu le
message en provenance de A. Le cas chant, B pourra ainsi ractiver ce
canal pour faire parvenir A des rponses ventuelles de C, ou dintermdiaires en aval de B. WS-Routing assure ainsi la complte indpendance
des diffrents segments sur le chemin initial et le chemin de retour. Des
protocoles de transport peuvent, par exemple, lier A et B, dune part, et B
et C, dautre part, sans remettre en cause ni lapplication mettrice ni le
destinataire du message.
Pour assurer la corrlation des messages, llment id contient lidentit
unique de chaque message en circulation. Le nouvel lment relatesTo
permet de faire rfrence lidentit dun autre message dans len-tte
WS-Routing. Ainsi, par exemple, une rponse circulant de C vers A, arrive-
72
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
73
ces identifiants tant compatible avec les quivalents MIME. Dans larchitecture de services Web de Microsoft, DIME permet dencapsuler un
message SOAP avec ses pices jointes sous une forme moins lourde
traiter que dans le cas du codage MIME.
Code derreur WS-Routing
Signification
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Dfaillance lmission
700 Invalid WS-Routing Header
En-tte invalide.
Destinataire introuvable.
LURI du destinataire est trop longue pour tre traite par le destinataire WS-Routing.
Dfaillance la rception
800 Unknown Routing Fault
74
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Dans le cas de WS-Routing, le message DIME est obligatoirement constitu du message WS-Routing lui-mme, en premire partie, et des pices
jointes ventuelles dans les parties suivantes. Par convention, lidentifiant
de la premire partie du message DIME est lURI du destinataire suivant
sur le chemin, extrait du message WS-Routing. Cette convention permet
de router le message directement sans que le nud intermdiaire nait
interprter la totalit du message SOAP et de len-tte WS-Routing. Il ny
a alors pas de dgradation de performance dans la transmission des
messages.
Ainsi encapsul, le message est prt tre transport par TCP, qui est un
protocole bi-directionnel, et par UDP, qui ne lest pas. Dans le premier cas,
les lments rev sont facultatifs, la couche de transport TCP se chargeant
elle-mme du calcul du chemin de retour. Dans le second cas, les datagrammes UDP ntant pas bi-directionnels, les lments rev sont obligatoires et renseigns par le traitement aux tapes intermdiaires le long du
chemin. En ce qui concerne HTTP, WS-Routing est entirement compatible avec la liaison SOAP HTTP.
75
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
76
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
HTTP/1.1 200 OK
Content-type: text/xml ; charset="utf-8"
Content-length: mcdu
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/
envelope"
SOAP-ENV :encodingStyle="http://schemas.xmlsoap.org/
soap/encoding">
<SOAP-ENV:Body>
<!-- Valeur du titre -->
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
77
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/
envelope"
SOAP-ENV :encodingStyle="http://schemas.xmlsoap.org/
soap/encoding">
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
<SOAP-ENV:Body>
<!-- Requte de la valeur dun titre -->
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Requte SOAP
SOAPAction
En-tte ventuel
Balise SOAP:Header
Paramtres
Balise SOAP:Body
78
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Ce protocole de dcouverte suppose que lon ait prtabli, dune part, des
annuaires consignant en un endroit public la correspondance entre URL
et services et, dautre part, une description de ces services qui les rend lisibles par lapplication client (voir figure 2-14). Annuaires et descriptions de
services font lobjet de normalisations en XML (UDDI et WSDL1, respectivement) indispensables lutilisation de SOAP dans larchitecture de
services Web.
CORBA
Dans la norme Corba, il est prcis que lORB dispose dun annuaire interne permettant de dterminer sans ambigut ladresse IP du serveur et le code excutable de lobjet Corba charg de traiter une requte. Le choix de la technique
dimplmentation de cet annuaire interne est laiss libre aux diteurs de logiciels. En gnral, les compilateurs IDL se chargent dactualiser cet annuaire pendant la phase de dveloppement. Cet annuaire est diffrent de ceux fournis par
les CorbaServices de plus haut niveau, Naming et Trader Services.
DCOM
79
Les standards
WSDL (Web Services
Description
Language) et UDDI
(Universal Description, Discovery and
Integration) sont
dcrits respectivement aux chapitres 3
et 4.
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
Figure 2-14. Les tapes du protocole de dcouverte des services Web avec un annuaire UDDI externe.
80
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
81
xmlns:m="http://example.org/2001/06/titres" >
<Symbole>BLZE</Symbole>
<Compagnie>Blaze Software Corp.</Compagnie>
<Prix>34.1</Prix>
</m: DetailsValeursCours >
</env:Body>
</env:Envelope>
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
82
<errorcode>1001</errorcode>
</e:myfaultdetails>
</detail>
</env:Fault>
</env:Body>
</env:Envelope>
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
83
Extrait de l'ouvrage Services Web avec SOAP, WSDL, UDDI, ebXML... de Jean-Marie Chauvet, Eyrolles, 2002.
84