Перейти к основному содержимому

Руководство по jBPM с Java

· 5 мин. чтения

1. Введение

В этом руководстве мы обсудим систему управления бизнес-процессами (BPM) и ее реализацию на Java в виде системы jBPM .

2. Система управления бизнес-процессами

Мы можем определить управление бизнес-процессами как одну из тех областей, сфера деятельности которых выходит за рамки развития и касается всех аспектов компании.

BPM обеспечивает прозрачность функциональных процессов компании. Это позволяет нам найти оптимальный поток, изображенный на блок-схеме, с помощью итеративного улучшения. Улучшенный поток увеличивает прибыль и снижает затраты.

BPM определяет свои цели, жизненный цикл, практики и общий язык между всеми его участниками, т. е. бизнес-процессы.

3. Система jBPM

jBPM — это реализация системы BPM на Java. Это позволяет нам создавать поток бизнес-процессов, выполнять его и отслеживать его жизненный цикл. Ядром jBPM является механизм рабочего процесса, написанный на Java, который предоставляет нам инструмент для создания и выполнения потока процесса с использованием новейших спецификаций нотации моделирования бизнес-процессов (BPMN) 2.0.

jBPM ориентирован в основном на исполняемый бизнес-процесс. Эти процессы имеют достаточно деталей, чтобы их можно было выполнять в механизме рабочего процесса.

Вот пример графической блок-схемы порядка выполнения нашей модели процесса BPMN, чтобы помочь нам понять:

./92756788f6725425d9d8e73eba32047f.jpg

  1. Мы начинаем выполнение потока, используя начальный контекст, обозначенный зеленым начальным узлом.
  2. Сначала будет выполняться Задача 1
  3. По завершении задачи 1 приступаем к задаче 2.
  4. Выполнение останавливается при обнаружении красного конечного узла.

4. Плагины IDE для проекта jBPM

Давайте посмотрим, как установить плагины для создания проекта jBPM и процесса BPMN 2.0 в Eclipse и IntelliJ IDEA.

4.1. Плагин Eclipse

Нам нужно установить плагин для создания проектов jBPM. Давайте выполним следующие шаги:

  1. В разделе « Помощь » нажмите « Установить новое программное обеспечение ».
  2. Добавьте сайт обновлений Drools и jBPM
  3. Примите условия лицензионного соглашения и завершите установку плагина.
  4. Перезапустите затмение

После перезапуска Eclipse нам нужно перейти в Windows -> Preferences -> Drools -> Drools Flow Nodes :

./e9da729c27dc3a1b52268a4c92c360f6.jpg

После выбора всех параметров мы можем нажать «Применить и закрыть». Теперь мы готовы создать наш первый проект jBPM .

4.2. Плагин IntelliJ IDEA

В IntelliJ IDEA по умолчанию установлен плагин jBPM, но он присутствует только в Ultimate, а не в опции Community.

Нам просто нужно включить его, нажав Configure -> Settings -> Plugins -> Installed -> JBoss jBPM :

./f841d5b57dad716d836c9cfb53b54b18.jpg

В настоящее время для этой 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 :

./115df0997a91c2ef5285e45a403d4423.jpg

Файл имеет расширение .bpmn и открывается в дизайнере BPMN:

./679fa922f92523192b8e1b55d5b3fbd3.jpg

На левой панели дизайнера перечислены узлы, которые мы выбрали ранее при настройке плагина 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 .