Компания IBM
Опубликован: 14.08.2008 | Доступ: свободный | Студентов: 1089 / 150 | Оценка: 4.75 / 3.75 | Длительность: 27:55:00
Лекция 4:

Моделирование. Бизнес-процесс

4.5.3 Экспорт процесса RequestExternalReports в виде процесса BPEL4WS

Новый бизнес-процесс RequestExternalReports будет выполняться в WebSphere Business Integration Server Foundation. За экспорт процесса в формат BPEL4WS отвечает ИТ-специалист. Бизнес-аналитик эту задачу не выполняет.

ИТ-специалисту, отвечающему за экспорт процесса RequestExternalReports в BPEL следует прочитать главу 5 книги "BPEL4WS Business processes with WebSphere Business Integration: Understanding, Modeling, Migrating", SG24-6381. В этой главе рассматриваются соответствия между элементами WebSphere Business Integration Modeler и элементами BPEL4WS. Глава 6 упомянутой книги поможет вам понять, какие артефакты экспортируются из WebSphere Business Integration Modeler в BPEL4WS.

Проверка модели процесса

Перед экспортом нам нужно проверить процесс RequestExternalReports на соответствие нотации BPEL. Мы снова увидим многочисленные предупреждения, которые можно игнорировать, и восемь ошибок, которые нужно исправить.

В WebSphere Business Integration Modeler переключитесь в технологический режим BPEL и откройте процесс RequestExternalReports в редакторе процессов. В данном технологическом режиме мы увидим специфичные для BPEL ошибки и предупреждения. Если в модели процесса отсутствует информация, которая является обязательной для BPEL4WS, или если элементы включают в себя объекты и параметры, не поддерживаемые в BPEL4WS, WebSphere Business Integration Modeler выводит список возникающих проблем. Как и в случае с режимом FDL, мы должны исправить эти ошибки перед экспортированием модели, но мы можем игнорировать предупреждения.

Существует ряд практических методов, которые можно применять в BPEL-режиме, при проверке модели при помощи WebSphere Business Integration Modeler Advanced Edition v5.1.1. Некоторые из них также применимы и к FDL-режиму.

  1. Убедитесь в том, что каждый входной критерий соответствует одному и не более чем одному выходному критерию10Это относится и к FDL-режиму.. Иными словами, каждый входной критерий должен запускать один конкретный выходной критерий. Это соответствует WSDL-операции, которая может иметь только одно выходное сообщение. Если вы должны сочетать один входной критерий с несколькими выходными, попробуйте использовать элемент-решение, чтобы смоделировать логику ветвления с исключением.

    С этой проблемой в процессе RequestExternalReports связаны четыре ошибки.

    Совет. Убедитесь, что процесс RequestExternalReports открыт, а все изменения сохранены. Щелкните по сообщению об ошибке - и соответствующий элемент в модели процесса будет выделен цветом, показывая, где находится ошибка.
    Эти ошибки объясняются тем, что входные критерии локальных задач ManualSelectAssessor и RequestAssessment не связаны ни с одним выходным критерием. Для исправления проблемы переключитесь на пользовательский профиль Advanced, выберите пункт Advanced Output Logic (Дополнительная логика выходов) в представлении Attributes (Атрибуты), выберите пункт Output criteria (Выходной критерий), который вам нужно связать, и поставьте галочки напротив пунктов Input criteria (Входной критерий). Галочки должны быть установлены в обоих полях. На рис. 4.78 показаны правильно установленные параметры.
    Параметры окна Advanced Output Logic (Дополнительная логика выходов)

    увеличить изображение
    Рис. 4.78. Параметры окна Advanced Output Logic (Дополнительная логика выходов)
  2. Повторите указанные действия для элементов ManualSelectAssessor и RequestAssessment и сохраните процесс. Теперь, после того как мы отфильтруем сообщения об ошибках, у нас должно остаться пять ошибок.
  3. Убедитесь, что каждый процесс имеет только один входной критерий и один выходной критерий. Это можно проверить, перейдя на закладку спецификаций в редакторе процессов. Например, чтобы проверить, является ли критерий входа единственным, выберите пункт Input specification (Спецификация входов) \to Input Logic (Логика входов). Убедитесь, что в таблице Input settings (Параметры входов) имеется только один критерий входа, как это показано на рис. 4.79.
    Параметр критерия входа для процесса

    увеличить изображение
    Рис. 4.79. Параметр критерия входа для процесса
  4. Если вы хотите, чтобы для задач и служб WebSphere Business Integration Modeler сгенерировал порт с несколькими операциями, определите для задачи или служ- бы несколько критериев входа. Каждый критерий входа должен быть связан с од- ним и не более чем, одним критерием выхода.
  5. Убедитесь, что в модели процесса нет нижестоящих задач, связанных с вышестоя- щими задачами обратной связью, что разрешено в WebSphere Business Integration Modeler, но не разрешено в BPEL. То же относится и к FDL-режиму. Используйте вместо этого цикл while.

    В процессе RequestExternalReports есть одна ошибка такого типа - это выход No элемента-решения Confirmed?, который соединен со входом элемента ManualSelectAssessors, как показано на рис. 4.80.

    Нижестоящая задача, связанная с вышестоящей

    увеличить изображение
    Рис. 4.80. Нижестоящая задача, связанная с вышестоящей
    Чтобы устранить эту проблему, мы добавим на схему локальное хранилище (LocalRepository) и соединим выход No элемента Confirmed? со входом этого хранилища, как показано на рис. 4.81. Будут добавлены фиктивные данные типа String.
    Измененная часть процесса RequestExternalReports

    увеличить изображение
    Рис. 4.81. Измененная часть процесса RequestExternalReports
    Мы изменим вход Input:2 элемента ManualSelectAssessors так, чтобы он получал данные из хранилища. (Сохраните процесс перед внесением изменений в элемент ManualSelectAssessors). Параметры этого элемента приведены на рис. 4.82.
    Входные параметры локальной задачи ManualSelectAssessor

    увеличить изображение
    Рис. 4.82. Входные параметры локальной задачи ManualSelectAssessor
  6. Убедитесь, что для связанных объектных входов и выходов двух узлов указаны одинаковые значения минимального и максимального числа элементов. Это также относится к FDL-режиму:
    • объектный выход Задачи1 связан с объектным входом Задачи2;
    • объектный выход Задачи1 имеет минимальное число элементов 3 и максимальное число элементов 5;
    • минимальное число необходимых элементов для объектного входа Задачи2 должно быть равно 3, а максимальное число должно быть равно 5. Иначе будет сгенерирован неверный код BPEL.
  7. Для элементов-решений вы должны определить условие для каждой из выходных ветвей. Это также относится к FDL-режиму.

    У нас с этим типом связаны четыре ошибки, которые объясняются тем, что не указаны условия перехода для двух узлов принятия решения. Для исправления проблемы мы добавим к элеме нтам-решениям фиктивный элемент-данные типа String и определим условия, используя Expression Builder. Выполните следующие шаги:

    • Убедитесь, что вы находитесь в режиме Advanced и процесс RequestExternalReports сохранен.
    • Выберите элемент Any Assessor? \to Представление Attributes (Атрибуты) \to Outputs (Выходы) \to Select an output (Выбрать выход) \to Associated data (Связанные данные) \to String.
    • Выберите пункт Output Branches (Выходные ветви) \to Yes (Да) \to Details (Подробно) \to Contents (Содержание) \to Output:2 (Или другое используемое имя) \to Edit Expression (Редактировать выражение) ( рис. 4.83).
      Задание условий для выходных ветвей элементов-решений

      Рис. 4.83. Задание условий для выходных ветвей элементов-решений
    • В открывшемся окне редактора выражений выберите First term (Первый член), укажите Modeling artifact (Моделируемый артефакт). Найдите и выберите элемент Input элемента Any Accessor. В поле Operator (Оператор) выберите пункт Is equal to (Равен). В поле Second term (Второй член) укажите Text (Текст), в поле Second term details (Подробнее о втором члене) укажите Yes, нажмите OK. ( рис. 4.84).
      Использование Expression Builder для создания условия

      увеличить изображение
      Рис. 4.84. Использование Expression Builder для создания условия
  8. Возможно, вам понадобится исправить еще какие-то ошибки. Может быть, с некоторыми коннекторами входов и выходов не связаны данные? Поищите незатененные серым цветом отметки входов и выходов во входных и выходных критериях. Преобразуйте их в тип String и заново соедините локальные элементы ( рис. 4.85).
    Другие ошибки, которые нужно исправить перед экспортом модели в BPEL

    увеличить изображение
    Рис. 4.85. Другие ошибки, которые нужно исправить перед экспортом модели в BPEL
  9. Когда вы свяжете данные String со всеми соединениями, вы можете увидеть ошибку DBL110014E - mismatched minimum and maximum number of items (Несовпадение минимального и максимального числа элементов). Измените вход элемента RequestAvailability, чтобы минимальное и максимальное число элементов было равно 2.
  10. Когда все изменения будут сохранены, снова выполните статический анализ, чтобы убедиться, что все соединения работоспособны.

Некоторые элементы модели WebSphere Business Integration Modeler не могут быть преобразованы в BPEL либо из-за того, что они не имеют эквивалентных конструкций в BPEL, либо из-за того, что семантика сходных конструкций из BPEL отличается. Это элементы Notification broadcaster, Notification receiver, Observer, Timer, цикл For, цикл Do-while и глобальное хранилище. Мы не можем использовать эти элементы в BPEL-режиме.

Экспортирование процесса

После исправления всех ошибок сохраните процесс. Если ошибок не возникает, мы можем экспортировать процесс в BPEL, даже если остаются предупреждения.

  1. Щелкните правой кнопкой мыши по процессу RequestExternalReports в дереве проектов и выберите пункт меню Export (Экспорт).
  2. В мастере экспорта укажите пункт WebSphere Business Integration Server Foundation V5.1 (BPEL, WSDL, XSD), как показано на рис. 4.86, и нажмите Next (Далее).
    Мастер экспорта WebSphere Business Integration Modeler - шаг 1

    Рис. 4.86. Мастер экспорта WebSphere Business Integration Modeler - шаг 1
  3. В следующем окне укажите директорию для экспорта, нажав кнопку Browse (Обзор). Выберите пункт Export Specific objects (Экспорт указанных объектов) и раскройте дерево проектов. Выберите процесс RequestExternalReports и нажмите OK.
    Мастер экспорта WebSphere Business Integration Modeler - шаг 2

    Рис. 4.87. Мастер экспорта WebSphere Business Integration Modeler - шаг 2
  4. Нажмите Next (Далее), чтобы указать режим выполнения процесса. Выберите Long-running (receive/reply) [Долговременный (получение/ответ)] и нажмите Finish (Готово).
  5. Если при экспорте возникают ошибки, следуйте инструкциям в сообщениях об ошибках.

Теперь вы можете импортировать файлы в WebSphere Studio Application Development Integration Edition для разработки. Обращайтесь к "Реализация. Создание процесса Request External Reports" , "Создание процесса Request External Reports".

Примечание. Копия экспортированного кода BPEL находится в директории .\SG24-6636\Modeler\BPEL Export. Существует также zip-файл проекта, содержащего процесс после исправлений, связанных с BPEL, который вы можете импортировать и изучить: .\SG24-6636\Modeler\Projects\PostBPEL.zip.

4.6 Заключение

В этой лекции мы показали, как использовать WebSphere Business Integration Modeler для моделирования бизнес-процесса, эмуляции и выполнения экспорта в FDL и BPEL для последующей реализации. Следующий этап - это передача проекта ИТ-архитектору для проектирования системы и выбора архитектуры решения с использованием инструментов от Rational.

Надежда Белякова
Надежда Белякова
Россия
Pavel Pelevin
Pavel Pelevin
Украина, Одесса