close

XML-RPC

Перейти к навигации Перейти к поиску

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

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

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

Типы данных

Согласно спецификации XML-RPC , [ 3 ] основными типами данных являются:

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

либо

 <int> 42 </int>
целое число
нить
 <string> Привет, мир </string>
Строка (строка) символов. Он должен соответствовать кодировке XML .
структура
 <struct> 
   <member> 
     <name> foo </name> 
     <value><i4> 1 </i4></value> 
   </member> 
   <member> 
     <name> bar </name> 
     <value><i4> 2 </i4></value> 
   </member> 
 </struct>
Массив значений, хранение ключей
ноль
 <ноль/>
нулевое значение; расширение XML-RPC

Примеры

  • Вызов XML-RPC может быть:
  <?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>
  • Ответ на призыв:
  <?xml version="1.0"?> 
  <methodResponse> 
    <params> 
      <param> 
        <value><string> Номер обмена данными. 360 на 221 </string></value> 
      </param> 
    </params> 
  </methodResponse>

Реализации

Существуют реализации для различных операционных систем, языков программирования, коммерческих и бесплатных программных лицензий: [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , Веб -объекты и Zope .

Некоторые известные реализации:

  • Apache XML-RPC , [ 5 ] реализация на Java.
  • XMLRPC-EPI , [ 6 ] реализация на C.
  • XML-RPC-C , [ 7 ] реализация для C и C++.

Ссылки

  1. ^ Саймон Сен-Лоран , Джо Джонстон , Эдд Дамбилл . (июнь 2001 г.) Программирование веб-служб с помощью XML-RPC O'Reilly. Первое издание. Предисловие Дэйва Винера. (по-английски)
  2. Дэйв Винер. (31 марта 2001 г.). Внимание : ключевое различие между SOAP и XML-RPC UserLand Software, Inc.
  3. Дэйв Винер. (15 июня 1999 г.) Спецификация XML-RPC . Архивировано 15 июня 2007 г. на Wayback Machine . Программное обеспечение UserLand, Inc.
  4. Дэйв Винер. (17 декабря 2003 г.) Реализации XML-RPC UserLand Software, Inc.
  5. Фонд программного обеспечения Apache . Apache XML-RPC (на английском языке).
  6. Epinions, Inc. XMLRPC-EPI sourceforge.net.
  7. Эрик Кидд. XML-RPC для C и C++ sourceforge.net.

Смотрите также

Внешние ссылки