Управляйте своими бизнес-процессами с JBoss jBPM

Предприятия тщательно искали структурированный подход для разработки бизнес-действий / транзакций и их выполнения, предпочтительно с использованием автоматизированных процессов. Управление бизнес-процессами (BPM) и управление рабочими процессами предлагают решение этой проблемы с использованием таких понятий, как действия, задачи и потоки.

Эта статья знакомит с BPM и обсуждает методы и инструменты, позволяющие расширить возможности корпоративных систем с помощью BPM и управления рабочими процессами с помощью JBoss jBPM.

Термин « управление бизнес-процессами» обычно относится к набору действий, которые предприятия могут использовать для автоматизации и оптимизации бизнес-процессов таким образом, чтобы их можно было адаптировать к динамически меняющимся средам. Эти действия обычно требуют помощи от разработчиков программного обеспечения и инструментов; поэтому термин BPM часто используется непосредственно для обозначения инженерных методов и инструментов.

BPM воплощается в трех различных практиках:

  1. Дизайн процесса: задача проектирования существующих и новых процессов.
  2. Выполнение процесса: выполнение автоматизированной последовательности связанных событий с участием программных процессов и / или деятельности человека.
  3. Мониторинг процессов: наблюдение и аудит состояния отдельных процессов, чтобы статистику и производительность этих процессов можно было регистрировать, составлять отчеты и оптимизировать.

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

JBoss jBPM 3.0 обеспечивает возможность разработки новых автоматизированных бизнес-процессов и рабочих процессов со стандартной оркестровкой с использованием языка выполнения бизнес-процессов (BPEL), гибкого и подключаемого API, собственного языка определения процессов и инструмента графического моделирования.

JBoss jBPM - это среда с открытым исходным кодом (лицензия LGPL) для Java API, инструментов и языка определений, которая может работать как веб-приложение или автономное приложение Java. JBoss jBPM действует как посредник между бизнес-аналитиками и разработчиками, предоставляя им общий язык определения процессов, называемый jPDL .

Обзор архитектуры JBoss jBPM

JBoss jBPM определяет определения процессов в файлах, написанных с использованием языка определения процессов JBoss. jPDL - это язык графического программирования (GOP), основанный на модели узлов, переходов и действий. В этой модели узлы - это команды, выполняемые по мере их появления в ходе определения процесса. Переходы направляют поток выполнения определения процесса, а действия выполняют определенную логику при возникновении узла или события перехода.

В jBPM определения процессов упакованы в виде архивов процессов. Архив процесса передается механизму процесса jPDL для выполнения. Механизм процесса jPDL просматривает граф процесса, выполняет определенные действия, поддерживает состояние процесса и регистрирует все события процесса.

JBoss jBPM инкапсулирован в следующие компоненты:

  • Механизм процесса: этот компонент выполняет определенные действия процесса, поддерживает состояние процесса и регистрирует все события процесса с помощью следующих компонентов делегата:
    • Обработчик запроса
    • Государственный менеджер
    • Менеджер журнала
    • Загрузчик определений
    • Служба исполнения
  • Монитор процессов: этот модуль отслеживает, проверяет и сообщает о состоянии процессов по мере их выполнения.
  • Язык процесса: язык определения процесса (jPDL) основан на GOP.
  • Сервисы взаимодействия: эти сервисы предоставляют устаревшие приложения в виде функций или данных, которые будут использоваться при выполнении процессов.

Отношения между этими компонентами показаны на рисунке 1.

Как показано на рисунке 1, определения процесса jBPM, содержащие обработчики действий, загружаются и выполняются механизмом процесса jBPM. Когда подсистема процесса встречает узел в определении процесса, с которым связано действие, вызываются все связанные обработчики действий. Обработчики действий - это экземпляры кода Java, которые при выполнении взаимодействуют с внешними системами.

Ниже приведен пример простого обработчика действий:

import org.jbpm.graph.def.*; import org.jbpm.graph.exe.*;

public class MyActionHandler implements ActionHandler { public void execute(ExecutionContext executionContext) { System.out.println("MyActionHandler has executed: " + executionContext); } }

Файл PDL в архиве процесса называется process-definition.xml. Этот файл содержит формальное описание процессов. Пример файла process-definition.xml показан в следующем примере:

Определение процесса основано на ориентированном графе. Граф состоит из узлов, переходов, одного начального состояния и одного конечного состояния. Тип каждого узла определяет поведение узла во время выполнения. Во время выполнения определения процесса в игру вступают следующие сущности:

  • Экземпляр процесса: Экземпляр процесса - это одно выполнение определения процесса.
  • Токен: токен - это один из путей исполнения. Токен - это концепция среды выполнения, которая поддерживает указатель на узел в графе. Когда создается экземпляр процесса, создается токен для основного пути выполнения. Этот токен называется корневым токеном экземпляра процесса и располагается в начальном состоянии определения процесса.
  • Сигнал: сигнал указывает токену продолжить выполнение графа путем перехода из узла.
  • Узел: узлы отвечают за продолжение выполнения графа. Когда токен входит в узел, этот узел выполняется. Узел, который не распространяет выполнение, рассматривается как состояние.
  • Действие: Действия - это экземпляры кода Java, выполняемые при возникновении событий в процессе выполнения. Основными типами событий являются «вход в узел», «выход из узла» и «переход».

Определения процессов можно легко создавать с помощью графического дизайнера моделирования jBPM. В настоящее время конструктор установлен как подключаемый модуль Eclipse. На рис. 2 показан пример экрана разработчика графического моделирования.

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

Развертывание JBoss jBPM

JBoss jBPM хранит определения процессов в базе данных. Следовательно, развертывание процесса в JBoss jBPM включает в себя синтаксический анализ файла process-definition.xml и его сохранение в базе данных JBoss jBPM. Это можно сделать:

  • Использование parзадачи Ant, поставляемой с JBoss jBPM, для создания архива процесса.
  • С помощью утилиты deploypar. Эта утилита также создает архив процессов и развертывает архив процессов в базе данных jBPM. Утилита deploypar принимает файл jBPM.properties в качестве атрибута. Этот файл определяет параметры конфигурации, включая базу данных, в которой должен быть развернут архив процесса.
  • Программный синтаксический анализ и сохранение файла process-definition.xml в хранилище данных.

Выполнение JBoss jBPM через несколько простых шагов

JBoss jBPM acts as an orchestration engine that sits in the middle of enterprise applications, enabling integration and coordination between different applications.

For this article, I use the sample deployment shipped with jBPM to discuss how jBPM and jPDL are used to create and modify a simple Web-enabled order processing system.

Downloading JBoss jBPM

The JBoss jBPM starter kit contains everything needed to execute JBoss jBPM, with the exception of a JDK. The JBoss Application Server in the JBoss jBPM starter kit requires J2SE 1.4 or a more recent version.

After you have downloaded the starter kit, unzip it to a directory of your choosing. Once you have unzipped the starter kit, you will have a directory structure similar to the following:

  • Jbpm-starters-kit-3.1
    • jbpm: Contains the source code for the JBoss jBPM product
    • jbpm-bpel: Contains information about the BPEL extension for JBoss jBPM
    • jbpm-db: Contains sample configurations for connecting JBoss jBPM to other databases
    • jbpm-designer: Contains the Eclipse plug-in for the JBoss jBPM Visual Process Designer
    • jbpm-server: Contains the JBoss Application Server along with the JBoss jBPM engine and the sample process

Execute the JBoss jBPM engine

To start the JBoss application server with jBPM deployed, go to the jbpm-server directory and execute the startup script found there. A command window should pop up with the jBPM console window, similar to Figure 3.

Now, bring up a browser window and go to //localhost:8080/jbpm. You will be presented with the login page for the sample Web application for JBoss jBPM, shown in Figure 4.

Войдите в систему как монстр cookie и выберите ссылку Создать новый заказ на продажу через Интернет. Это создаст новый экземпляр предварительно созданного процесса «продажи через Интернет», показанного на рисунке 5.

Фактический файл определения, processdefinition.xml, находится в websale.par и показан в следующем листинге: