1. Введение
В этом руководстве мы обсудим систему управления бизнес-процессами (BPM) и ее реализацию на Java в виде системы jBPM .
2. Система управления бизнес-процессами
Мы можем определить управление бизнес-процессами как одну из тех областей, сфера деятельности которых выходит за рамки развития и касается всех аспектов компании.
BPM обеспечивает прозрачность функциональных процессов компании. Это позволяет нам найти оптимальный поток, изображенный на блок-схеме, с помощью итеративного улучшения. Улучшенный поток увеличивает прибыль и снижает затраты.
BPM определяет свои цели, жизненный цикл, практики и общий язык между всеми его участниками, т. е. бизнес-процессы.
3. Система jBPM
jBPM — это реализация системы BPM на Java. Это позволяет нам создавать поток бизнес-процессов, выполнять его и отслеживать его жизненный цикл. Ядром jBPM является механизм рабочего процесса, написанный на Java, который предоставляет нам инструмент для создания и выполнения потока процесса с использованием новейших спецификаций нотации моделирования бизнес-процессов (BPMN) 2.0.
jBPM ориентирован в основном на исполняемый бизнес-процесс. Эти процессы имеют достаточно деталей, чтобы их можно было выполнять в механизме рабочего процесса.
Вот пример графической блок-схемы порядка выполнения нашей модели процесса BPMN, чтобы помочь нам понять:
- Мы начинаем выполнение потока, используя начальный контекст, обозначенный зеленым начальным узлом.
- Сначала будет выполняться Задача 1
- По завершении задачи 1 приступаем к задаче 2.
- Выполнение останавливается при обнаружении красного конечного узла.
4. Плагины IDE
для проекта jBPM
Давайте посмотрим, как установить плагины для создания проекта jBPM и процесса BPMN 2.0 в Eclipse и IntelliJ IDEA.
4.1. Плагин Eclipse
Нам нужно установить плагин для создания проектов jBPM. Давайте выполним следующие шаги:
- В разделе «
Помощь
» нажмите «Установить новое программное обеспечение ».
- Добавьте сайт обновлений Drools и jBPM
- Примите условия лицензионного соглашения и завершите установку плагина.
- Перезапустите затмение
После перезапуска Eclipse нам нужно перейти в Windows -> Preferences -> Drools -> Drools Flow Nodes
:
После выбора всех параметров мы можем нажать «Применить и закрыть». Теперь мы готовы создать наш первый проект jBPM .
4.2. Плагин IntelliJ IDEA
В IntelliJ IDEA по умолчанию установлен плагин jBPM, но он присутствует только в Ultimate, а не в опции Community.
Нам просто нужно включить его, нажав Configure -> Settings -> Plugins -> Installed -> JBoss jBPM
:
В настоящее время для этой IDE нет дизайнера процессов BPMN 2.0, хотя мы можем импортировать файлы *.bpmn
из любого другого дизайнера и запускать их.
5. Пример «Привет, мир»
Давайте испачкаем руки в создании простого проекта Hello World.
5.1. Создать проект jBPM
Чтобы создать новый проект jBPM в Eclipse, мы перейдем в File -> New -> Other -> jBPM Project (Maven)
. Указав название нашего проекта, мы можем нажать «Готово». Eclipse сделает за нас всю тяжелую работу и загрузит необходимые зависимости Maven, чтобы создать для нас пример проекта jBPM.
Чтобы создать то же самое в IntelliJ IDEA, мы можем перейти в File -> New -> Project -> JBoss Drools
. IDE загрузит все необходимые зависимости и поместит их в папку lib
проекта.
5.2. Создайте модель процесса Hello World
Давайте создадим небольшую модель процесса BPM, которая печатает «Hello World» в консоли.
Для этого нам нужно создать новый файл BPMN в src/main/resources
:
Файл имеет расширение .bpmn
и открывается в дизайнере BPMN:
На левой панели дизайнера перечислены узлы, которые мы выбрали ранее при настройке плагина Eclipse. Мы собираемся использовать эти узлы для создания нашей модели процесса. Средняя панель — это рабочая область, где мы будем создавать модели процессов. Справа находится вкладка свойств, где мы можем установить свойства процесса или узла.
В этой модели HelloWorld
мы будем использовать:
- Стартовое событие — требуется для запуска экземпляра процесса.
- Задача сценария — включает фрагменты кода Java.
- End Event — требуется для завершения экземпляра процесса
Как упоминалось ранее, в IntelliJ IDEA нет дизайнера BPMN, но мы можем импортировать файлы .bpmn
, разработанные в Eclipse или веб-дизайнере.
5.3. Объявить и создать базу знаний ( kbase
)
Все файлы BPMN загружаются в kbase
как процессы. Нам нужно передать соответствующие идентификаторы
процессов в механизм jBPM, чтобы выполнить их.
Мы создадим kmodule.xml
в файле resources/META-INF
с нашим kbase
и объявлением пакета файла BPMN:
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="kbase" packages="com.foreach.bpmn.process" />
</kmodule>
Как только объявление сделано, мы можем использовать KieContainer
для загрузки kbase
:
KieServices kService = KieServices.Factory.get();
KieContainer kContainer = kService.getKieClasspathContainer();
KieBase kbase = kContainer.getKieBase(kbaseId);
5.4. Создайте менеджер времени выполнения jBPM
Мы будем использовать JBPMHelper,
присутствующий в пакете org.jbpm.test
, для создания примера среды выполнения.
Для создания среды нам нужны две вещи: во-первых, источник данных для создания EntityManagerFactory
, а во-вторых, наш kbase
.
JBPMHelper
имеет методы для запуска сервера H2 в памяти и установки источника данных. Используя то же самое, мы можем создать EntityManagerFactory
:
JBPMHelper.startH2Server();
JBPMHelper.setupDataSource();
EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit);
Как только мы все подготовим, мы можем создать нашу RuntimeEnvironment
:
RuntimeEnvironmentBuilder runtimeEnvironmentBuilder =
RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder();
RuntimeEnvironment runtimeEnvironment = runtimeEnvironmentBuilder.
entityManagerFactory(emf).knowledgeBase(kbase).get();
Используя RuntimeEnvironment
, мы можем создать наш менеджер времени выполнения jBPM:
RuntimeManager runtimeManager = RuntimeManagerFactory.Factory.get()
.newSingletonRuntimeManager(runtimeEnvironment);
5.5. Выполнить экземпляр процесса
Наконец, мы будем использовать RuntimeManager
для получения RuntimeEngine
:
RuntimeEngine engine = manager.getRuntimeEngine(initialContext);
Используя RuntimeEngine,
мы создадим сеанс знаний и запустим процесс:
KieSession ksession = engine.getKieSession();
ksession.startProcess(processId);
Процесс запустится и выведет Hello World
на консоль IDE.
6. Заключение
В этой статье мы представили систему BPM, используя ее реализацию на языке Java — jBPM .
Это было краткое руководство по запуску проекта jBPM. В показанном здесь примере используется минимальный процесс, чтобы дать краткое представление о выполнении процесса, и его можно найти на GitHub .
Чтобы выполнить процесс, нам просто нужно запустить основной метод в классе WorkflowProcessMain
.