of 28
Service Web (SOAP)
Urbanisation des SI NFE107
Fiche de lecture
Y. BELAID
Plan
Dfinitions Web Service Terminologie
Communication avec les Web Service REST XML-RPC SOAP
Quest ce quun Web Service
Un Web Service est un composant logiciel identifi par une URI, dont les interfacespubliques sont dfinies et appeles en XML.Sa dfinition peut tre dcouverte par d'autres systmes logiciels.Les services Web peuvent interagir entre eux d'une manire prescrite par leursdfinitions, en utilisant des messages XML ports par les protocoles Internet.(W3C)
Une technologie permettant des applications de dialoguer distance via Internetindpendamment des plates-formes et des langages sur lesquelles elles reposent.(dfinition : http://www.dicodunet.com/)
Un service web est un programme informatique permettant la communication etl'change de donnes entre applications et systmes htrognes dans desenvironnements distribus. Il s'agit donc d'un ensemble de fonctionnalits exposessur internet ou sur un intranet, par et pour des applications ou machines, sansintervention humaine, et en temps rel.(dfinition : Wikipdia)
Architecture des Web Service
ServiceRequester
ProgrammeClient
Service
Provider Service
Interaction
consommer
AnnuaireDescription du
service
dcouvrir
UDDI WSDL
Description
Description du service
Rponse
SOAP XML
XML
XML
Architecture des Web Service (2)
Les acteurs Annuaire Service Registry
Annuaire des services publis par les providers (UDDI) Gr sur un serveur niveau application, entreprise ou
mondial
Service Provider Application s'excutant sur un serveur et comportant un
module logiciel accessible par en XML
Service Requester Application cliente se liant un service et invoquant ses
fonctions par des messages XML (REST, XML-RPC,SOAP)
Architecture des Web Services
Terminologie
- WSDL (Web Services Description Language) donne la description auformat XML des Web Services en prcisant les mthodes pouvant treinvoques, leur signature et le point d'accs (URL, port, etc..).
- Dialecte XML permettant de dcrire un web service
- UDDI (Universal Description, Discovery and Integration) normalise unesolution d'annuaire distribu de Web Services, permettant la fois lapublication et l'exploration. UDDI se comporte lui-mme comme un Webservice dont les mthodes sont appeles via le protocole SOAP.
- Annuaire permettant denregistrer de rechercher des serviceweb
- SOAP (Simple Object Access Protocol) : Protocole de communicationen service Web par change de message XML.
Communication Web Service
Les diffrentes technologie pour accder un service web
REST (Reprsentational State Transfer)
Consommer un WebService REST revient appeler une simpleURL en http (Post ou Get) , le serveur renvoie sa rponse, laplupart du temps en XML
Communication par change de fichier XML
XML-RPC SOAP (Simple Object Access Protocol)
REST (Representation State Transfer)
Exemple : Rcupration des Informations dune commune par une requte http en mode GET
http://ws.ct-goat.com/getCityInfos.asp ?uID=xxxxxxxxxxxxx&comID=562
Requte
Rponse ServeurWeb
CalculateurItinraire
(ws.ct-goat)
Rest en http
XML
REST (Representation State Transfer)
Nest pas un protocole ou un format, mais unearchitecture (celle de HTTP).
Chaque mthode ou service est attach une URL
Consommer un WebService REST revient appeler unesimple URL en http (Post ou Get) , le serveur renvoie sarponse, la plupart du temps en XML
Trs utilis pour la communication entre machines.
XML-RPC
Source : http://opengescom.org/docs/spec-xmlrpc.pdf
XML-RPC
Le message dune requte est inclus dans un lment Le message dune rponse est inclus dans une lment Llment est transmis dans un lment Le type des valeurs peut tre dfini avec des lments de type .
Requte
XML-RPC
Rponse :Rponse Correct Rponse en erreur
XML-RPC
XML-RPC est un protocole RPC (Remote procedure call), une spcification simple et unensemble de codes qui permettent des processus s'excutant dans des environnementsdiffrents de faire des appels de mthodes travers un rseau.
XML-RPC permet d'appeler une fonction sur un serveur distant partir de n'importe quel systme(Windows, MacOSX, Linux) et avec n'importe quel langage de programmation. Le serveur est luimme sur n'importe quel systme et est programm dans n'importe quel langage.
Cela permet de fournir un Service Web utilisable par tout le monde sans restriction de systme oude langage.
Les processus d'invocation distance utilisent le protocole HTTP pour le transport des donneset la norme XML pour le codage des donnes.
XML-RPC est conu pour permettre des structures de donnes complexes d'tre transmises,excutes et renvoyes trs facilement.
XML-RPC est l'anctre de SOAP.
(dfinition : Wikipdia)
XML-RPC
Exemple de requte en Java :
XmlRpcClientxmlrpc=newXmlRpcClient("http://www.localhost.com/xmlrpc/server.asp");
Vectorparams=newVector();
params.addElement(123456);
IntegerretVal=(Integer)xmlrpc.execute("GetCurrentBalance",params);
SOAP
SOAP dfinit le cadre gnral pour lchange de donnes structures en XML SOAP permet dchanger des structures de donnes complexes en XML avec les
Namespaces, et la spcification XML Schma Historique de SOAP
SOAP 0.9 (septembre 1999) Editeur (Microsoft, DeveloppMentor, UserLand)
SOAP 1.0 (Nov 1999) IETF
SOAP 1.1 (Avril 2000) IBM & Soumission W3C
W3C SOAP 1.2 (Sept 2000 Mai 2002) Refonte SOAP 1.1 Groupe de travail : 40 entreprises(IBM, Microsoft, Sun, Intel, Xerox, Canon )
Spcification du W3C (WS-*) SOAP 1.2 Messaging Framework :la structure pour les changes de messages SOAP 1.2 Adjuncts : Ajouts Primer : Prliminaires (sous forme de tutoriel..)
SOAP
ApplicationCliente
ParserXML
Procuration
d'interface
Translateur
SOAP
ParserXML Serveurd'application
Messages
SOAPAppel
Rponse
HTTP
RPC
local
CLIENT SERVEUR
SOAP
Structure dun message SOAP
Protocol Headers
SOAP Envelope
SOAP Header
Dfinit le document XMLcomme un messageSOAPOptionnelle : Stockage des informations spcifiques la transaction (lments optionnels : actor,MustUnderstand, encoding..)
Contenant des donnes transporter.
SOAP FaultGestion derreurs
Protocole de transport
Ex HTTP
SOAP Body
SOAP
Envelope: c'est lui qui contient le message et ses diffrentes sous-blocs. Il s'agit dubloc racine XML. Il peut contenir un attribut encodingStyle dont la valeur est uneURL vers un fichier de typage XML qui dcrira les types applicables au messageSOAP.
Header: c'est un bloc optionnel qui contient des informations d'en-ttes sur lemessage. Si il est prsent, ce bloc doit toujours se trouver avant le bloc Body l'intrieur du bloc Envelope.
Body: c'est le bloc qui contient le corps du message. Il doit absolument tre prsentde manire unique dans chaque message et tre contenu dans le bloc Envelope.SOAP ne dfinit pas comment est structur le contenu de ce bloc. Cependant, ildfinit le bloc Fault qui peut s'y trouver.
Fault: ce bloc est la seule structure dfinie par SOAP dans le bloc Body. Il sert reporter des erreurs lors du traitement du message, ou lors de son transport. Il nepeut apparatre qu'une seule fois par message. Sa prsence n'est pas obligatoire.
Structure dun message SOAP
SOAP-Header
Charles
12AE3C
FR
Exemple : Bloc Header Message destination de Plusieurs Nud SOAP
Elment USER :
A destination du NudRightManager
Elment Session
A destination du Nud Final
Elment USER :
A destination du prochainNoeud
SOAP Header
SOAP Fault
Exemple : Bloc Fault
soap:ServerImpossiblederouterlemessage.http://www.exemple.com/messageDispatcherE_NO_ROUTE
Description bref du message
Identifiant de lerreur dfinit parSOAP
Composant qui gnrlerreur (URL)
Message spcifique lapplication
SOAP Exemple
http://www.webservicex.net/
POST /stockquote.asmx HTTP/1.1 Host: www.webservicex.net Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.webserviceX.NET/GetQuote"
string
Protocole de transport
Ex HTTP
Dfinit le document XMLcomme un messageSOAP
Contenant des donnes transporter.
REQUETE
SOAP Exemple
HTTP/1.1 200 OKContent-Type: text/xml; charset=utf-8Content-Length: length
string
FORD 2.28 11/24/2008 4:00pm +0.20 2.20 2.30 2.07 124718 18.0M 2.08 +9.62% 1.51 - 3.27 -0.174 N/A Forward Industrie
Rponse SOAP
SOAP(Exemple)
Appel du WebService stockquote en PHP
CREATION dun OBJET SOAPCLIENT//L'ouverture du fichier WSDL va permettre d'automatiserl'utilisation du Web Service// Les mthodes dfinit dans le WSDL seront vu comme desmthodes interne
APPEL de la mthode GETQUOTE du WS STOCKQUOTE
// vu comme une mthode locale
SOAP
Exemple dapplication
SOAP
Implmentations JAVA (API et outils associs
JAX-RPC (Java XML based RPC) : utilisation de SOAP enmode RPC
JAXR (JA XML registries) : utilisation de UDDI JAXM (JA XML Messaging) : utilisation de SOAP en mode
message Microsoft (technologie .NET)
Api dans la bibliothque de classes de .NET Classes PHP SOAP : Divers projets Open Source Perl : SOAP::Lite, UDDI::Lite, XMLRPC::Lite
Bibliographie
Services Web avec SOAP, WSDL, UDDI, ebXML de Jean Marie CHAUVET.
http://www.irisa.fr/coo/2001/W3CSOAP1.pdf http://www.w3.org/2003/06/soap12-pressrelease.html.fr http://igm.univ-mlv.fr/~dr/XPOSE2005/rouvio_WebServices/soap.html http://www.commentcamarche.net http://www-adele.imag.fr/users/Didier.Donsez/cours http://www.w3schools.com/soap/
Questions
?