Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. XML-RPC — Wikipédia
XML-RPC — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

XML-RPC est un protocole RPC (remote procedure call), une spécification simple et un ensemble de codes qui permettent à des processus s'exécutant dans des environnements différents de faire des appels de méthodes à travers un réseau.

Ce protocole a été élaboré et publié dans sa première version en 1998 par Dave Winer, travaillant pour UserLand Software[1], en collaboration avec Microsoft[2].

XML-RPC permet d'appeler une fonction sur un serveur distant à partir de n'importe quel système (Windows, Mac OS X, GNU/Linux) et avec n'importe quel langage de programmation. Le serveur est lui-même sur n'importe quel système et est programmé dans n'importe quel langage.

Cela permet de fournir un service web utilisable par tout le monde sans restriction de système ou de langage.

Les processus d'invocation à distance utilisent le protocole HTTP pour le transfert des données et la norme XML pour la structuration des données.

XML-RPC est conçu pour permettre à des structures de données complexes d'être transmises, exécutées et renvoyées très facilement.

XML-RPC est une alternative aux services web WS-*, dont SOAP.

Usage[3]

[modifier | modifier le code]

Pour effectuer un appel XML-RPC, un client doit effectuer une requête POST de type text/xml avec un corps qui précise la méthode distante invoquée, et, s'il y en a, les paramètres à passer à cette méthode.

Le serveur XML-RPC doit renvoyer une réponse avec le code "200 OK", le type text/xml, et un corps qui peut contenir un unique paramètre. En cas d'erreur le corps peut à la place contenir une description de l'erreur. Une erreur est représentée par un code d'erreur sous forme d'un entier, et d'un message d'erreur sous forme de chaîne de caractères.

Exemple

[modifier | modifier le code]

Imaginons un serveur xml-rpc qui comporterait une méthode genereUnMessageDeSalutation qui prend comme paramètre un nom et qui retour un message de salutation en conséquence. Une requête pour invoquer cette méthode aurait le corps

<?xml version="1.0"?>
<methodCall>
    <methodName>genereUnMessageDeSalutation</methodName>
    <params>
        <param>
            <value><string>Paul</string></value>
        </param>
    </params>
</methodCall>

et la réponse ressemblerait à

<?xml version="1.0"?>
<methodResponse>
    <params>
        <param>
            <value><string>Bonjour Paul</string></value>
        </param>
    </params>
</methodResponse>

Types de données

[modifier | modifier le code]

Les types de données qui existent dans la spécification xml-rpc sont :

Nom Exemple Commentaire
Entier
<i4>-666</i4>
ou
<int>-666</int>
Entier signé sur 4 bytes
Booléen
<boolean>0</boolean>
ou
<boolean>1</boolean>
0 représente l'état "faux", 1 représente l'état "vrai"
Chaîne de caractères
<string>Toto</string>
Nombre à virgule
<double>-13.12</double>
double signé
Date et heure
<dateTime.iso8601>2025-04-13T20:06:52</dateTime.iso8601>
Date et heure au format ISO 8601
Données binaires
<base64>dW4gdGV4dGUgc2FucyBpbnTDqXLDqnQ=</base64>
Donées binaires encodées en base64
Structure de données
<struct>
  <member>
    <name>nom</name>
    <value><string>Toto</string></value>
  </member>
  <member>
    <name>age</name>
    <value><i4>18</i4></value>
  </member>
</struct>
Chaque membre de la structure de données a un nom et une valeur.

Un membre peut être de n'importe quel type. Il peut aussi être lui même une structure de données

Tableau
<array>
  <data>
    <value><string>Toto</string></value>
    <value><i4>18</i4></value>
  </data>
</array>
Les types de valeur du tableau peuvent de n'importe quel type et peuvent être hétérogènes

Une extension de la spécification introduit le type de données <nil /> qui permet de représenter une absence de valeur[4]. Il n'est toutefois pas garanti qu'un serveur XML-RPC accepte ce type de données sur tous ses champs.

Par ailleurs, bien que ne faisant pas partie de la spécification, certaines implémentations acceptent le type de données <i8> pour représenter les entiers signés codés sur 8 bytes[5],[6].

Critiques

[modifier | modifier le code]

Des critiques à l'encontre de XLM-RPC font valoir qu'il n'a qu'une faible valeur ajoutée par rapport à du simple XML ou par rapport à une API Rest. Notamment une requête XML-RPC est environ 4 fois plus grosse qu'une requête en simple XML qui encoderait les mêmes objets[7],[8],[9].

Références

[modifier | modifier le code]
  1. ↑ (en) Dave Winer, « Home », 14 juin 1999 (consulté le 25 mai 2024)
  2. ↑ (en) Dave Winer, « XML-RPC for Newbies », 14/07.1998 (consulté le 25 mai 2014)
  3. ↑ (en) « XML-RPC Specification » (consulté le 13 avril 2025)
  4. ↑ (en) « XML-RPC Extensions » (consulté le 13 avril 2025)
  5. ↑ (en) « RPC::XML - A set of classes for core data, message and XML handling - metacpan.org » (consulté le 13 avril 2025)
  6. ↑ (en) « User manual for XML-RPC For C/C++ » (consulté le 13 avril 2025)
  7. ↑ (en) « What is the benefit of XML-RPC over plain XML? » (consulté le 14 avril 2025)
  8. ↑ (en) « "An open poll on the merits of XmlRpc versus alternatives » (consulté le 14 avril 2025)
  9. ↑ (en) « If you have REST, why XML-RPC? » (consulté le 14 avril 2025)

Liens externes

[modifier | modifier le code]
  • (en) XML-RPC Home Page, spécification et également implémentations dans divers langages
  • (en) XML-RPC Home page de 1998, conservée par Dave Winer
  • (en) Rebooting XML-RPC, évolution de XML-RPC par son créateur Dave Winer
  • (en) Scripting/xml-rpc sur GIthub, la version Javascript de "Rebooting XML-RPC" par Dave Winer
  • Documentation avec exemples d'implémentation en plusieurs langages : http://www.tldp.org/HOWTO/XML-RPC-HOWTO/index.html
v · m
Communication inter-processus
Méthodes
  • Fichier
  • Mmap
  • Passage de messages
    • File d'attente
  • Tube
    • Nommé
    • Anonyme
  • Substitution de processus
  • Sémaphore
  • Mémoire partagée
  • Signaux
  • Sockets
    • INET
    • UNIX
Protocoles
  • Apache Thrift
  • Apple events
  • COM+
  • CORBA
  • D-Bus
  • DCE
  • ICE
  • ONC RPC
  • POSIX (différentes méthodes)
  • Protocol Buffers
  • SOAP
  • REST
  • TIPC
  • XML-RPC
  • icône décorative Portail de l’informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=XML-RPC&oldid=225609299 ».
Catégories :
  • Norme ou standard informatique
  • Service web
Catégories cachées :
  • Wikipédia:ébauche informatique
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id