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





Кейт Роудс написала отличное эссе о различиях на 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 Toolkit поддерживал «классический ASP». Более того, можно использовать свой любимый язык .NET для создания COM-компонента, который обертывает ссылку на службу, позволяя классическому ASP использовать даже современную веб-службу.
@edomaur На самом деле пена - лучший выбор, поскольку он более питоничен, проще и проще в использовании pypi.python.org/pypi/suds
Для SOAP с Python существует пакет ZSI. Это неплохо, но вам абсолютно необходим wsdl.