О начале обучения |
Моделирование. Бизнес-процесс
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-режиму.
- Убедитесь в том, что каждый входной критерий соответствует одному и не более
чем одному выходному критерию10Это относится и к
FDL-режиму.. Иными словами, каждый входной критерий
должен запускать один конкретный выходной критерий. Это соответствует WSDL-операции,
которая может иметь только одно выходное сообщение. Если вы должны
сочетать один входной критерий с несколькими выходными, попробуйте использовать
элемент-решение, чтобы смоделировать логику ветвления с исключением.
С этой проблемой в процессе RequestExternalReports связаны четыре ошибки.
Совет. Убедитесь, что процесс RequestExternalReports открыт, а все изменения сохранены. Щелкните по сообщению об ошибке - и соответствующий элемент в модели процесса будет выделен цветом, показывая, где находится ошибка.Эти ошибки объясняются тем, что входные критерии локальных задач ManualSelectAssessor и RequestAssessment не связаны ни с одним выходным критерием. Для исправления проблемы переключитесь на пользовательский профиль Advanced, выберите пункт Advanced Output Logic (Дополнительная логика выходов) в представлении Attributes (Атрибуты), выберите пункт Output criteria (Выходной критерий), который вам нужно связать, и поставьте галочки напротив пунктов Input criteria (Входной критерий). Галочки должны быть установлены в обоих полях. На рис. 4.78 показаны правильно установленные параметры.
увеличить изображение
Рис. 4.78. Параметры окна Advanced Output Logic (Дополнительная логика выходов) - Повторите указанные действия для элементов ManualSelectAssessor и RequestAssessment и сохраните процесс. Теперь, после того как мы отфильтруем сообщения об ошибках, у нас должно остаться пять ошибок.
- Убедитесь, что каждый процесс имеет только один входной критерий и один выходной критерий. Это можно проверить, перейдя на закладку спецификаций в редакторе процессов. Например, чтобы проверить, является ли критерий входа единственным, выберите пункт Input specification (Спецификация входов) Input Logic (Логика входов). Убедитесь, что в таблице Input settings (Параметры входов) имеется только один критерий входа, как это показано на рис. 4.79.
- Если вы хотите, чтобы для задач и служб WebSphere Business Integration Modeler сгенерировал порт с несколькими операциями, определите для задачи или служ- бы несколько критериев входа. Каждый критерий входа должен быть связан с од- ним и не более чем, одним критерием выхода.
- Убедитесь, что в модели процесса нет нижестоящих задач, связанных с вышестоя-
щими задачами обратной связью, что разрешено в WebSphere Business Integration
Modeler, но не разрешено в BPEL. То же относится и к FDL-режиму. Используйте
вместо этого цикл while.
В процессе RequestExternalReports есть одна ошибка такого типа - это выход No элемента-решения Confirmed?, который соединен со входом элемента ManualSelectAssessors, как показано на рис. 4.80.
Чтобы устранить эту проблему, мы добавим на схему локальное хранилище (LocalRepository) и соединим выход No элемента Confirmed? со входом этого хранилища, как показано на рис. 4.81. Будут добавлены фиктивные данные типа String. Мы изменим вход Input:2 элемента ManualSelectAssessors так, чтобы он получал данные из хранилища. (Сохраните процесс перед внесением изменений в элемент ManualSelectAssessors). Параметры этого элемента приведены на рис. 4.82. - Убедитесь, что для связанных объектных входов и выходов двух узлов указаны
одинаковые значения минимального и максимального числа элементов. Это также
относится к FDL-режиму:
- объектный выход Задачи1 связан с объектным входом Задачи2;
- объектный выход Задачи1 имеет минимальное число элементов 3 и максимальное число элементов 5;
- минимальное число необходимых элементов для объектного входа Задачи2 должно быть равно 3, а максимальное число должно быть равно 5. Иначе будет сгенерирован неверный код BPEL.
- Для элементов-решений вы должны определить условие для каждой из выходных
ветвей. Это также относится к FDL-режиму.
У нас с этим типом связаны четыре ошибки, которые объясняются тем, что не указаны условия перехода для двух узлов принятия решения. Для исправления проблемы мы добавим к элеме нтам-решениям фиктивный элемент-данные типа String и определим условия, используя Expression Builder. Выполните следующие шаги:
- Убедитесь, что вы находитесь в режиме Advanced и процесс RequestExternalReports сохранен.
- Выберите элемент Any Assessor? Представление Attributes (Атрибуты) Outputs (Выходы) Select an output (Выбрать выход) Associated data (Связанные данные) String.
- Выберите пункт Output Branches (Выходные ветви) Yes (Да) Details (Подробно) Contents (Содержание) Output:2 (Или другое используемое имя) Edit Expression (Редактировать выражение) ( рис. 4.83).
- В открывшемся окне редактора выражений выберите First term (Первый член), укажите Modeling artifact (Моделируемый артефакт). Найдите и выберите элемент Input элемента Any Accessor. В поле Operator (Оператор) выберите пункт Is equal to (Равен). В поле Second term (Второй член) укажите Text (Текст), в поле Second term details (Подробнее о втором члене) укажите Yes, нажмите OK. ( рис. 4.84).
- Возможно, вам понадобится исправить еще какие-то ошибки. Может быть, с некоторыми
коннекторами входов и выходов не связаны данные? Поищите незатененные
серым цветом отметки входов и выходов во входных и выходных критериях.
Преобразуйте их в тип String и заново соедините локальные элементы (
рис.
4.85).
увеличить изображение
Рис. 4.85. Другие ошибки, которые нужно исправить перед экспортом модели в BPEL - Когда вы свяжете данные String со всеми соединениями, вы можете увидеть ошибку DBL110014E - mismatched minimum and maximum number of items (Несовпадение минимального и максимального числа элементов). Измените вход элемента RequestAvailability, чтобы минимальное и максимальное число элементов было равно 2.
- Когда все изменения будут сохранены, снова выполните статический анализ, чтобы убедиться, что все соединения работоспособны.
Некоторые элементы модели WebSphere Business Integration Modeler не могут быть преобразованы в BPEL либо из-за того, что они не имеют эквивалентных конструкций в BPEL, либо из-за того, что семантика сходных конструкций из BPEL отличается. Это элементы Notification broadcaster, Notification receiver, Observer, Timer, цикл For, цикл Do-while и глобальное хранилище. Мы не можем использовать эти элементы в BPEL-режиме.
Экспортирование процесса
После исправления всех ошибок сохраните процесс. Если ошибок не возникает, мы можем экспортировать процесс в BPEL, даже если остаются предупреждения.
- Щелкните правой кнопкой мыши по процессу RequestExternalReports в дереве проектов и выберите пункт меню Export (Экспорт).
- В мастере экспорта укажите пункт WebSphere Business Integration Server Foundation V5.1 (BPEL, WSDL, XSD), как показано на рис. 4.86, и нажмите Next (Далее).
- В следующем окне укажите директорию для экспорта, нажав кнопку Browse (Обзор). Выберите пункт Export Specific objects (Экспорт указанных объектов) и раскройте дерево проектов. Выберите процесс RequestExternalReports и нажмите OK.
- Нажмите Next (Далее), чтобы указать режим выполнения процесса. Выберите Long-running (receive/reply) [Долговременный (получение/ответ)] и нажмите Finish (Готово).
- Если при экспорте возникают ошибки, следуйте инструкциям в сообщениях об ошибках.
Теперь вы можете импортировать файлы в WebSphere Studio Application Development Integration Edition для разработки. Обращайтесь к "Реализация. Создание процесса Request External Reports" , "Создание процесса Request External Reports".
4.6 Заключение
В этой лекции мы показали, как использовать WebSphere Business Integration Modeler для моделирования бизнес-процесса, эмуляции и выполнения экспорта в FDL и BPEL для последующей реализации. Следующий этап - это передача проекта ИТ-архитектору для проектирования системы и выбора архитектуры решения с использованием инструментов от Rational.