Какая разница между XML-RPC и SOAP?

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

Ответ 1

Различия?

Спецификация xml-rpc подходит для 1 страницы 6 страниц. Спецификация SOAP 1.2 будет стоить вам 500-страничного полотна 44 страницы.

SOAP является более мощным, и его предпочитают поставщики программного обеспечения (MSFT.NET, версия для Java Enterprise, что-то вроде этого).

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

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

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

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

Ответ 2

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