В чем разница между XML-RPC и SOAP?

Я никогда не понимал, почему разработчик веб-сервисов предпочел бы одно другому. XML-RPC обычно встречается в старых системах? Любая помощь в понимании этого будет принята с благодарностью.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
81
0
70 023
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Кейт Роудс написала отличное эссе о различиях на http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap

Просто чтобы добавить к другим ответам, я бы посоветовал вам взглянуть на фактические текстовые представления вызовов SOAP и XML-RPC, возможно, захватив их с помощью Ethereal. Весь аргумент «XML-RPC проще» не имеет особого смысла, пока вы не увидите, насколько невероятно многословен вызов SOAP. Многие из довольно популярных веб-сайтов уклоняются от SOAP в качестве своего API из-за того, что он будет потреблять полосу пропускания, если люди начнут его широко использовать.

Ответ принят как подходящий

Различия?

SOAP более мощный, и его предпочитают производители программных средств (MSFT .NET, Java Enterprise edition и тому подобное).

SOAP долгое время (2001-2007 гг.) Считался протоколом выбора для SOA. xml-rpc не так уж и много. REST - это новый любимец SOA, хотя это и не протокол.

SOAP более подробен, но более эффективен.

SOAP не поддерживается в некоторых старых версиях. Например, нет SOAP-библиотек для классического ASP (который я смог найти).

SOAP плохо поддерживается в Python. XML-RPC имеет отличную поддержку в Python в стандартной библиотеке.

SOAP поддерживает передачу на уровне документа, тогда как xml-rpc больше касается передачи значений, хотя он может передавать такие структуры, как структуры, списки и т. д.

xm-rpc - это действительно программа для программирования, не зависящая от языка. В основном это идет по http / https. Сообщения SOAP также могут передаваться по электронной почте.

xml-rpc более unixy. Это позволяет вам делать вещи просто, и когда вы знаете, что делаете, очень быстро развертывать качественные веб-службы, даже при использовании терминальных текстовых редакторов. Такой способ SOAP - это зоопарк; вам действительно нужна хорошая IDE, чтобы сделать это возможным.

Однако знание SOAP будет намного лучше смотреться в вашем резюме, если вы претендуете на должность ИТ-отдела из списка Fortune 500.

xml-rpc имеет некоторые проблемы с наборами символов, отличными от ascii.

XML-RPC не поддерживает именованные параметры. Они должны быть в правильном порядке. Не уверен насчет SOAP, но так думаю.

Для SOAP с Python существует пакет ZSI. Это неплохо, но вам абсолютно необходим wsdl.

edomaur 18.10.2008 11:34

Я считаю, что старый SOAP Toolkit поддерживал «классический ASP». Более того, можно использовать свой любимый язык .NET для создания COM-компонента, который обертывает ссылку на службу, позволяя классическому ASP использовать даже современную веб-службу.

John Saunders 21.02.2011 07:42

@edomaur На самом деле пена - лучший выбор, поскольку он более питоничен, проще и проще в использовании pypi.python.org/pypi/suds

ccpizza 10.10.2012 18:21

Другие вопросы по теме