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
- 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
- ^ 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)
- ↑ Dave Winer. (31. mars 2001). Vær oppmerksom: En viktig forskjell mellom SOAP og XML-RPC UserLand Software, Inc.
- ↑ Dave Winer. (15. juni 1999) XML-RPC-spesifikasjon Arkivert 15. juni 2007 på Wayback Machine . UserLand Software, Inc.
- ↑ Dave Winer. (17. desember 2003) XML-RPC-implementeringer UserLand Software, Inc.
- ↑ Apache Software Foundation . Apache XML-RPC (på engelsk).
- ↑ Epinions, Inc. XMLRPC-EPI sourceforge.net.
- ↑ Eric Kidd. XML-RPC for C og C++ sourceforge.net.
Se også
Portal: Databehandling . Datarelatert innhold .- SÅPE
- IDL
- XML
- HLR
Eksterne lenker
- XML-RPC offisiell side , UserLand Software, Inc. (på engelsk)
- XML-RPC- utvidelser