close

XML-RPC

Ugrás a navigációhoz Ugrás a kereséshez

Az XML-RPC ( Remote Procedure Call ) egy távoli eljáráshívási protokoll , amely XML -t használ az adatok kódolására, a HTTP -t pedig üzenetátviteli protokollként. [ 1 ]

Ez egy nagyon egyszerű protokoll, mivel csak néhány hasznos adattípust és parancsot határoz meg, valamint egy rövid teljes leírást. Az XML-RPC egyszerűsége ellentétben áll a legtöbb RPC protokollal, amelyek kiterjedt dokumentációval rendelkeznek, és használatuk jelentős szoftvertámogatást igényel.

Dave Winer, a UserLand Software cégtől a Microsofttal együttműködve hozta létre 1998 -ban . Tekintettel arra, hogy a Microsoft nagyon egyszerű volt, úgy döntött, hogy funkcionalitásokat ad hozzá, majd a fejlesztés több szakasza után a szabvány megszűnt egyszerű lenni, és a jelenleg SOAP néven ismert szabvány lett . Alapvető különbség, hogy a SOAP eljárásokban a paramétereknek van neve, és sorrendjük nem számít, ami XML-RPC esetén nem így van . [ 2 ]

Adattípusok

Az XML-RPC specifikáció szerint [ 3 ] a fő adattípusok a következők:

Név Példacímkék Leírás
sor
 <array> 
   <data> 
     <value><i4> 1404 </i4></value> 
     <value><string> Valami itt </string></value> 
     <value><i4> 1 </i4></ érték> 
   </data> 
 </array>
Értékek tömbje kulcsok tárolása nélkül
alap64
 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64>
Base 64 kódolású bináris adatok
logikai érték
 <boolean> 1 </boolean>
Logikai érték (0 vagy 1)
dátum idő
 <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601>
Nap és óra
kettős
 <double> -12,53 </double>
Dupla pontosságú lebegőpontos szám
egész szám
 <i4> 42 </i4>

bármelyik

 <int> 42 </int>
egész szám
húr
 <string> Hello világ </string>
Karakterlánc (karakterlánc). Követnie kell az XML kódolást .
szerkezet
 <struct> 
   <member> 
     <name> foo </name> 
     <value><i4> 1 </i4></value> 
   </member> 
   <member> 
     <name> bar </name> 
     <value><i4> 2 </i4></value> 
   </member> 
 </struct>
Értékek tömbje, kulcsok tárolása
nulla
 <nil/>
null érték; egy XML-RPC kiterjesztés

Példák

  • Az XML-RPC hívás a következő lehet:
  <?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>
  • Válasz a felszólításra:
  <?xml version="1.0"?> 
  <methodResponse> 
    <params> 
      <param> 
        <value><string> Adatcsere sz. 360 x 221 </string></value> 
      </param> 
    </params> 
  </methodResponse>

Megvalósítások

Különféle operációs rendszerekhez, programozási nyelvekhez, kereskedelmi és ingyenes szoftverlicencekhez léteznek megvalósítások: [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , WebObjects és Zope .

Néhány ismert megvalósítás:

  • Apache XML-RPC , [ 5 ] egy Java nyelvű implementáció.
  • XMLRPC-EPI , [ 6 ]​ C implementáció.
  • XML-RPC-C , [ 7 ] C és C++ implementációja.

Hivatkozások

  1. ^ Simon St. Laurent , Joe Johnston , Edd Dumbill . (2001. június) Webszolgáltatások programozása XML-RPC O'Reilly segítségével. Első kiadás. Dave Winer előszava. (angolul)
  2. Dave Winer. (2001. március 31.). Figyelem: A legfontosabb különbség a SOAP és az XML-RPC UserLand Software, Inc. között.
  3. Dave Winer. (1999. június 15.) XML-RPC specifikáció archiválva 2007. június 15-én, a Wayback Machine -nél . UserLand Software, Inc.
  4. Dave Winer. (2003. december 17.) XML-RPC Implementations UserLand Software, Inc.
  5. Apache Software Foundation . Apache XML-RPC (angol nyelven).
  6. Epinions, Inc. XMLRPC-EPI sourceforge.net.
  7. Eric Kidd. XML-RPC for C és C++ sourceforge.net.

Lásd még

Külső linkek