Изучаем Java EE 7 - [217]

Шрифт
Интервал


Рис. 14.3. Потребитель, вызывающий веб-службу SOAP


SOAP предназначен для обеспечения независимого, абстрактного протокола связи с возможностью подключения распределенных служб. Связанные службы могут быть построены с использованием любой комбинации аппаратного и программного обеспечения, которые поддерживает данный транспортный протокол.

Вернемся к примеру проверки кредитной карты, показанному на рис. 14.3. Потребитель вызывает веб-службу SOAP для проверки кредитной карты, передавая все необходимые параметры (номер кредитной карты, срок действия, тип и контрольный номер), получает логическое значение и информирует потребителя о том, действительна ли карта. В листингах 14.3 и 14.4 соответственно показана структура этих двух сообщений SOAP.


Листинг 14.3. SOAP-конверт, отправленный в качестве запроса

>

>················xmlns: cc="http://chapter14.javaee7.book.agoncal.org/">

>··

>··

>····

>······

>····

>··

>


Листинг 14.4. SOAP-конверт, полученный в качестве ответа

>

>················xmlns: cc="http://chapter14.javaee7.book.agoncal.org/">

>··

>····

>······true

>····

>··

>

Потребитель передает всю информацию о кредитной карте в SOAP-конверт (см. листинг 14.3), методу validate веб-службы проверки кредитной карты. Служба возвращает другой конверт SOAP (см. листинг 14.4) с результатом проверки (истина или ложь).

В табл. 14.2 перечислено подмножество элементов и атрибутов SOAP. Как и WSDL, SOAP определяется стандартом W3C.


Таблица 14.2. Элементы и атрибуты SOAP
ЭлементОписание
EnvelopeОпределяет сообщение и пространство имен, использованное в документе. Этот обязательный элемент является корневым
HeaderСодержит любые необязательные атрибуты сообщения или характерную для приложения инфраструктуру, такую как информация о безопасности или о сетевой маршрутизации
BodyСодержит сообщение, которым обмениваются приложения
FaultПредоставляет информацию об ошибках, которые произошли при обработке сообщений. Этот элемент необязателен

UDDI

Потребители и поставщики, взаимодействующие друг с другом через Интернет, должны быть в состоянии найти информацию, которая позволит их соединить. Любой потребитель знает о точном местоположении службы, которую хочет вызвать или найти. UDDI предоставляет стандартный подход к поиску информации о размещении веб-службы и о том, как ее вызвать. Поставщик служб публикует WSDL в реестре UDDI, доступном в Интернете. Тогда служба может быть обнаружена и загружена потенциальными потребителями. Это не обязательно, поскольку можно вызвать веб-службу без UDDI, если вы уже знаете ее расположение.

UDDI — это основанный на XML реестр веб-служб, похожий на телефонный справочник, где предприятия могут зарегистрировать свои службы. Такая регистрация включает в себя вид деятельности, географическое положение, сайт, номер телефона и т. д. Другие предприятия могут выполнять поиск по реестру и узнавать информацию о конкретных веб-службах. Эта информация предоставляет дополнительные метаданные о службе, описывающие ее поведение и фактическое местонахождение документа WSDL.


Примечание

UDDI не получила столь широкого распространения, несмотря на надежды его дизайнеров (IBM, Microsoft и SAP). В январе 2006 года три компании объявили, что они закрывают свои общедоступные реестры UDDI. В конце 2007 года группа, определяющая UDDI в OASIS, объявила о закрытии технического комитета.

Транспортный протокол

Чтобы потребитель смог общаться с веб-службой, понадобится способ для отправки сообщений. Сообщения SOAP могут транспортироваться через сеть по протоколу, который могут поддерживать обе стороны. Учитывая, что веб-службы требуются в основном в Интернете, они обычно используют HTTP, но могут быть задействованы и другие сетевые протоколы, такие как HTTPS (HTTP Secure), TCP/IP, SMTP (Simple Mail Transport Protocol, простой протокол пересылки почты), FTP (File Transfer Protocol, протокол обмена файлами) и т. д.

Обзор спецификаций веб-служб SOAP

Как показано в главе 4, устойчивость в основном обеспечивается благодаря одной спецификации — JPA. Для веб-служб ситуация более сложная, поскольку вам приходится иметь дело с большим количеством спецификаций, поступающих из различных стандартных органов. Кроме того, поскольку другие языки программирования также используют веб-службы, не все эти спецификации непосредственно связаны с Java Community Process (JCP).

Краткая история спецификаций веб-служб SOAP

Веб-службы SOAP являются стандартным способом общения по сети для предприятий. У этих веб-служб были предшественники: Common Object Request Broker Architecture (CORBA), которая первоначально использовалась в UNIX-системах, и Distributed Component Object Model (DCOM), его конкурент от компании Microsoft. На уровне пониже работают технологии Remote Procedure Call (RPC) и более близкая к нашему миру Java Remote Method Invocation (RMI).


Рекомендуем почитать
Геймдизайн. Рецепты успеха лучших компьютерных игр от Super Mario и Doom до Assassin’s Creed и дальше

Что такое ГЕЙМДИЗАЙН? Это не код, графика или звук. Это не создание персонажей или раскрашивание игрового поля. Геймдизайн – это симулятор мечты, набор правил, благодаря которым игра оживает. Как создать игру, которую полюбят, от которой не смогут оторваться? Знаменитый геймдизайнер Тайнан Сильвестр на примере кейсов из самых популярных игр рассказывает как объединить эмоции и впечатления, игровую механику и мотивацию игроков. Познакомитесь с принципами дизайна, которыми пользуются ведущие студии мира! Создайте игровую механику, вызывающую эмоции и обеспечивающую разнообразие.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка баз данных на Visual Basic.NET

Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.