Jump to content

XML-RPC

(Перенаправлено с Xmlrpc )

XML-RPC — это удаленного вызова процедур (RPC) протокол , который использует XML для кодирования вызовов и HTTP в качестве транспортного механизма. [1]

Протокол XML-RPC был создан в 1998 году Дэйвом Винером из UserLand Software и Microsoft . [2] Microsoft рассматривает этот протокол как важную часть расширения своих усилий в сфере электронной коммерции между предприятиями. [3] По мере появления новых функций стандарт превратился в то, что сейчас называется SOAP . [4]

UserLand поддерживает XML-RPC начиная с версии 5.1 своей системы управления веб-контентом Frontier. [4] выпущен в июне 1998 года. [5]

Идея XML-RPC о стандарте, доступном для чтения и записи человеком, анализируемом скриптами для HTTP-запросов и ответов, также была реализована в конкурирующих спецификациях, таких как Allaire's Web Distributed Data Exchange (WDDX) и WebMethod's Web Interface Definition Language (WIDL). ). [6] упаковка объектов COM , CORBA и Java RMI в синтаксис XML и их транспортировка через HTTP. Ранее в технологии DataChannel WebBroker также существовала [7] [8]

Общее использование XML для удаленного вызова процедур (RPC) было запатентовано Филипом Мерриком, Стюартом Алленом и Джозефом Лаппом в апреле 2006 года, заявив о преимуществах предварительной заявки, поданной в марте 1998 года. Патент был передан компании webMethods , расположенной в Фэрфаксе, США. Вирджиния . Срок действия патента истек 23 марта 2019 года. [9]

Использование

[ редактировать ]

В XML-RPC клиент выполняет RPC, отправляя HTTP-запрос на сервер, реализующий XML-RPC, и получает ответ HTTP. Вызов может иметь несколько параметров и один результат. Протокол определяет несколько типов данных для параметров и результата. Некоторые из этих типов данных являются сложными, т.е. вложенными. Например, у вас может быть параметр, представляющий собой массив из пяти целых чисел.

Структура параметров/результата и набор типов данных должны отражать те, которые используются в распространенных языках программирования.

Идентификация клиентов для целей авторизации может быть достигнута с использованием популярных методов HTTP-безопасности. Базовая аутентификация доступа может использоваться для идентификации и аутентификации.

По сравнению с протоколами RESTful, в которых передаются представления ресурсов (документы), XML-RPC предназначен для вызова методов . Практическая разница заключается лишь в том, что XML-RPC гораздо более структурирован, что означает, что для реализации клиентов и серверов можно использовать общий библиотечный код, а для конкретного прикладного протокола требуется меньше работы по проектированию и документированию. Одним из существенных технических различий между типичными протоколами RESTful и XML-RPC является то, что многие протоколы RESTful используют HTTP URI для информации о параметрах, тогда как в XML-RPC URI просто идентифицирует сервер.

JSON-RPC аналогичен XML-RPC.

Типы данных

[ редактировать ]

Общие типы данных преобразуются в их XML-эквиваленты, примеры значений показаны ниже:

Имя Пример тега Описание
множество
<array>
  <data>
    <value><i4>1404</i4></value>
    <value><string>Something here</string></value>
    <value><i4>1</i4></value>
  </data>
</array>
Массив значений, без хранения ключей
база64
<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64>
Base64 Двоичные данные в кодировке
логическое значение
<boolean>1</boolean>
Логическое логическое значение (0 или 1)
дата/время
<dateTime.iso8601>19980717T14:08:55Z</dateTime.iso8601>
Дата и время в ISO 8601. формате
двойной
<double>-12.53</double>
Число двойной точности с плавающей запятой
целое число
<int>42</int>

или

<i4>42</i4>
Целое число, целое число
нить
<string>Hello world!</string>

или

Hello world!
Строка символов. Должен следовать кодировке XML .
структура
<struct>
  <member>
    <name>foo</name>
    <value><i4>1</i4></value>
  </member>
  <member>
    <name>bar</name>
    <value><i4>2</i4></value>
  </member>
</struct>
Ассоциативный массив
ноль
<nil/>
Дискриминированное нулевое значение ; XML-RPC расширение

Пример типичного запроса XML-RPC:

<?xml version="1.0"?>
<methodCall>
  <methodName>examples.getStateName</methodName>
  <params>
    <param>
        <value><i4>40</i4></value>
    </param>
  </params>
</methodCall>

Пример типичного ответа XML-RPC:

<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
        <value><string>South Dakota</string></value>
    </param>
  </params>
</methodResponse>

Типичная ошибка XML-RPC:

<?xml version="1.0"?>
<methodResponse>
  <fault>
    <value>
      <struct>
        <member>
          <name>faultCode</name>
          <value><int>4</int></value>
        </member>
        <member>
          <name>faultString</name>
          <value><string>Too many parameters.</string></value>
        </member>
      </struct>
    </value>
  </fault>
</methodResponse>

Недавние критики (начиная с 2010 года и позже) XML-RPC утверждают, что вызовы RPC могут выполняться с использованием простого XML и что XML-RPC не добавляет никакой ценности по сравнению с XML. И XML-RPC, и XML требуют модели данных уровня приложения, например, какие имена полей определены в схеме XML или имена параметров в XML-RPC. Более того, XML-RPC использует примерно в 4 раза больше байтов по сравнению с обычным XML для кодирования тех же объектов, что само по себе является многословным по сравнению с JSON . [10] [11] [12]

См. также

[ редактировать ]
  1. ^ Саймон Сен-Лоран, Джо Джонстон, Эдд Дамбилл. (июнь 2001 г.) Программирование веб-служб с помощью XML-RPC. О'Рейли. Первое издание.
  2. ^ Бокс, Дон (1 апреля 2001 г.). «Краткая история SOAP» . О'Рейли . Проверено 27 октября 2010 г.
  3. ^ Рупли, Себастьян (30 июня 1999 г.). «Следующий шаг XML» . Журнал ПК . Архивировано из оригинала 4 марта 2000 года . Проверено 17 ноября 2015 г.
  4. ^ Jump up to: а б Уолш, Джефф (10 июля 1999 г.). «Майкрософт возглавляет продвижение протокола» . Инфомир . Архивировано из оригинала 14 сентября 1999 года . Проверено 17 ноября 2015 г.
  5. ^ Уолш, Джефф (29 июня 1998 г.). «UserLand выпускает Frontier 5.1, отказываясь от бесплатной модели» . Инфомир . Архивировано из оригинала 15 сентября 1999 года . Проверено 17 ноября 2015 г.
  6. ^ Уделл, Джон (7 июня 1999 г.). «Изучение XML-RPC: DCOM? CORBA? RMI? Почему не просто XML-RPC?» . Байт . Архивировано из оригинала 4 марта 2000 года . Проверено 17 ноября 2015 г.
  7. ^ Уолш, Джефф (25 мая 1998 г.). «W3C отдает должное WebBroker от DataChannel» . Инфомир . Том. 20, нет. 21. Архивировано из оригинала 10 сентября 1999 года . Проверено 17 ноября 2015 г.
  8. ^ Визард, Майкл; Уолш, Джефф (29 июня 1998 г.). «Дэйв Пул из DataChannel рассказывает о формировании роли XML для удовлетворения различных потребностей» . Инфомир . Архивировано из оригинала 16 сентября 1999 года . Проверено 8 декабря 2015 г.
  9. ^ Меррик; и др. (11 апреля 2006 г.). «Патент США 7028312» . Архивировано из оригинала 3 декабря 2011 года . Проверено 18 сентября 2008 г.
  10. ^ «В чем преимущество XML-RPC перед простым XML?» . Переполнение стека . 9 сентября 2009 года . Проверено 7 апреля 2011 г.
  11. ^ «Открытый опрос о преимуществах XmlRpc по сравнению с альтернативами» . Intertwingly.net. 22 ноября 2006 г. Проверено 7 апреля 2011 г.
  12. ^ Джон Канади (14 января 2010 г.). «Если у вас есть REST, то почему XML-RPC?» . joncanady.com. Архивировано из оригинала 11 мая 2013 года . Проверено 7 апреля 2011 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4402d336d4571e4ee5aff0dd191f65a5__1721779740
URL1:https://arc.ask3.ru/arc/aa/44/a5/4402d336d4571e4ee5aff0dd191f65a5.html
Заголовок, (Title) документа по адресу, URL1:
XML-RPC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)