Введение в веб-службы
В этом документе приведен обзор основных аспектов веб-служб, а также технологий, поддерживаемых средой IDE NetBeans. Он предназначен для ознакомления начинающих программистов с веб-службами до использования ими каких бы то ни было руководств.
Веб-службы представляют собой распределенные компоненты приложений, доступные извне. Их можно использовать для интеграции компьютерных приложений, написанных на различных языках программирования и выполняющихся на различных платформах. Веб-службы не зависят от языка и платформы, так как между поставщиками существует договоренность об общих стандартах веб-служб.
Sun Microsystems разрабатывает проект java.net с именем Metro. Metro представляет собой полный стек веб-служб, охватывающий все потребности разработчика, от простых демонстраций "Hello, World!" до надежных и безопасных веб-служб с поддержкой транзакций. Для получения дополнительных сведений см. домашнюю страницу Metro.
Metro включает технологии совместимости веб-служб (WSIT, Web Services Interoperability Technologies). WSIT поддерживают такие функции уровня предприятия, как безопасность, надежность и оптимизация сообщений. WSIT гарантируют, что службы Metro с этими функциями совместимы со службами Microsoft .NET. Проект Tango в рамках Metro предназначен для разработки и развития кодовой базы WSIT. Для изучения работы WSIT воспользуйтесь руководством Расширенная совместимость веб-служб.
Разработчикам веб-служб доступно несколько моделей программирования. Эти модели делятся на две категории, каждая из которых поддерживается средой IDE:
- На основе REST. REpresentational State Transfer (репрезентативная передача состояний) является новым способом создания веб-служб и взаимодействия с ними. В REST ресурсы имеют идентификаторы URI, и управление ими происходит через операции с заголовками HTTP. Для получения дополнительных сведений см. Веб-службы RESTful.
- На основе SOAP/WSDL. В традиционных моделях веб-служб интерфейсы веб-служб предоставляются через документы WSDL (тип XML), имеющие URL-адреса. Последующий обмен сообщениями осуществляется через SOAP, другой тип документа XML. Для получения дополнительных сведений см. Веб-службы на основе SOAP.
Веб-службы RESTful
Веб-службы на основе REST ("RESTful") представляют собой коллекцию веб-ресурсов, идентифицируемых по своим URI. Каждый документ и каждый процесс смоделирован как веб-ресурс с уникальным идентификатором URI. Этими веб-ресурсами можно управлять с помощью действий, указанных в заголовке HTTP. Стандарты SOAP, WSDL и WS-* не используются. Наоборот, обмен сообщениями может быть проведен в любом формате – XML, JSON, HTML и т.д. Во многих случаях клиентом может служить веб-обозреватель.
Протоколом в REST является HTTP. Доступны только четыре метода: GET, PUT, POST и DELETE. Для запросов можно создавать вкладки, а ответы могут кэшироваться. Администратор сети может отслеживать работу службы RESTful путем просмотра заголовков HTTP.
REST является подходящей технологией для создания тех приложений, которые не требуют защиты сверх той, что доступна в инфраструктуре HTTP, и которым подходит протокол HTTP. Службы REST предоставляют весьма сложные функциональные возможности. Веб-службы RESTful применяются такими компаниями, как Flickr, Google Maps и Amazon.
Проект "Jersey" является примером реализации с открытым исходным кодом для создания веб-служб RESTful. Интерфейсы API "Jersey" доступны в качестве подключаемого модуля "RESTful Web Services" в среде IDE NetBeans.
Создание и применение служб REST рассматривается в следующих руководствах:
Веб-службы на основе SOAP
В веб-службах на основе SOAP служебные программы Java создают в веб-службе файл WSDL, основанный на коде Java. WSDL предоставляется в сети. Стороны, заинтересованные в использовании веб-службы, создают клиент Java на основе WSDL. Обмен сообщениями происходит в формате SOAP. Спектр операций, которые могут быть переданы в SOAP, намного шире спектра REST, особенно в области безопасности.
Веб-службы на основе SOAP подходят и для крупных приложений, использующих сложные операции, и для приложений, требующих усложненной защиты, надежности или других поддерживаемых стандартами функций WS-*. Они подходят также в тех случаях, когда необходимо использовать транспортный протокол, отличный от HTTP. Многие веб-службы Amazon, в частности те, которые связаны с коммерческими транзакциями, и веб-службы, используемые банками и правительственными агентствами, основаны на SOAP.
Интерфейс API Java для веб-служб XML (JAX-WS) является в Metro текущей моделью для веб-служб на основе SOAP. JAX-WS создан на основе ранней модели JAX-RPC, но использует специфические функции Java EE 5, такие как аннотации, для упрощения задачи разработки веб-служб. Поскольку для передачи сообщений используется SOAP, JAX-WS является нейтральным по отношению к транспортному уровню. Он также поддерживает широкий диапазон модульных спецификаций WS-*, например, WS-Security и WS-ReliableMessaging.
Примечание: Несмотря на то, что было настоятельно рекомендовано использовать для создания служб SOAP модель JAX-WS, среда IDE по традиции продолжает поддерживать веб-службы JAX-RPC. Для их разработки необходимо установить подключаемый модуль "JAX-RPC Web Services".
При создании клиента веб-службы существует возможность выбора либо модели JAX-WS, либо модели JAX-RPC. Это связано с тем, что в некоторых более старых службах используется стиль привязки, не поддерживаемый JAX-WS. Эти службы могут потребляться только клиентами JAX-RPC.
Веб-службы Metro способны к взаимодействию с веб-службами Apache Axis2. Apache Axis2 представляет собой реализацию SOAP (простой протокол доступа к объектам) с открытым кодам, представленную к рассмотрению консорциумом W3C. В Axis2 не только поддерживается SOAP 1.1 и SOAP 1.2, но также интегрирована поддержка веб-служб RESTful. Для получения дополнительных сведений о веб-службах Axis2 в среде IDE NetBeans см. Создание веб-служб Apache Axis2 в среде IDE NetBeans.
Создание и применение веб-служб JAX-WS на основе SOAP рассматривается в нижеперечисленных руководствах: