На базовом уровне вы совершенно правы, с точки зрения низкого уровня, это просто текст (XML) в сокете.
Для простых веб-сервисов вполне подходит сервлет (я пишу один из них, как мы говорим).
Тем не менее, когда речь идет о чем-то вроде веб-сервисов SOAP и WSS- *, существует много возможностей обработки и функций, доступных в стандартах, которые наборы инструментов веб-сервисов представляют как транзакции более высокого уровня.
Простой пример - маршалинг данных. Если вы рассматриваете его исключительно как XML, то ваша служба в основном получает возможность обрабатывать XML вручную - анализировать его, оценивать, заполнять ваши внутренние модели и т. Д.
Сравните это с чем-то подобным из Java EE:
@WebService
public Person getPerson(String personId) {
Person p;
...
return p;
}
Стек веб-службы преобразует ваш объект Person в совместимый с SOAP BLOB-объект. Он также создаст WSDL, который можно использовать для создания клиентского кода (на многих платформах: .NET, PHP и т. Д.) Для создания кода веб-службы.
В конце концов, ваш клиент и сервер имеют всего несколько строк кода, в то время как фреймворки выполняют всю основную работу по синтаксическому анализу, маршалингу и публикации за вас.
Итак, ценность стека WS в том, что он обрабатывает большую часть бюрократии при написании веб-сервисов, совместимых с WSS.
Это не панацея, но для многих современных реализаций SOAP <-> SOAP удаленная обработка может быть, в основном, кросс-платформенной операцией перетаскивания.