1 les technologies xml cours 4 : les web services et xml- rpc février 2011 - version 1.0 -

14
1 Les technologies XML Les technologies XML Cours 4 : Cours 4 : Les Web Services et XML- Les Web Services et XML- RPC RPC Février 2011 Février 2011 - Version 1.0 - - Version 1.0 -

Upload: perrine-auvray

Post on 03-Apr-2015

115 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

1

Les technologies XMLLes technologies XML

Cours 4 : Cours 4 : Les Web Services et XML-Les Web Services et XML-RPCRPC

Février 2011Février 2011

- Version 1.0 - - Version 1.0 -

Page 2: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

2

Web Services – XML RPC Web Services – XML RPC

Avec l’avènement du Web, l’idée d’invoquer des services sur http s’est développée.

La première approche Web Service a été XML-RPC.

L’idée :

1. Envoyer un document XML

2. Le traiter sur le serveur (éventuellement effectuer des actions)

3. Renvoyer en réponse un autre document XML que le client peut traiter.

Page 3: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

3

Web Services – XML RPCWeb Services – XML RPC

Remote Procedure Call (RPC)

Sun RPC, CORBA IIOP, Java RMI, MS DCOM ORPC

XML RPC : http://www.xmlrpc.com/spec

Requête-réponse

Méthode POST de HTTP pour le transport

XML pour l’encodage

HTTP/SSL pour la sécurité

Page 4: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

4

Web Services – XML RPCWeb Services – XML RPC

Types de donnéesTypes de donnéesType de baseType de base

<!ELEMENT i4 (#PCDATA)><!ELEMENT int (#PCDATA)><!ELEMENT boolean (#PCDATA)><!ELEMENT string (#PCDATA)><!ELEMENT double (#PCDATA)><!ELEMENT dateTime.iso8601 (#PCDATA)><!ELEMENT base64 (#PCDATA)><!ELEMENT nil (EMPTY)>

Tableau<!ELEMENT array (data)><!ELEMENT data (value*)>

Structure<!ELEMENT struct (member*)><!ELEMENT member (name, value)><!ELEMENT name (#PCDATA)>

Récursion<!ELEMENT value ( i4 | int | boolean | string | dateTime.iso8601| double | base64 |struct | array )>

Page 5: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

5

Web Services – XML RPCWeb Services – XML RPC

Requête<!ELEMENT methodCall (methodName, params)><!ELEMENT methodName(#PCDATA)><!ELEMENT params (param*)><!ELEMENT param(value)>

Réponse<!ELEMENT methodResponse(params|fault)><!ELEMENT fault (value)>

Fault<!ELEMENT fault (faultCode,faultString)><!ELEMENT faultCode(#PCDATA)><!ELEMENT faultString(#PCDATA)>

Page 6: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

6

Web Services – XML RPCWeb Services – XML RPC

Exemple de requêteExemple de requêtePOST /RPC2 HTTP/1.0POST /RPC2 HTTP/1.0 User-Agent: Frontier/5.1.2 (WinNT)User-Agent: Frontier/5.1.2 (WinNT) Host: betty.userland.comHost: betty.userland.com Content-Type: text/xmlContent-Type: text/xml Content-length: 181Content-length: 181

<?xml version="1.0"?><?xml version="1.0"?><methodCall> <methodCall>

<methodName>examples.getStateName</methodName><methodName>examples.getStateName</methodName><params><params>

<param> <value><i4>41</i4></value> </param><param> <value><i4>41</i4></value> </param></params></params>

</methodCall> </methodCall>

Page 7: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

7

Web Services – XML RPCWeb Services – XML RPC

methodName peut être interprété à la methodName peut être interprété à la convenance du serveur .Cela peut être un script convenance du serveur .Cela peut être un script à lancer sur le document XML, une méthode Java à lancer sur le document XML, une méthode Java ……

Il n’y a pas de limite au nombre de paramètreIl n’y a pas de limite au nombre de paramètre

Il n’est pas possible à la lecture du document de Il n’est pas possible à la lecture du document de savoir ce qui va réellement être fait par le savoir ce qui va réellement être fait par le serveur.serveur.

Page 8: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

8

Web Services – XML RPCWeb Services – XML RPC

Exemple de réponseExemple de réponseHTTP/1.1 200 OKHTTP/1.1 200 OKConnection: close Connection: close Content-Length: 158Content-Length: 158Content-Type: text/xmlContent-Type: text/xmlDate: Fri, 17 Jul 1998 19:55:08 GMTDate: Fri, 17 Jul 1998 19:55:08 GMTServer: UserLand Frontier/5.1.2-WinNTServer: UserLand Frontier/5.1.2-WinNT

<?xml version="1.0"?><?xml version="1.0"?><methodResponse><methodResponse>

<params><param> <value><string>South

Dakota</string></value></param></params>

</methodResponse> </methodResponse>

Page 9: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

9

Web Services – XML RPCWeb Services – XML RPC

Le code retour http doit être 200 sauf en cas Le code retour http doit être 200 sauf en cas d’erreur http.d’erreur http.

Le reste des headers http doit être correctement Le reste des headers http doit être correctement valorisé.valorisé.

methodResponse peut contenir soit un élément methodResponse peut contenir soit un élément <params> soit un élément <fault><params> soit un élément <fault>

<params> ne peut contenir qu’un unique <params> ne peut contenir qu’un unique <param><param>

Page 10: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

10

Web Services – XML RPCWeb Services – XML RPC

Exemple de réponse en erreurExemple de réponse en erreurHTTP/1.1 200 OKHTTP/1.1 200 OKConnection: closeConnection: closeContent-Length: 426Content-Length: 426Content-Type: text/xmlContent-Type: text/xmlDate: Fri, 17 Jul 1998 19:55:02 GMTDate: Fri, 17 Jul 1998 19:55:02 GMTServer: UserLand Frontier/5.1.2-WinNTServer: UserLand Frontier/5.1.2-WinNT

<?xml version="1.0"?><?xml version="1.0"?><methodResponse><methodResponse><fault> <value><fault> <value><struct><struct><member><name>faultCode</name> <value><int>4</int></value> </member><member><name>faultCode</name> <value><int>4</int></value> </member><member> <name>faultString</name> <value><string>Too many <member> <name>faultString</name> <value><string>Too many

parameters.</string></value> </member> parameters.</string></value> </member> </struct></struct></value> </fault></value> </fault></methodResponse> </methodResponse>

Page 11: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

11

Web Services – XML RPCWeb Services – XML RPC

Les « faultCode » ne sont pas normalisés et leur Les « faultCode » ne sont pas normalisés et leur signification doit être diffusée au client pour qu’il signification doit être diffusée au client pour qu’il puisse les interpréterpuisse les interpréter

Dans le cas ou le retour est un élément <fault> Dans le cas ou le retour est un élément <fault> le retour http peut être 200 !!le retour http peut être 200 !!

Page 12: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

12

Web Services – XML RPCWeb Services – XML RPC

Conclusion 1/2Conclusion 1/2

XML RPC est simple à implémenter et permet XML RPC est simple à implémenter et permet d’exposer rapidement des services sur le net.d’exposer rapidement des services sur le net.

Il est difficile de savoir ce que fait réellement un Il est difficile de savoir ce que fait réellement un service.service.

Il n’y a pas dans la spécification de notion de Il n’y a pas dans la spécification de notion de sécurité : tout est envoyé en clair.sécurité : tout est envoyé en clair.

Les différentes implémentations d’XML RPC ont Les différentes implémentations d’XML RPC ont « étendues » les spécifications et donc ne sont pas « étendues » les spécifications et donc ne sont pas toujours interopérables.toujours interopérables.

Page 13: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

13

Web Services – XML RPCWeb Services – XML RPC

Conclusion 2/2Conclusion 2/2

L’approche XML-RPC n’est quasiment plus utilisée L’approche XML-RPC n’est quasiment plus utilisée en entreprise du fait du manque de sécurité du en entreprise du fait du manque de sécurité du protocoleprotocole

Elle n’a pas été retenue dans l’implémentation de Elle n’a pas été retenue dans l’implémentation de la nouvelle pile JEE 5.la nouvelle pile JEE 5.

Page 14: 1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février 2011 - Version 1.0 -

14

Web Services – XML RPCWeb Services – XML RPC

Quelques Implémentations (Quelques Implémentations (http://www.xmlrpc.com/directory/1568/implementationshttp://www.xmlrpc.com/directory/1568/implementations))

Apache : Apache : http://ws.apache.org/xmlrpc/http://ws.apache.org/xmlrpc/