SOAP и WSDL являются чрезвычайно сложными стандартами, которые имеют много реализаций, которые поддерживают различные подмножества стандартов. SOAP не очень хорошо сопоставляется с простым интерфейсом внешних функций так же, как XML-RPC . Вместо этого вы должны понимать пространства имен XML, конверты, заголовки, WSDL, схемы XML и т. Д., Чтобы создавать правильные сообщения SOAP. Все, что вам нужно сделать для вызова службы XML-RPC, - это определить конечную точку и вызвать для нее метод. Например, в Ruby:
require 'xmlrpc/client'
server = XMLRPC::Client.new2("http://example.com/api")
result = server.call("add", 1, 2)
Помимо XML-RPC, существуют и другие методы, которые также могут быть намного более простыми и легкими, например простой XML или JSON по HTTP (часто называемый REST , хотя это подразумевает некоторые другие соображения дизайна). Преимущество чего-то вроде XML или JSON перед HTTP заключается в том, что его легко использовать из JavaScript или даже просто глупой веб-страницы с отправкой формы. Его также можно легко написать из командной строки с помощью таких инструментов, как curl . Он работает практически с любым языком, так как HTTP-библиотеки, XML-библиотеки и JSON-библиотеки доступны практически везде, и даже если JSON-анализатор недоступен, написать свой собственный очень легко.
Редактировать: Я должен уточнить, что я имею в виду, как концептуально тяжелый SOAP, в отличие от большого веса это с точки зрения необработанного объема данных. Я думаю, что необработанный объем данных менее важен (хотя он быстро складывается, если вам нужно обрабатывать множество небольших запросов), а то, насколько он концептуально тяжёлый, довольно важен, потому что это означает, что есть гораздо больше мест, где что-то может пойти не так, где может быть несовместимость и т. д.