close

XML-RPC

Ga naar navigatie Ga naar zoeken

XML-RPC ( Remote Procedure Call ) is een protocol voor procedureaanroepen op afstand dat XML gebruikt om gegevens te coderen en HTTP als het protocol voor het verzenden van berichten. [ 1 ]

Het is een heel eenvoudig protocol omdat het slechts een paar bruikbare datatypes en commando's definieert, plus een korte volledige beschrijving. De eenvoud van XML-RPC contrasteert met de meeste RPC-protocollen die uitgebreide documentatie hebben en aanzienlijke software-ondersteuning vereisen om te gebruiken.

Het is in 1998 gemaakt door Dave Winer van het bedrijf UserLand Software in samenwerking met Microsoft . Aangezien Microsoft heel eenvoudig was, besloot het er functionaliteiten aan toe te voegen, waarna, na verschillende ontwikkelingsfasen, de standaard niet langer eenvoudig was en werd wat nu bekend staat als SOAP . Een fundamenteel verschil is dat in SOAP -procedures de parameters een naam hebben en hun volgorde er niet toe doet, wat bij XML-RPC niet het geval is . [ 2 ]

Gegevenstypen

Volgens de XML-RPC- specificatie zijn [ 3 ] de belangrijkste gegevenstypen:

Naam Voorbeeldtags Beschrijving
reeks
 <array> 
   <data> 
     <value><i4> 1404 </i4></value> 
     <value><string> Hier iets </string></value> 
     <value><i4> 1 </i4></ waarde> 
   </data> 
 </array>
Array van waarden, zonder sleutels op te slaan
base64
 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64>
Base 64 gecodeerde binaire gegevens
booleaans
 <boolean> 1 </boolean>
Logische waarde (0 of 1)
datum Tijd
 <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601>
Dag en uur
dubbele
 <dubbel> -12.53 </dubbel>
Drijvende-kommagetal met dubbele precisie
geheel getal
 <i4> 42 </i4>

of

 <int> 42 </int>
geheel getal
snaar
 <string> Hallo wereld </string>
String (string) van karakters. Het moet XML -codering volgen .
structuur
 <struct> 
   <member> 
     <name> foo </name> 
     <value><i4> 1 </i4></value> 
   </member> 
   <member> 
     <name> balk </name> 
     <value><i4> 2 </i4></value> 
   </member> 
 </struct>
Reeks waarden, sleutels opslaan
nul
 <nihil/>
nulwaarde; een XML-RPC-extensie

Voorbeelden

  • Een XML-RPC- aanroep kan zijn:
  <?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>
  • Een reactie op de dagvaarding:
  <?xml version="1.0"?> 
  <methodResponse> 
    <params> 
      <param> 
        <value><string> Gegevensuitwisselingsnr. 360 bij 221 </string></value> 
      </param> 
    </params> 
  </methodResponse>

Implementaties

Er bestaan ​​implementaties voor verschillende besturingssystemen, programmeertalen, commerciële en vrije softwarelicenties: [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , WebObjects en Zope .

Enkele bekende implementaties zijn:

  • Apache XML-RPC , [ 5 ] een implementatie in Java.
  • XMLRPC-EPI , [ 6 ]​ een C-implementatie.
  • XML-RPC-C , [ 7 ] een implementatie voor C en C++.

Referenties

  1. ^ Simon St. Laurent , Joe Johnston , Edd Dumbill . (juni 2001) Webservices programmeren met XML-RPC O'Reilly. Eerste editie. Voorwoord door Dave Winer. (in Engels)
  2. Dave Winer . (31 maart 2001). Let op: een belangrijk verschil tussen SOAP en XML-RPC UserLand Software, Inc.
  3. Dave Winer . (15 juni 1999) XML-RPC-specificatie Gearchiveerd op 15 juni 2007 op de Wayback Machine . UserLand Software, Inc.
  4. Dave Winer . (17 december 2003) XML-RPC-implementaties UserLand Software, Inc.
  5. Apache Software Foundation . Apache XML-RPC (in het Engels).
  6. Epinions, Inc. XMLRPC-EPI sourceforge.net.
  7. Eric Kidd. XML-RPC voor C en C++ sourceforge.net.

Zie ook

Externe links