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

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

В этой главе сначала будут изложены некоторые важные сведения, чтобы вы могли понять, что такое веб-службы SOAP, такие как WSDL или SOAP. Далее будет показано, как создать веб-службу SOAP, а затем — как ее использовать.

Основные сведения о веб-службах SOAP

Проще говоря, веб-службы SOAP — это своего рода бизнес-логика, предоставляемая через службу (поставщика услуг) клиенту (потребителю услуг). Однако, в отличие от объектов или компонентов EJB, веб-службы SOAP предоставляют слабосвязанный интерфейс с помощью XML. Стандарты веб-служб SOAP указывают, что интерфейс, которому посылается сообщение, должен определять формат сообщений запроса и ответа, а также механизмы для публикации и обнаружения интерфейсов веб-служб (реестр служб).

На рис. 14.1 вы можете увидеть высокоуровневую картину взаимодействия веб-служб SOAP. Они могут зарегистрировать свой интерфейс в реестре (UDDI), чтобы потребитель смог обнаружить его. Как только потребитель узнает интерфейс службы и формат сообщения, он может отправить запрос к поставщику услуг и получить ответ.


Рис. 14.1. Потребитель обнаруживает службу с помощью реестра


Веб-службы SOAP зависят от нескольких технологий и протоколов для передачи и преобразования данных от потребителя к поставщику стандартным образом. Это такие технологии и протоколы, как:

• расширяемый язык разметки (XML) — основной фундамент, на котором строятся и определяются веб-службы SOAP (SOAP, WSDL и UDDI);

• Web Services Description Language (WSDL, язык описания веб-служб) — определяет протокол, интерфейс, типы сообщений и взаимодействия между потребителем и поставщиком;

• Simple Object Access Protocol (SOAP, простой протокол доступа к объекту) — протокол кодирования сообщения, основанный на технологиях XML, определяющих «конверт» для общения веб-служб;

• транспортный протокол — позволяет обмениваться сообщениями. Хотя протокол передачи гипертекста (HTTP) является наиболее популярным транспортным протоколом, другие — такие как SMTP или JMS — также могут использоваться;

• Universal Description Discovery and Integration (UDDI) — необязательный реестр служб и механизмов обнаружения, похожий на телефонный справочник. Он может быть использован для хранения и категоризации SOAP-интерфейсов веб-служб (WSDL).

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

XML

Я уже описал XML в главе 12, и теперь вы знаете, как управлять XML-документами, анализировать и связывать их. Поскольку XML является идеальной технологией интеграции, которая решает проблему независимости данных и совместимости, он считается ДНК веб-служб SOAP. Помимо того, что XML используется в качестве формата сообщений, с его помощью веб-службы определяются (WSDL) или обмениваются (SOAP). Связанные с этими XML-документами схемы (XSD) применяются для проверки обмена данными между потребителем и поставщиком. Исторически веб-службы SOAP развились из основной идеи RPC (Remote Procedure Call, удаленный вызов процедур) с использованием XML.

WSDL

WSDL — это язык определения интерфейса (IDL), который определяет взаимодействие между потребителями и веб-службами SOAP (рис. 14.2). Он является главным для веб-служб SOAP, поскольку описывает тип сообщения, порт, протокол коммуникации, поддерживаемые операции, расположение и то, что потребитель должен получить взамен. Данный язык определяет контракт, которому будет соответствовать служба. Вы можете рассматривать WSDL как интерфейс Java, который написан на XML.


Рис. 14.2. Интерфейс WSDL между потребителем и веб-службой


Для обеспечения совместимости стандартный интерфейс веб-служб необходим потребителю и производителю, чтобы они могли поделиться сообщением и понять его. В этом заключается роль WSDL. В листинге 14.1 показан пример, который представляет собой интерфейс веб-службы SOAP, проверяющей кредитную карту (эта служба принимает в качестве входных данных сведения о кредитной карте и проверяет их). Документ WSDL состоит из чистого XML, и если вы прочтете его внимательно, то увидите всю информацию, необходимую для того, чтобы потребитель смог найти веб-службу (soap: address location), вызвать метод (operation name="validate") и использовать соответствующий транспортный протокол (soap: binding transport).


Листинг 14.1. Файл WSDL, представляющий службу проверки кредитной карточки

>

>

>······xmlns: wsam="http://www.w3.org/2007/05/addressing/metadata" 

>······xmlns: soap="http://schemas.xmlsoap.org/wsdl/soap/" 

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

>······xmlns: xsd="http://www.w3.org/2001/XMLSchema" 

>······xmlns="http://schemas.xmlsoap.org/wsdl/" 

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

>······name="CardValidatorService">

>··

>····

>······

>········schemaLocation="http://localhost:8080/chapter14/CardValidatorService?xsd=1"/>


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