XML-RPC (от англ. eXtensible Markup Language Remote Procedure Call — XML-вызов удалённых процедур) — стандарт/протоколвызова удалённых процедур, использующий XML для кодирования своих сообщений и HTTP в качестве транспортного механизма[1]. Является прародителем SOAP, отличается исключительной простотой в применении. XML-RPC, как и любой другой интерфейс Remote Procedure Call (RPC), определяет набор стандартных типов данных и команд, которые программист может использовать для доступа к функциональности другой программы, находящейся на другом компьютере в сети.
История
Протокол XML-RPC был изначально разработан Дэйвом Винером из компании «UserLand Software» в сотрудничестве с Майкрософт, в 1998 году. Однако корпорация Майкрософт вскоре сочла этот протокол слишком упрощённым, и начала расширять его функциональность. После нескольких циклов по расширению функциональности появилась система, ныне известная как SOAP. Позднее Майкрософт начала широко рекламировать и внедрять SOAP, а изначальный XML-RPC был отвергнут. Но, несмотря на отвержение его Майкрософтом, стандарт XML-RPC очаровал многих программистов своей необычайной простотой и за счёт этого существует по сей день и даже постепенно набирает популярность.
Типы данных
Примеры
Типичный пример запроса XML-RPC:
examples.getStateName 41 Типичный пример ответа на запрос XML-RPC:
South Dakota Типичный пример ошибки на запрос XML-RPC:
faultCode 4 faultString Too many parameters. При этом тэги с типом данных при передаче от клиента могут быть опущены и не указываться вовсе.
Критика
Недавние критики (начиная с 2010 года и далее) XML-RPC утверждают, что вызовы RPC могут быть сделаны с простым XML, и что XML-RPC не добавляет никакой ценности по сравнению с XML. Как XML-RPC, так и XML требуют модель данных уровня приложения, например, какие имена полей определены в схеме XML или имена параметров в XML-RPC. Более того, XML-RPC использует примерно в 4 раза больше байтов по сравнению с обычным XML для кодирования тех же объектов, что само по себе многословно по сравнению с JSON.
См. также
- XML
- SOAP
- Веб-служба (а также WSDL и UDDI)
- RSS
- OPML
- BPEL
- MetaWeblog
Ссылки
- ↑Simon St. Laurent, Joe Johnston, Edd Dumbill. (June 2001) Programming Web Services with XML-RPC. O'Reilly. First Edition.
- Официальный сайт XML-RPC
- XML-RPC for PHP (PHPXMLRPC) — библиотека для ускорения разработки веб-сервисов (написана создателем самого протокола XML-RPC)
- Пишем свой web-сервис на PHP и XML-RPCАрхивная копия от 15 сентября 2008 на Wayback Machine — статья о технологии на phpclub.ru
- .Net реализация XML-RPC
- Форум XML-RPC
- Руководства по XML-RPC
- Технологические отчёты по XML-RPC
- Jabber-RPC — XML-RPC по протоколу XMPP
- Apache, XML-RPC и безопасность
- XML-RPC Specification
- Спецификация XML-RPC - русский перевод