XML-RPC

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

<?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