 | Уровень сложности: простой Рэйчел Рейниц, старший специалист-консультант по информационным технологиям, IBM Андре Тост, старший сотрудник технической службы, IBM
23.02.2005 Это вторая статья из серии, в которой рассматривается использование нового механизма обмена сообщениями в IBM® WebSphere® Application Server V6 для создания Enterprise Service Bus (корпоративная сервисная шина), ключевой части инфраструктуры SOA. В ней описывается пример построения ESB с WebSphere V6 Messaging Resources и объясняются шаги, необходимые для установки экземпляра шины.
Введение
В первой статье мы познакомились с основными концепциями WebSphere V6 Messaging Resources, которые могут использоваться для построения Enterprise Service Bus (ESB). Во второй части мы представляем бизнес-сценарий с требованиями, которые подводят нас к построению ESB, и описываем шаги для создания экземпляра шины и настройку ее для работы с Web-службами. Мы будем использовать этот бизнес-сценарий в качестве реального контекста на протяжении всей серии статей.
Бизнес-задача
Наша вымышленная компания, которую мы назовем Posts-R-US, предоставляет службы доставки посылок, включающие:
- Доставка потребителю (аналогичная почте);
- Доставка по контракту для организаций;
- OEM-доставка (например, интернет-магазин для розничных продавцов);
- Гарантированная доставка с возможным уведомлением отправителя.
Posts-R-US быстро расширяется. Компания недавно приобрела европейскую компанию EurPosts и нуждается в интегрировании систем EurPosts с системами Posts-R-US. Ее магазины, интернет-магазины, склады, отделы доставки, система авиапочты и OEM должны обслуживать множество клиентов различного типа.
Для сокращения расходов, поддержания конкурентоспособности и повышения качества обслуживания клиентов Posts-R-US нуждается в улучшении интеграции своих несовместимых систем. В настоящее время при разработке нового приложения или внедрении новой системы необходима тщательная поэлементная интеграция со всеми многочисленными технологиями. Поэтому было принято решение разработать ESB как основной компонент улучшения их интеграции. Posts-R-US также собирается улучшить автоматизацию и гибкость своих бизнес-процессов благодаря использованию Business Process Execution Language (BPEL) и соответствующих инструментальных средств (см. раздел Ресурсы).
На рисунке 1 показаны некоторые из систем Posts-R-US, которые нужно интегрировать.
Рисунок 1. Системы, требующие интеграции
Техническая конфигурация
Основные клиенты и системы Posts-R-US используют множество технологий, включая WebSphere MQ, Web-службы, компоненты EJB™, клиенты .NET®, публикация/подписка, традиционные системы CICS®, базы данных, SAP® и другие приложения сторонних поставщиков. Системы, показанные на рисунке 1, реализованы с использованием разных технологий, поэтому использование корпоративной служебной шины (enterprise service bus) упростит интеграцию этих разных технологий.
На рисунке 2 показан пример используемых для ведения бизнеса в Posts-R-US технологий, нуждающихся в интеграции, а также как ESB упрощает необходимые подключения.
Рисунок 2. Необходимые подключения упрощаются с использованием ESB
Примеры в последующих статьях данной серии будут основываться на показанных на рисунке 2 бизнес-системах и технологиях. В этих примерах будет продемонстрировано использование WebSphere Application Server V6 для построения ESB, отвечающей интеграционным требованиям для нашей компании. Мы не будем рассматривать детально архитектурные аспекты построения ESB и то, как она обеспечивает хорошую интеграцию; вместо этого мы сконцентрируемся на анализе реализации.
В следующем разделе рассмотрены первоначальные действия при создании ESB с возможностью работы с Web-службами.
Первоначальная установка
В качестве первого шага мы создадим системную интегрированную шину (SIB или SIBus) и свяжем ее с экземпляром сервера приложений WebSphere. Затем мы разрешим шине использовать в качестве протокола Web-службы.
 | |
Допущения
Инструкции в данном разделе предполагают наличие установленного по умолчанию автономного сервера приложений WebSphere. Ваш профиль по умолчанию будет называться default при использовании WebSphere Application Server Base и AppSrv01 при использовании WebSphere Application Server Network Deployment (ND). Предполагается также, что сервер называется server1, а узел – node1.
Для установки командного окна для профиля:
- Перейдите в каталог <WAS_HOME>/profiles/<profilename>/bin;
- Установите командное окно для этого профиля, выполнив пакетный файл setupCmdLine.bat.
|
|
Создание шины
Для создания экземпляра шины:
- Откройте консоль администратора сервера приложений WebSphere (сервер должен работать);
- В левой навигационной панели выберите Service Integration => Buses;
- Нажмите кнопку Buses, затем в следующем диалоговом окне нажмите кнопку New. При этом начнет выполняться мастер создания шины;
- Назовите новую шину
TheBus и нажмите OK;
- Сохраните ваши изменения и найдите новую шину в cписке (рисунок 3).
Рисунок 3. Новая шина в консоли администратора сервера приложений WebSphere
Добавление участника шины
Необходимо назначить шину для работы с одним или несколькими серверами приложений и серверными кластерами. В большинстве случаев вы будете создавать и назначать шине одного участника шины. При добавлении участника шины создается механизм обмена сообщениями в экземпляре WebSphere, который имеет свое собственное хранилище данных для сообщений. В нашем случае мы будем иметь один экземпляр шины только с одним участником, который является одиночным экземпляром сервера приложений WebSphere:
- Выберите TheBus;
- В следующем диалоговом окне выберите Bus Members, затем нажмите Add;
- Удостоверьтесь, что отмечен переключатель Server;
- В области выбора сервера выберите node1:server1, который вероятнее всего будет выбран по умолчанию;
- Нажмите кнопку Next и Finish. Сохраните свои изменения.
Теперь шина WebSphere Messaging Resources готова к использованию.
Настройка использования Web-служб
WebSphere Messaging Resources требует некоторой настройки для разрешения шине возможности принимать запросы Web-служб, преобразовывать сообщения в SOAP-сообщения в посредниках и передавать запросы Web-служб. Функциональность Web-служб Service Integration Bus называется SIBWS в WebSphere Application Server V6 Information Center (см. раздел Ресурсы).
Как мы рассматривали в первой части, WebSphere Messaging Resources преобразовывает все входящие сообщения в Service Data Objects (SDO). Для хранения WSDL-определений используется SDO-репозиторий, а SIBus использует эти определения как часть поддержки Web-служб. Следовательно, прежде всего вам нужно создать этот SDO-репозиторий.
Кроме этого, для того чтобы шина принимала запросы Web-служб от клиентов, в ней нужно настроить оконечных прослушивателей (endpoint listeners); исходя из названия, оконечные прослушиватели "слушают" определенные порты на присутствие входящих сообщений Web-служб. Оконечные прослушиватели существуют для протоколов "SOAP over HTTP" и для "SOAP over JMS". Для разрешения передачи по шине запросов Web-служб шина должна быть сконфигурирована с адаптером ресурсов. В следующей статье мы рассмотрим, как настроить шину на прием входящих запросов Web-служб, называемых входящими службами, и на передачу запросов Web-служб, называемых исходящими службами.
Установка SDO-репозитория
SDO-репозиторий может использовать базу данных IBM Cloudscape®, которая автоматически устанавливается как часть установки вашего сервера приложений WebSphere. Вы можете также настроить его на использование другой базы данных по вашему выбору. Для использования Cloudscape укажите параметр -createDb в команде setup.
Для установки SDO-репозитория:
- В командном окне перейдите в каталог <WAS_HOME>/bin и выполните команду:
wsadmin -f installSdoRepository.jacl -createDb node1 server1
- В консоли администратора WebSphere в Enterprise Applications вы должны увидеть, что новое приложение, называемое SDO Repository, успешно начало работу.
Любая следующая конфигурация Web-служб будет теперь хранить соответствующие определения в SDO-репозитории без необходимости настройки. Обычно вы никогда не будете иметь дело с репозиторием напрямую.
Установка адаптера ресурсов Web-служб SIbus
Для того чтобы шина могла запрашивать Web-службу, посылая сообщения Web-служб провайдерам, она должна быть сопряжена с адаптером ресурсов. С сервером приложений WebSphere поставляется сценарий в файле sibwsInstall.jacl для установки приложения SIBWS (описанного в следующем разделе) и установки адаптера ресурсов:
- В командном окне перейдите в каталог <WAS_HOME>/bin и выполните команду:
wsadmin -f ../util/sibwsInstall.jacl INSTALL_RA -installRoot "C:/Program Files/IBM/WebSphere/AppServer" -nodeName node1
- Вы должны увидеть следующее сообщение:
The resource adapter has started successfully : SIB_RA.
Установка и настройка оконечных прослушивателей
Оконечные прослушиватели должны быть установлены и настроены для каждого протокола, который вы хотите использовать для приема шиной запросов Web-служб. Для их работы необходимо также установить приложение SIBWS. Для установки оконечных прослушивателей используется тот же сценарий, который использовался при установке адаптера ресурсов (sibwsInstall.jacl), но с другими параметрами. После установки необходима дополнительная настройка в консоли администратора каждого прослушивателя. Создать шину и установить адаптер ресурсов нужно до установки приложения SIBWS и оконечных прослушивателей.
Для каждого протокола предоставляются два оконечных прослушивателя. Вы можете использовать один из них для запросов, приходящих в шину от внешних клиентов, а второй – для запросов от внутренних клиентов. Можно настроить параметры защиты по разному для каждого прослушивателя. Если разрешена глобальная защита, ни один пользователь не сможет обратиться к какой-либо входящей службе. Инструкции по настройке параметров защиты для разрешения доступа приведен в WebSphere Application Server V6 Information Center.
Для установки приложения SIBWS:
- В командном окне перейдите в каталог <WAS_HOME>/bin и выполните команду:
wsadmin -f ../util/sibwsInstall.jacl INSTALL -installRoot "C:/Program Files/IBM/WebSphere/AppServer" -serverName server1 -nodeName node1
- В консоли администратора сервера приложений WebSphere в Enterprise Applications вы должны увидеть, что новое приложение под названием sibws.node1.server1 успешно начало работу. Для успешного запуска этого приложения предварительно должен быть установлен адаптер ресурсов. Название этого приложения в вашей среде может быть другим в зависимости от имен сервера и узла, выбранных вами при установке.
- Для каждого поддерживаемого протокола Web-служб (например, HTTP или JMS), установите два приложения оконечных прослушивателей при помощи сценария sibwsInstall.jacl. Например, для установки приложений прослушивателей HTTP выполните команду:
wsadmin -f ../util/ sibwsInstall.jacl INSTALL_HTTP -installRoot "C:/Program Files/IBM/WebSphere/AppServer" -serverName server1 -nodeName node1
- В консоли администратора в Enterprise Applications вы должны увидеть два новых приложения с названиями sibwshttp1.node1.server1 и sibwshttp2.node1.server1. Оба должны быть успешно запущены.
Ваше окно Enterprise Application в консоли администратора сервера приложений WebSphere должно выглядеть примерно так, как показано на рисунке 4.
Рисунок 4. Enterprise Applications в консоли администратора
- Теперь, после установки кода прослушивателя, мы создадим конкретный оконечный прослушиватель. Перейдите в Servers => Application Servers => server 1 => Endpoint Listeners и нажмите New.
- Введите перечисленные ниже (и на рисунке 5) значения полей; эти значения очень специфичны – имена и значения должны соответствовать указанным в разделе "Endpoint listener configuration details" (детали конфигурации оконечного прослушивателя) WebSphere Application Server V6 Information Center:
- Name:
SOAPHTTPChannel1 (this specific name is required)
- URLRoot:
http://localhost:9080/wsgwsoaphttp1/
- WSDL Serving HTTP URL root:
http://localhost:9080/wsgwsoaphttp1/
- Нажмите OK и сохраните ваши изменения.
Рисунок 5. Конфигурация оконечного прослушивателя
- Настройте новый оконечный прослушиватель на подключение к нашей шине, SOAPHTTPChannel1, затем Connection Properties.
- Нажмите New и выберите вашу шину TheBus.
- Нажмите OK и сохраните изменения.
- Перейдите в TheBus => Destinations. Там должен появиться новый адресат под названием node1.server1. SOAPHTTPChannel1. Этому новому адресату будут направляться все сообщения, проходящие через определенный оконечный прослушиватель. Другими словами, все входящие SOAP/HTTP-запросы Web-служб будут теперь направляться адресату SOAPHTTPChannel1.
 |
Заключение
В этой статье мы рассмотрели бизнес-сценарий для построения Enterprise Service Bus с WebSphere Application Server V6 Messaging Resources. Мы создали шину и настроили ее на работу с Web-службами. В третьей части мы начнем разработку нашей корпоративной шины, и будем выполнять требования нашего сценария, разрабатывая клиентское приложение для передачи подтверждающего JMS-сообщения по шине и, затем, в управляемый сообщениями компонент.
Ресурсы
Об авторах  | 
|  |
Рэйчел Рейниц (Rachel Reinitz) является старшим специалистом-консультантом по информационным технологиям и программным службам IBM для WebSphere, специализируюясь на Web-службах. Рэйчел консультирует пользователей и ISV по вопросам использования сервис-ориентированной архитектуры и Web-служб для решения их технических и бизнес-задач. Она разработала курс обучения расширенным Web-службам IBM и часто выступает на конференциях. Рэйчел также опытный инструктор по экстремальному программированию (eXtreme Programming – XP) и использует принципы XP четыре года. Она живет в Bay Area, Калифорния, любит туризм, общение и международные путешествия. |
 | 
|  |
Андре Тост (Andre Tost) работает старшим сотрудником технической службы в подразделении WebSphere Business Development, где помогает стратегическим партнерам IBM интегрировать их приложения с WebSphere. Уделяет особое внимание технологии Web-служб семейства продуктов WebSphere. До этого он десять лет занимался различными вопросами разработки и архитектуры программного обеспечения IBM, в частности программой WebSphere Business Components. Приехав из Германии, он поселился в в Рочестере, Миннесота. В свободное время любит заниматься своей семьей и, когда есть возможность, играет и смотрит футбол. |
Выскажите мнение об этой странице
|  |