Изучаем Java EE 7 - [217]
Рис. 14.3. Потребитель, вызывающий веб-службу SOAP
SOAP предназначен для обеспечения независимого, абстрактного протокола связи с возможностью подключения распределенных служб. Связанные службы могут быть построены с использованием любой комбинации аппаратного и программного обеспечения, которые поддерживает данный транспортный протокол.
Вернемся к примеру проверки кредитной карты, показанному на рис. 14.3. Потребитель вызывает веб-службу SOAP для проверки кредитной карты, передавая все необходимые параметры (номер кредитной карты, срок действия, тип и контрольный номер), получает логическое значение и информирует потребителя о том, действительна ли карта. В листингах 14.3 и 14.4 соответственно показана структура этих двух сообщений SOAP.
>
>················xmlns: cc="http://chapter14.javaee7.book.agoncal.org/">
>··
>··
>····
>······
>····
>··
>
>
>················xmlns: cc="http://chapter14.javaee7.book.agoncal.org/">
>··
>····
>······
>····
>··
>
Потребитель передает всю информацию о кредитной карте в SOAP-конверт (см. листинг 14.3), методу validate веб-службы проверки кредитной карты. Служба возвращает другой конверт SOAP (см. листинг 14.4) с результатом проверки (истина или ложь).
В табл. 14.2 перечислено подмножество элементов и атрибутов SOAP. Как и WSDL, SOAP определяется стандартом W3C.
Элемент | Описание |
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).
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.