XML-RPC (Extensible Markup Language Remote Procedure Call)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:33, 22 июня 2017.

XML-RPC (Extensible Markup Language Remote Procedure Call — XML-вызов удалённых процедур) — спецификация и набор реализаций позволяющие программному обеспечению, запущенному на одном хосте, вызывать запуск кода на другом хосте. Использует протокол передачи гипертекста HTTP и язык разметки XML для создания стандартного способа вызова удаленных веб-сервисов и получения ответа[Источник 1]. Является прародителем протокола SOAP. Отличительной особенностью XML-RPC на фоне других интерфейсов вызова удаленных процедур является скромный спектр типов данных и команд для обращения к функциональности другой программы и минимальные требования к поддержки программного обеспечения для их использования[Источник 2].

История

Протокол XML-RPC был изначально разработан Дэйвом Винером из компании «UserLand Software» в сотрудничестве с Майкрософт, в 1998 году. Однако корпорация Майкрософт вскоре сочла этот протокол слишком упрощённым, и начала расширять его функциональность. После нескольких циклов по расширению функциональности, появилась система, ныне известная как SOAP. Позднее Майкрософт начала широко рекламировать и внедрять SOAP, а изначальный XML-RPC был отвергнут. Но, несмотря на отвержение его Майкрософтом, стандарт XML-RPC очаровал многих программистов своей необычайной простотой и, за счёт этого, существует по сей день и даже постепенно набирает популярность.

Применение

XML-RPC - отличный инструмент для установления широкого спектра соединений между компьютерами. Если вам необходимо интегрировать несколько вычислительных сред, но вам не нужно напрямую делиться сложными структурами данных, то вы обнаружите, что XML-RPC позволяет быстро и легко устанавливать такую связь. Работая в одной среде, XML-RPC позволяет легко подключать программы, имеющие разные модели данных, и обеспечивать легкий доступ к логике многократного использования.

Наиболее очевидным областью применения XML-RPC является установка связей между различным вычислительным средам, для создания простых веб-сервисов.[Источник 3] [Источник 4] Системные интеграторы часто создают пользовательские соединения между различными системами, создавая свои собственные форматы и протоколы. Это часто приводит к большому количеству плохо документированных узконаправленных протоколов. Каждый такой протокол может очень хорошо работать по назначенной задаче, но разработчикам приходится постоянно создавать новые протоколы для новых задач, а повторное использование предыдущих протоколов может быть очень сложным. XML-RPC предлагает интеграторам возможность использовать стандартную лексику и подход для обмена информацией. Это означает, что разработчики могут создавать открытые программные интерфейсы. Иногда в проекте четко определены потребности в объединении двух или более конкретных сред вместе, а небольшой набор пакетов XML-RPC может помочь в создании полного решения.

Типы данных

Имя типа Пример тега Описание типа
array
 <array>
   <data>
     <value><i5>1404</i5></value>
     <value><string>Что-нибудь здесь</string></value>
     <value><i1>1</i1></value>
   </data>
 </array>
Массив величин, без ключей
base64
<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64>
Кодированные в Base64 двоичные данные
boolean
<boolean>1</boolean>
Логическая (булева) величина (0 или 1)
date/time
<dateTime.iso8601>19980717T14:08:55</dateTime.iso8601>
Дата и время
double
<double>-12.53</double>
Дробная величина двойной точности
integer
<i4>42</i4>
Целое число
string
<string>Здравствуй, Мир!</string>
Строка символов (в той же кодировке, что и весь XML-документ)
struct
 <struct>
   <member>
     <name>Что-то</name>
     <value><i4>1</i4></value>
   </member>
   <member>
     <name>Ещё что-то</name>
     <value><i7>2</i7></value>
   </member>
 </struct>
Массив величин, с ключами
nil
<nil/>
Нулевая (пустая) величина

Примеры

Типичный пример запроса XML-RPC:

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

Типичный пример ответа на запрос XML-RPC:

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

Типичный пример отчёта об ошибке в запросе XML-RPC:

Источники

  1. XML-RPC // XML-RPC: сайт. URL: http://xmlrpc.scripting.com// (дата обращения: 08.06.2017)
  2. Введение в XML-RPC // Hostinfo: сайт. URL: http://hostinfo.ru/articles/450// (дата обращения: 08.06.2017)
  3. Safaribooksonline // Programming Web Services with XML-RPC: сайт. URL: https://www.safaribooksonline.com/library/view/programming-web-services/0596001193// (дата обращения: 08.06.2017)
  4. Введение в XML-RPC // Hostinfo: сайт. URL: http://hostinfo.ru/articles/450// (дата обращения: 08.06.2017)

Ссылки