Hello World: WebSphere Enterprise Service Bus (исходники)

Билл Жу, Абелард Чоу,

Цели документа

Изучив это пособие, вы улучшите свое понимание следующих вопросов:

  • Базовые концепции ESB
  • Порядок построения потока сообщений для преобразования протоколов с помощью архитектуры SCA
  • Порядок использования клиента Integration Test Client в WebSphere Integration Developer
  • Порядок создания посредника Web-сервисов (Web Service proxy) и пробных JSP-страниц

Предварительные условия

Документ ориентирован на разработчиков, обладающих минимальными знаниями по продукту WebSphere Enterprise Service Bus или вообще не обладающих таковыми знаниями.

Требования к системе

Перед началом работы с эти документом убедитесь в том, что на вашем ПК установлен инструмент WebSphere Integration Developer V6.0.1.1. Информация по данному продукту приведена по адресу: http://www.ibm.com/software/integration/wid/.

Для просмотра включенных в это пособие демонстраций активируйте JavaScript в своем браузере и установите проигрыватель Macromedia Flash Player версии 6 или выше. Новейшую версию Flash Player можно загрузить по адресуhttp://www.macromedia.com/go/getflashplayer/.

Анимированные демонстрации

Если вы впервые сталкиваетесь с пособием developerWorks, в которое включены демонстрации, обратите внимание на следующие советы:

  • Демонстрация - это дополнительный способ для просмотра последовательности шагов, описанной в тексте. Для просмотра анимированной демонстрации нажмите на ссылку значок Показать демонстрацию Показать демонстрацию. Демонстрация откроется в отдельном окне браузера.
  • В нижней части этого окна расположена навигационная панель с кнопками паузы, выхода, ускоренной перемотки назад и ускоренной перемотки вперед.
  • Демонстрации представлены в разрешении 800 x 600 пикселей. Если максимальное разрешение вашего дисплея составляет 800 x 600 пикселей или меньше, то для просмотра некоторых зон демонстрации вам придется воспользоваться прокруткой изображения.

Введение

Что такое WebSphere Enterprise Service Bus?

WebSphere Enterprise Service Bus - это новый продукт IBM, выпущенный на рынок в конце 2005 г. Он предназначен для связывания и интеграции приложений и данных в среде на основе Web-сервисов. В качестве платформы разработки для продукта WebSphere Enterprise Service Bus используется инструмент WebSphere Integration Developer. В его состав входит редактор потоков, с помощью которого разработчики создают посреднические модули (mediation module), развертываемые в среде WebSphere Enterprise Service Bus как составная часть архитектуры Service Component Architecture (SCA). Продукт WebSphere Enterprise Service Bus - в сочетании с инструментом WebSphere Integration Developer и архитектурой Service Component Architecture - позволяет разработчикам создавать, развертывать и применять решения на основе концепции Enterprise Service Bus (т.н. ESB-решения).

На следующем рисунке показано, как соотносится продукт WebSphere Enterprise Service Bus с другими серверными решениями семейства WebSphere:

Рис. 1. WebSphere Enterprise Service Bus и другие серверные решения семейства WebSphere
WESB и другие серверные решения семейства WebSphere

Применение для преобразования бизнеса ESB-решения, например, продукта WebSphere Enterprise Service Bus, обеспечивает заказчику следующие преимущества:

  • Сокращение расходов на разработку и техническое сопровождение благодаря переходу к основанной на сервисах архитектуре.
  • Улучшение способности бизнеса к реагированию за счет более быстрого вывода продукции на рынок.
  • Улучшение удовлетворенности клиентов за счет повышения качества и ускорения поставки продукции.
  • Максимальная окупаемость активов благодаря многократному использованию существующих бизнес-процессов.
  • Возможность продажи новых продуктов существующим заказчикам посредством перекрестных продаж.
  • Получение превосходства над конкурентами за счет создания уникальных приложений.

Ключевые концепции WebSphere Enterprise Service Bus

Концепция Описание
Инициатор запроса сервиса (service requester) и поставщик сервиса (service provider) В ESB-инфраструктуре функционируют приложения двух типов - инициатор запроса сервиса и поставщик сервиса. Инициатор запроса сервиса- это приложение, запрашивающее сервис у другого приложения в ESB-инфраструктуре. Поставщик сервиса - это приложение, предоставляющее сервис другому приложению в ESB-инфраструктуре.
Модуль-посредник (mediation module) Модуль-посредник - это элемент архитектуры SCA, обрабатывающий и передающий потоки сообщений между инициаторами запросов сервиса и поставщиками сервиса.
Посреднический поток (mediation flow) Посреднический поток содержит посредническую логику высокого уровня. Он описывает порядок прохождения сообщений между инициаторами запросов сервиса и поставщиками сервиса.
Примитив-посредник (mediation primitive) Примитивы-посредники - это узлы, из которых состоят посреднические потоки. Эти примитивы содержат программируемую логику, посредством которой реализуются определенные бизнес- или системные функции.
Объект Service message object Service message object (объект сервисного сообщения) - это дальнейшее развитие объекта типа service data object (объект сервисных данных). Объект Service message object представляет собой уровень абстракций для обработки сообщений, циркулирующих между инициаторами запросов сервиса и поставщиками сервиса.
Сервер приложений (Application server) Модули-посредники развертываются на сервере приложений, поддерживающем WebSphere Enterprise Service Bus.

Ключевые характеристики WebSphere Enterprise Service Bus

Продукт WebSphere Enterprise Service Bus функционирует как дополнение к серверу приложений WebSphere Application Server и решает следующие задачи:

  • Маршрутизация сообщений между сервисами
  • Преобразование транспортного протокола между инициаторами запросов сервиса и поставщиками сервиса
  • Преобразование порядка формирования сообщений между инициаторами запросов сервиса и поставщиками сервиса
  • Обработка бизнес-событий

Что такое Enterprise Service Bus?

Концепция Enterprise Service Bus, впервые представленная в 2002 г., к настоящему времени получила широкое признание в программной индустрии. Enterprise Service Bus - это платформа интеграции, объединяющая такие концепции, как Message Oriented Middleware (связующее ПО, ориентированное на сообщения), Web-сервисы, Message Transformation (преобразование сообщений) и Intelligence Message Routing (интеллектуальная маршрутизация сообщений), в управляемую событиями сервис-ориентированную архитектуру (SOA).

Message Oriented Middleware (связующее ПО, ориентированное на сообщения)

Эта категория связующего ПО устанавливает между исполняемыми на разных серверах приложениями асинхронные, слабо связанные соединения, основанные на обмене сообщениями. Это гибкий подход к построению распределенных систем.

Web-сервисы

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

Message Transformation (преобразование сообщений)

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

Intelligence Message Routing (интеллектуальная маршрутизация сообщений)

Маршрутизация сообщений - это ключевая функция ESB-инфраструктуры, позволяющая полностью отделить инициаторов запросов сервиса от поставщиков сервиса. Сообщения, посланные каким-либо инициатором запроса сервиса, могут быть маршрутизированы к одному или нескольким поставщикам сервиса на основе т.н. маршрутизирующей логики.

Поскольку Enterprise Service Bus - это основанная на SOA инфраструктура для интеграции приложений, возникает вопрос - чем этот подход отличается от традиционного подхода к интеграции? На следующем рисунке традиционный подход к интеграции сравнивается с подходом на основе Enterprise Service Bus.

Рис. 2. Традиционный подход к интеграции и Enterprise Service Bus
Традиционный подход к интеграции и Enterprise Service Bus

Существуют следующие общепринятые подходы к интеграции приложений: одноранговая интеграция (Peer-to-peer integration), интеграция на основе концентраторов и адаптеров (Hub and Adaptor integration) и основанная на сообщениях интеграция (Message-based integration). Одноранговая интеграция применяется в «одноразовых» решениях, не рассчитанных на тиражирование. Этот вид интеграции печально известен невозможностью масштабирования и трудностями в техническом сопровождении. Интеграция на основе концентраторов и адаптеров базируется, как следует из названия, на соединении приложений с концентраторами посредством различных адаптеров. По сравнению с предыдущим подходом упрощается техническое обслуживание, однако этот подход не является привлекательным решением для распределенных систем. При интеграции, основанной на сообщениях, приложения слабо связаны друг с другом посредством обмена сообщениями. Этот подход лучше других подходит для распределенных систем, однако, если существующие приложения не поддерживают обмена сообщениями, для их интеграции требуются масштабные доработки.

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

Место продукта WebSphere Enterprise Service Bus в решении IBM

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

В ответ на запросы делового рынка был выпущен продукт WebSphere Enterprise Service Bus, входящий в портфель ESB-решений корпорации IBM. Этот продукт представляет собой полное SOA-решение для интеграции приложений и сервисов - от управления подключением, взаимодействием и хостингом Web-сервисов до посредничества между сервисами.

На следующем рисунке показан сценарий применения концепции ESB для разрешения бизнес-проблем. В этом сценарии рассматривается гипотетическая компания, имеющая множество офисов и заводов в 10 странах. Компания поставляет свою продукцию дистрибьюторам во всем мире.

Рис. 3. Существующая система производственной компании
Существующая система производственной компании

В рамках существующей интеграционной инфраструктуры данная компания может столкнуться со следующими проблемами.

  • Объем производства на каком-либо заводе превышает или не удовлетворяет текущий спрос.
  • Согласование заказов от различных офисов требует большого объема административной деятельности.
  • Неадекватность информации, циркулирующей между офисами и заводами, приводит к дополнительным транспортным расходам.

В данном случае компания может внедрить ESB-решение на основе продукта IBM WebSphere Enterprise Service Bus для постепенного преобразования существующего бизнеса и поэтапной нейтрализации стоящих перед ней проблем. В качестве первого шага ESB-решение может быть использовано для преобразования некоторой части существующей системы в SOA-инфраструктуру. Как показано на следующем рисунке, после проведения такого преобразования поступающие на первый завод заказы согласуются со всеми офисами, имеющими связь с этим заводом. Любой из указанных офисов может в реальном времени получить информацию о текущих производственных показателях данного завода.

Рис. 4. Внедрение ESB в существующую систему
Внедрение ESB в существующую систему

Впоследствии могут быть предприняты дальнейшие шаги, ведущие в конечном счете к полному преобразованию всей системы и всего бизнеса. Новое ESB-решение позволяет преодолеть все существующие проблемы. На каждом этапе преобразования данная компания получает немедленные бизнес-преимущества.

Рис. 5. Поэтапное преобразование всей системы
Поэтапное преобразование всей системы

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

Рис. 6. Интеграция новых возможностей в SOA-систему
Интеграция новых возможностей в SOA-систему

Место продукта WebSphere Enterprise Service Bus в жизненном цикле SOA

Чтобы помочь заказчикам в построении бизнес-процессов и управлении ими, корпорация IBM предложила решение SOA Foundation - открытый интегрированный набор программного обеспечения, проверенных методик и шаблонов, предоставляющий заказчику все необходимое для начала внедрения SOA. Жизненный цикл SOA показан на следующем рисунке.

Рис. 7. Жизненный цикл SOA
Жизненный цикл SOA

WebSphere Enterprise Service Bus - это один из программных продуктов из набора SOA Foundation, отвечающих за поддержку фазы развертывания жизненного цикла SOA. WebSphere Integration Developer - это один из программных продуктов, отвечающих за поддержку фазы сборки.

Архитектура Service Component Architecture и продукт WebSphere Enterprise Service Bus

Инфраструктура для интеграции приложений, подобная WebSphere Enterprise Service Bus, обладает большими возможностями, однако мощные инфраструктуры не всегда просты в применении. Например, разработчики могут столкнуться с тем, что на изучение или использование инфраструктуры уходит больше времени, чем непосредственно на разработку бизнес-логики. Желая помочь своим заказчикам в сокращении затрат на обучение и в ускорении создания ESB-решений, корпорация IBM предложила концепцию Service Component Architecture (SCA).

Service Component Architecture является одним из возможных способов реализации SOA. SCA предлагает независимую от технологий модель, которая специфицирует интерфейсы, ссылки и реализации. Эта модель основана на т.н. SCA-компонентах. SCA имеет следующее важное преимущество: инфраструктурная логика отделена от бизнес-логики, что позволяет разработчикам сконцентрировать усилия на бизнес-аспектах технических проблем. В настоящее время инструмент WebSphere Integration Developer позволяет реализовать SCA-компоненты с помощью следующих механизмов:

  • Java
  • BPEL (язык описания бизнес-процессов)
  • State Machine (машина состояний)
  • Business Rule (бизнес-правило)
  • Human Task (задача персонала)
  • Selector (селектор)
  • Mediation Flow (посреднический поток)

Преобразование протокола

При выполнении следующего упражнения вы сможете с помощью инструмента WebSphere Integration Developer и архитектуры Service Component Architecture реализовать на практике поток сообщений WebSphere Enterprise Service Bus, преобразующий SOAP/HTTP-запрос от инициатора запроса сервиса (service requester) в формат SOAP/JMS для обработки этого запроса поставщиком сервиса (service provider).

Как указывалось выше (см. раздел Предварительные условия, до выполнения этого упражнения на вашем компьютере необходимо установить продукты WebSphere Integration Developer V6.0.1.1 и WebSphere Enterprise Service Bus. Для создания модуля-посредника (mediation module выполните следующие операции.

 

Для просмотра демонстрации по указанным операциям откройте ссылку.

Показать демонстрациюПоказать демонстрацию

Запуск инструмента WebSphere Integration Developer

  1. В основном меню Windows последовательно выберите: Пуск > Все программы > IBM WebSphere > Integration Developer V6.0.1 > WebSphere Integration Developer V6.0.1.
  2. Дождитесь запуска инструмента WebSphere Integration Developer

Создание бизнес-объекта для потока сообщений

С помощью инструмента WebSphere Integration Developer создайте объект business object, который будет использоваться в потоке сообщений:

  1. В перспективе Business Integration последовательно выберите: File > New > Business Object.
  2. Введите Customer в поле Name.

    Рис. 8. Окно New Business Object
    Окно New Business Object

  3. Нажмите расположенную рядом с полем Module кнопку New для создания модуля-посредника, в котором будет содержаться ваш бизнес-объект.
  4. В окне New Integration Project выберите пункт Create a mediation module project. Нажмите на кнопку Next.
  5. Введите CustomerModule в поле Module name.
  6. Убедитесь в том, что в качестве целевой среды исполнения выбран продукт WebSphere ESB Server v6.0.
  7. Снимите флажок Create mediation flow component. Нажмите на кнопку Finish.

    Рис. 9. Окно New Mediation Module
    Окно New Mediation Module

  8. Снова нажмите на кнопку Finish Окно New Business Object закроется и автоматически запустится редактор бизнес-объектов (Business Object editor).
  9. В окне редактора бизнес-объектов нажмите кнопку Add Attribute для добавления нового атрибута к вашему бизнес-объекту.

    Рис. 10. Кнопка Add attribute
    Кнопка Add attribute

  10. Введите имя в выделенное поле.
  11. Снова нажмите кнопку Add Attribute
  12. Введите address в выделенное поле. Созданный вами бизнес-объект должен выглядеть следующим образом:

    Рис. 11. Бизнес-объект Customer
    Бизнес-объект Customer

  13. Для сохранения этого бизнес-объекта нажмите Ctrl-S.

Создание WSDL-файла для ввода сообщения в поток

Для создания интерфейса к потоку сообщений используется WSDL-редактор, входящий в состав WebSphere Integration Developer.

  1. В представлении Business Integration раскройте пункт CustomerModule, правой кнопкой мыши нажмите на пункт Interfaces и в появившемся меню выберите New > Interface. Откроется окно мастера New Interface Wizard:

    Рис. 12. Создание нового интерфейса
    Создание нового интерфейса

  2. Введите AddCustomer в поле Name. Нажмите на кнопку Finish. Откроется окно WSDL-редактора.
  3. Для добавления операции нажмите на кнопку Add One Way Operation to add an operation.

    Рис. 13. Кнопка Add One Way Operation
    Кнопка Add One Way Operation

  4. Измените имя операции на addCustomer.
  5. Нажмите на кнопку Add Input для добавления части входного сообщения. Будет автоматически создано входное сообщение для операции addCustomer.

    Рис. 14. Кнопка Add Input
    Кнопка Add Input

  6. Измените имя на customer. Имя части сообщения будет изменено на customer.
  7. Измените тип на Customer, для чего нажмите на input type, прокрутите список вниз и выберите бизнес-объект Customer. В результате тип части сообщения будет изменен на бизнес-объект Customer.

    Рис. 15. Выбор бизнес-объекта Customer
    Выбор бизнес-объекта Customer

  8. Сохраните WSDL-файл, нажав Ctrl-S.

Использование SCA для преобразования HTTP-запросов в JMS

Для преобразования HTTP-запросов в JMS используется SCA

  1. В представлении Business Integration раскройте пункт CustomerModule и дважды нажмите на CustomerModule для открытия редактора сборочных диаграмм Assembly Diagram editor.
  2. В палитре редактора сборочных диаграмм дважды нажмите на значок export для добавления экспортного компонента, затем нажмите в любом месте текущей сборочной диаграммы.

    Рис. 16. Кнопка Export
    Кнопка Export

  3. Экспортный компонент по умолчанию имеет имя Export1. Щелкните правой кнопкой мыши по этому экспортному компоненту и в появившемся меню выберите пункт Rename. В качестве нового имени введите HTTPExport.
  4. Щелкните правой кнопкой мыши по HTTPExport, затем выберите пункт Add Interface. Откроется окно Add Interfaces.
  5. Выберите AddCustomer и нажмите на кнопку OK.
  6. Щелкните правой кнопкой по HTTPExport и затем выберите пункты Generate Binding > Web Services Binding.
  7. Нажмите на Yes в окне Binding File Generation.
  8. Выберите soap/http и нажмите на кнопку OK в окне Select Transport.
  9. В палитре редактора Assembly Diagram editor дважды нажмите на значок import для добавления импортного компонента, затем нажмите в любом месте данной сборочной диаграммы.

    Рис. 17. Кнопка Import
    Кнопка Import

  10. Импортный компонент по умолчанию имеет имя Import1. Щелкните правой кнопкой мыши по этому импортному компоненту и в появившемся меню выберите пункт Rename. В качестве нового имени введите JMSImport.
  11. Свяжите компонент HTTPExport с компонентом JMSImport. В окне Add Wire нажмите на кнопкуOK. Ваша диаграмма должна иметь следующий вид:

    Рис. 18. Поток сообщений
    Поток сообщений

  12. Правой кнопкой нажмите на JMSImport и выберите пункты Generate Binding > JMS Binding.
  13. В появившемся окне выберите параметр Text в поле Select how data is serialized between Business Object and JMS message.

    Рис. 19. Окно JMS Import Binding attribute selection
    Окно JMS Import Binding attribute selection

  14. Нажмите на кнопку OK.
  15. Для сохранения этой диаграммы сборки нажмите Ctrl-S.

Конфигурирование шины

Сконфигурируйте тестовый сервер WebSphere Enterprise Service Bus для созданного вами потока сообщений:

  1. В представлении Servers запустите сервер WebSphere Enterprise Service Bus, для чего щелкните правой кнопкой по WebSphere ESB server v6.0 и в появившемся меню выберите start. Дождитесь запуска сервера.
  2. После того как сервер запустится, снова щелкните правой кнопкой мыши по WebSphere ESB server v6.0 и выберите пункт Run the administrative console для запуска консоли администратора.
  3. На странице приветствия консоли администратора введите admin в поле User ID и нажмите на Log in. В качестве значения User ID вы можете ввести любое значение.
  4. На следующей странице в навигационной панели нажмите Service integration > Buses.
  5. В разделе Bus нажмите на SCA.APPLICATION.esbCell.Bus.

    Рис. 20. Раздел Bus
    Раздел Bus

  6. В разделе Destination resources нажмите Destinations:

    Рис. 21. Раздел Destination resources
    Раздел Destination resources

  7. Для создания нового пункта назначения нажмите New.
  8. На странице Create new destination выберите Queue, затем нажмите Next.
  9. Введите JMSImportOut в поле идентификатора. Нажмите на кнопку Next.
  10. На странице Create new queue нажмите Next.
  11. Страница Confirm queue creation сообщит вам о том, что будет создана новая очередь "JMSImportOut" и что для данной очереди на шине будет создана точка очереди. Для подтверждения создания очереди нажмите Finish.
  12. Проконтролируйте появление этой новой очереди JMSImportOut в следующем списке пунктов назначения.

    Рис. 22. Список пунктов назначения
    Список пунктов назначения

  13. Чтобы применить указанные изменения, нажмите save, а затем снова нажмите save на следующей странице.
  14. В навигационной панели последовательно нажмите Resources > JMS Providers > Default messaging.
  15. Для создания соединений с ассоциированным JMS-провайдером JMS-очередей с целью организации прямого обмена сообщениями используется генератор JMS queue connection factory. В разделе Connection Factories выберите JMS queue connection factory.
  16. В разделе Default message provider нажмите New.
  17. Введите myBindingQCF в поле Name
  18. Введите jms/myBindingQCF в поле JNDI name
  19. Выберите SCA.APPLICATION.esbCell.Bus в поле Bus Name. Теперь ваша страница должна иметь следующий вид:

    Рис. 23. Атрибуты Queue connection factory
    Атрибуты Queue connection factory

  20. Нажмите на кнопку OK в нижней части страницы.
  21. Будет создан объект queue connection factory, после чего на странице Default messaging provider вы должны увидеть следующую строку:

    Рис. 24. Страница Default message provider
    Страница Default message provider

  22. Чтобы применить сделанные изменения, нажмите save на данной странице, а затем снова нажмите save на следующей странице.
  23. В навигационной панели последовательно выберите Resources > JMS Providers > Default messaging.
  24. В качестве пункта назначения для прямого обмена сообщениями используется JMS-очередь. В разделе Destinations нажмите на JMS queue.
  25. На странице Default messaging provider нажмите New.
  26. Введите JMSImportOut в поле Name.
  27. Введите jms/JMSImportOut в поле JNDI name.
  28. Выберите SCA.APPLICATION.esbCell.Bus в поле Bus Name. Это необходимо сделать, чтобы активировать ниспадающий список в поле Queue Name.
  29. Выберите JMSImportOut в поле Queue Name. Теперь ваша страница должна иметь следующий вид:

    Рис. 25. Атрибуты JMS Queue
    Атрибуты JMS Queue

  30. Нажмите на кнопку OK в нижней части страницы.
  31. Будет создана очередь JMS, и на странице Default messaging provider вы должны увидеть следующую строку.

    Рис. 26. Очередь JMS
    Очередь JMS

  32. Чтобы применить указанные изменения, нажмите save на данной странице, а затем снова нажмите save на следующей странице.
  33. Нажмите Logout для выхода из консоли администратора.
  34. Конфигурирование модуля-посредника для работы с шиной
  35. Сконфигурируйте модуль-посредник (mediation module) для работы с шиной
    1. В редакторе Assembly diagram editor выберите JMSImport.
    2. В представлении Properties выберите Binding.
    3. Введите jms/myBindingQCF в поле JNDI Lookup Name.

      Рис. 27. Закладка Binding
      Закладка Binding

    4. Выберите закладку JMS Destinations и раскройте пункт Send Destination Properties.
    5. Введите jms/JMSImportOut в поле JNDI Lookup Name.

      Рис. 28. Закладка JMS Destination
      Закладка JMS Destination

    6. Для сохранения модуля нажмите Ctrl-S.

Тестирование с использованием клиента Integration Test Client

Для тестирования созданного потока сообщений мы используем клиент Integration Test Client, который входит в состав инструмента WebSphere Integration Developer:

  1. В представлении Servers запустите сервер WebSphere ESB server v6.0, если он еще не запущен.
  2. Правой кнопкой нажмите на WebSphere ESB server v6.0 и выберите пункт Add and remove projects.
  3. В окне Add and Remove Project выберите CustomerModuleApp, затем нажмите на Add для перемещения CustomerModuleApp в столбец сконфигурированных проектов. Нажмите на кнопку Finish. Дождитесь завершения операции.
  4. Нажмите правой кнопкой на любом свободном месте текущей сборочной диаграммы и в появившемся меню выберите пункт Test Module.
  5. В таблице Initial request parameters введите John Smith в строке name и 8200 Warden в строке address.

    Рис. 29. Параметры запроса
    Параметры запроса

  6. Для инициирования запроса нажмите Continue.
  7. В окне Deployment Location выберите WebSphere ESB server v6.0 (см. рисунок ниже).

    Рис. 30. Окно Deployment Location
    Окно Deployment Location

  8. Нажмите на кнопку Finish и дождитесь завершения операции. После завершения операции появится следующая информация.

    Рис. 31. Состояние процесса исполнения
    Состояние процесса исполнения

  9. Посмотрите на сообщение в очереди. В представлении Servers нажмите правой кнопкой мыши наWebSphere ESB server v6.0 и в появившемся меню выберите Run administrative console.
  10. На странице приветствия консоли администратора введите admin в поле User ID и нажмите Log in. В качестве значения User ID вы можете ввести любое значение.
  11. Последовательно выберите Service integration > Buses > SCA.APPLICATION.esbCell.Bus > Destinations > JMSImportOut > Queue points > JMSImportOut@esbNode.server1-SCA.APPLICATION.esbCell.Bus.
  12. Нажмите Runtime, после чего появится показанная ниже страница. Переменная Current message depth показывает число сообщений в данной очереди. Это число увеличивается на единицу при каждой отсылке очередного запроса.

    Рис. 32. Параметр Current message depth
    Параметр Current message depth

  13. Для просмотра сообщений в очереди нажмите Messages. Появится список сообщений. Сообщение с максимальным значением параметра Identifier является самым новым сообщением.

    Рис. 33. Идентификатор сообщения
    Идентификатор сообщения

  14. Нажмите на ссылку в столбце Identifier, затем нажмите на Message body для просмотра сообщений в очереди. В красной рамке показаны только что отосланные данные.

    Рис. 34. Сообщения в очереди
    Сообщения в очереди

  15. Нажмите logout.

Создание посредника для Web-сервисов (Web Services Proxy)

Для создания клиента Web-сервисов, обеспечивающего доступ к созданному вами потоку сообщений, выполните следующие действия.

 

Для просмотра демонстрации по указанным операциям нажмите на ссылку.

Показать демонстрациюПоказать демонстрацию

  1. В представлении Servers запустите сервер WebSphere ESB server v6.0, если он еще не запущен.
  2. Убедитесь в том, что CustomerModuleApp уже добавлен к серверу посредством операции Add and remove projects.
  3. Нажмите File > New > Other....
  4. В окне New поставьте флажок Show all Wizard.
  5. Раскройте папку Web Service, выберите пункт Web Service Client и нажмите Next. В появившемся окне подтверждения нажмите OK.

    Рис. 35. Новое окно
    Новое окно

  6. Убедитесь в том, что в следующем окне присутствует флажок Overwrite files without warning. Нажмите на кнопку Next.
  7. Нажмите Browse... и в проекте CustomerModuleWeb найдите файл HTTPExport_AddCustomerHttp_Service.wsdl. Нажмите на кнопку OK.

    Рис. 36. Браузер ресурсов
    Браузер ресурсов

  8. Нажмите на кнопку Next. В следующем окне снова нажмите на кнопку Next.
  9. На странице Web Service Proxy нажмите Finish.
  10. Посредник Web Service Proxy создан. Перейдите на перспективу Java.
  11. В представлении Package Explorer последовательно раскройте пункты CustomerModuleWeb > JavaSource > CustomerModule. Файл AddCustomerProxy и сопутствующие файлы - это и есть созданный вами посредник Web Service Proxy.

    Рис. 37. Созданный посредник Web Service Proxy
    Созданный посредник Web Service Proxy

Создание пробной JSP-страницы и доступ к ней с помощью браузера

Выполните следующие действия для создания пробной JSP-страницы, которая будет обращаться к созданному на предыдущем этапе посреднику Web Service Proxy.

  1. Выберите AddCustomerProxy.java.
  2. Нажмите правой кнопкой, затем последовательно выберите пункты WebServices > Generate Sample JSPs.
  3. На странице Web Service Client уберите флажки со всех методов, за исключением метода all methods except addCustomer (см. рисунок ниже). Нажмите на кнопку Finish. Пробная JSP-страница запущена.

    Рис. 38. Окно Web Service Client
    Окно Web Service Client

  4. В панели Methods выберите пункт addCustomer. Введите London в поле address и A. Smith в поле name. Нажмите на кнопку Invoke.

    Рис. 39. Пробная страница
    Пробная страница

  5. Проверьте сообщение в очереди, для чего выполните шаги 9 - 15, описанные в разделе Тестирование с использованием клиента Integration Test Client..

Экспорт модуля mediation module для развертывания в среде WebSphere Enterprise Service Bus

К данному моменту у вас имеется готовый к развертыванию поток сообщений, исполняющийся на тестовом сервере. Выполните следующие действия, чтобы экспортировать этот поток сообщений в виде EAR-файла, который может быть развернут на WebSphere Enterprise Service Bus как обычное J2EE-приложение.

  1. В представлении Business Integration правой кнопкой нажмите на CustomerModule и выберите Export....
  2. В окне Export выберите EAR file. Нажмите на кнопку Next.
  3. В поле EAR project выберите CustomerModuleApp.
  4. Введите местоположение в поле Destination. Нажмите на кнопку Finish.
  5. EAR-файл экспортирован и готов к развертыванию.

Заключение

Поздравляем! Вы закончили изучение пятого пособия в серии Hello World! Вы ознакомились с базовыми концепциями ESB и с построением потока сообщений для преобразования протоколов с помощью архитектуры SCA, приобрели опыт использования клиента Integration Test Client, входящего в состав WebSphere Integration Developer, и создали посредника Web-сервисов и пробную JSP-страницу.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=6110