close

XML-RPC

Zur Navigation gehen Zur Suche gehen

XML-RPC ( Remote Procedure Call ) ist ein Remote Procedure Call-Protokoll , das XML zur Codierung von Daten und HTTP als Nachrichtenübertragungsprotokoll verwendet. [ 1 ]

Es ist ein sehr einfaches Protokoll, da es nur wenige nützliche Datentypen und Befehle sowie eine kurze vollständige Beschreibung definiert. Die Einfachheit von XML-RPC steht im Gegensatz zu den meisten RPC-Protokollen, die über eine umfangreiche Dokumentation verfügen und für deren Verwendung eine beträchtliche Softwareunterstützung erforderlich ist.

Es wurde 1998 von Dave Winer von der Firma UserLand Software in Zusammenarbeit mit Microsoft entwickelt . In Anbetracht der Tatsache, dass Microsoft sehr einfach war, beschloss es, ihm Funktionalitäten hinzuzufügen, woraufhin der Standard nach mehreren Entwicklungsphasen aufhörte, einfach zu sein, und zu dem wurde, was derzeit als SOAP bekannt ist . Ein grundlegender Unterschied besteht darin, dass bei SOAP -Prozeduren die Parameter einen Namen haben und ihre Reihenfolge keine Rolle spielt, was bei XML-RPC nicht der Fall ist . [ 2 ]

Datentypen

Gemäß der XML-RPC- Spezifikation [ 3 ] sind die wichtigsten Datentypen:

Name Beispiel-Tags Beschreibung
Reihe
 <array> 
   <data> 
     <value><i4> 1404 </i4></value> 
     <value><string> Etwas hier </string></value> 
     <value><i4> 1 </i4></ value> 
   </data> 
 </array>
Array von Werten, ohne Schlüssel zu speichern
base64
 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64>
Base-64-codierte Binärdaten
boolesch
 <boolean> 1 </boolean>
Logischer Wert (0 oder 1)
Terminzeit
 <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601>
Tag und Stunde
doppelt
 <double> -12,53 </double>
Gleitkommazahl mit doppelter Genauigkeit
ganze Zahl
 <i4> 42 </i4>

entweder

 <int> 42 </int>
ganze Zahl
Schnur
 <string> Hallo Welt </string>
Zeichenfolge (String) von Zeichen. Es muss der XML - Codierung folgen .
Struktur
 <struct> 
   <member> 
     <name> foo </name> 
     <value><i4> 1 </i4></value> 
   </member> 
   <member> 
     <name> bar </name> 
     <value><i4> 2 </i4></value> 
   </member> 
 </struct>
Array von Werten, Schlüssel speichernd
Null
 <null/>
Nullwert; eine XML-RPC-Erweiterung

Beispiele

  • Ein XML-RPC- Aufruf könnte wie folgt aussehen:
  <?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>
  • Eine Antwort auf die Vorladung:
  <?xml version="1.0"?> 
  <methodResponse> 
    <params> 
      <param> 
        <value><string> Datenaustausch-Nr. 360 mal 221 </string></value> 
      </param> 
    </params> 
  </methodResponse>

Implementierungen

Implementierungen existieren für verschiedene Betriebssysteme, Programmiersprachen, kommerzielle und freie Softwarelizenzen: [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , WebObjects und Zope .

Einige bekannte Implementierungen sind:

  • Apache XML-RPC , [ 5 ] eine Implementierung in Java.
  • XMLRPC-EPI , [ 6 ]​ eine C-Implementierung.
  • XML-RPC-C , [ 7 ] eine Implementierung für C und C++.

Referenzen

  1. ^ Simon St. Laurent , Joe Johnston , Edd Dumbill . (Juni 2001) Programmieren von Webdiensten mit XML-RPC O'Reilly. Erste Ausgabe. Vorwort von Dave Winer. (auf Englisch)
  2. David Winer. (31. März 2001). Achtung: Ein wesentlicher Unterschied zwischen SOAP und XML-RPC UserLand Software, Inc.
  3. David Winer. (15. Juni 1999) XML-RPC-Spezifikation Archiviert am 15. Juni 2007 auf der Wayback Machine . UserLand Software, Inc.
  4. David Winer. (17. Dezember 2003) XML-RPC-Implementierungen UserLand Software, Inc.
  5. Apache Software Foundation . Apache XML-RPC (auf Englisch).
  6. Epinions, Inc. XMLRPC-EPI sourceforge.net.
  7. Eric Kidd. XML-RPC für C und C++ sourceforge.net.

Siehe auch

Externe Links