Ответ 1
SOAP - это специализация XML, поскольку она имеет схему, такую как http://www.xmlsoap.org/soap/envelope/, тогда как XML более общий.
Для использования GET вы можете прочитать это обсуждение: http://www.coderanch.com/t/463869/Web-Services/java/SOAP-request-HTTP, но в основном SOAP выполняется через POST, хотя Axis2 появляется имеют поддержку GET, как способ заставить SOAP работать в мире, где REST, похоже, правит.
И, согласно этой статье IBM (http://www.ibm.com/developerworks/xml/library/x-tipgetr/index.html), SOAP 1.2 представляет GET.
Как вы уже упоминали, SOAP является стандартом, поэтому есть инструменты, которые могут легко работать с ним, включая динамическое создание клиентов, как показано в этом вопросе, динамический клиент-посредник с прокси-сервером в java?, whansere клиент создает заглушки, необходимые при подключении.
Если вы используете XML через http, это может быть лучше, в зависимости от необходимости, как способ передачи данных, но в случаях использования я могу думать, что было бы лучше использовать JSON и REST, но, если вы хотите передать XML или отправить XML, тогда вы можете посмотреть на использование REST.
POST был бы лучшим вариантом, хотя, поскольку GET имеет ограничения по размеру (максимальная длина HTTP-запроса GET?), вероятно, поэтому SOAP почти всегда является POST.
WSDL не обязательно является единственным файлом в WCF, если я помню, для завершения WSDL существует много XML файлов, которые должны быть собраны.
Преимущество зависит от того, что ваш вариант использования, но я считаю, что использование REST и разрешение пользователю выбрать тип полезно, поскольку может быть тривиально переключаться между JSON и XML, например, и это лучший выбор для XML через HTTP.
SOAP лучше всего подходит для интеграции со старыми технологиями, поскольку это может быть все, что они могут легко использовать. Например, когда я сделал веб-службы для интеграции SAP, может быть больше работы, чтобы он не использовал SOAP, в зависимости от способности программиста ABAP.
Вы можете найти этот вопрос:
Как SOAP и REST работают с ответом XML/JSON?
и для обсуждения JSON и XML в веб-сервисах вы можете найти это полезным:
http://digitalbazaar.com/2010/11/22/json-vs-xml/
Я забыл эту ссылку, так как они делают небольшое сравнение, но в конце концов вы можете легко поддерживать оба. В WCF у меня был контроллер, у которого была бизнес-логика, и для него были файлы .aspx, один для SOAP и один для REST, а некоторые веб-службы поддерживались обоими, поскольку это было просто вопросом обработки различий запроса и ответа. Итак, если вы хотите обеспечить поддержку для обоих, и у вас есть бизнес-пример, показывающий, что это имеет смысл, тогда выберите структуру, которая упростит ее работу.
http://digitalbazaar.com/2010/11/22/json-vs-xml/
В принципе, целью является предоставление услуг клиентам через Интернет. Какие клиенты собираются подключиться? Как клиенты смогут найти доступ к ним? Сколько данных передается в запросе?
Эти типы вопросов приведут к лучшему решению для ваших нужд.