XML-RPC
XML-RPC ( Remote Procedure Call ) est un protocole d'appel de procédure à distance qui utilise XML pour coder les données et HTTP comme protocole de transmission des messages. [ 1 ]
C'est un protocole très simple car il ne définit que quelques types de données et commandes utiles, ainsi qu'une courte description complète. La simplicité de XML-RPC contraste avec la plupart des protocoles RPC qui ont une documentation complète et nécessitent un support logiciel considérable pour être utilisés.
Il a été créé par Dave Winer de la société UserLand Software en association avec Microsoft en 1998 . Considérant que Microsoft était très simple, il a décidé d'y ajouter des fonctionnalités, après quoi, après plusieurs étapes de développement, le standard a cessé d'être simple et est devenu ce qu'on appelle actuellement SOAP . Une différence fondamentale est que dans les procédures SOAP les paramètres ont un nom et leur ordre n'a pas d'importance, ce qui n'est pas le cas dans XML-RPC . [ 2 ]
Types de données
Selon la spécification XML-RPC , [ 3 ] les principaux types de données sont :
| nom | Exemples de balises | La description |
|---|---|---|
| déployer |
<array>
<data>
<value><i4> 1404 </i4></value>
<value><string> Quelque chose ici </string></value>
<value><i4> 1 </i4></ valeur>
</data>
</array>
|
Tableau de valeurs, sans stockage de clés |
| base64 |
<base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64>
|
Données binaires encodées en base 64 |
| booléen |
<booléen> 1 </booléen>
|
Valeur logique (0 ou 1) |
| date/heure |
<dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601>
|
Jour et heure |
| double |
<double> -12.53 </double>
|
Nombre à virgule flottante double précision |
| entier |
<i4> 42 </i4>
Soit <int> 42 </int>
|
Entier |
| chaîne de caractères |
<string> Bonjour tout le monde </string>
|
Chaîne (chaîne) de caractères. Il doit respecter l' encodage XML . |
| structure |
<struct>
<member>
<name> foo </name>
<value><i4> 1 </i4></value>
</member>
<member>
<name> bar </name>
<value><i4> 2 </i4></value>
</member>
</struct>
|
Tableau de valeurs, stockage des clés |
| néant |
<néant/>
|
valeur nulle ; une extension XML-RPC |
Exemples
- Une invocation XML-RPC pourrait être :
<?xml version="1.0"?>
<methodCall>
<methodName> org.wikipedia.DataExchange </methodName>
<params>
<param>
<value><i4> 360 </i4></value>
</param>
<param>
<value><i4> 221 </i4></value>
</param>
</params>
</methodCall>
- Une réponse à la convocation :
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string> N° d'échange de données. 360 par 221 </string></value>
</param>
</params>
</methodResponse>
Implémentations
Des implémentations existent pour différents systèmes d'exploitation, langages de programmation, licences de logiciels commerciaux et libres : [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , WebObjects et Zope .
Certaines implémentations connues sont :
- Apache XML-RPC , [ 5 ] une implémentation en Java.
- XMLRPC-EPI , [ 6 ] une implémentation C.
- XML-RPC-C , [ 7 ] une implémentation pour C et C++.
Références
- ^ Simon St. Laurent , Joe Johnston , Edd Dumbill . (Juin 2001) Programmation de services Web avec XML-RPC O'Reilly. Première édition. Préface de Dave Winer. (en anglais)
- ↑ Dave Winner. (31 mars 2001). Attention : une différence essentielle entre SOAP et XML-RPC UserLand Software, Inc.
- ↑ Dave Winner. (15 juin 1999) Spécification XML-RPC Archivée le 15 juin 2007 sur la Wayback Machine . Logiciel UserLand, Inc.
- ↑ Dave Winner. (17 décembre 2003) Implémentations XML-RPC UserLand Software, Inc.
- ↑ Apache Software Foundation . Apache XML-RPC (en anglais).
- ↑ Epinions, Inc. XMLRPC-EPI sourceforge.net.
- ↑ Eric Kidd. XML-RPC pour C et C++ sourceforge.net.
Voir aussi
Portail : Informatique . Contenu lié à l'informatique .- DU SAVON
- IDL
- XML
- RCR
Liens externes
- Site officiel XML-RPC , UserLand Software, Inc. (en anglais)
- Extensions XML-RPC