Разница между веб-сервисом и текстовым сервлетом - PullRequest
5 голосов
/ 14 января 2011

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

Мы можем получить тот же самый ответ «текстовые базы» (xml, json и т. Д.) С нашего сервера с помощью очень простых / простых реализаций (скажем, сервлет), тогда почему кто-то должен разрабатывать веб-сервис.

Что такое исключение, которое веб-сервис дает по простому HTTP-ответу?

Ответы [ 2 ]

5 голосов
/ 15 января 2011

На базовом уровне вы совершенно правы, с точки зрения низкого уровня, это просто текст (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 удаленная обработка может быть, в основном, кросс-платформенной операцией перетаскивания.

0 голосов
/ 15 января 2011

Это зависит. Если вашему веб-сервису нужно ответить на простой вопрос «да / нет», такой как «существует ли это имя пользователя?», Тогда достаточно вернуть да, нет, 0, 1 и т. Д. Если у вас есть тот, который возвращает все атрибуты факультета, XML или JSON могут быть подходящими из-за структурированной природы. Он немного менее подвержен синтаксическому анализу ошибок, чем анализ простого текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...