Недавно я решил начать изучать веб-службы Java, и когда я начал искать учебник по веб-службам Java в Google, я обнаружил, что существует множество типов веб-служб на основе XML, SOAP, а также веб-служб RESTful.
Кроме того, я обнаружил, что существует спецификация JAX-WS для веб-сервисов на основе xml и спецификация JAX-RS для создания веб-сервисов RESTful.
Q1) Я запутался, было бы здорово, если бы кто-нибудь помог мне понять разницу между этими разными типами веб-сервисов, чтобы я мог решить, какой из них изучить в первую очередь.
Q2) Кроме того, я хочу подробно изучить создание различных типов веб-сервисов на java. Есть ли какой-либо учебник или ресурсы, которые могут дать представление о каждом виде веб-сервиса и сравнить их.
Q3), исходя из того, какие сценарии и условия мне следует решить, что я хочу создать веб-службу на основе XML, а не службу SOAP, или мне следует использовать службу RESTful.
источник
Ответы:
В вопросе 3 в этой статье говорится, что службы RESTful подходят для следующих сценариев:
Хотя протокол SOAP подходит, если:
источник
Q1) Вот пара вещей, которые стоит почитать или погуглить:
Основные различия между веб-службами SOAP и RESTful в java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest
Вам решать, чему вы хотите научиться в первую очередь. Я рекомендую вам взглянуть на фреймворк CXF . Вы можете построить и отдых, и мыло.
Q2) Вот несколько хороших туториалов по мылу (я добавил их в закладки):
http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226
http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/
http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html
Лучший способ учиться - это не просто читать руководства. Но сначала вы должны пройти через учебные пособия, чтобы получить базовую идею, чтобы увидеть, можете ли вы что-то производить (или нет) и это мотивирует вас.
ТАК - отличный способ изучить конкретную технологию (или больше), люди задают много странных вопросов, и есть еще более странные ответы. Но в целом вы узнаете о способах решения проблем другими способами. Может быть, вы не знали об этом, может быть, вы не могли придумать это самостоятельно.
Подпишитесь на пару тегов, которые вам интересны и будьте настойчивы, задавайте хорошие вопросы и старайтесь давать хорошие ответы, и я гарантирую вам, что вы научитесь этому со временем (если вы настойчивы).
Q3) Вам придется ответить на этот вопрос самостоятельно. Сначала, решив, что вы собираетесь построить, в конце концов, вам нужно будет придумать какой-нибудь мини-проект или что-то в этом роде и взять его оттуда.
Если вы решите использовать CXF в качестве инфраструктуры для создания служб REST / SOAP, я рекомендую вам поискать эту книгу
Apache CXF Web Service Development
. Он фантастический, его не сложно читать, и он не слишком большой (победа-победа).источник
SOAP WS поддерживает как удаленный вызов процедур (т. Е. RPC), так и стили интеграции ориентированного на сообщения промежуточного программного обеспечения (MOM). Restful Web Service поддерживает только стиль интеграции RPC.
SOAP WS не зависит от транспортного протокола. Поддерживает несколько протоколов, таких как HTTP (S), обмен сообщениями, TCP, UDP, SMTP и т. Д. REST зависит от транспортного протокола. Поддерживает только протоколы HTTP или HTTPS.
SOAP WS допускает только формат данных XML. Вы определяете операции, которые туннелируются через POST. Основное внимание уделяется доступу к именованным операциям и представлению логики приложения как службы. REST допускает использование нескольких форматов данных, таких как XML, данные JSON, текст, HTML и т. Д. Можно использовать любой браузер, поскольку подход REST использует стандартные веб-операции GET, PUT, POST и DELETE. Основное внимание уделяется доступу к названным ресурсам и представлению данных как службы. REST поддерживает AJAX. Он может использовать объект XMLHttpRequest. Подходит для операций CRUD без сохранения состояния (создание, чтение, обновление и удаление). GET - представить () POST - acceptRepresention () PUT - storeRepresention () DELETE - removeRepresention ()
Чтения на основе SOAP нельзя кэшировать. Чтения на основе REST можно кэшировать. Лучше работает и масштабируется. SOAP WS поддерживает как безопасность SSL, так и WS-безопасность, что добавляет некоторые функции безопасности предприятия, такие как поддержание безопасности вплоть до того момента, когда это необходимо, поддержание идентичности через посредников, а не только протокол SSL «точка-точка», защита различных частей сообщения с помощью различные алгоритмы безопасности и т. д. REST поддерживает только двухточечную безопасность SSL. SSL шифрует все сообщение, независимо от того, является оно конфиденциальным или нет. SOAP имеет комплексную поддержку как для управления транзакциями на основе ACID для краткосрочных транзакций, так и для управления транзакциями на основе компенсации для длительных транзакций. Он также поддерживает двухфазную фиксацию через распределенные ресурсы. REST поддерживает транзакции,
SOAP имеет встроенную логику успешного выполнения или повторной попытки и обеспечивает сквозную надежность даже через посредников SOAP. REST не имеет стандартной системы обмена сообщениями и ожидает, что клиенты, вызывающие службу, будут устранять сбои связи путем повторной попытки.
источник http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html
источник
Если ваше приложение часто использует протокол http, тогда лучше всего подходит REST из-за его небольшого веса, и знание того, что ваше приложение использует только протокол http, выбор SOAP не так хорош, потому что он тяжелый. Лучше принимать решение о выборе веб-службы на основе используемых нами протоколов. в наших приложениях.
источник