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