XML-RPC
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
- ^ 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)
- ↑ David Winer. (31. März 2001). Achtung: Ein wesentlicher Unterschied zwischen SOAP und XML-RPC UserLand Software, Inc.
- ↑ David Winer. (15. Juni 1999) XML-RPC-Spezifikation Archiviert am 15. Juni 2007 auf der Wayback Machine . UserLand Software, Inc.
- ↑ David Winer. (17. Dezember 2003) XML-RPC-Implementierungen UserLand Software, Inc.
- ↑ Apache Software Foundation . Apache XML-RPC (auf Englisch).
- ↑ Epinions, Inc. XMLRPC-EPI sourceforge.net.
- ↑ Eric Kidd. XML-RPC für C und C++ sourceforge.net.
Siehe auch
Portal: Computer . Computerbezogene Inhalte .- SEIFE
- IDL
- XML
- HLW
Externe Links
- Offizielle XML-RPC-Website , UserLand Software, Inc. (auf Englisch)
- XML-RPC- Erweiterungen