Применение продуктов WebSphere DataPower и WebSphere MQ File Transfer Edition для управляемой передачи файлов

В версии V4.x микропрограммного обеспечения WebSphere® DataPower (firmware V4.x) реализован специализированный обработчик протокола WebSphere MQ File Transfer Edition, что позволяет улучшить интеграцию между этими продуктами. В версии микропрограммного обеспечения V5.x реализована поддержка расширенной памяти, что снимает ряд ограничений для больших файлов. В предлагаемой статье описывается интеграция продуктов DataPower и WebSphere MQ FTE.

Стефано Дзампьери, архитектор решений, IBM

Photo of Stefano ZampieriСтефано Дзампьери (Stefano Zampieri)— архитектор решений и специалист по продуктам WebSphere. Он более 12 лет занимается основополагающими продуктами для поддержки J2EE и WebSphere, такими как WebSphere Application Server и WebSphere MQ. Он работал в различных подразделениях IBM в разных должностях – от ИТ-специалиста до ИТ-архитектора. В настоящее время С. Дзампьери работает в подразделении IBM Software Services for WebSphere. В последние 4 года он специализировался преимущественно в таких направлениях, как WebSphere DataPower, B2B, SOA и Enterprise Application Integration.



Фил Бейрэм, старший ИТ-специалист, IBM

Photo of Phil BarehamФил Бейрэм (Phil Bareham)— старший ИТ-специалист. Он занимается продуктом WebSphere MQ FTE с момента его первого выпуска. Ф. Бейрэм работает с ИТ-технологиями 27 лет, в том числе 17 лет - в IBM. За это время Ф. Бейрэм выполнял множество разнообразных обязанностей — от написания кода CICS-приложений до конфигурирования продуктов WebSphere Application Server и WebSphere Process Server. В последние 10 лет Ф. Бейрэм специализируется преимущественно в таких направлениях, как WebSphere MQ, WebSphere Message Broker, WebSphere Business Events, а также занимается применением продукта WebSphere Process Server на различных платформах, включая Windows, Unix и z/OS.



11.06.2013

Введение

В данной статье описывается интеграция продуктов WebSphere DataPower и WebSphere MQ File Transfer Edition (FTE). На момент написания статьи значительная часть имеющейся документации устарела, кроме того, эта документация ориентирована преимущественно на использование управляемой передачи файлов в контексте B2B. В микропрограммном обеспечении DataPower версии V4.x (микропрограммное обеспечение V4.x) реализован специализированный обработчик протокола WebSphere MQ FTE, что позволяет улучшить интеграцию между этими двумя продуктами. В версии микропрограммного обеспечения V5.x реализована поддержка расширенной памяти, что снимает ряд ограничений для больших файлов.

WebSphere MQ FTE и DataPower — это взаимодополняющие продукты, поскольку первый из них осуществляет централизованное управление передачей файлов в рамках защищенного корпоративного домена, а второй действует как защищенный шлюз и расширяет возможности соединения с другими защищенными доменами. На рис. 1 показано типовое сетевое развертывание DataPower, при котором само устройство DataPower расположено в зоне DMZ и действует как шлюз между сетью WebSphere MQ и внешними партнерами.

Рисунок 1. Сетевое развертывание устройства DataPower
DataPower Network Deployment picture

Сравнение сервисов B2BGW (B2B Gateway Service) и MPGW (Multi-Protocol Gateway) в контексте управляемой передачи файлов

До появления версии микропрограммного обеспечения 4.0.0 интеграция между DataPower и WebSphere MQ FTE базировалась преимущественно на совместно используемых файловых системах. Такая интеграция была достаточной для многих контекстов, однако она не использовала такие продвинутые функции WebSphere MQ, как транзакционность (transactionality) и гарантированная доставка (assured delivery). Кроме того, инструмент B2B Transaction Viewer не был полностью интегрирован с продуктом WebSphere MQ FTE.

В настоящее время для транспортировки B2B-документов обычно используются протоколы FTP и SFTP. По этой причине самым распространенным сценарием применения является интеграция продуктов WebSphere MQ FTE и DataPower посредством B2B-шлюза. Более подробную соответствующую информацию можно получить в документе WebSphere DataPower Release 4.0.1 B2B MQFTE.

Сервис B2BGW (B2B Gateway Service), доступный только в модели XB*, поддерживает такие широко распространенные протоколы обмена B2B-сообщениями, как EDIINT AS1, AS2, AS3, а также протокол ebMS v2.0. Это позволяет надлежащим образом управлять передачами файлов в рамках B2B-транзакции, регистрировать операции в персистентном хранилище и интегрировать метаданные FTE с инструментом B2B Transaction Viewer.

Кроме того, B2BGW-сервис позволяет организовать маршрутизацию файлов посредством объектов типа Business Partner (бизнес-партнер). Эта абстрактная конструкция, позволяющая сохранять информации об объекте типа "бизнес-партнер" в профиле торгового партнера, используется для принудительного применения партнерских бизнес-соглашений между двумя сторонами, а также для логического связывания идентификационных данных партнера с одним или несколькими целевыми URL-адресами.

Необходимо отметить, что в этой конфигурации потоковая передача невозможна, поэтому файлы всегда буферизируются в памяти. Даже в тех случаях, когда большой файл сегментируется на множество сообщений WebSphere MQ, описываемый B2BGW-сервис сначала восстанавливает весь файл в памяти и только потом обрабатывает его.

Учитывая характеристики B2BGW, на стадии проектирования необходимо рассмотреть несколько критически важных аспектов, а именно:

  • Протоколы
  • Интеграция с B2BViewer
  • Размеры файлов
  • Аудит
  • Интенсивность транзакций
  • Транзакционность и обработка ошибок
  • Планирование ресурсов, B2B-метаданные, периоды сохранения полезной нагрузки

Протоколы критически важны, поскольку если внешние партнеры используют специфические B2B-протоколы, например, протоколы AS/1/2/3, то сервису B2BGW нет никакой альтернативы. Это справедливо и в тех случаях, когда ключевым требованием решения является интеграция с B2BViewer либо когда заказчик желает использовать уникальные возможности сервиса B2BGW в области управления профилями или просмотра.

Следующий ключевой аспект — размер файла. Обычно для очень больших файлов лучше подходит MPGW-сервис (Multi-Protocol Gateway), поскольку он поддерживает потоковую передачу и по умолчанию не сохраняет полезную нагрузку сообщения. Однако MPGW-сервис не способен обеспечить представление, которое демонстрировало бы состояние транзакции, а также не располагает возможностями для управления профилями.

Этот момент приводит нас к следующему аспекту, а именно, к аудиту. Как было указано выше, B2BGW-сервисы предназначены для обслуживания критически важных B2B-транзакций. По умолчанию они поддерживают обширный набор функций, включая аудит транзакций, а также предоставляют метаинформацию инструменту B2B Transaction Viewer.

MPGW-сервисы — это более простые объекты без встроенных возможностей аудита. Для любой обработки, в том числе для журналирования и для аудита, требуется явное конфигурирование и, в конечном итоге, написание определенного объема XSLT-кода (обычно минимального).

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

И, наконец, еще один важный аспект, подлежащий рассмотрению — транзакционност ь и обработка ошибок, которая теперь может опираться на традиционные функции интеграции DataPower-MQ, такие как единица работы (unit-of-work) и откат (back-out). Конкретные детали транзакционности и обработки ошибок зависят от направления передачи (т.е., от того, является ли WebSphere MQ источником или местом назначения передаваемого файла) и будут подробно рассмотрены в одном из последующих разделов данной статьи.

В таблице 1 обобщены основные аспекты, которые следует учитывать при выборе между сервисами B2B Gateway и Multi-Protocol Gateway, а также при интеграции DataPower с WebSphere MQ FTE.

Таблица 1. Выбор между B2BGW и MPGW
B2BGW (только в режиме буферизации)MPGW (режим буферизации)MPGW (потоковый режим)
Поддержка B2B-протоколов (EDIINT AS1, AS2, AS3), а также протокола ebMS v2.0.Платформы, поддерживающие протокол WebSphere MQ FTE, однако B2BGW-сервис недоступен (модели XI* и XG*).Большая сетевая задержка
Желательно использование инструмента B2B Transaction ViewerВысокая интенсивность транзакцийОпция Extended memory support (Поддержка расширенной памяти) недоступна, размеры файлов превышают 100 МБ.
Встроенные средства аудитИли опция Extended memory support доступна, но размеры файлов превышают 3 ГБ
Ограничения
BB2GW-сервис может оказаться медленнее MPGW-сервиса при больших транзакционных нагрузках (множество небольших сообщений)Отсутствует B2B Transaction ViewerОтсутствует B2B Transaction Viewer
Потоковая передача не поддерживаетсяПротоколы AS1/2/3 не поддерживаютсяПротоколы AS1/2/3 и ebMS не поддерживаются
Доступен только в модели XB*Аудит должен быть реализован в политике обработкиСложные политики обработки могут нарушить потоковую передачу; ограниченные возможности аудита
Реализация HA и DR сложнее для B2BGW, чем для MPGW

Транзакционность и персистентность сообщений

Для перемещения файлов в масштабе предприятия продукт WebSphere MQ FTE использует инфраструктуру WebSphere MQ. По соображениям производительности этот продукт был спроектирован в расчете на надежное перемещение файлов с использованием неперсистентных сообщений для передачи данных файла. Обмен персистентными сообщениями используется для начального квитирования связи между агентами WebSphere MQ FTE, а также для передачи сообщений при возобновлении соединения между агентами. При перемещении файла в очередь с помощью команды fteCreateTransfer сообщения по умолчанию являются персистентными. С точки зрения WebSphere MQ FTE в этот момент передача завершается. Если бы сообщения не были персистентными и компонент Queue Manager отказал бы уже после завершения передачи FTE, но до запуска передачи DataPower, то передаваемый файл исчез бы из системы без каких-либо явных ошибок передачи.

Использование персистентных сообщений имеет важное следствие применительно к настройке Queue Manager, описанное в статье под названием Конфигурирование и настройка WebSphere MQ для повышения производительности в средах Windows и UNIX. В этой статье, в частности, утверждается, что персистентные сообщения требуют соответствующей настройки журналов Queue Manager. Этот момент очень важен, поскольку согласно нашему опыту недостаточное журнальное пространство у элемента Queue Manager является наиболее распространенной причиной ошибок.

Еще один довод в пользу настройки журналов Queue Manager состоит в том, что в контексте B2B сообщения обычно потребляются в рамках транзакции. Это означает, что итоговая фиксация совершается только тогда, когда система DataPower завершила передачу файла на целевую систему. В результате транзакции могут очень долго находиться в состоянии ожидания — в зависимости от общего размера файла и от величины сетевой задержки.

И, наконец, не забывайте про важность выбора надлежащего значения персистентности для каждой очереди, поскольку по умолчанию DataPower настраивает персистентность сообщения согласно соответствующему параметру очереди. Что обеспечить более тонкое управление, поведение DataPower по умолчанию можно переопределить, явно задав флаг персистентности в MQMD-заголовке (MQ Message Descriptor) политики обработки. Персистентность очереди по умолчанию не является критически важной для WebSphere MQ FTE, поскольку она призвана оптимизировать использование персистентных сообщений.

Примеры конфигурации

В данной статье рассматриваются нижеперечисленные типичные сценарии применения.

Используется следующая базовая конфигурация.

  • Устройство DataPower XB62 с сервисом B2B Gateway и с сервисом Multiprotocol Gateway
  • Образ VMware с установленным продуктом WMQFTE, который действует как внутренний партнер
  • Дополнительный образ VMware с FTP-сервером, а также с клиентом, который действует как внешний партнер

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

Эта конфигурация DataPower чрезвычайно проста; некоторые ее детали будут рассмотрены подробнее при рассмотрении сценариев применения.

Конфигурация WebSphere MQ FTE

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

  • Один элемент WebSphere MQ Queue Manager, сконфигурированный как WebSphere MQ FTE Coordination Queue Manager. Элемент Coordination Queue Manager использует очереди WebSphere MQ для обработки передач файлов и для публикации/подписки WebSphere MQ с целью сохранения информации, которая относится к агентам WebSphere MQ FTE, ассоциированным с этой конфигурацией. В качестве WebSphere MQ FTE Coordination Queue Manager должен использоваться продукт WebSphere MQ версии 7 или выше, обладающий необходимой функциональностью публикации/подписки.
  • Один или более элементов WebSphere MQ Queue Manager, действующих как WebSphere MQ FTE Command Queue Manager. Элемент Command Queue Manager используется для передачи запросов команд в WebSphere MQ FTE..
  • Один или более элементов WebSphere MQ Queue Manager, действующих как WebSphere MQ FTE Agent Queue Manager. Элементы типа Agent Queue Manager поддерживают очереди WebSphere MQ, необходимые для передачи файлов между агентами с помощью сообщений WebSphere MQ.
  • Один или несколько агентов WebSphere MQ FTE, осуществляющих передачу файлов. Каждый агент связан с одним элементом типа Agent Queue Manager. Один элемент типа Agent Queue Manager способен поддерживать множество агентов.

В нашей конфигурации WebSphere MQ FTE использовались версии WebSphere MQ V7.0.1.8 и WebSphere MQ FTE V7.0.4.1. Все компоненты WebSphere MQ и WebSphere MQ FTE исполнялись в среде Windows®. После выпуска версии WebSphere MQ V7.5 продукт WebSphere MQ FTE стал необязательным компонентом WebSphere MQ 7.5 под названием WebSphere Managed File Transfer.

Мы использовали простую конфигурацию WebSphere MQ FTE в среде Windows для тестирования описанных выше сценариев применения DataPower и WebSphere MQ FTE. В состав этой конфигурации входил одиночный элемент WebSphere MQ Queue Manager, который имел имя FTE_QM. Этот элемент выполнял описанные выше роли, а именно Coordination Queue Manager , Command Queue Manager и Agent Queue Manager . По умолчанию элемент FTE_QM создается с циклической записью в журналы (три первичных и два вторичных журнальных файла). Мы пришли к выводу о необходимости корректировки этой ситуации, когда начали передавать большие файлы. Для производственной конфигурации более характерно подключение агентов к нескольким разным элементам типа Agent Queue Manager .

В конфигурации FTE_QM мы обозначили две очереди WebSphere MQ как FTE_TO_B2BGW и как FTE_TO_MPGW соответственно. Эти очереди использовались в качестве целевой очереди для передач типа File-to-Queue, инициируемых между AGT1_FTE_FROM_FILE и AGT3_DP_FTE_QM. Сообщения, помещенные в эти очереди, затем считывались устройством DataPower с целью их передачи в конечный пункт назначения. У каждой очереди имелась очередь отката ( backout queue ): B2B_BACKOUT у очереди FTE_TO_B2B и MPGW_BACKOUT у очереди FTE_TO_MPGW соответственно.

Для передач от DataPower к FTE была создана дополнительная очередь с именем DP_TO_FTE. По умолчанию флаг персистентности для этой очереди получил значение "persistent" (персистентный).

Затем на той же Windows-машине мы создали три агента WMQ_FTE.

  • AGT1_FTE_FROM_FILE: Это агент источника для передач от WebSphere MQ FTE к DataPower. Этот агент используется для чтения из источника тех данных, которые подлежат передаче из файловой системы Windows.
  • AGT2_FTE_TO_QUEUE_FOR_DP: Это агент назначения для передач от WebSphere MQ FTE к DataPower. Файлы, переданные из AGT1_FTE_FROM_FILE, отсылаются этому агенту как передача типа File-to-Queue, поэтому файл поступает в очередь назначения в виде группы сообщений WebSphere MQ. Устройство DataPower осуществляет мониторинг этой очереди; после прибытия всех сообщений этой группы устройство DataPower выполняет передачу в конечный пункт назначения, заданный в DataPower. В нашем случае конечным пунктом назначения для передач от WebSphere MQ FTE к DataPower был FTP-сервер, исполнявшийся на отдельной Windows-машине (т.е. не на машине с продуктами WebSphere MQ и WebSphere MQ FTE). Для того чтобы разрешить передачи файлов типа File-to-Queue, свойству enableQueueInputOutput в файле свойств agent.properties агента AGT3_DP_FTE было присвоено значение "true".
  • AGT3_DP_TO_FTE: Это агент источника для передач от DataPower к WebSphere MQ FTE. Файл считывается устройством DataPower, после чего отсылается как одно из сообщений WebSphere MQ в очередь WebSphere MQ. Мониторинг этой очереди осуществляется агентом WebSphere MQ FTE Monitor. При поступлении сообщений в эту очередь агент запускает передачу WebSphere MQ FTE. В такой триггерной (triggered) передаче этот агент является агентом источника, а AGT1_FTE_FROM_FILE является агентом назначения.

Эти три агента WebSphere MQ FTE подключены к менеджеру FTE_QM A gent Queue Manager посредством механизма cross-memory — т.е. посредством связывания (binding), а не посредством соединения с клиентом WebSphere MQ. Все три агента были сконфигурированы для исполнения в качестве Windows-сервисов. На рис. 2 показана конфигурация WebSphere MQ FTE, в том числе агенты, менеджер очереди и сами очереди.

Рисунок 2. Конфигурация WebSphere MQ FTE
WebSphere MQ FTE configuration

Взаимодействие WebSphere MQ FTE с MPGW происходит аналогичным образом. Единственное различие состоит в том, что для исходящих передач используется очередь WebSphere MQ с именем "FTE_TO_MPGW".

Сценарий применения 1. Исходящая передача файла с использованием B2BGW

На данный момент B2BGW-маршрутизация хорошо определена и описана в документе под названием WebSphere DataPower Release 4.0.1 B2B MQFTE.

Первый шаг состоит в создании внутреннего и внешнего партнеров. В качестве внешнего партнера добавляется FTP-сервер как пункт назначения. В качестве внутреннего партнера добавляется WebSphere MQ FTE как пункт назначения.

Передачу файла по частям рекомендуется осуществлять посредством активации транзакционности по целевому URL-адресу WebSphere MQ FTE и переименования этого файла после его передачи в пункт назначения (FTP-сервер).

Аналогичным образом создается фронтальный обработчик WebSphere MQ FTE для приема файлов от внутреннего партнера и FTP-сервера FSH для приема файлов от внешнего партнера.

Последний шаг состоит в создании B2BGW-сервиса посредством добавления двух фронтальных обработчиков и двух бизнес-партнеров.

При передаче файлов WebSphere MQ FTE используются следующие заголовки.

  • DPMQFTESenderID: Бизнес-идентификатор (Business ID) внутреннего партнера
  • DPMQFTEReceiverID: Бизнес-идентификатор (Business ID) внешнего партнера
  • DPMQFTEContentType: Тип контента в полезной нагрузке сообщения

Пример показан в листинге 1.

Листинг 1.  Команда fteCreateTransfer, включающая DPMQFTE-заголовки
fteCreateTransfer -sa AGT1_FTE_FROM_FILE -da AGT2_FTE_TO_QUEUE_FOR_DP -dm FTE_QM
-dq FTE_TO_B2BGWGW@FTE_QM -dqp true -qmp true -md DPMQFTESenderId=InternalPartner,
DPMQFTEReceiverId=ExternalPartner,DPMQFTEContentType=application/binary -qs 1M
-t binary c:\temp\file03.bin

В команде fteCreateTransfer, показанной в листинге 1, параметры –sa и –da обозначают соответственно агент источника (AGT1_FTE_FROM_FILE) и агент назначения (AGT2_FTE_TO_QUEUE_FOR_DP) продукта WebSphere MQ FTE. Параметр -dm обозначает элемент Queue Manager (FTE_QM) назначения, а параметр -dq обозначает имя очереди назначения (FTE_TO_B2BGW), а также задает тип передачи (File to Queue). Значение true параметра -dqp указывает, что сообщения, помещаемые в очередь назначения, будут персистентными. Значение true параметра -qmp указывает, что первое сообщение, записанное в очередь назначения, будет содержать набор свойств сообщения.

Значения после параметра –md представляют собой пары "значение-имя", передаваемые в WebSphere MQ FTE. И, наконец, значение 1M параметра -qs дает указание WebSphere MQ FTE разделять передачу на несколько сообщений, образующих группу сообщений WebSphere MQ. Максимальный размер сообщения в этой группе составляет 1 МБ. Мы обнаружили, что если не использовать параметр –qs для больших файлов, то передача WebSphere MQ FTE завершится ошибкой с кодом 2030 (MQRC_MSG_TOO_BIG_FOR_Q). Чтобы предотвратить эту ошибку, мы скорректировали максимальные размеры сообщения для элемента FTE_QM Queue Manager и для очереди FTE_TO_B2BGW. По умолчанию этот параметр для MAXMSGL имеет значение 4 МБ. Рекомендации по изменению параметра MAXMSGL для WebSphere MQ и свойства maxInputOutputMessageLength для агента WebSphere MQ FTE приведены в документе Руководство по настройке свойств WebSphere MQ и WebSphere MQ File Transfer Edition, имеющих отношение к размеру сообщения.

Единицы работы (Unit-Of-Work, UOW) активируются в объекте DataPower Queue Manager (см. рис. 3). В случае ошибок повторные попытки передачи будут осуществляться вплоть до достижения заданного значения счетчика откатов (backout count), после чего передаваемый файл будет перемещен в очередь отката (backout queue). Следует помнить, что сначала файл собирается в памяти и только потом перемещается в очередь отката, поэтому размеры сообщения в очереди отката могут отличаться от размеров сообщений в исходной очереди (request queue).

Рисунок 3. Конфигурирование единиц работы (Unit of Work) DataPower
How to enable DataPower Unit of Work configuration

И, наконец, необходимо отметить, что настройки GMO в обработчике протокола WebSphere MQ FTE перезаписываются настройками в объекте DataPower Queue Manager Object. Если единица работы (UOW) активирована, то сообщения — независимо от их персистентности — потребляются под управлением точки синхронизации ( syncpoint ), и наоборот.

В качестве опции продукт WebSphere MQ FTE способен регистрировать подробности передачи в базе данных. Инструмент DataPower B2B Transaction Viewer способен извлекать и визуализировать эту информацию в рамках передачи файлов. Для этого необходимо сконфигурировать объект DataSource на панели расширенных настроек B2B Gateway.

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

Сценарий применения 2. Исходящая передача файла с использованием MPGW (потоковая передача)

По всей вероятности, это самая простая конфигурация. На стороне DataPower имеется сервис Multi-Protocol Gateway с динамическим бэкендом и фронтальный обработчик протокола WebSphere MQ FTE.

Данная конфигурация предназначена для потоковой передачи больших файлов, поэтому политика обработки, как правило, чрезвычайно проста (см. рис. 4).

Рисунок 4. Задание правил DataPower
MPGW DataPower rule definition

Минимально необходимая обработка состоит в установлении пункта назначения. Агент WebSphere MQ FTE способен передавать метаданные в DataPower с помощью RFH-заголовков, которые устройство DataPower сможет использовать для установления пункта назначения.

В следующем примере (листинг 2) использует специальный заголовок с именем DPMQFTEDestination. MQ FTE передает файл в очередь с помощью следующей команды (см. листинг 2).

Листинг 2. Команда fteCreateTransfer, использующая заголовок DPMQFTEDestination
fteCreateTransfer -sa AGT1_FTE_FROM_FILE -da AGT2_FTE_TO_QUEUE_FOR_DP  -dm FTE_QM
-dq FTE_TO_MPGW@FTE_QM -dqp true -qmp true 
-md DPMQFTEDestination=ftp://user:password@xx.xx.xx.xx/foo.Part?Rename=Foo.Complete
-qs 1M -t binary c:\temp\file01.bin

Чтобы избежать необнаруженных ошибок, сообщения в очереди WebSphere MQ, т.е. в конечном пункте передачи WebSphere MQ FTE, являются персистентными.

При потоковой передаче сегментированных сообщений WebSphere MQ FTE рекомендуется поддерживать сравнительно малые размеры таких сообщений (менее 1 МБ).

В этом примере заголовок DPMQFTEDestination задает FTP-сервер, доступ к которому осуществляется с помощью идентификатора пользователя "user" и пароля "password". Этот FTP-сервер имеет IP-адрес xx.xx.xx.xx. Файл передается по частям, имена которых имеют префикс foo.part. После завершения передачи имя файла имеет префикс Foo.Complete.

Маршрутизация в таблице стилей DataPower использует этот заголовок для установления реального пункта назначения (см. листинг 3).

Листинг 3. XML-таблица стилей DataPower для MPGW-маршрутизации
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	version="1.0" xmlns:dp="http://www.datapower.com/extensions"
	extension-element-prefixes="dp" exclude-result-prefixes="dp">
	<xsl:template match="/">
		<!-- Get the MQRFH2 headers -->
		<xsl:variable name="MQRFH2" select="dp:request-header('MQRFH2')" />
		<!-- Parse the MQRFH2 headers to XML format -->
		<xsl:variable name="parsedMQRFH2" select="dp:parse($MQRFH2)" />

		<!-- log MQRFH2 -->
		<xsl:message dp:priority="debug">
			<xsl:copy-of select="$parsedMQRFH2" />
		</xsl:message>
		
		<!-- extract destination URL -->
		<xsl:variable name="finalDestination"
		select="$parsedMQRFH2//DPMQFTEDestination"></xsl:variable>

		<!-- set destination -->
		<dp:set-variable name="'var://service/routing-url'"
		value="$finalDestination" />
	</xsl:template>
</xsl:stylesheet>

Параметры MPGW настраиваются следующим образом: тип запроса (request type) — NON-XML, тип ответа (response type) – Pass-Thru, управление потоком (flow control) включено, запрос и ответ передаются в потоковом режиме (см. рис. 5).

Рисунок 5. Конфигурирование DataPower для потоковой передачи
DataPower configuration for streaming

Как указывалось выше, в микропрограммном обеспечении DataPower версии V5.x реализована поддержка расширенной памяти, что в значительной степени уменьшает потребность в потоковой передаче. Тем не менее для очень больших файлов (более 1 ГБ) потоковая передача по-прежнему может оказаться наилучшим вариантом. Необходимо учитывать, что в режиме буферизации две передачи – от FTE к DataPower и от DataPower к FTP-серверу — выполняются строго последовательно. Однако в потоковом режиме эти две передачи файлов происходят в значительной степени параллельно, что уменьшает общее время задержки.

И, наконец, этот сервис не интегрирован с B2BViewer.

Сценарий применения 3. Входящая передача файла с использованием B2BGW

Конфигурация DataPower такая же, как в сценарии применения 1.

В данном сценарии маршрутизация, в том числе установление идентификаторов партнеров, выполняется согласно обычной схеме B2BGW. Для исходных двоичных файлов должна быть настроена таблица стилей b2b-маршрутизации. В нашем примере мы идентифицируем внешнего партнера по IP-адресу источника, а внутреннего партнера – по каталогу назначения.

Пунктом назначения внутреннего партнера является URL-адрес WebSphere MQ FTE. Обратите внимание, что DataPower включает в пересылаемое сообщение конечный пункт назначения в сети WebSphere MQ FTE. Типичный пункт назначения WebSphere MQ FTE показан в Листинге 4.

Листинг 4. URL-адрес бэкенда mqfte при использовании объекта DataPower MQ Q-Manager
dpmqfte://FTE-QM/?RequestQueue=DP_TO_FTE&DestAgent= 
AGT3_DP_TO_FTE&DestQM=FTE_QM&DestFile=dummyPath&Transactional=true

Обязательные параметры URL-адреса:

  • DestAgent: Агент назначения в сети WebSphere MQ FTE, который получает сообщение.
  • DestQM: Менеджер очереди назначения, в которую агент источника отправляет сообщение.
  • DestFile: Имя файла, в котором агент назначения хранит полученное сообщение.

Для этого сценария применения мы создали третьего агента WebSphere MQ FTE с именем AGT3_DP_TO_FTE, который также функционирует в качестве Windows-сервиса и у которого в файле agent.properties свойство enableQueueInputOutput имеет значение true с целью разрешения передач типа Queue-to-File. Продукт WebSphere MQ FTE должен осуществлять мониторинг очереди назначения WebSphere MQ, в которую DataPower записывает передаваемые файлы, и инициировать передачу WebSphere MQ FTE с целью обработки файла. Для выполнения этих задач мы создали соответствующий монитор WebSphere MQ FTE с помощью команды fteCreateMonitor, показанной в листинге 5.

Листинг 5.  Команда fteCreateMonitor для сценария применения 3
FteCreateMonitor.cmd -ma  AGT3_DP_TO_FTE   -mq DP_TO_FTE -mn XB62_Monitor 
-mt D:\Products\WMQFTE\Datapower\Stefano\XB62_Monitor.xml -pi 10 -pu seconds
-tr completeGroups

В этой команде параметр –ma указывает имя агента мониторинга (в данном случае — AGT3_DP_FTE_QM). Агент, который мы создали для этого сценария применения, используется в качестве агента источника для триггерной передачи. Значение параметра –mq (в данном случае, DP_TO_FTE) — это имя очереди WebSphere MQ, подлежащей мониторингу, которая и является целью передачи от DataPower.

Параметр –mn задает имя создаваемого монитора (в данном случае, XB62_Monitor). Параметр — pu имеет значение seconds (секунды), поэтому значение параметра –pi (в данном случае, 10) задает интервал опроса, равный 10 секундам. Параметр –tr имеет значение completeGroups, согласно которому команда передачи WebSphere MQ FTE, задаваемая значением параметра –mt, инициируется только тогда, когда вся группа сообщения WebSphere MQ поступила в подвергаемую мониторингу очередь. Эта команда передачи WebSphereMQ FTE, запускаемая по поступлению всей группы сообщения, описывается в файле определения задачи монитора, указанном в параметре –mt. Это XML-файл, который в нашем сценарии имеет следующий вид (см. листинг 6).

Листинг 6. XML-определение задачи для монитора FTE
<?xml version="1.0" encoding="UTF-8"?>
<request version="5.00" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
  <managedTransfer>
    <originator>
      <hostName>xxx.xxx.xxx.xxx</hostName>
      <userID>fteuser</userID>
    </originator>
    <sourceAgent QMgr="FTE_QM" agent="AGT3_DP_FTE_QM"/>
    <destinationAgent QMgr="${DPMQFTEDestinationQM}" agent="${DPMQFTEDestinationAgent}"/>
    <transferSet>
      <item checksumMethod="MD5" mode="binary">
        <source disposition="delete" recursive="false" type="queue">
          <queue>DP_TO_FTE</queue>
        </source>
        <destination exist="overwrite" type="file">
          <file>d:\temp\FromXB62\${DPMQFTEDestinationFile}</file>
        </destination>
      </item>
    </transferSet>
  </managedTransfer>
</request>

Этот файл был создан с помощью опции –gt команды fteCreateTransfer. Использование опции –gt для создания данного файла – это самый простой способ гарантировать корректность его формата. Впоследствии сгенерированный файл определения задачи может быть модифицирован требуемым образом, в частности, с целью замены переменных.

В показанном выше файле определения задачи переменная sourceAgent задает агента источника WebSphere MQ FTE. Он ассоциируется с Queue Manager в интересах передачи, которая должна инициироваться при поступлении группы сообщений из DataPower. В данном случае, это агент AGT3_DP_TO_FTE и менеджер FTE_QM, соответственно. Переменная destinationAgent задает имя целевого агента, который является менеджером очереди для передачи. В показанном выше примере менеджеру очереди присвоено значение “${DPMQFTEDestinationQM}, а агенту присвоено значение “${DPMQFTEDestinationAgent}”. В процессе исполнения эти значения заменяются значениями переменных DPMQFTEDestinationQM и DPMQFTEDestinationAgent, которые задаются устройством DataPower.

И, наконец, имя файла назначения задается в XML-теге "file". В данном случае путь жестко закодирован в виде "d:\temp\FromXB62\", однако само имя файла задает переменная DPMQFTEDestinationFile.

Необходимо отметить, что по умолчанию DataPower пересылает сообщения с использованием значения персистентности по умолчанию, заданного для очереди. Поэтому данное значение необходимо задавать с достаточной осмотрительностью.

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

Сценарий применения 4. Входящая передача файла с использованием MPGW (потоковая передача)

В этом сценарии WebSphere MQ FTE имеет точно такую же конфигурацию, как в предыдущем сценарии.

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

Эта конфигурация поддерживает потоковую передачу для входящих файлов и хорошо подходит для передачи очень больших  файлов.

Заключение

В статье были описаны конкретные критерии выбора между сервисами B2BGW и MPGW при интеграции продуктов DataPower и WebSphere MQ FTE. Кроме того, были рассмотрены краткие примеры работоспособных конфигураций.

Благодарности

Авторы выражают благодарность за содействие в написание данной статьи и за ее рецензирование Ричарду Кайнарду (Richard Kinard) и Эдриану Престону(Adrian Preston).

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=WebSphere
ArticleID=933691
ArticleTitle=Применение продуктов WebSphere DataPower и WebSphere MQ File Transfer Edition для управляемой передачи файлов
publish-date=06112013