В чем разница между XML-RPC и SOAP?
Я никогда не понимал, почему разработчик веб-службы выбрал одно из другого. XML-RPC обычно встречается в старых системах? Любая помощь в понимании этого будет принята с благодарностью.
3 ответа
Различия?
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, но думаю, что так.
Просто чтобы добавить к другим ответам, я бы посоветовал вам взглянуть на фактические текстовые представления вызовов SOAP и XML-RPC, возможно, сделав запись с помощью Ethereal. Весь аргумент "XML-RPC проще" не имеет особого смысла, пока вы не увидите, насколько невероятно многословен SOAP-вызов. Многие из довольно популярных веб-сайтов избегают использования SOAP в качестве своего API только из-за той полосы пропускания, которая потреблялась бы, если бы люди начали активно его использовать.
У Кейт Родс есть отличное эссе о различиях на http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap