Привет всем, это продолжение моего предыдущего поста о том, как использовать консоль jBPM . Основная идея этого поста состоит в том, чтобы описать некоторые из наиболее распространенных конфигураций, которые вы должны будете выполнить с консолью jBPM NG, чтобы использовать ее в своей собственной компании. Но прежде чем углубляться в технические детали, мы рассмотрим различия между KIE Workbench (KIE-WB) и самой консолью jBPM NG. Оба приложения требуют одинаковых конфигураций, и хорошо понимать, когда выбирать то или другое. Мы будем освещать эти темы на бесплатных семинарах в Лондоне.
Вступление
Если вы посмотрите на исходный код проекта и документацию, то заметите, что создается несколько проектов, которые предоставляют полный набор инструментов для Drools и jBPM. Благодаря модульному подходу, который мы приняли для создания инструментов, вы можете выбирать между различными дистрибутивами в зависимости от ваших потребностей. Консоль jBPM NG может рассматриваться как распределение набора пакетов, связанных только с BPM. KIE Workbench (KIE-WB) — это полный дистрибутив, который содержит все компоненты, которые мы создаем, поэтому в нем вы найдете все модули BPM и Rules. Если к платформе будет добавлено больше модулей, KIE-WB будет содержать их.
Некоторое время назад Майкл Анстис опубликовал статью в blog.athico.com, чтобы объяснить этот переход: http://blog.athico.com/2013/06/goodbye-guvnor-hello-drools-workbench.html Этот пост был предназначен для Guvnor пользователи, чтобы они могли понять переход между Drools 5.5 и Drools 6. Таким образом, цель следующего раздела — объяснить то же самое, но для пользователей jBPM, пытающихся объединить все концепции вместе.
Распределение проектов
Предыдущий упомянутый блог объясняет большинство компонентов, которые мы создаем сейчас, но следующее изображение добавляет некоторые детали на стороне BPM:
Несколько быстрых заметок об этом изображении:
- Uberfire и Guvnor — это фреймворки, а не дистрибутивы.
- Мы сохраняем имя Гувнор за то, что оно изначально предназначалось. Guvnor — это структура, которая определяет всю внутреннюю автоматизацию и организацию проекта. Guvnor — это внутренняя структура, которую мы будем использовать, чтобы обеспечить интеллектуальный уровень для определения того, как проекты и все ресурсы знаний будут управляться и поддерживаться.
- KIE-WB-Common не является дистрибутивом сам по себе, но может, потому что он содержит все общие биты между всеми дистрибутивами.
- Drools Workbench содержит только инструменты разработки, связанные с Правилами, обратите внимание, что так же, как и Guvnor, он не обеспечивает среду выполнения для ваших правил. Это может быть добавлено в будущем, но в 6.0 нет.
- Консоль jBPM NG заменила старую консоль jBPM GWT
- Разница между именами (Drools Workbench и jBPM Console NG) обусловлена тем фактом, что jBPM Console NG предоставляет все механизмы времени выполнения для фактического запуска ваших бизнес-процессов и всех активов, связанных с ними.
- Обратите внимание, что консоль jBPM NG использует некоторые из модулей Drools-WB, а также интегрируется с jBPM Designer и Form Modeller.
- KIE Workbench содержит все компоненты внутри платформы, а также добавляет удаленные службы для взаимодействия с процессами.
- Обратите внимание, что удаленная служба в 6.x предназначена только для BPM, это означает, что мы также можем предоставить дистрибутив jBPM Console NG с этими службами, это не является приоритетом, но это можно сделать, если кто-то считает, что это хорошая идея.
- Вы можете найти все эти проекты в организации droolsjbpm в github: http://github.com/droolsjbpm
- Все конфигурации и блоги, связанные с консолью jBPM NG, также применимы для KIE Workbench.
- Установщик jBPM 6.0 будет поставляться с KIE Workbench в комплекте, и поэтому в большинстве моих сообщений будут показаны скриншоты KIE-WB вместо jBPM Console NG.
Конфигурации и Развертывание
Если вы посмотрите на репозитории исходного кода в Github, то обнаружите, что jBPM Console NG, Drools Workbench и Kie Workbench содержат проект под названием * -distribution-wars . Эти проекты отвечают за создание приложений, которые будут распространяться для различных контейнеров сервлетов и серверов приложений. На данный момент мы предоставляем пакеты для Tomcat 7, JBoss AS 7 и JBoss EAP 6.1. (Если вы разработчик, вы также можете запускать эти приложения с помощью GWT Hosted Mode, который запускает сервер Jetty и автоматически развертывает приложение, чтобы его можно было легко отлаживать.)
Здесь мы увидим, как развернуть и настроить приложение для работы в JBoss AS 7. Очевидно, что вам это не нужно, если установщик jBPM сделает это за вас. Но всегда полезно знать, что происходит под капотом, на тот случай, если вы предпочитаете устанавливать приложения вручную.
При настройке приложения для развертывания необходимо учитывать три момента:
- Пользователи / Роли / Группы
- Специфичные для домена (пользовательские) соединители
- Профиль JBoss AS 7
Для простоты я позаимствовал JBoss AS 7, настроенный Maciej, и развернул последний снимок KIE Workbench, так что вы можете загрузить его и оттуда просмотреть его конфигурации. Вы можете скачать его здесь:
Пользователи / Роли / Группы
По умолчанию KIE-Workbench использует для работы настроенные пользователи JBoss AS. Чтобы создать нового пользователя, нам нужно использовать
Сценарий ./add-user.sh находится в каталоге / bin /. Используя этот сценарий, мы будем создавать всех пользователей, требуемых нашими бизнес-процессами, и по этой причине мы будем также назначать им группы и роли.
Как вы можете видеть на предыдущем изображении, используя скрипт ./add-user.sh, вы можете создать нового пользователя для приложения (первые две опции: опция B и пустая область). Обратите внимание, что вам нужно использовать разные строки для имени пользователя и для пароля. На данный момент вы можете создавать пользователей с ролью администратора, чтобы у нее был доступ ко всем экранам инструмента, а затем вы могли писать группы, к которым принадлежит пользователь. В этом случае у пользователя salaboy есть Role: admin, и он входит в ИТ-группу. Есть несколько запрещенных слов, которые нельзя использовать в качестве имен групп. Пока что не используйте «аналитик», «админ», «разработчик» для имен групп.
Специфичные для домена (пользовательские) задачи / соединители
Специфичные для домена соединители — это способ интеграции ваших бизнес-процессов с внешними службами, которые могут находиться как внутри, так и за пределами вашей компании. Эти разъемы считаются техническими активами и поэтому должны обрабатываться техническими пользователями. В большинстве случаев рекомендуется не изменять / модифицировать соединители во время работы приложения, и по этой причине эти соединители должны быть предоставлены для использования приложением во время выполнения.
Для использования Custom Connector необходимы три вещи:
- Обеспечить реализацию интерфейса WorkItemHandler, который будет выполняться во время выполнения.
- Привязать реализацию к имени задачи службы
- Создайте дескриптор WorkItem внутри инструмента
Чтобы предоставить эти три точки конфигурации, вы можете взглянуть на пример Customer Relationship в репозитории jbpm-playstation .
Основная идея здесь — создать отдельный проект, который содержит реализации workItems, например:
CreateCustomerWorkItemHandler , вам нужно будет скомпилировать этот проект с помощью maven и установить полученный файл jar внутри приложения KIE-WB. Для этого просто скопируйте customer-services-workitems-1.0-SNAPSHOT.jar в каталог WEB-INF / lib приложения kie-wb.war. В этом примере реализации workItemHandler взаимодействуют с общедоступной веб-службой, которую вы можете проверить здесь , поэтому вам потребуется подключение к Интернету, чтобы попробовать этот пример.
Также обратите внимание на то, что внутри проекта взаимоотношений с клиентами существуют некоторые высокоуровневые отображения специфичных для домена задач, которые можно использовать в нашем проекте взаимоотношений с клиентами -> WorkItemDefinitions.wid . Эта конфигурация в основном добавит вам сервисные задачи в палитре Process Designer:
Последний шаг — привязать отображение высокого уровня к их реализации для этой среды. Вы можете сделать это, добавив новые записи в файл WEB-INF / classes / META-INF / CustomWorkItemHandlers.conf, для этого примера нам просто нужно добавить следующие записи:
1
2
3
4
5
6
7
8
9
|
... "CreateCustomer" : new org.jbpm.customer.services.CreateCustomerWorkItemHandler(), "AddCustomerComment" : new org.jbpm.customer.services.AddCustomerCommentsWorkItemHandler(), "ManagersReport" : new org.jbpm.customer.services.ManagersReportWorkItemHandler(), ... |
Примечание о профиле JBoss AS 7
Чтобы запустить KIE Workbench, вам нужно запустить его с полным профилем JBoss AS7, поэтому, если вы устанавливаете его с использованием свежего JBoss AS7, пожалуйста, не забудьте указать полный проект при использовании сценария ./standalone.sh. :
1
|
. /standalone .sh --server-config=standalone-full.xml |
Скачать
Вы можете загрузить предварительно установленную версию KIE-WB, в которой вы можете клонировать репозиторий jbpm-playshop, содержащий пример (Authoring -> Administration, а затем клонировать репозиторий с помощью URL-адреса jbpm-piano: https://github.com/droolsjbpm. / jbpm-площадка).
Эта предварительно установленная версия содержит workItemHandlers, уже установленные и настроенные для примера «Отношения с клиентами», но вы можете внести некоторые изменения и обновить их, если это необходимо.
Также создано два пользователя:
1
2
|
User /Password : jbpm /jbpm6 (Groups: IT, HR, Accounting, etc) User /Password : salaboy /salaboy123 (Groups: IT) |
Пожалуйста, попробуйте и дайте мне знать, если это работает для вас.
Есть несколько мест для Drools & jBPM Free Workshop Завтра и в четверг. Если вы планируете помочь, пожалуйста, напишите мне письмо на salaboy (at) redhat (dot) com. Подробнее об этом смотрите здесь.