close

XML-RPC

Gå til navigasjon Gå til søk

XML-RPC ( Remote Procedure Call ) er en ekstern prosedyreanropsprotokoll som bruker XML til å kode data og HTTP som meldingsoverføringsprotokoll. [ 1 ]

Det er en veldig enkel protokoll da den bare definerer noen få nyttige datatyper og kommandoer, pluss en kort fullstendig beskrivelse. Enkelheten til XML-RPC står i kontrast til de fleste RPC-protokoller som har omfattende dokumentasjon og krever betydelig programvarestøtte å bruke.

Den ble opprettet av Dave Winer fra UserLand Software-selskapet i samarbeid med Microsoft i 1998 . Tatt i betraktning at Microsoft var veldig enkelt, bestemte den seg for å legge til funksjonalitet til den, hvoretter standarden etter flere utviklingsstadier sluttet å være enkel og ble det som for tiden er kjent som SOAP . En grunnleggende forskjell er at i SOAP -prosedyrer har parameterne et navn og rekkefølgen deres spiller ingen rolle, noe som ikke er tilfellet i XML-RPC . [ 2 ]

Datatyper

I henhold til XML-RPC- spesifikasjonen [ 3 ] er hoveddatatypene :

Navn Eksempelkoder Beskrivelse
array
 <array> 
   <data> 
     <value><i4> 1404 </i4></value> 
     <value><string> Noe her </string></value> 
     <value><i4> 1 </i4></ verdi> 
   </data> 
 </array>
En rekke verdier, uten å lagre nøkler
base64
 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64>
Base 64-kodede binære data
boolsk
 <boolean> 1 </boolean>
Logisk verdi (0 eller 1)
dato tid
 <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601>
Dag og time
dobbelt
 <double> -12,53 </double>
Dobbelt presisjons flytepunktnummer
heltall
 <i4> 42 </i4>

enten

 <int> 42 </int>
heltall
streng
 <string> Hei verden </string>
Streng (streng) med tegn. Den må følge XML -koding .
struktur
 <struct> 
   <medlem> 
     <name> foo </name> 
     <value><i4> 1 </i4></value> 
   </member> 
   <medlem> 
     <name> bar </name> 
     <value><i4> 2 </i4></value> 
   </member> 
 </struct>
En rekke verdier, lagring av nøkler
null
 <null/>
null verdi; en XML-RPC-utvidelse

Eksempler

  • En XML-RPC- anrop kan være:
  <?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>
  • Svar på stevningen:
  <?xml version="1.0"?> 
  <methodResponse> 
    <params> 
      <param> 
        <value><string> Datautvekslingsnr. 360 x 221 </string></value> 
      </param> 
    </params> 
  </methodResponse>

Implementeringer

Implementeringer finnes for ulike operativsystemer, programmeringsspråk, kommersielle og fri programvarelisenser: [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , WebObjects og Zope .

Noen kjente implementeringer er:

  • Apache XML-RPC , [ 5 ] en implementering i Java.
  • XMLRPC-EPI , [ 6 ]​ en C-implementering.
  • XML-RPC-C , [ 7 ] en implementering for C og C++.

Referanser

  1. ^ Simon St. Laurent , Joe Johnston , Edd Dumbill . (Juni 2001) Programmering av webtjenester med XML-RPC O'Reilly. Første utgave. Forord av Dave Winer. (på engelsk)
  2. Dave Winer. (31. mars 2001). Vær oppmerksom: En viktig forskjell mellom SOAP og XML-RPC UserLand Software, Inc.
  3. Dave Winer. (15. juni 1999) XML-RPC-spesifikasjon Arkivert 15. juni 2007 på Wayback Machine . UserLand Software, Inc.
  4. Dave Winer. (17. desember 2003) XML-RPC-implementeringer UserLand Software, Inc.
  5. Apache Software Foundation . Apache XML-RPC (på engelsk).
  6. Epinions, Inc. XMLRPC-EPI sourceforge.net.
  7. Eric Kidd. XML-RPC for C og C++ sourceforge.net.

Se også

Eksterne lenker