Статьи

Понимание Red Hat Process Automation Manager (JBPM)

В этой статье рассказывается о развитии PAM, его преимуществах и проблемах. Я поделюсь своим опытом, который я узнал из моего последнего проекта.

PAM поставляется с Business-Central и Kiesever. Бизнес-центр имеет активы, которые помогают в построении потоков процессов и объектов домена и написании правил с использованием слюн. Kieserver — это среда выполнения для наших активов. PAM имеет встроенную базу данных H2, а также имеет опции для интеграции с другими базами данных, такими как Oracle, PostgreSQL и MySQL. PAM может быть развернут на любом сервере приложений или веб-сервере. 

Типы архитектур:

  • PAM может быть непосредственно встроен в приложение в виде библиотеки. Приложение будет общаться с PAM с помощью простых API. 
  • PAM может быть развернут как автономный. Приложение будет взаимодействовать с PAM с помощью API REST. Это следует за шаблоном разделения проблем. Таким образом, компоненты могут легко продаваться. Я буду говорить об этом позже.
  • PAM можно развернуть как большое, сложное монолитное приложение. Он включает в себя пользовательский интерфейс (формы), Java и определения процессов в одном блоке. Это приносит все виды проблем, таких как ремонтопригодность и масштабируемость. Это не одна из наших любимых архитектур.

Давайте поговорим о ниже следуйте. Все компоненты могут быть построены как отдельные микросервисы. Существует четкое разделение ролей и обязанностей, поэтому их можно легко масштабировать.

Микросервисная архитектура

Давайте начнем со сценария малого бизнеса. Сотрудник в компании хочет взять отпуск. Все, что нужно сделать сотруднику, — это заполнить форму заявления о перерыве. После этого они должны отправить форму своему руководителю на утверждение. Запрос также может быть отклонен автоматически, если у сотрудника не осталось свободного времени. 

Рабочий процесс запроса на перерыв

Сотрудник является объектом данных (POJO). Это будет вход в поток процесса. Поток процессов также имеет другие активы, такие как Задача пользователя, Задача бизнес-правила и шлюзы. Я также определил переменную процесса в потоке процесса, который является «приложением» типа Employee.

Входной JSON для потока процесса должен иметь следующий формат. Ключ «application» должен совпадать с именем переменной процесса. В обязательном порядке указать пакет, "com.dzone.leave.Employee"


JSON