В чем разница между XML-RPC и SOAP? - PullRequest
75 голосов
/ 17 сентября 2008

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

Ответы [ 3 ]

83 голосов
/ 18 сентября 2008

Различия

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 более юникси. Он позволяет вам делать вещи просто, а когда вы знаете, что делаете, очень быстро развертывать качественные веб-сервисы даже при использовании текстовых редакторов терминала. Делать SOAP таким способом - зоопарк; вам действительно нужна хорошая IDE, чтобы сделать это возможным.

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

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

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

12 голосов
/ 17 сентября 2008

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

4 голосов
/ 17 сентября 2008

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

...