Vous êtes sur la page 1sur 45

SERVICES WEB

PLAN
1. XML-RPC
2. SOAP
3. WSDL
4. Standard WS-*
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.
Web Services – XML RPC

Types de données
See the document “XML-RPC - Data Model” or download from
– https://www.tutorialspoint.com/xml-rpc/xml_rpc_data_model.
htm

Type 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*)>
Web Services – XML RPC

Types de données
Type de base
<!ELEMENT base64 (#PCDATA)>
• En informatique, base64 est un codage de
l'information utilisant 64 caractères (utilisant 6bits
par caractère), choisis pour être disponibles sur la
majorité des systèmes
• Common to all binary-to-text encoding schemes,
Base64 is designed to carry data stored in binary
formats across channels that only reliably support
text content. Base64 is particularly prevalent on
the World Wide Web[1] where its uses include the
ability to embed image files or other binary assets
inside textual assets such as HTML and CSS files
• https://en.wikipedia.org/wiki/Base64
Web Services – XML RPC

Types de données

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

Récursion
<!ELEMENT value ( i4 | int | boolean | string |
dateTime.iso8601| double | base64 | struct | array )>
Web 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)>
Exemple de
requêtes POST /RPC2 HTTP/1.0
User-Agent: Frontier/5.1.2 (WinNT)
Host: betty.userland.com HTTP header
Content-Type: text/xml
Content-length: 181

XML-RPC
Request
methodName peut être interprété à la convenance du
serveur .

– Cela peut être un script à lancer sur le document XML,


une méthode Java …

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

Il n’est pas possible à la lecture du document de savoir ce


qui va réellement être fait par le serveur.
Exemple de
réponse HTTP/1.1 200 OK
Connection: close
Content-Length: 158
HTTP header
Content-Type: text/xml
Date: Fri, 17 Jul 2020 19:55:08 GMT
Server: UserLand Frontier/5.1.2-WinNT

XML-RPC
Response
Web Services – XML RPC

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


soit un élément <fault>
• <params> ne peut contenir qu’un unique <param>
(c’est une réponse unique)
Web Services – XML RPC

Exemple de réponse en erreur


HTTP/1.1 200 OK
Connection: close It's an ordinary HTTP request, with a carefully
Content-Length: 426 constructed payload.
Content-Type: text/xml
Date: Fri, 17 Jul 1998 19:55:02 GMT
Server: UserLand Frontier/5.1.2-WinNT

<?xml version="1.0"?>
<methodResponse>
<fault> <value>
<struct>
<member><name>faultCode</name> <value><int>4</int></value> </member>
<member> <name>faultString</name> <value><string>Too many
parameters.</string></value> </member>
</struct>
</value> </fault>
</methodResponse>
Web Services – XML RPC

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

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

Il n’y a pas, dans la spécification de XML-RPC, de notion de


sécurité : tout est envoyé en clair.

Les différentes implémentations d’XML RPC ont « étendu »


les spécifications et donc ne sont pas toujours
interopérables.
Web Services – XML RPC

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

Elle n’a pas été retenue dans l’implémentation de la


nouvelle pile JEE 5.
P
WSDL
Exercices

Vous aimerez peut-être aussi