XML-RPC - XML-RPC
tento článek potřebuje další citace pro ověření.Říjen 2016) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
XML-RPC je vzdálené volání procedury (RPC) protokol který používá XML kódovat své hovory a HTTP jako transportní mechanismus.[1]
Dějiny
Protokol XML-RPC vytvořil v roce 1998 uživatel Dave Winer z Software UserLand a Microsoft,[2] Microsoft vnímá protokol jako podstatnou součást zvyšování úsilí v oblasti elektronického obchodování mezi podniky.[3] Jak byla představena nová funkce, standard se vyvinul do toho, co je nyní MÝDLO.[4]
UserLand podporuje XML-RPC od verze 5.1 svého systému správy webového obsahu Frontier,[4] vydáno v červnu 1998.[5]
Myšlenka XML-RPC na lidsky čitelný a zapisovatelný standard srovnatelný se skripty pro požadavky a odpovědi založené na protokolu HTTP byla také implementována v konkurenčních specifikacích, jako je Allaire Webově distribuovaná výměna dat (WDDX) a webMethod's Definiční jazyk webového rozhraní (WIDL).[6] Balení podle předchozího stavu techniky KOM, CORBA, a Java RMI objekty v syntaxi XML a jejich přenos pomocí protokolu HTTP také existovaly v technologii WebBroker společnosti DataChannel.[7][8]
Obecné použití XML pro vzdálené volání procedury (RPC) patentovali Phillip Merrick, Stewart Allen a Joseph Lapp v dubnu 2006, přičemž požadovali výhodu prozatímní přihlášky podané v březnu 1998. Patent byl přidělen webové metody, nacházející se v Fairfax, VA. Platnost patentu skončila 23. března 2019[9]
Používání
V XML-RPC provádí klient RPC odesláním požadavku HTTP na server, který implementuje XML-RPC a přijímá odpověď HTTP. Hovor může mít více parametrů a jeden výsledek. Protokol definuje několik datových typů pro parametry a výsledek. Některé z těchto datových typů jsou složité, tj. Vnořené. Například můžete mít parametr, který je polem pěti celých čísel.
Struktura parametrů / výsledků a sada datových typů mají odrážet ty, které se používají v běžných programovacích jazycích.
Identifikace klientů pro účely autorizace lze dosáhnout pomocí populárních metod zabezpečení HTTP. Základní ověřování přístupu lze použít pro identifikaci a autentizaci.
Ve srovnání s protokoly RESTful, kde reprezentace zdrojů (dokumenty) jsou přenášeny, XML-RPC je navržen pro metody volání. Praktický rozdíl spočívá v tom, že XML-RPC je mnohem strukturovanější, což znamená, že k implementaci klientů a serverů lze použít běžný kód knihovny a pro konkrétní aplikační protokol je méně práce s konstrukcí a dokumentací. Jedním z hlavních technických rozdílů mezi typickými protokoly RESTful a XML-RPC je to, že protokol RESTful používá pro informace o parametru identifikátor URI HTTP, zatímco u XML-RPC identifikuje URI pouze server.
JSON-RPC je podobný XML-RPC.
Typy dat
Běžný typy dat jsou převedeny na jejich ekvivalenty XML s ukázkovými hodnotami uvedenými níže:
název | Příklad značky | Popis |
---|---|---|
pole | <array> <data> <value><i4>1404</i4></value> <value><string>Něco tady</string></value> <value><i4>1</i4></value> </data></array> | Pole hodnot, bez uložení klíčů |
base64 | <base64>eW91IGNhbid0IHJlYWQgdGhpcyE =</base64> | Base64 -kódovaná binární data |
booleovský | <boolean>1</boolean> | Booleovský logická hodnota (0 nebo 1) |
čas schůzky | <dateTime.iso8601>19980717T14: 08: 55</dateTime.iso8601> | Datum a čas v ISO 8601 formát |
dvojnásobek | <double>-12.53</double> | Dvojitá přesnost číslo s plovoucí desetinnou čárkou |
celé číslo | <int>42</int> nebo <i4>42</i4> | Celé číslo, celé číslo |
tětiva | <string>Ahoj světe!</string> nebo Ahoj světe! | Řetězec znaků. Muset následovat Kódování XML. |
struktur | <struct> <member> <name>foo</name> <value><i4>1</i4></value> </member> <member> <name>bar</name> <value><i4>2</i4></value> </member></struct> | Asociativní pole |
nula | <nil/> | Diskriminační nulová hodnota; XML-RPC rozšíření |
Příklady
Příklad typického požadavku XML-RPC by byl:
<?xml version="1.0"?><methodCall> <methodName>examples.getStateName</methodName> <params> <param> <value><i4>40</i4></value> </param> </params></methodCall>
Příklad typické odpovědi XML-RPC by byl:
<?xml version="1.0"?><methodResponse> <params> <param> <value><string>Jižní Dakota</string></value> </param> </params></methodResponse>
Typická chyba XML-RPC by byla:
<?xml version="1.0"?><methodResponse> <fault> <value> <struct> <member> <name>poruchový kód</name> <value><int>4</int></value> </member> <member> <name>řetězec závad</name> <value><string>Příliš mnoho parametrů.</string></value> </member> </struct> </value> </fault></methodResponse>
Kritika
Nedávní kritici (od roku 2010) XML-RPC tvrdí, že volání RPC lze uskutečňovat pomocí prostého XML a že XML-RPC nepřináší nad XML žádnou hodnotu. XML-RPC i XML vyžadují datový model na úrovni aplikace, například názvy polí, které jsou definovány ve schématu XML, nebo názvy parametrů v XML-RPC. Kromě toho XML-RPC používá ke kódování stejných objektů přibližně čtyřnásobek počtu bajtů ve srovnání s obyčejným XML, což je samo o sobě ve srovnání s JSON.[10][11][12]
Viz také
- Ajax (programování)
- Technologie komponent
- Porovnání formátů serializace dat
- OPML
- JSON-RPC
- webová služba
- gRPC
Reference
- ^ Simon St. Laurent, Joe Johnston, Edd Dumbill. (Červen 2001) Programování webových služeb pomocí XML-RPC. O'Reilly. První vydání.
- ^ Box, Don (1. dubna 2001). „Stručná historie protokolu SOAP“. O'Reilly. Citováno 27. října 2010.
- ^ Rupley, Sebastian (30. června 1999). „Další krok XML“. PC Magazine. Archivovány od originál dne 4. března 2000. Citováno 17. listopadu 2015.
- ^ A b Walsh, Jeff (10. července 1999). "Microsoft spearheads protokol push". Infosvět. Archivovány od originál dne 14. září 1999. Citováno 17. listopadu 2015.
- ^ Walsh, Jeff (29. června 1998). „UserLand vydává Frontier 5.1, upouští freewarový model“. InfoWorld. Archivovány od originál dne 15. září 1999. Citováno 17. listopadu 2015.
- ^ Udell, Jon (7. června 1999). „Zkoumání XML-RPC: DCOM? CORBA? RMI? Proč ne jen XML-RPC?“. Byte. Archivovány od originál dne 4. března 2000. Citováno 17. listopadu 2015.
- ^ Walsh, Jeff (25. května 1998). „W3C kývne na WebBroker DataChannel“. Infosvět. 20 (21). Archivovány od originál dne 10. září 1999. Citováno 17. listopadu 2015.
- ^ Vizard, Michael; Walsh, Jeff (29. června 1998). „Dave Pool společnosti DataChannel hovoří o formování role XML tak, aby vyhovovala různým potřebám“. Infosvět. Archivovány od originál dne 16. září 1999. Citováno 8. prosince 2015.
- ^ Merrick; et al. (11. dubna 2006). „US Patent 7 028 312“. Citováno 18. září 2008.
- ^ „Jaká je výhoda XML-RPC oproti prostému XML?“. Přetečení zásobníku. 9. září 2009. Citováno 7. dubna 2011.
- ^ „Otevřený průzkum veřejného mínění o výhodách XmlRpc versus alternativy“. www.intertwingly.net. 22. listopadu 2006. Citováno 7. dubna 2011.
- ^ Jon Canady (14. ledna 2010). „Pokud máte REST, proč XML-RPC?“. joncanady.com. Archivovány od originál dne 11. května 2013. Citováno 7. dubna 2011.