Миграция приложений с платформы Oracle WebLogic Integration на платформу IBM Business Process Manager Advanced: Часть 3. Миграция control-компонентов платформы WLI на платформу IBM BPM

В первой части этого цикла описываются инструменты и методики, которые успешно применялись для миграции бизнес-процессов платформы Oracle® WebLogic Integration (WLI) и связанных с ними артефактов на платформу IBM® BPM. Во второй части описывается, как осуществить миграцию распространенных форматов данных и API-интерфейсов, которые применяются при написании бизнес-логики в бизнес-процессе платформы Oracle WLI. В третьей части описываются имеющиеся средства для осуществления миграции control-компонентов платформы WLI с целью их исполнения на платформе IBM BPM.

Майк Цай, старший ИТ-специалист, IBM

Mike Cai photoМайк Цай (Mike Cai) был принят на работу в IBM после окончания колледжа в 2001 г. в качестве ИТ-специалиста группы по разработке корпоративных приложений в составе подразделения GBS (Global Business Services), где специализировался на создании Java/J2EE-приложений для различных заказчиков. Затем М. Цай перешел в группу по интеграции корпоративных приложений в качестве старшего ИТ-консультанта, где занимался преимущественно интеграцией больших корпоративных систем и приложений с использованием J2EE-платформ и таких технологий, как WebSphere Application Server, WebSphere MQ, WebSphere Lombardi Services, JMS, SOAP, BPEL, Service Bus, WebSphere Service Registry and Repository и т.д. Кроме того, М. Цай имеет опыт практической работы на самых различных должностях (архитектор, проектировщик, разработчик, технический руководитель, бизнес-аналитик, менеджер по дефектам и т.д.). В последние пять лет М. Цай специализируется преимущественно на таких пакетных продуктах, как BEA/Oracle WebLogic, Oracle Fusion, WLS, WLI, OSB, ODI и WLP. Он имеет опыт создания всего спектра компонентов, включая фронтальные JSP-компоненты, компоненты связующего уровня (JPD-компоненты и OSB-сервисы посредничества/преобразования) и серверные компоненты (веб-сервисы на базе SOAP и JMS).



Дэйв Малли, специалист по информационным технологиям, Systems Documentation, Inc. (SDI)

Дэйв Малли (Dave Mulley) - специалист по информационным технологиям в группе IBM Software Services for WebSphere Enablement в Raleigh, North Carolina. Дэйв работает в IBM с 1999 года, где занимается семейством продуктов WebSphere Business Integration. Связаться с ним можно по адресу dmulley@us.ibm.com



Дэвид ВандеПол, ИТ-специалист, IBM

David VandePol photoДэвид ВандеПол (David VandePol) работает в IBM с 2008 г. Сначала он занимался разработкой в составе группы по установке продукта WebSphere версий v7 и v8, а с момента основания в январе 2012 г. группы Competitive Migration Team является ее членом. Д. ВандеПол обладает глубокими знаниями по всем операционным системам, которые поддерживаются продуктами семейства WebSphere. В качестве специалиста по миграции Д. ВандеПол принимал участие в разработке учебных семинаров по миграции с конкурирующих серверов приложений и по миграции с версии на версию. Он провел множество таких семинаров в Канаде и в США. Д. ВандеПол успешно выполнил большое количество миграций с продуктов JBoss, WebLogic, Oracle Application Server и Tomcat для многочисленных заказчиков в разных странах мира.



26.02.2014

Введение

Большинство бизнес-процессов требует подключения к корпоративным ресурсам, таким как базы данных и файловые системы. Платформа Oracle WebLogic Integration (WLI) для обслуживания подключений к этим корпоративным системам применяет т. н. control-компоненты, что позволяет отделить логику связывания от бизнес-логики. В продукте IBM Business Process Manager (IBM BPM) для реализации аналогичного уровня абстрагирования применяются адаптеры WebSphere.

В рамках общего процесса миграции, описанного в первой части, мы показали, как экспортировать BPEL-файлы и WSDL-файлы платформы WLI для JPD-потока и как импортировать эти файлы в инструмент IBM Integration Designer с помощью плагина BPEL 2.0 importer. Мы также рассмотрели модификацию платформы WLI, которую мы осуществили для BPEL-плагина для поддержки большей части преобразований, требующихся для миграции JPD-потоков платформы WLI в процессы платформы IBM BPM. В этой статье мы рассмотрим инструменты, которые применяются для миграции control-компонентов платформы Oracle WLI в адаптеры платформы IBM BPM. Мы продемонстрируем применение этих инструментов при миграции control-компонентов платформы WLI, содержащихся в примере бизнес-процесса. Этот пример WLI-процесса и мигрированный BPM-процесс можно загрузить в рамках демонстрационного WLI-приложения, прилагаемого к статье.

В нашем примере бизнес-процесса платформы WLI имеется несколько разновидностей control-компонентов WLI. Применяемый миграционный подход зависит от конкретного control-компонента платформы WLI. В таблице 1 перечислены миграционные подходы, control-компоненты платформы WLI и инструменты, которые используются для миграции этих компонентов. Пошаговые процедуры применения этих инструменты описываются в следующих разделах.

Таблица 1. Миграционные подходы и инструменты миграции
Миграционный подход Control-компоненты платформы WLI Инструменты миграции
Мастер внешних сервисов Database control
JMS control
Email control
File control
Плагин BPEL Importer, инструментарий runtime migration toolkit, мастер внешних сервисов, редактор процессов BPEL
Утилиты для миграции с платформы WLI Transformation control
Java control
database control
Плагин BPEL Importer, инструментарий runtime migration toolkit, утилиты для миграции с платформы WLI, редактор процессов BPEL
Редактор процессов BPEL Process control Плагин BPEL Importer, редактор процессов BPEL

Концепции

В этом разделе излагаются ключевые концепции BPM, применяемые при описании миграции control-компонентов платформы WLI. Знакомство с этими ключевыми концепциями необходимо для понимания данной статьи. Ссылки на дополнительную информацию об этих концепциях приведены в раздел Ресурсы.

Язык Service Component Definition Language
Язык Service Component Definition Language (SCDL) используется при реализации процессов платформы BPM (BPM-процессов). Другими словами, артефакты языка SCDL (определения модулей, компоненты сервисов, импорты, экспорты и ссылки) используются при миграции процесса платформы WLI (WLI-процесса) в процесс платформы BPM (BPM-процесс).
Редактор процессов BPEL
Редактор процессов BPEL используется для создания и конфигурирования BPM-артефактов, которые требуются для миграции control-компонентов платформы WLI. К числу этих дополнительных BPM-артефактов относятся следующие: диаграмма сборки (assembly diagram), Invoke, Assign, receive, snippet и бизнес-объект.
Мастер внешних сервисов
Мастер внешних сервисов используется для создания адаптеров WebSphere (а также ассоциированных с ними импортов, экспортов и бизнес-объектов) для соответствующих control-компонентов платформы WLI.
Плагин BPEL Importer
Плагин BPEL importer используется для импортя BPEL-определений процессов (JPD-определений) в инструмент IBM Integration Designer с целью их последующего исполнения на платформе IBM BPM. В рамках этого импорта плагин обрабатывает закрытые расширения стандарта BPEL, присутствующие в WLI.
Утилиты для миграции с платформы WLI
Эти утилиты используются в следующих случаях.
  • Миграция JCX-файлов (Java Control Extension) в Java-объекты, способные исполняться на платформе IBM BPM
  • Миграция JCS-файлов (Java Control Source) в Java-объекты, способные исполняться на платформе IBM BPM
  • Миграция DTF-файлов (Data Transformation Files) в Java-объекты, способные исполняться на платформе IBM BPM
  • Миграция XQuery-файлов, позволяющая им исполняться на платформе IBM BPM
Инструментарий runtime migration toolkit
Инструментарий runtime migration toolkit используется для чтения ресурсов Java EE (таких как JMS, JDBC и Mail), которые требуются control-компонентам платформы WLI, и для создания скриптов конфигурирования, которые могут быть выполнены на платформе IBM BPM с целью создания эквивалентных ресурсов, которые требуются BPM-адаптерам.

Миграция control-компонентов платформы WLI с помощью мастера внешних сервисов

В этом разделе демонстрируется использование мастера внешних сервисов для преобразования control-компонента WLI database control (сокращенно – database control) в адаптер WebSphere, который может быть вызван BPM-процессом. К числу других control-компонентов платформы WLI, миграцию которых можно выполнить с помощью этого подхода, относятся также JMS, Email и File. В демонстрационное WLI-приложение, которое можно загрузить вместе с данной статьей, включены примеры других control-компонентов, миграция которых также возможна с помощью этого подхода.

Компонент WLI database control обеспечивает подключение любого JPD-процесса платформы WLI к JDBC-совместимой базе данных. В доступном для загрузки демонстрационном WLI-приложении мы используем компонент WLI database control в основном процессе для извлечения сведений о балансе счета клиента и для снятия средств с этого счета при обработке заказа. Мы также используем компонент WLI database control в подпроцессе, чтобы извлечь и затем обновить данные о складских запасах для каждого товара в заказе.

Экспорт BPEL-описания из WLI и его импорт в BPM с помощью плагина BPEL importer

Чтобы начать миграцию компонента WLI database control, экспортируйте BPEL-описание из WLI и импортируйте BPEL-описание в BPM с помощью плагина BPEL Importer. В результате узлы WLI database control в JPD-процессе будут автоматически преобразованы в BPM-действия Invoke в BPM-процессе. В таблице 2 показана миграция из JPD-потока платформы WLI в BPEL-процесс платформы BPM.

Таблица 2. Миграция из JPD-потока платформы WLI в BPEL-процесс платформы BPM
Исходный процесс платформы WLI Мигрированный процесс платформы BPM
Original WLI Process FlowMigrated BPM process Flow

Миграция ресурсов Java EE с WebLogic Server на WebSphere с помощью инструментария runtime migration toolkit

Платформа WLI представляет собой набор функций, построенный "поверх" сервера WebLogic Server. Это означает, что многие ресурсы Java EE (такие как пункты назначения JMS и источники данных JDBC), на которые опирается платформа WLI, поддерживаются внутри доменов WebLogic Server. Чтобы осуществить миграцию этих ресурсов Java EE с WebLogic Server на WebSphere для нашего демонстрационного WLI-приложения, мы воспользовались инструментарием runtime migration toolkit.

Runtime migration toolkit — это Eclipse-плагин, который можно установить в инструмент IBM Integration Designer. После установки этого плагина выполните следующие шаги для миграции ресурсов Java EE с WebLogic Server на WebSphere.

  1. Выберите Migration Tools => WebSphere Application Server Migration => Runtime Migration => WebSphere Runtime Migration Toolkit for WebLogic. Эта опция становится доступной в инструменте Integration Designer после установки вышеуказанного плагина.
  2. После появления подсказки выберите файл config.xml из конфигурационного каталога WebLogic (config).
  3. Выберите имя и местоположение, в котором описываемый инструментарий должен создать Jython-скрипт.
  4. Следуя подсказкам, выберите соответствующий JDBC-ресурс и связанные ресурсы, необходимые для миграции.
  5. Выберите область для создания ресурсов. Вы можете выбрать профиль home для отыскания ячеек, кластеров, примечаний или серверов, на которые вы хотите установить ресурсы.
  6. Нажмите Finish. Административный Jython-скрипт откроется в инструменте Integration Designer.
  7. В инструменте Integration Designer вы должны видеть журнал (иногда он находится в нижнем фрейме). В этом журнале обязательно просмотрите сообщения с инструкциями по дополнительным аспектам настройки, таким как пароли.
  8. И, наконец, выполните следующую команду из каталога <WAS_Profile_HOME>/bin для завершения миграции JDBC-ресурсов на сервер BPM:
    wsadmin.bat/sh -lang jython -script <script location>

    .

В таблице 3 показаны результирующие JEE-ресурсы в среде WebSphere.

Таблица 3. Конфигурационные значения, связанные с JDBC-источником данных
Источник данных
Имя WLIDemoDataSource Тип драйвера 4
Область действия ячейка Имя базы данных WLIDEMO
Провайдер DB2 с использованием драйвера IBM JCC (XA) Имя сервера <db host name>
JNDI jdbc/wliDataSource Номер порта <db port name>
Аутентификационный псевдоним WLIDemoDBUser
JAAS-псевдоним
Имя WLIDemoDBUser Идентификатор пользователя <db user name>
Пароль <db user password>

Инструментарий runtime migration toolkit (который можно загрузить вместе с данной статьей) позволяет выполнять миграцию в среду WebSphere не только JDBC-ресурсов, но и множества других конфигураций (JMS, JAAS и т. д.).

Создание компонента типа JDBC Import с помощью мастера внешних сервисов

Для этого компонента database control мы создадим новый компонент типа JDBC Import с помощью мастера внешних сервисов. Результаты миграции показаны в таблице 4.

Таблица 4. Миграция компонента типа WLI control в BPM-компонент типа Import
Исходный артефакт типа WLI control Мигрированный BPM-компонент
Компонент WLI database control (.JCX)

WLI database control (.JCX)
Исходящий BPM-компонент типа JDBC Import

WLI database control (.JCX)

В результате работы мастера внешних сервисов будут созданы следующие артефакты.

  • Компонент типа JDBC Import с именем JDBCImport.
  • Интерфейс с именем JDBCImport, имеющий следующие четыре операции:
    • updateBpmadminAccountBG
    • retrieveBpmadminAccountBG
    • updateBpmadminInventoryBG
    • retrieveBpmadminInventoryBG
  • Бизнес-объекты со следующими именами:
    • BpmadminAccountBG
    • BpmadminAccount
    • BpmadminInventoryBG
    • BpmadminInventory

Конфигурирование модуля JDBC Import с помощью редактора процессов BPEL

Прежде чем использовать результирующий адаптер, необходимо сконфигурировать модуль JDBC Import. Подробные инструкции по конфигурированию этого модуля описаны в информационном центре IBM BPM. В таблице 5 показаны конкретные значения, который мы использовали при конфигурировании своего модуля JDBC Import.

Таблица 5. Конфигурационные значения модуля JDBC Import
Диалоговое окноПолеЗначение
Locate the Required Files and Libraries (Укажите требуемые файлы и библиотеки) Required Libraries (Требуемые библиотеки) db2jcc.jar, db2jcc_license.jar
Specify the Discovery Properties (Укажите свойства) Database Types (Типы баз данных) DB2 UDB, V9.1 – V9.7
Specify the Discovery Properties (Укажите свойства) Database Name (Имя базы данных) WLIDemo
Find Objects in the Enterprise System (Найти объекты в корпоративной системе) Discovered Objects (Найденные объекты) BPMADMIN => ACCOUNT, BPMADMIN => INVENTORY
Specify Composite Properties (Укажите свойства) Operations for selected business objects (Операции для выбранных бизнес-объектов) Update, Retrieve
Specify the Service Generation and Deployment Properties (Укажите свойства для генерации и развертывания сервиса) Use an existing JAAS alias (recommended ) (Рекомендуется использовать существующий JAAS-псевдоним) Yes => WLIDemoDBUser
Specify the Service Generation and Deployment Properties (Укажите свойства для генерации и развертывания сервиса) XA DataSource JNDI Name (JNDI-имя источника данных XA) jdbc/wliDataSource

Теперь, когда WebSphere-модуль JDBC import сконфигурирован, необходимо модифицировать BPEL-компонент Process с целью его использования. Эта задача решается посредством добавления новой ссылки (reference). Чтобы добавить новую ссылку на компонент, выполните следующие шаги:

  1. Выберите компонент Process в диаграмме сборки (Assembly Diagram), а затем нажмите New Reference (рис. 1).
    Рисунок 1. Кнопка Add Reference (добавить ссылку) появляется, если выбран компонент Process
    The Add Reference button appears when the Process component is selected
  2. Появляется диалоговое окно Add Reference. Выберите выделенный интерфейс JDBCImport в области Matching interfaces и измените имя новой ссылки на WLIDemoDatabase (рис. 2).
    Рисунок 2. Диалоговое окно Add Reference
    The Add Reference dialog
  3. После того как ссылка будет добавлена к компоненту Process, свяжите ее с компонентом JDBCImport (рис. 3).
    Рисунок 3. Компонент Process соединен с компонентом типа JDBC Import
    The Process component is wired to the JDBC Import component
  4. Если BPEL-процесс использует какой-либо другой компонент, требуется артефакт типа Reference Partner . Вам необходимо добавить новый артефакт типа Reference Partner к своему BPEL-процессу. Для этого выполните следующие шаги.
    1. Откройте компонент Process в редакторе процессов BPEL и нажмите на кнопку "+" для добавления нового Reference Partner (рис. 4).
      Рисунок 4. Добавление нового артефакта типа Reference Partner
      Add a new reference partner
    2. В диалоговом окне Add a Reference Partner выберите пункт JDBCImport из списка Interfaces и измените имя на WLIDemoDatabase, а затем нажмите OK.
    Большинство сценариев использования артефакта типа Reference Partner в BPEL соответствует одному и тому же шаблону (см. рис. 5), в котором действие Assign используется для наполнения бизнес-объектов, подлежащих отсылке в Reference Partner. Действие Assign представляет собой простое отображение значений одного бизнес-объекта в другой бизнес-объекту. После действия Assign следует действие Invoke, посредством которого осуществляется обращение к Reference Partner. В конфигурации действия Invoke задаются следующие переменные: интерфейс, операция, бизнес-объект. После выполнения действия Invoke вызывается еще одно действие Assign для наполнения бизнес-объектов полученными значениями.
    Рисунок 5. BPM-действия Assign и Invoke
    BPM Assign and Invoke activities
  5. 5. В качестве иллюстрации мы покажем, как изменить действие Invoke с именем Check-accountBalance в BPEL-процессе (рис. 6). Обратите внимание, что узел до Invoke и узел после Invoke представляют собой действия Assign. Чтобы запустить этот процесс, выберите действие Invoke с именем Check-accountBalance (см. рис. 6).
    Рисунок 6. Выбор действия Invoke с целью его изменения
    Select the Invoke to change
  6. В представлении Properties выберите вкладку Details, а затем нажмите Browse, чтобы изменить Partner на WLIDemoDatabase. Затем из ниспадающего списка Operation выберите операцию retreiveBpmadminAccountBG и нажмите Browse, чтобы выбрать переменную Request.
  7. В диалоговом окне Select Request Variable нажмите New и в качестве имени переменной введите selectAccountName, а затем нажмите OK.
  8. В диалоговом окне Select Request Variable снова нажмите OK.
  9. Повторяя предыдущие шаги, создайте новую переменную с именем responseAccountVariable для переменнной Response .

Теперь свойства действия Invoke должны выглядеть, как показано на рис. 7.

Рисунок 7. Измененные свойства действия Invoke
The modified Invoke properties

Следующий шаг состоит в изменении узлов Assign с целью использования новых переменных. Как указывалось выше, обычно перед узлом Invoke и после узла Invoke имеется по одному узлу Assign. В рассматриваемом примере процесса узел Assign с именем obj_obj2input.accountNumber находится перед узлом Invoke и будет изменен первым. Этот узел наполняет данными запрос, который отсылается в узел Invoke.

  1. Выберите узел Assign с именем obj_obj2input.accountNumber (рис. 8).
    Рисунок 8. Узел Assign перед узлом Invoke
    The pre-Invoke assignment
  2. В представлении Properties выберите вкладку Details и измените информацию в поле Assigned To следующим образом: selectAccountTable => retrieveBpmadminAccountBGParameters => retrieveBpmadminAccountBGInput/BpmAdminAccount/accountnumber (рис. 9). Этот элемент бизнес-объекта, создаваемого вместе с JDBC Import, соответствует столбцу ACCOUNTNUMBER таблицы Account в базе данных WLIDemo.
    Рисунок 9. Измененное действие Assign
    The modified assignment

    Кликните, чтобы увидеть увеличенное изображение

    Рисунок 9. Измененное действие Assign

    The modified assignment
  3. Теперь выберите узел Assign с именем output.parameters2fundsAvailable который находится после узла Invoke и имеет дело с ответным сообщением (см. рис. 10).
    Рисунок 10. Узел Assign после узла Invoke
    The post-Invoke assignment
  4. В представлении Properties выберите вкладку Details и измените информацию в поле Assigned From следующим образом: responseAccountTable => retrieveBpmadminAccountBGResult => retrieveBpmadminAccountBGOutput/BpmadminAccount/balance. Этот элемент бизнес-объекта, создаваемого вместе с JDBC Import, соответствует столбцу BALANCE таблицы Account в базе данных WLIDemo (см. рис. 11).
    Рисунок 11. Измененное действие Assign
    The modified assignment

    Кликните, чтобы увидеть увеличенное изображение

    Рисунок 11. Измененное действие Assign

    The modified assignment
  5. Сохраните внесенные вами изменения.

Вышеописанные шаги иллюстрируют миграцию компонента WLI database control в исходящий BPM-компонент типа JDBC Import. У платформы BPM также имеются входящие компоненты типа JDBC Export , которые способны обрабатывать события баз данных и соответственно инициировать бизнес-процессы. Кроме того, в своем демонстрационном WLI-приложении мы создали специальные бизнес-объекты и отображения для чтения из реляционных таблиц и для записи в них. Наконец, вкладка Properties для BPM-компонента JDBC Import содержит большое количество опций, касающихся привязок, транзакций, средств безопасности и т. д., которые могут быть изменены в соответствии с исходной WLI-реализацией.

Для своего демонстрационного WLI-приложения мы также воспользовались мастером внешних сервисов с целью миграции control-компонентов типа JMS, Email и File. Процедура миграции этих control-компонентов выполняется в точном соответствии с вышеописанной пошаговой процедурой для компонента WLI database control. В некоторых случаях вместо создания новых WSDL-интерфейсов (как мы поступили при создании JDBC-адаптера) можно повторно использовать существующие WSDL-интерфейсы, экспортированные из WLI. В таких случаях нужно лишь обновить существующие ссылки для процесса вместо добавления нового артефакта типа Reference Partner.

Кроме того, для всех control-компонентов в нашем демонстрационном WLI-приложении, мигрированных с помощью мастера внешних сервисов, мы использовали в качестве мигрированных интерфейсов бизнес-объекты по умолчанию или заранее определенные бизнес-объекты. В сценарии, в котором задействованы сложные типы данных, не только можно, но даже рекомендуется создавать специальные бизнес-объекты. Подробные сведения по реализации специальных бизнес-объектов для адаптеров WebSphere приведены в разделах по соответствующим адаптерам в информационном центре IBM BPM . Необходимые ссылки приведены в разделе Ресурсы. Полный перечень control-компонентов платформы WLI, миграция которых может быть осуществлена с помощью мастера внешних сервисов, приведен в таблице 11.


Миграция control-компонентов платформы WLI с помощью миграционных утилит

В этом разделе демонстрируется использование мастера внешних сервисов для преобразования control-компонента WLI database control в адаптер WebSphere, в результате чего он может быть вызван BPM-процессом. Результирующий компонент типа Java SCA будет использовать API-интерфейсы Java SE JDBC для подключения к базам данных и для подачи запросов к ним. Это преобразование WLI-компонента database control в BPM-компонент типа Java SCA в автоматическом режиме выполняется с помощью утилиты WLI migration utility (утилита для миграции с платформы WLI). Остальные шаги, выполняемые при использовании этого подхода, подобны шагам при миграции WLI-компонента database control с помощью мастера внешних сервисов. Некоторые отличия этого подхода обусловлены тем, что он модифицирует, а не создает новые интерфейсы и компоненты. Кроме того, в случае этого подхода создается компонент типа "mapper". В общем и целом, данный подход работает быстрее других подходов. Некоторые другие control-компоненты платформы WLI, которые могут быть мигрированы с помощью этот подхода: transformation control и Java control. В демонстрационное WLI-приложение, которое можно загрузить вместе с данной статьей, включены примеры control-компонентов, миграция которых также может быть осуществлена с помощью данного подхода.

Экспорт BPEL-описания из WLI и импорт его в BPM с помощью плагина BPEL Importer

Используйте плагин BPEL Importer для импорта BPEL-описания в BPM, как описано в разделе Экспорт BPEL-описания из WLI и его импорт в BPM с помощью плагина BPEL Importer.

Миграция ресурсов Java EE с WebLogic Server на WebSphere с помощью инструментария runtime migration toolkit

Используйте инструментарий runtime migration toolkit для создания JEE-ресурсов в BPM, как описано в разделе Миграция ресурсов Java EE с WebLogic Server на WebSphere с помощью инструментария runtime migration toolkit.

Преобразование компонента database control в BPM-компонент с помощью утилиты WLI migration utility

Утилита WLI migration utility предоставляет простой способ преобразования компонента WLI database control (.jcx) для его использования на платформе BPM. Результатом работы утилиты WLI migration utility является набор Java-классов, которые можно использовать при создании BPM-компонентов типа Java SCA (таблица 6).

Таблица 6. Преобразование компонента типа WLI control в BPM-компонент типа SCA
Исходный артефакт типа WLI control Мигрированный BPM-компонент
Компонент WLI database control (.JCX)

WLI database control (.JCX)
Преобразованный компонент Database SCA (.Java)

Converted Database SCA (.Java)

Чтобы преобразовать компонент database control (.jcx), выполните утилиту WLI migration utility и укажите путь к каталогу, содержащему соответствующий jcx-файл:

java.exe -classpath <required_libs> -jar <WLIMigrationUtils>.jar JDBC2JAVA DB

В результате выполнения утилиты WLI migration utility будут созданы следующие артефакты.

  • Java-реализация компонента WLI database control (DB_AccountSCAImpl.java)
  • Java-интерфейс под именем DB_AccountSCA.java со следующими операциями:
    • checkAvailableFunds
    • removeFunds
    • isItemInStock
    • rem oveProductFromStock
  • Исходный файл WLI control (DB_Account.jcx)

Создание компонента Java SCA с помощью редактора процессов BPEL

Мигрированные Java-классы, созданные утилитой WLI migration utility на предыдущем шаге, можно использовать для создания компонентов типа Java SCA (таблица 7).

Таблица 7. Преобразование компонента типа WLI control в BPM-компонент типа SCA
Исходный артефакт типа WLI controlМигрированный BPM-компонент
Компонент WLI database control (.JCX)

WLI database control (.JCX)WLI database control (.JCX)
BPM-компонент Database Java SCA

Database Java SCA Component in BPM

BPM-компонент Database Java SCA Mapper

Database Java SCA Mapper Component in BPM

Следующий шаг состоит в создании компонента Java SCA. Для этого нужно открыть редактор процессов BPEL и перетащить преобразованный Java-объект DB_AccountSCAImpl на диаграмму сборки (см. рис.12).

Рисунок 12. Преобразованный компонент типа JDBC SCA (.Java)
Converted JDBC SCA (.Java)

При появлении диалогового окна WSDL to Java Mapper Facade нажмите Yes для создания компонента типа mapper. Этот mapper-компонент применяется для отображения между бизнес-объектами SCA, которые использует BPEL-процесс, и Java-типами, которые использует компонент DBAccountsSCAImpl. В результате компонент типа Java SCA с именем DB_AccountSCAImpl и компонент типа Java SCA с именем DB_AccountSCAmapper будут помещены на диаграмму сборки и соединены между собой (см. рис. 13).

Рисунок 13. Преобразованный компонент типа JDBC SCA (.Java) и компонент типа Mapper
Converted JDBC SCA (.Java) and Mapper component

После этого функция WSDL to Java Mapper Facade редактора процессов BPEL создает WSDL-интерфейс согласно сигнатурам Java-операций компонента DB_AccountSCAImpl. Этот WSDL-интерфейс связывает BPEL-процесс и компонент типа Java SCA, который является реализацией этого control-компонента платформы WLI.

Особенности экспорта WSDL-файлов для control-компонентов платформы WLI обусловлены тем, что интерфейс DB_Account платформы WLI оказывается разделен между двумя разными WSDL-файлами, по одному файлу для операций каждого JPD-процесса (рис. 14 и рис. 15). Чтобы предотвратить конфликты пространств имен и типов портов, мы объединим операции этих двух WSDL-файлов в рамках сгенерированного артефакта mapper WSDL (рис. 16).

На рис. 14 и 15 показаны WSDL-интерфейсы JPD-процесса, экспортированные из WLI.

Рисунок 14. Операции интерфейса DB.DB_AccountPT в WSDL-интерфейсе JPD-процесса (Process_ctrl.wsdl)
DB.DB_AccountPT interface operations in the pprocess JPD's control WSDL (Process_ctrl.wsdl)
Рисунок 15. Операции интерфейса DB.DB_AccountPT в WSDL-интерфейсе JPD-процесса isItemInStockSubProcess (isItemInStockSubProcess_ctrl.wsdl)
DB.DB_AccountPT interface operations in the isItemInStockSubProcess JPD's control WSDL (isItemInStockSubProcess_ctrl.wsdl)

На рис. 16 показан обновленный сгенерированный WSDL-интерфейс mapper.

Рисунок 16. Обновленный сгенерированный WSDL-интерфейс mapper
Updated generated mapper interface WSDL

DB_AccountSCAmapper (рис. 16) использует для всех своих параметров простые типы, поэтому для mapper не требуется никаких изменений исходного кода. Если бы WSDL-операции использовали более сложные типы, вам пришлось бы модифицировать реализации этого mapper с целью преобразования между SDO-объектом (Service Data Object), полученным этим mapper, и реальными сложными Java-типами, которых ожидает реализация DB_AccountSCAImpl

Следующий шаг состоит в обновлении ссылки DB_Account для основного процесса. Эта ссылка была импортирована, когда плагин BPEL Importer первоначально импортировал соответствующее JPD-описание на языке BPEL из WLI. Проблема состоит в том, что ссылка DB_AccountReference указывает на интерфейс DB.DB_AccountPT, который больше не существует в нашем демонстрационном приложении. Вместо этого ссылка должна указывать на интерфейс DB.DB_AccountSCA с объединенными операциями. Чтобы изменить ссылку DB_AccountReference так, чтобы она указывала на правильный интерфейс, выполните следующие шаги.

  1. Выберите основной процесс на диаграмме сборки и просмотрите раздел Details на вкладке Properties
  2. Раскройте References => DB_Account и выберите интерфейс DB.DB_AccountPT.
  3. В правой части вкладки Details нажмите на Change, чтобы изменить интерфейс с DB.DB_AccountPT на DB_AccountSCA.

Результаты показаны на рис. 17. Поскольку процесс isItemInStockSubProcess также использует WLI-компонент database control, в его ссылке необходимо произвести аналогичные изменения.

Рисунок 17. Обновленный интерфейс ссылки DB_Account
Updated DB_Account reference interface

После того обновления ссылок для BPEL-процессов в соответствии с интерфейсом для DB_AccountSCAmapper их можно соединить между собой надлежащим образом. На диаграмме сборки нажмите правой кнопкой на DB_AccountSCAmapper и выберите Wire to existing для связывания ссылки процесса с mapper-интерфейсом. Поскольку ссылка DB_Account процесса была обновлена с указанием нового mapper-интерфейса на диаграмме сборки, необходимо также обновить существующий артефакт DB_Account reference partner в реализации BPEL-процесса, указав правильный интерфейс. Для этого на диаграмме сборки нажмите правой кнопкой на основном процессе и выберите опцию to implementation под заголовком Synchronize Interfaces and References. В результате изменение ссылочного интерфейса будет перемещено в реализацию процесса. Повторите аналогичные шаги для процесса isItemInStockSubProcess. На рис. 18 показан результат, который будет одинаковым для обоих BPEL-процессов в нашем демонстрационном WLI-приложении.

Рисунок 18. Обновленный артефакт DB_Account reference partner с новым mapper-интерфейсом DB_AccountSCA
Updated DB_Account reference partner with the new DB_AccountSCA mapper interface

Поскольку новый компонент DB_AccountSCAmapper выставляет новый интерфейс, все действия Invoke, которые вызывают методы этого WSDL-интерфейса, также необходимо обновить. На рис. 19 показано одно из таких действий Invoke метода checkAvailableFunds.

Рисунок 19. Свойства действия Invoke
Java SCA reference partner Invoke properties details

Как указывалось выше, обычно перед узлом Invoke и после него находятся узлы Assign. Эти узлы Assigns также нуждаются в изменении. На рис. 20 показан пример узла Invoke и связанных с ним узлов Assign.

Рисунок 20. Узел Invoke и узлы Assign для запроса / ответа
Java SCA Invoke activity and request /response assignments

Чтобы внести эти изменения, начните с запроса и ответа для Invoke, для чего выберите правильный тип данных для локальных переменных input и output. В таблице 8 показаны результирующие типы переменных.

Таблица 8. Типы переменных Input и Output
Переменная: Input Переменная: Output
ИнтерфейсDB_AccountSCAИнтерфейсDB_AccountSCA
Операция checkAvailableFunds Операция checkAvailableFunds
Направление Input Направление Input

В заключение скорректируйте узел Assign согласно введенным переменным input для запроса и output для ответа. В таблице 9 показаны результаты действия Assign.

Таблица 9. Действия Assign для запроса / ответа
Assign: AssignCheckAcctBalanaceInput Assign: AssignCheckAcctBalanaceOutput
ОткудаaccountNumОткуда output.parameters.checkAvailableFundsReturn
Куда Input.parameters.accountNumber Куда fundsAvailable

Вышеописанные шаги иллюстрируют миграцию WLI-компонента database control WLI в BPM-компонент типа Java SCA с помощью утилиты WLI migration utility. Для нашего демонстрационного WLI-приложения мы также использовали утилиту WLI migration utility при миграции компонентов transformation control и специальных control-компонентов Java. Процесс миграции этих control-компонентов осуществляется в точном соответствии с описанной ранее пошаговой процедурой для WLI-компонента database control. Тем не менее возможны некоторые отличия.

В случаях, когда в интерфейсных операциях используются сложные Java-типы (XMLBeans, JAXB-объекты, исключения и т. д.), созданный функциональностью WSDL to Java Mapper Facade редактора процессов BPEL код на WSDL и Java может нуждаться в некоторых изменениях. Например, входные параметры операций для составных типов могут быть введены как java.lang.Object и декларированы как xsd:anyType в mapper WSDL.

В таких случаях весьма эффективным способом может оказаться простая замена WSDL-интерфейса SCA-компонента mapper исходными WSDL-интерфейсами control-компонентов платформы WLI, которые были экспортированы вместе с JPD-описаниями на языке BPEL. Обычно эти существующие интерфейсы имеют правильные XSD-типы, заданные для каждой операции. Кроме того, повторное использование существующих интерфейсов минимизирует воздействие на артефакты типа reference partner и действия Invoke в BPM-реализации BPEL-процесса. Эта замена может привести к рассогласованию типов параметров операций между mapper WSDL и Java-реализацией этого mapper, в результате чего потребуется соответствующая синхронизация. Дополнительная модификация исходного кода может потребоваться для того, чтобы гарантировать корректное преобразование типов данных в Java-реализации артефакта mapper.


Миграция control-компонентов платформы WLI с помощью редактора процессов BPEL

В этом разделе демонстрируется использование редактора процессов BPEL для преобразования компонента process control в BPM-действие Invoke. Это единственный control-компонент, для которого данный подход применяется в нашем демонстрационном WLI-приложении. В разделе Заключение упоминаются другие control-компоненты, для которых можно использовать этот подход.

Компонент process control WLI предоставляет любому JPD-процессу платформы WLI доступ к другому JPD-процессу или подпроцессу платформы WLI. В нашем демонстрационном WLI-приложении основной JPD-процесс выполняет JPD-процесс isItemInStockSubProcess для проверки наличия товара и обновления информации о его запасах. Компонент process control создается для JPD-процесса isItemInStockSubProcess; основной JPD-процесс вызывает его с помощью узла Send компонента process control.

В мире BPM такое связывание значительно упрощено благодаря концепции ссылочного партнера (reference partner). Для процесса isItemInStockSubProcess на платформе BPM задается WSDL-интерфейс. В основном процессе задается ссылочный партнер для WSDL-интерфейса isItemInStockSubProcess; его вызов может осуществляться с помощью стандартного BPEL-действия Invoke.

Импорт BPEL в IBM BPM с помощью плагина BPEL Importer

Когда JPD-процесс платформы WLI экспортируется из WLI как JPD-описание на языке BPEL, он сопровождается парой WSDL-файлов, один из которых содержит определения WSDL-интерфейса для этого JPD-процесса. Когда JPD-описание на языке BPEL импортируется в Integration Designer с помощью плагина BPEL 2.0 importer, соответствующие WSDL-файлы также импортируются. Вследствие этого можно легко задать и сделать доступным для использования интерфейс для подпроцесса, например, isItemInStockSubProcess (таблице 10).

Таблица 10. Миграция из JPD-потока платформы WLI в BPEL-процесс платформы BPM
Исходный процесс платформы WLIМигрированный процесс платформы BPM
Компонент WLI database control (.JCX)

WLI database control (.JCX)
Компонент WLI database control (.JCX)

WLI database control (.JCX)

Корректировка WSDL-интерфейсов с помощью редактора процессов BPEL

Вследствие некоторых врожденных различий между платформой WLI и платформой IBM BPM может потребоваться определенная коррекция импортированных WSDL-артефактов и основного BPEL-процесса, чтобы они функционировали надлежащим образом. В частности, требует некоторой коррекции WSDL-интерфейс для JPD-процесса isItemInStockSubProcess. Этот экспортированный WSDL-артефакт содержит неверные местоположения схем, неопределенные типы и проприетарные атрибуты платформы WLI, поэтому эти WSDL-артефакты необходимо исправить с целью их согласования с исходным Java-интерфейсом WLI. Ниже показаны результаты сравнения интерфейса isItemInStockSubProcess до и после внесения некоторых исправлений.

В листинге 1 показан интерфейс исходного WLI-процесса в формате Java-интерфейса.

Листинг 1. Исходный Java-интерфейс платформы WLI
public interface isItemInStockSubProcessPControl extends 
com.bea.control.ProcessControl, com.bea.control.ControlExtension
{
    public boolean clientRequestwithReturn(com.bea.xml.XmlObject product);
}

На рис. 21 мигрированный интерфейс процесса платформы WLI показан в виде WSDL-интерфейса платформы BPM (тип порта SubProcess.isItemInStockSubProcessPT в файле isItemInStockSubProcess.wsdl), после первоначального импорта с использованием плагина BPEL Importer.

Рисунок 21. Интерфейс SubProcess.isItemInStockSubProcessPT в BPM перед коррекцией
SubProcess.isItemInStockSubProcessPT partner interface in BPM before correction

На рис. 22 мигрированный интерфейс процесса платформы WLI показан в виде WSDL-интерфейса платформы BPM после коррекции

Рисунок 22. Интерфейс SubProcess.isItemInStockSubProcessPT в BPM после коррекции

После коррекции WSDL-интерфейса единственная необходимая модификация состоит в выполнении действия Assign с целью коррекции переменной запроса и ответа для действия Invoke. Для этого узла Invoke мы выбрали опцию Use data type variables mapping, что гарантирует надлежащую передачу пространства XML-имен. После установки флажка для этой опции просто выберите соответствующие переменные "read from" и "store into" для входа и выхода действия Invoke. Эти переменные "read from" и "store into" уже должны существовать. Как указывалось выше, обычно до и после действия Invoke имеется по одному действию Assign. При использовании опции variables mapping эти действия Assign можно проигнорироватьь (при условии отсутствия ошибок).

Рисунок 23. Обновленное действие Invoke - IsItemInStockSubProcess
Updated IsItemInStockSubProcess Invoke

Заключение

В статье описаны существующие подходы к миграции control-компонентов платформы WLI на платформу IBM BPM. Рассмотрено использование мастера внешних сервисов для конфигурирования JDBC-адаптера WebSphere в качестве замены для WLI-компонента database control. Кроме того, описано использование утилиты WLI migration utility для преобразования WLI-компонента database control в компонент типа Java SCA, а также использование редактора процессов BPEL для миграции WLI-компонента process control в BPEL-действие Invoke.

Платформа WLI имеет множество control-компонентов, и миграцию большей части широко используемых control-компонентов можно выполнить с помощью подходов, описанных в данной статье. Однако существует ряд control-компонентов платформы WLI, не рассмотренных в этой статье. В таблице 11 приводятся рекомендации по миграции этих control-компонентов на платформу IBM BPM.

Таблица 11. Рекомендации по миграции control-компонентов платформы WLI
control-компонент платформы WLI Описание Миграционный подход
AquaLogic Service Bus control Обеспечивает соединение с шиной AquaLogic Service Bus В настоящее время не поддерживается
Database control Интегрируется с базами данных с помощью JDBC Мастер внешних сервисов или утилита WLI migration utility
Dynamic transformation control Предоставляет бизнес-процессу возможность динамически выбирать преобразование, вызываемое в процессе исполнения Утилита WLI migration utility
ebXML control Этот control-компонент поддерживает сервисы ebXML версий 1.0 и 2.0 (обеспечивают обмен B2B-сообщениями) Сервисы ebXML предоставляются B2B-продуктами IBM Sterling®
EJB control Интегрируется с существующими EJB-компонентами
Email control Позволяет бизнес-процессу отсылать электронные письма Мастер внешних сервисов
File control Позволяет читать, писать и добавлять файлы в файловой системе Мастер внешних сервисов
Http control Позволяет бизнес-процессу отправлять HTTP/HTTPS-запросы по URL-адресу и получать заголовок и тело соответствующего HTTP-ответа Редактор процессов BPEL
Java control Специальные компоненты многократного использования В настоящее время не поддерживается
JMS control Позволяет бизнес-процессу отправлять и получать JMS-сообщения Редактор процессов BPEL
Message Broker controls Предоставляет возможности публикации и подписывания для JMS Редактор процессов BPEL
MQSeries control Позволяет бизнес-процессу отправлять и получать сообщения с помощью WebSphere MQ Редактор процессов BPEL
Process control Интегрируется с другими бизнес-процессами В настоящее время не поддерживается
RosettaNet control Отправляет и получает B2B-сообщения RosettaNet Сервисы RosettaNet (обмен сообщениями) предоставляются B2B-продуктами Sterling
Service roker control Динамическая версия control-компонента web service control Редактор процессов BPEL
Timer control Уведомляет бизнес-процесс об истечении заданного периода времени Редактор процессов BPEL
TPM control Предоставляет интерфейс к базе данных Trading Partner Manager для извлечения данных типа Trading Partner (торговый партнер). В настоящее время не поддерживается
Web service control Используется для подключения к веб-сервису с помощью WSDL-файла Редактор процессов BPEL
WLI JMS control Подобен control-компоненту JMS control, но имеет некоторые дополнительные функции Редактор процессов BPEL
WLI timer control Расширение control-компонента timer control Редактор процессов BPEL
Worklist controls Обеспечивает автоматическое манипулирование задачами, создание задач и управление задачами В настоящее время не поддерживается
XML MetaData Cache control Интегрируется с XML MetaData Cache платформы WLI В настоящее время не поддерживается

Загрузка

ОписаниеИмяРазмер
WLI workspace for demo applicationWLIDevWorksDemo.zip14MB
Migrated demo app with SCA JDBC clientWLIDemoApp_BPM_JDBC_SCA_MIGR_UTIL.zip21MB
Migrated demo app with BPM JDBC adapterWLIDemoApp_BPM_JDBC_BPM_Adapter.zip28MB

Ресурсы

Комментарии

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=964171
ArticleTitle=Миграция приложений с платформы Oracle WebLogic Integration на платформу IBM Business Process Manager Advanced: Часть 3. Миграция control-компонентов платформы WLI на платформу IBM BPM
publish-date=02262014