it-swarm-ru.tech

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

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

76
Scott Saad

Различия?

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 IT.

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

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

84
Christopher Mahan

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

12
bmdhacks

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

4
Dexter