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


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

3 70

3 ответа:

различия?

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

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

мыло было в течение длительного времени (2001-2007ish) рассматривается как протокол выбора для SOA. xml-rpc не так много. Отдых-это новый SOA darling, хотя это не a протокол.

мыло более многословно, но более способно.

SOAP не поддерживается в некоторых старых материалах. Например, нет SOAP libs для классического ASP (который я мог бы найти).

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

SOAP поддерживает передачу на уровне документа, тогда как xml-rpc больше относится к передаче значений, хотя он может передавать такие структуры, как структуры, списки и т. д.

xm-rpc-это действительно программа для передачи языка программирования agnostic. Это в первую очередь идет через http/https. Сообщения SOAP также могут передаваться по электронной почте.

xml-rpc больше unixy. Это позволяет вам делать все просто, и когда вы знаете, что делаете, очень быстро развертывать качественные веб-службы, даже при использовании текстовых редакторов терминалов. Делать мыло таким образом-это зоопарк; вам действительно нужна хорошая IDE, чтобы сделать это возможным.

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

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

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

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

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