xml rpc что такое
XML RPC
XML-RPC (сокр. от англ. Extensible Markup Language Remote Procedure Call — XML-вызов удалённых процедур) — стандарт/протокол вызова удалённых процедур, основанный на SOAP, отличается исключительной простотой применения. XML-RPC, как и любой другой интерфейс RPC, определяет набор стандартных типов данных и команд, которые программист может использовать для доступа к функциональности другой программы, находящейся на другом компьютере в сети.
Содержание
Краткая история
Протокол XML-RPC был изначально разработан Дэйвом Винером из компании «UserLand Software» в сотрудничестве с Майкрософт в 1998 году. Однако корпорация Майкрософт вскоре сочла этот протокол слишком упрощённым, и начала расширять его функциональность. После нескольких циклов по расширению функциональности, появилась система, ныне известная как SOAP. Позднее Майкрософт начала широко рекламировать и внедрять
Типы данных
Имя типа | Пример тега | Описание типа | |
---|---|---|---|
array | Массив величин, без ключей | ||
base64 | eW91IGNhbid0IHJlYWQgdGhpcyE= | Кодированные в | |
boolean | 1 | Логическая (булева) величина (0 или 1) | |
date/time | 19980717T14:08:55 | Дата и время | |
double | -12.53 | Дробная величина двойной точности | |
integer | 42 | Целое число | |
string | Здравствуй, Мир! | Строка символов (в той же кодировке, что и весь | Массив величин, с ключами |
nil | Нулевая (пустая) величина — это расширение XML-RPC |
Примеры
Типичный пример запроса XML-RPC:
Типичный пример ответа на запрос XML-RPC:
Типичный пример отчёта об ошибке в запросе XML-RPC:
См. также
Ссылки
Полезное
Смотреть что такое «XML RPC» в других словарях:
XML-RPC — is a remote procedure call protocol which uses XML to encode its calls and HTTP as a transport mechanism. Simon St. Laurent, Joe Johnston, Edd Dumbill. (June 2001) Programming Web Services with XML RPC. O Reilly. First Edition. ] OverviewXML RPC… … Wikipedia
XML-RPC — (сокр. от англ. Extensible Markup Language Remote Procedure Call XML вызов удалённых процедур) стандарт/протокол вызова удалённых процедур, использующий XML для кодирования своих сообщений и HTTP в качестве транспортного… … Википедия
XML-RPC — es un protocolo de llamada a procedimiento remoto que usa XML para codificar los datos y HTTP como protocolo de transmisión de mensajes.[1] Es un protocolo muy simple ya que solo define unos cuantos tipos de datos y comandos útiles, además de una … Wikipedia Español
XML-RPC — (Extensible Markup Language Remote Procedure Call) ist eine Definition zum Methodenaufruf (oder auch Funktionsaufruf) durch verteilte Systeme. Bei der Spezifikation wurde darauf Wert gelegt, dass eine Implementierung von XML RPC ohne großen… … Deutsch Wikipedia
Xml-rpc — est un protocole RPC (Remote procedure call), une spécification simple et un ensemble de codes qui permettent à des processus s exécutant dans des environnements différents de faire des appels de méthodes à travers un réseau. XML RPC permet d… … Wikipédia en Français
XML-RPC — est un protocole RPC (Remote procedure call), une spécification simple et un ensemble de codes qui permettent à des processus s exécutant dans des environnements différents de faire des appels de méthodes à travers un réseau. XML RPC permet d… … Wikipédia en Français
RPC — can refer to:Organizations* Revolutionary Policy Committee, a faction within UK Independent Labour Party during the 1930s. * Rail Passengers Council, a network established by the Parliament of the United Kingdom to protect and promote the… … Wikipedia
RPC — Para el Estado socialista de China continental, véase República Popular China. El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota … Wikipedia Español
Описание WEB-сервисов, XML-RPC
Концепция WEB-сервиса связана с созданием такого RPC, который можно включить в HTTP пакеты. Таким образом началась разработка стандарта, определяющего процесс взаимодействия приложений по протоколу HTTP, чтобы приложения могли функционировать на разных аппаратно-программных платформах и использовать различные технологии и языки разработки. С появлением WEB-сервисов началось развитие сервис-ориентированной архитектуры веб-приложений SOA (Service Oriented Architecture). Наибольшее распространение получили следующие протоколы реализации WEB-сервисов :
XML-RPC | XML-вызов удалённых процедур |
SOAP | Simple Object Access Protocol |
REST | Representational State Transfer |
Практический пример создания клиента WEB-сервиса SOAP с отправкой сообщений и получением ответов представлен здесь.
Приведем очень упрощенный пример. Приложение, обрабатывая данные на локальной машине, вызывает некоторый метод. Если реализация этого метода присутствует в программе, то он (процедура/функция) принимает параметры, выполняет действие и возвращает результирующие данные. Но если этот метод является удаленным вызовом, то необходимо знать, где он будет исполняться. Запрос на выполнение метода вместе с параметрами записывается в виде XML-документа и по протоколу HTTP передается по сети на другой компьютер, где из XML-документа извлекается имя метода и его параметры. После завершения работы метода формируется ответ, который передается компьютеру, пославшему запрос. По этому принципу функционируют все системы, и различия в реализации и процедуре обмена не оказывают существенного влияния на его суть.
Применение XML для описания данных существенно упрощает разработку распределенных приложений, снижаются требования к клиенту и серверу. Программы разбора (парсинга) XML сейчас существуют практически для всех операционных систем и на всех языках программирования.
Протокол WEB-сервиса XML-RPC
Протокол WEB-сервиса XML-RPC, разработанный Дэйвом Винером из компании «UserLand Software» в сотрудничестве с Майкрософт в 1998 году, использует в качестве транспортого механизма протокол HTTP и в качестве формата передаваемых данных XML. Это снимает ограничения, налагаемые как на конфигурацию сети, так и на маршрут следования пакетов. Вызовы XML-RPC представляют собой простой тип данных text/xml и свободно проходят сквозь шлюзы везде, где допускается ретрансляция http-трафика. Однако корпорация Майкрософт вскоре сочла этот протокол слишком упрощённым, и начала расширять его функциональность. После нескольких циклов по расширению функциональности, появилась система, ныне известная как SOAP.
Сообщения XML-RPC передаются методом POST протокола HTTP и бывают трех типов: запрос, ответ и сообщение об ошибке.
Пример запроса, вызов метода CheckWord
Сначала определяется стандартный заголовок http-запроса, MIME-тип данных (Content-Type) которых должен быть text/xml. Размер Content-length должен присутствовать обязательно и иметь корректное значение, равное длине передаваемого сообщения.
Корневой узел определяется тегом и не допускает вложенности, а следовательно в запросе можно вызвать только один метод. Тегом определяется название вызываемого метода. Формат названия метода предполагает необязательное наименование класса и наименование метода, разделенные точкой. Можно также включить путь и наименование программы. В примере вызывается метод CheckWord некоторого объекта.
включают передаваемые параметры, которых может быть несколько и которые описываются тегом
Типы данных
Для передачи методу параметров и получение возвращаемых значений протокол XML-RPC определяет два сложных и семь простых типов данных, которые используются в реальных языках программирования. Сложные типы данных, например, как объекты, нужно заменять структурами или передавать в двоичном виде.
Пример ответа на вызов метода CheckWord
Ответ включает стандартный http заголовок сервера. MIME-тип данных должен быть text/xml, длина Content-Length должна обязательно присутствовать и иметь значение, равное длине передаваемого сообщения.
Корневой узел ответа начинается с тега и не допускает вложенности. Теги
Если сервер отвечает HTTP-кодом 200 ОК, то это значит, что запрос успешно обработан. Т.е. данные по сети переданы корректно и сервер сумел их обработать. Но метод может вернуть ошибку, которая не будет связана с протоколом, а будет ошибкой бизнес-логики приложения. В этом случае передается соответствующее сообщение и структура, которая описывает код ошибки. Пример возвращения кода ошибки :
В примере ошибка передается в виде структуры из двух элементов: первый элемент содержит код ошибки 2, а второй элемент описывает ошибку.
Xml rpc что такое
По этому принципу функционируют все системы, и различия в реализации и процедуре обмена не оказывают существенного влияния на его суть.
Что же это такое?
Сообщение XML-RPC передается методом POST-протокола HTTP. Сообщения бывают трех типов: запрос, ответ и сообщение об ошибке.
Запрос | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
XML-RPC запрос | Описание | |||||||||||||||||||||||||||||||
POST /RPC2 HTTP/1.0 User-Agent: MyAPP-Word/5.1.2 (WinNT) Host: server.localnet.com Content-Type: text/xml Content-length: 172 CheckWord задаются параметры, которые передаются в метод. Секция может содержать произвольное число подэлементов Типы данныхВ протоколе XML-RPC предусмотрено семь простых типов данных и два сложных, для передачи параметров методу и возвращаемых значений. Эти типы отображают основные типы данных реальных языков программирования. Более сложные типы, такие, например, как объекты, нужно передавать в двоичном виде или заменять структурами. Логический тип данных представляется тегом и может иметь значения 0 (false) или 1 (true). Можно использовать как 1/0, так и символьные константы true/false.
|