Веб-сервисами являются SOAP-сообщения (протокол SOAP использует XML для передачи сообщений туда и обратно), поэтому ваш сервер на обоих концах должен понимать SOAP и любые расширения, о которых вы хотите поговорить между ними, и они, вероятно, (но не обязательно) иметь возможность получать файлы WMDL (что «объясняет» различные конечные точки служб и доступные удаленные функции). Обычно мы называем это стеком SOAP / WS- *, с акцентом на «стек», поскольку требуется несколько кусков программного обеспечения, и чем сложнее вызовы SOAP, тем больше этого стека должно быть доступно и поддерживаться. .
Использование POST, с другой стороны, в основном ассоциируется с RESTful-поведениями , и в качестве примера такого протокола рассмотрим HTTP. Внутри POST вы, конечно, можете публиковать сложные XML, но люди склонны использовать простой POST для упрощения вызова и использовать HTTP-ответы в качестве ответов. Возможно, вам не нужно никакого дополнительного программного обеспечения, поскольку большинство, если не все веб-комплекты, имеют поддержку HTTP. Мой собственный уклон склоняется к REST, если вам интересно. Используя HATEOAS, вы можете создать действительно хорошую инфраструктуру для самоосознающих систем, которые могут изменять себя с нагрузкой и доступностью в режиме реального времени, в отличие от способа SOAP, и это лежит в центре аргумента для it ; HTTP был разработан для больших распределенных сетей, имеющих дело с производительностью и стабильностью. SOAP имеет тенденцию быть универсальным, если что-то ломается, вы набиты чем-то вроде. (Опять же, помните о моей предвзятости. Я много писал об этом в своем блоге, особенно со стороны архитектуры и влияние SOA против ROA .:)
Существует большая дискуссия о том, что «лучше», о чем я могу только сказать: «Это полностью зависит от того, что вы хотите сделать, как вы предпочитаете это делать, что вам нужно делать, ваше окружение, ваше опыт, положение солнца и луны и настроение, в котором находится мой кот ". Эх, много значит.
Я за здоровую дискуссию об этом, но я склонен думать, что SOAP - это переизобретение; SOAP - это конверт с заголовком и телом, и если это звучит знакомо, это именно то, как был разработан HTML - факт, который очень мало людей видят. HTTP как просто протокол для перемещения вещей хорошо понят и чрезвычайно хорошо поддерживается, и SOAP использует его для перемещения своих XML-конвертов. Есть ли реальная разница между смещением SOAP и HTML? Ну, да, большая разница в том, что SOAP заново изобретает все тонкости HTTP (кеширование, адресуемость, состояние, масштабирование), а затем использует HTTP только для доставки сообщения и ничего больше и позволяет самому стеку иметь дело с упомянутыми тонкостями ранее. Итак, многие достоинства HTTP игнорируются и воссоздаются на другом уровне (следовательно, вам необходим стек SOAP, чтобы справиться с ним), что мне кажется расточительным, невежественным и усложняющим.
Следующее - это то, что вы хотите сделать. Для действительно сложных вещей в стеке веб-сервисов есть множество стандартов (я думаю, что в настоящее время их объединено около 1200 страниц), которые могут вам помочь, но если ваши потребности более скромны (то есть, не , что без ума от например, серьезно сложная защита) достаточно простого POST (или GET) запроса и конверта с результатами. Результаты в HTTP - это, как вы, наверное, знаете, HTTP-тип контента, поэтому многие из них уже поддерживаются, но вы можете создать свой собственный, например application / xml + myformat (или, точнее, application / x-xml + myformat, если я правильно помню ). Получить запрос, если это код ответа 200, и разобрать.
Оба будут работать. Один из них тяжелый (стек WS- *) в зависимости от ваших потребностей, другой более легкий и уже поддерживается. Остальное, как говорится, клей.