1. введение
В этом уроке мы обсудим систему управления бизнес-процессами (BPM) и ее реализацию в Java как jBPM System.
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
Как только Eclipse перезапустится, нам нужно будет перейти в Windows -> Настройки -> Drools -> Узлы потока Drools :
После выбора всех опций мы можем нажать на кнопку “Применить и закрыть”. Теперь мы готовы создать наш первый проект jBPM .
4.2. Плагин IntelliJ IDEA
По умолчанию в IntelliJ IDEA установлен плагин jBPM, но он присутствует только в Ultimate, а не в опции Сообщества.
Нам просто нужно включить его, нажав Configure -> Settings -> Plugins -> Installed -> JBoss jBPM :
В настоящее время для этой ИДЕИ нет конструктора процессов BPMN 2.0, хотя мы можем импортировать файлы *.bpmn из любого другого конструктора и запустить их.
5. Пример Hello World
Давайте испачкаем руки в создании простого проекта 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. Мы собираемся использовать эти узлы для создания нашей модели процесса. Средняя панель-это рабочая область, где мы будем создавать модели процессов. В правой части находится вкладка свойства, где мы можем задать свойства узла процессора.
В этой модели Hello World мы будем использовать:
- Событие Start – требуется для запуска экземпляра процесса
- Задача скрипта – включение фрагментов Java
- Событие End – требуется для завершения экземпляра процесса
Как упоминалось ранее, IntelliJ IDEA не имеет дизайнера BPMN, но мы можем импортировать файлы .bpmn , разработанные в Eclipse или веб-дизайнере.
5.3. Объявить и создать Базу знаний (kbase)
Все файлы BPMN загружаются в kbase как процессы. Нам нужно пройти соответствующий процесс идентификаторы к движку jBPM, чтобы выполнить их.
Мы создадим kmodule.xml под resources/META-INF с нашей базой и объявлением пакета файлов BPMN:
Как только объявление будет сделано, мы можем использовать 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);
Как только мы все подготовим, мы сможем создать нашу Среду выполнения :
RuntimeEnvironmentBuilder runtimeEnvironmentBuilder = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder(); RuntimeEnvironment runtimeEnvironment = runtimeEnvironmentBuilder. entityManagerFactory(emf).knowledgeBase(kbase).get();
Используя Среду выполнения , мы можем создать наш менеджер времени выполнения jBPM:
RuntimeManager runtimeManager = RuntimeManagerFactory.Factory.get() .newSingletonRuntimeManager(runtimeEnvironment);
5.5. Выполнение экземпляра процесса
Наконец, мы будем использовать Runtime Manager , чтобы получить Runtime Engine :
RuntimeEngine engine = manager.getRuntimeEngine(initialContext);
Используя Runtime Engine, мы создадим сеанс знаний и запустим процесс:
KieSession ksession = engine.getKieSession(); ksession.startProcess(processId);
Процесс запустится и напечатает Hello World на консоли IDE.
6. Заключение
В этой статье мы представили систему BPM, используя ее Java — реализацию – jBPM .
Это было краткое руководство по запуску проекта jBPM. В примере, показанном здесь, используется минимальный процесс, чтобы дать краткое представление о выполнении процесса, и его можно найти на GitHub .
Чтобы выполнить процесс, нам просто нужно запустить метод main в классе Workflow Process Main .