| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Введение в веб-службы |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Введение в веб-службы - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Введение в веб-службы |
| |
| В этом документе представлен обзор концепций веб-служб и технологий, поддерживаемых IDE NetBeans. Он разработан для пользователей, не знакомых с веб-службами, и предваряет другие учебные курсы. |
| |
| Веб-службы представляют собой распределенные компоненты приложений, доступные извне. Их можно использовать для интеграции компьютерных приложений, написанных на различных языках программирования и выполняемых на различных платформах. Веб-службы не зависят от языка и платформы, так как между поставщиками существует договоренность об общих стандартах веб-служб. |
| |
| В настоящее время Oracle разрабатывает проект java.net под названием Metro. Metro – это полный стек веб-служб, удовлетворяющий всем требованиям разработчиков: начиная от простых демонстраций "Hello, World!" и заканчивая надежными, защищенными и транзакционными веб-службами. Дополнительная информация доступна на link:https://metro.java.net/[+домашней странице Metro+]. |
| |
| В состав Metro входит поддержка технологий взаимодействия веб-служб (Web Services Interoperability Technologies – WSIT). WSIT поддерживает функции уровня корпораций, такие как обеспечение безопасности, надежности и оптимизация сообщений. WSIT обеспечивает совместимость служб Metro, поддерживающих эти функции, со службами Microsoft .NET. Внутри Metro проект Tango осуществляет разработку и развитие базы кодов WSIT. Увидеть WSIT в действии можно в учебном курсе link:wsit.html[+Расширенные возможности взаимодействия веб-служб+]. |
| |
| Разработчики веб-служб используют несколько моделей программирования. Эти модели можно разделить на следующие две категории, каждая из которых поддерживается в среде IDE: |
| |
| * *На основе REST.* *RE*presentational *S*tate *T*ransfer (передача состояния представления) - это новый способ создания и взаимодействия с веб-службами. В REST ресурсы имеют идентификаторы URI, и управление ими происходит через операции с заголовками HTTP. Для получения дополнительных сведений см. <<rest,Веб-службы RESTful>>. |
| * *На основе SOAP/WSDL.* В стандартных моделях веб-служб, интерфейсы веб-служб предоставляются с помощью документов WSDL (тип XML) с URL-адресами. Последующий обмен сообщениями осуществляется через SOAP, другой тип документа XML. Для получения дополнительных сведений см. <<jaxws,Веб-службы на основе 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. Программное обеспечение IDE NetBeans как "программное обеспечение как услуга" (SaaS) позволяет использовать Facebook, Zillow и другие службы сторонних производителей в своих собственных приложениях. |
| |
| link:https://jersey.java.net/[+Проект Jersey+] является примером реализации с открытым исходным кодом для создания веб-служб RESTful. API Jersey доступны как подключаемый модуль веб-служб RESTful для IDE NetBeans. |
| |
| Создание и применение служб REST рассматривается в следующих руководствах: |
| |
| * link:../../docs/websvc/rest.html[+Начало работы с веб-службами RESTful+] |
| * link:../../docs/websvc/zillow.html[+Модель "ПО как услуга": Zillow+] |
| |
| |
| == Веб-службы на основе 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, такие как аннотации, для упрощения задачи разработки веб-служб. Поскольку для передачи сообщений используется SOAP, JAX-WS является нейтральным по отношению к транспортному уровню. Он также поддерживает широкий диапазон модульных спецификаций WS-*, например WS-Security и WS-ReliableMessaging. |
| |
| При создании клиента веб-службы существует возможность выбора либо модели JAX-WS, либо модели JAX-RPC. Это связано с тем, что в некоторых более старых службах используется стиль привязки, не поддерживаемый JAX-WS. Эти службы могут потребляться только клиентами JAX-RPC. |
| |
| Создание и применение веб-служб JAX-WS на основе SOAP рассматривается в нижеперечисленных руководствах: |
| |
| * link:./jax-ws.html[+Начало работы с веб-службами JAX-WS+] |
| * link:./client.html[+Разработка клиентов веб-служб JAX-WS+] |
| * link:./flower_overview.html[+Использование веб-служб для передачи двоичных данных+] - отдельная учебная карта по использованию веб-служб для передачи двоичных данных, которые отображаются в клиенте с помощью компонентов Swing |
| * link:./wsit.html[+Расширенная совместимость веб-служб+] (с демонстрацией WSIT) |