XML-RPC

XML-RPC

XML-RPC (Extensible Markup Language Remote Procedure Call) ist eine Definition zum Methodenaufruf (oder auch Funktionsaufruf) durch verteilte Systeme.

Bei der Spezifikation wurde darauf Wert gelegt, dass eine Implementierung von XML-RPC ohne großen Aufwand in unterschiedlichen Programmiersprachen und auf unterschiedlichen Systemplattformen möglich ist. Auch aus diesem Grund wurden zur Realisierung zwei Standards miteinander verbunden: Für den Transport der Daten wurde auf das Hypertext Transfer Protocol (HTTP) zurückgegriffen, während die Darstellung der übertragenen Daten in der Extensible Markup Language (XML) geschieht.

Die Wahl dieser Standards stellt auch den wesentlichen Unterschied zu älteren RPC-Mechanismen, wie beispielsweise RPC, Corba oder DCOM dar, bei denen die Daten zumeist in einer (teilweise systemabhängigen: DCOM) binären Darstellung über spezielle Übertragungsprotokolle übermittelt werden.

Historisch gesehen stellt XML-RPC den Vorgänger zu SOAP dar, ist im Gegensatz zu diesem jedoch wesentlich schlanker und schneller zu verstehen.

Es gibt zahlreiche Implementierungen für viele der heute gängigen Programmiersprachen, die die Basisfunktionalitäten des Methodenaufrufs und der Methodenbehandlung übernehmen. Zu den Basisfunktionalitäten in diesen Bibliotheken gehören unter anderem:

  • Darstellung der Datentypen,
  • Generierung und Analyse der Aufruf- und der Antwortpakete,
  • Übertragung und Empfang derselben und
  • oft auch die Bereitstellung von Skeleton und Stub zum einfachen „mit Leben füllen“ des Programmcodes.

Folgende Datentypen sind in XML-RPC definiert:

Typname(n) in XML-RPC Beschreibung
int, i4 Integer (Datentyp)
double Gleitkommazahl
boolean Boolesche Variable
string Zeichenkette
dateTime.iso8601 Datum und Uhrzeit im ISO-Format
base64 Base64-kodierte binäre Daten

Mehrere dieser einfachen Datentypen können mittels „struct“ und „array“ zusammengefasst werden. Ein „struct“ stellt hierbei eine Ansammlung von Schlüssel-Wert-Paaren dar; auf jeden enthaltenen Wert kann also durch einen eindeutigen Schlüsselwert zugegriffen werden. Ein „array“ stellt hingegen eine Liste dar; jeder enthaltene Wert wird hierbei eindeutig über seine Position beschrieben. Neben den einfachen Datentypen können „struct“s und „array“s, wiederum „struct“s und „array“s als Werte enthalten; es lassen sich somit beliebig komplexe Datenstrukturen darstellen.

In Java ist der dem „struct“ entsprechende Datentyp die sogenannte Map (java.util.Map). Bei den Implementierungen wird allerdings zumeist die Klasse HashTable zur Darstellung verwendet, die die Schnittstelle Map implementiert, aber schon länger in Java existiert. Der dem „array“ entsprechende Datentyp ist in Java die sogenannte List (java.util.List) oder ein Object-Array.

Inhaltsverzeichnis

Erweiterungen des Standards

Es existieren vielfältige Erweiterungen des Standards, um mutmaßliche Lücken im Standard zu schließen. Meist beruhen diese Erweiterungen jedoch auf einem Missverständnis, was XML-RPC ist, und gefährden die Interoperabilität unterschiedlicher Systeme. Daher bieten auch die meisten Implementierungen einen Schalter an, um in einen Kompatibilitätsmodus zu wechseln, in dem nur der Standard unterstützt wird.

Null-Datentyp

Die Darstellungen von sogenannten Null-Werten (auch bekannt als NIL, NULL oder NUL) ist mit XML-RPC nicht möglich. Methoden müssen daher immer einen konkreten Wert zurückgeben, in seltenen Fällen kann dies ein Problem sein. Es existieren unterschiedliche Erweiterung des XML-RPC Standards um dieses Problem zu beheben, allerdings werden diese Erweiterungen nicht von allen Servern und Clients unterstützt. (Siehe beispielsweise: [1].)

Beispiele

Anfrage

 <?xml version="1.0"?>
 <methodCall>
   <methodName>warenkorb.addPosition</methodName>
   <params>
     <param>
       <value><string>Monitor</string></value>
     </param>
     <param>
       <value><int>10</int></value>
     </param>
   </params>
 </methodCall>

Antwort

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

Code-Beispiel: Linux Documentation Project

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • XML-RPC — is a remote procedure call protocol which uses XML to encode its calls and HTTP as a transport mechanism. Simon St. Laurent, Joe Johnston, Edd Dumbill. (June 2001) Programming Web Services with XML RPC. O Reilly. First Edition. ] OverviewXML RPC… …   Wikipedia

  • XML-RPC — (сокр. от англ. Extensible Markup Language Remote Procedure Call  XML вызов удалённых процедур)  стандарт/протокол вызова удалённых процедур, использующий XML для кодирования своих сообщений и HTTP в качестве транспортного… …   Википедия

  • XML RPC — (сокр. от англ. Extensible Markup Language Remote Procedure Call XML вызов удалённых процедур) стандарт/протокол вызова удалённых процедур, основанный на SOAP, отличается исключительной простотой применения. XML RPC, как и любой другой интерфейс… …   Википедия

  • XML-RPC — es un protocolo de llamada a procedimiento remoto que usa XML para codificar los datos y HTTP como protocolo de transmisión de mensajes.[1] Es un protocolo muy simple ya que solo define unos cuantos tipos de datos y comandos útiles, además de una …   Wikipedia Español

  • 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. XML RPC permet d… …   Wikipédia en Français

  • 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. XML RPC permet d… …   Wikipédia en Français

  • RPC — can refer to:Organizations* Revolutionary Policy Committee, a faction within UK Independent Labour Party during the 1930s. * Rail Passengers Council, a network established by the Parliament of the United Kingdom to protect and promote the… …   Wikipedia

  • XML Interface for Network Services — Infobox Software name = XINS caption = developer = Orange Nederland Breedband B.V. released = ? frequently updated = yes programming language = ? operating system = Cross platform language = ? genre = Web services license = BSD website =… …   Wikipedia

  • RPC — Para el Estado socialista de China continental, véase República Popular China. El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota …   Wikipedia Español

  • .xml — Vorlage:Infobox Dateiformat/Wartung/magic fehltVorlage:Infobox Dateiformat/Wartung/website fehlt Extensible Markup Language Dateiendung .xml …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”