OpenBPM Engine Run

Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine

Это руководство дает нам первоначальное представление о OpenBPM Engine Run, предварительно упакованном, легком по весу дистрибутиве OpenBPM Engine. OpenBPM Engine Run легко конфигурировать, это не требует познаний в Java.

Предварительные условия и аудитория

Чтобы использовать это руководство, вам как минимум необходимо знать, что такое OpenBPM Engine и что она делает. Ознакомьтесь с руководством по быстрому старту, если никогда раньше не использовали OpenBPM. Руководство по установке тоже не помешает, если OpenBPM Engine для вас совсем в новинку.

Данное руководство расскажет вам про OpenBPM Engine Run и научит его конфигурировать. Оно может служить как справочная страница для опций по конфигурации и работе. Оно не дает пошаговых инструкций по установке OpenBPM Engine Run. Если вам необходим узнать подробности об установке или начале работы с OpenBPM Engine Run, перейдите на инструкцию по установке.

Что такое OpenBPM Engine Run?

OpenBPM Engine Run — это полный дистрибутив OpenBPM Engine. Он включает:

Начало работы с OpenBPM Engine Run

Чтобы начать работать с OpenBPM Engine Run, скачайте дистрибутив и распакуйте его. Внутри вы найдете следующую структуру:

openbpm-engine-bpm-run
├── configuration/
│   ├── keystore/
│   │   └── поместите ваш SSL key store сюда, если хотите использовать HTTPS
│   ├── resources/
│   │   └── поместите ваши BPMN файлы, формы и скрипты сюда
│   ├── sql/
│   │   └── необходимые SQL скрипты для подготовки вашей системы базы данных
│   ├── userlib/
│   │   └── поместите ваш драйвер базы данных и остальные необходимые JAR файлы сюда
│   ├── default.yml
│   └── production.yml
├── internal/
├── start.bat
└── start.sh
└── shutdown.sh
└── shutdown.bat

Выполните один из стартовых скриптов (start.bat для Windows, start.sh для Linux/Mac). Через несколько секунд вы получите доступ к OpenBPM Engine web apps через http://localhost:8080/openbpm-engine/app/ и к REST API через http://localhost:8080/engine-rest/.

При выполнении одного из двух стартовых скриптов без каких-либо аргументов OpenBPM Engine Run стартует с конфигурацией по умолчанию как фоновый (detached) процесс. Чтобы выключить OpenBPM Engine Run в таком "detached" режиме, воспользуйтесь одним из двух скриптов выключения (shutdown.bat для Windows, shutdown.sh для Linux/Mac).

При явной передаче аргументов одному из двух стартовых скриптов OpenBPM Engine Run режим по умолчанию (detached) отключается, и вы можете сконфигурировать OpenBPM Engine Run в соответствии с вашими нуждами. Более того, OpenBPM Engine Run стартует как процесс на переднем плане (foreground), если только аргумент --detached не будет явно передан в скрипт start.bat или start.sh.

Аргументы стартового скрипта

Стартовые скрипты (start.bat для Windows, start.sh для Linux/Mac) принимают следующие аргументы:

Аргумент Описание Состояние по умолчанию

--webapps

Разрешает использование OpenBPM Engine web apps

enabled

--rest

Разрешает использование REST API

enabled

--example

Разрешает использование приложения по умолчанию

enabled

--production

Применяет конфигурационный файл production.yaml

disabled

--detached

Запускает OpenBPM Engine Run как фоновый (detached) процесс. Это поведение стартовых скриптов по умолчанию. Чтьобы отключить его, явно передайте валидный аргумент в скрипт.

enabled

--oauth2

Разрешает интеграцию со Spring Security OAuth2. См. документацию, посвященную интеграции со Spring Security OAuth2, для получения более подробной информации.

false

--help

Распечатывает сообщение, показывающее доступные аргументы для стартовых скриптов.

-

Запуск OpenBPM Engine Run с использованием Docker

OpenBPM Engine Run также доступна как Docker-образ. См. раздел по OpenBPM Engine Run в документации OpenBPM Engine Docker, чтобы узнать подробности.

Опциональные компоненты

По умолчанию OpenBPM Engine Run запускается вместе с веб приложениями (web apps), REST API и модулями с примерами. Если вы хотите разрешить использование только некоего подмножество от перечисленного набора, выполните стартовый скрипт через интерфейс командной строки с любыми свойствами из числа --webapps, --rest или --example, чтобы включить конкретные модули.

Приложение-пример

По умолчанию дистрибутив OpenBPM Engine Run деплоит и запускает приложение-пример, когда стартует сам. Когда оно запущено, это приложение создает деплойменты с многочисленными определениями в рамках стандартов BPMN и DMN, а также ресурсы форм и запускает экземпляры заданных процессов.

Вы можете отключить деплоймент самого приложения-примера, разрешив любую комбинацию других модулей с помощью свойств --webapps и --rest у стартового скрипта. Тогда приложение-пример не стартует и его ресурсы не будут находиться в classpath у OpenBPM Engine Run.

Вы также можете отключить запуск приложения-примера, установив свойство openbpm.bpm.run.example.enabled в false или удалив его из свойств приложения. Тогда приложение-пример и его ресурсы будут находиться в classpath у OpenBPM Engine Run, однако, приложение не стартует.

Отключение приложения-примера с использованием любых из вышеперечисленных механизмов НЕ удалит не=икаких деплойментов или экземпляров процессов из OpenBPM Engine Run, если они уже были созданы. ВАм придется удалять эти данные вручную через web apps, REST API или очистку базы данных, сконфигурированной в свойствах приложения.

Выбор между конфигурацией по умолчанию и продакшен конфигурацией

OpenBPM Engine Run поставляется с двумя разными конфигурационными файлами, которые находятся в папке configuration.

  • Конфигурация default.yml содержит только необходимую уонфигурацию,а именно базу данных H2, демо пользователя и CORS для REST вызовов из клиентского прложения.

  • Конфигурация production.yml предназначена для предоставления рекомендованных свойств в соответствии с configuration is intended to provide the recommended properties according to the инструкциями по безопасности. При использовании OpenBPM Engine Run в продакшен окружении убедитесь в том, что вы создали свою кастомизированную конфигурацию, основанную на этой конфигурации и внимательно прочитали инструкции по безопасности.

По умолчанию Run запускается с конфигурацией default.yml. Чтобы подключить конфигурацию production.yml, выполните стартовый скрипт со свойством --production. Использование --production отключает приложение-пример. Его можно подключить обратно, явно передав --example стартовому скрипту. Однако, мы не рекомендуем использовать приложение-пример в продакшен.

Подключение к базе данных

OpenBPM Engine Run предварительно сконфигурирован для использования файловой базы данных H2 database для тестирования. Схема базы данных и все необходимые таблицы создаются автоматически при первом старте движка. Если вы хотите использовать автономную базу данных по вашему выбору, выполните следующие шаги:

  1. Убкдитесь в том, что ваша база данных входит в число поддерживаемых СУБД.

  2. Самостоятельно создайте схему базы данных для OpenBPM Engine.

  3. Установите схему базы данных, чтобы создать все необходимые таблицы и индексы по умолчанию, используя наше руководство по установке схемы базы данных.

  4. Поместите jar-файл JDBC драйвера для вашей СУБД в папку configuration/userlib.

  5. Добавьте JDBC URL и креденшелы для логина в конфигурационный файл, как описано ниже.

  6. Перезапустите OpenBPM Engine Run.

Деплоймент BPMN моделей

В нераспакованном дистрибутиве вы найдете папку resources. Все файлы (включая BPMN, DMN, CMMN, формы м файлы скриптов) будут задеплоены на старте OpenBPM Engine Run.

Вы можете ссылаться на формы и скрипты в BPMN-диаграмме через embedded:deployment:/my-form.html, camunda-forms:deployment:/myform.form или deployment:/my-script.js. Деплоймент требует добавления дополнительного / в качестве префикса к имени файла.

Деплойменты через REST API все еще возможны.

Конфигурируем OpenBPM Engine Run

Как и со всеми другими дистрибутивами, вы можете подогнать OpenBPM Engine Run под ваши потребности. Для этого необходимо отредактировать один из конфигурационных файлов, который вы найдете в папке конфигураций.

OpenBPM Engine Run базируется на стартере OpenBPM Engine Spring Boot. Все конфигурационные свойства из openbpm-engine-spring-boot-starter доступны для кастомизации OpenBPM Engine Run.

База данных

Дистрибутив поставляется с файловой базой данных h2 для целей тестирования. Для использования в продакшен рекомендуется подключаться к автономной базе данных.

Префикс Имя свойства Описание Значение по умолчанию

spring.datasource

.url

JDBC URL для базы данных.

-

.driver-class-name

Имя класса JDBC драйвера для вашей СУБД. Не забудьте положить jar-файл драйвера вашей СУБД в configuration/userlib.

-

.username

Имя пользователя для подключения к базе данных.

-

.password

Пароль для подключения к базе данных.

-

Аутентификация

Чтобы добавить аутентификацию к запросам, поступающим к REST API, вы можете подключить базовую аутентификацию.

Префикс Имя свойства Описание Значение по умолчанию

openbpm.bpm.run.auth

.enabled

Переключатель для подключения базовой аутентификации к запросам к REST API.

false

.authentication

Метод аутентификации, в настоящее время поддерживается только basic.

basic

Совместное использование ресурсов из разных источников

Если вы хотите позволить запросам из разных источников (cross-origin) к REST API, вам неоьходимо подключить CORS.

Префикс Имя свойства Описание Значение по умолчанию

openbpm.bpm.run.cors

.enabled

Переключатель для подключения CORS.

false

.allowed-origins

Источники, которым позволяется отправлять CORS-запросы. Если источников несколько, их можно разделять запятыми. Чтобы поддержать как HTTP аутентификацию, так и CORS, allowed-origins не должно быть равно *. Чтобы разрешить Camunda Modeler деплоиться с аутентификацией, включая file:// среди разрешенных источников.

* (все источники, включая file://)

.allowed-headers

Заголовки, которым разрешено передаваться через CORS запросы. Если заголовков несколько, их можно разделять запятыми.

Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers

.exposed-headers

Заголовки, которые могут считываться браузерами из CORS ответа. Простые заголовки ответов не должны включаться в этот список. Если заголовков несколько, их можно разделять запятыми.

None

.allow-credentials

Булев флаг, который помогает браузеру определить, может ли он делать CORS запрос с использованием креденшелов.

false

.preflight-maxage

Задает, как долго браузер может хранить в кеше результат pre-flight запроса в секундах.

1800

REST

OpenBPM Engine Run можно сконфигурировать таким образом, чтобы отключить REST эндпоинт, который дает доступ к WADL файлу через свойство .

Префикс Имя свойства Описание Значение по умолчанию

openbpm.bpm.run.rest

.disable-wadl

Отключает REST эндпоинт /application.wadl. Web Application Description Language (WADL) — это XML описание задеплоенных RESTful веб приложений.

false

Деплоймент

OpenBPM Engine Run также поддерживает опции конфигурации для кастомизации деплоймента.

Префикс Имя свойства Описание Значение по умолчанию

openbpm.bpm.run.deployment

.deploy-changed-only

  • Когда установлено в true, только деплойменты с измененными ресурсами будут деплоиться в базу данных движка.

  • Когда кстановлено в false, все деплойменты будут задеплоены без фильтрации их ресурсов.

Это свойство может быть полезным для управления поведением движка при деплойменте на случай перезапуска подобно Spring Framework Integration

true

LDAP Identity Service

OpenBPM Engine может управлять пользователями и авторизациями самостоятельно, но если вы хотите использовать существующую базу данных аутентификации LDAP, вы можете подключить плагин LDAP Identity Service (сервиса идентификации), который предоставляет read-only доступ к репозиторию LDAP.

Вы можете найти все доступные свойтва конфигурации в руководстве по LDAP плагину

Префикс Имя свойства Описание Значение по умолчанию

openbpm.bpm.run.ldap

.enabled

Переключатель для подключения плагина LDAP identity service plugin.

false

LDAP Administrator Authorization

Вы также можете использовать плагин Administrator Authorization (авторизации администратора), чтобы гарантировать, что надлежащий LDAP пользователь или ггруппа получит административный доступ. Вы можете просмотреть все доступные конфигурационные опции в разделе по плагину Administrator Authorization в нашей документации.

В приведенной ниже таблице вы можете заметить специфические для OpenBPM Engine Run свойства для плагина Administrator Authorization.

Префикс Имя свойства Описание Значение по умолчанию

openbpm.bpm.run.admin-auth

.enabled

Переключатель для подключения плагина Administrator Authorization.

false

Регистрация плагинов

OpenBPM Engine Run поддерживает два типа плагинов.

  • Плагины движка обработки процессов могут использоваться для расширения конфигурации движка обработки процессов для добавления большего количества функциональности.

  • Webapp плагины используются для расширения одного из веб приложений OpenBPM Engine (Cockpit, Tasklist, Admin или Welcome).

Оба типа плагинов поддерживаются в OpenBPM Engine Run, но регистрироваться они должны по-разному.

Регистрация плагина движка обработки процессов

OpenBPM Engine предоставляет механизм для плагинов движка обработки процессов, позволяющий пользователям добавлять и адаптировать функции движка через расширение его конфигурации. Вы можете использовать как плагины, разработанные командой OpenBPM Engine, так и разработки третьих сторон.

Больше подробностей о работе плагинов движка обработки процессов можно узнать в специальном разделе документации, посвященном плагинам движка обработки процессов.

В нижеприведенной таблице вы можете просмотреть свойства, специфические для OpenBPM Engine Run, предназначенные для регистрации плагинов движка обработки процессов.

Префикс Имя свойства Описание Значение по умолчанию

openbpm.bpm.run

.process-engine-plugins

Вы можете задать конфигурации плагина движка обработки процессов через это YAML-свойство.

Пустой List

openbpm.bpm.run.process-engine-plugins

.plugin-class

Часть вхождения списка process-engine-plugins. Задает класс плагина движка управления процессами.

-

.plugin-parameters

Часть вхождения списка process-engine-plugins. Задает параметры движка управления процессами как пары key:value.

Пустой Map

Чтобы зарегистрировать плагин движка управления процессами, выполните следующие шаги в OpenBPM Engine Run:

  1. Найдите и прочитайте документацию по плагину.

    • Найдите Java класс, который реализует интерфейс ProcessEnginePlugin для вашего плагина.

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

  2. Скачайте .jar файл для плагина и поместите его в каталог ${RUN_HOME}/configuration/userlib/.

  3. В файле конфигурации OpenBPM Engine Run добавьте класс плагина и любые конфигурационные параметры как список под YAML-свойством process-engine-plugins.

После завершения этого процесса ваш конфигурационный файл на YAML должен быть похож на этот:

  openbpm.bpm.run.process-engine-plugins:
    - plugin-class: canonical.name.of.the.PluginClass
Пример регистрации плагина движка управ ления процессами

Предположим, что вы хотите зарегистрировать плагин движка управления процессами, который называется TestPlugin. Доступна следующая информация:

  • Плагин предоставляется как .jar архив с именем camunda-bpm-test-plugin.jar.

  • Имя Java класса, который реализует интерфейс ProcessEnginePlugin — TestPlugin. Каноничное имя этого класса — io.openbpm.bpm.run.test.plugins.TestPlugin.

  • TestPlugin содержит следующие два параметра конфигурации:

  • parameterOne — значение типа String

  • parameterTwo — значение типа Boolean

Мы выполним следующие шаги:

  1. Поместим архив camunda-bpm-test-first-plugin.jar в каталог ${RUN_HOME}/configuration/userlib/.

  2. Добавим следующее содержимое к конфигурационному файлу OpenBPM Engine Run на YAML:

       openbpm.bpm.run.process-engine-plugins:
         - plugin-class: io.openbpm.bpm.run.test.plugins.TestPlugin
           plugin-parameters:
             parameterOne: valueOne
             parameterTwo: true

    В приведенном выше примере мы используем каноничное имя класса TestPlugin в качестве YAML-ключа. YAML-значение состоит из набора пар ключ-значение, которые представляют собой конфигурационные параметры для TestPlugin и их значения. Некоторые плагины движка обработки процессов не имеют конфигурационных параметров. Для таких плагинов вам надо задать только YAML-свойство plugin-class, вот так:

       openbpm.bpm.run.process-engine-plugins:
         - plugin-class: io.openbpm.bpm.run.test.plugins.TestPlugin
         - plugin-class: io.openbpm.bpm.run.test.plugins.AnotherPlugin
  3. Запустите OpenBPM Engine Run. TestPlugin будет считан из YAML-конфигурации и зарегистрирован в движке.

Регистрация плагина типа Webapp

OpenBPM Engine предоставляет механизм для расширения OpenBPM Engine Webapps вашей собственной функциональностью. Вы можете добавлять плагины во многих местах. Например, на дашборде процессов в Cockpit.

Плагин типа webapp — это Maven jar проект, который предоставляет расширения для серверной и клиентской стороны веб приложения. Вы можете найти больше информации о том, как структурировать ваши плагины здесь.

Чтобы зарегистрировать webapp-плагин, просто поместите jar файл в каталог configuration/userlib. См. "Запуск" в Starting with разделе OpenBPM Engine Run этого руководства, чтобы узнать, как ориентироваться в каталогах OpenBPM Engine Run.

Запуск приложения-примера

OpenBPM Engine Run поставляется с демо-приложением, которое деплоит ресурсы и запускает экземпляры процессов. Вы можете отключить запуск этого приложения, чтобы оно не создавало деплойментов и экземпляров процесса. Однако, ресурсы этого приложения будут по-прежнему доступны в classpath OpenBPM Engine Run. Чтобы узнать больше, обратитесь к разделу о приложении-примере.

Префикс Имя свойства Описание Значение по умолчанию

openbpm.bpm.run.example

.enabled

Переключатель, разрешающий запуск приложения-примера.

false

HTTPS

OpenBPM Engine Run поддерживает HTTPS поверх SSL. Чтобы подключить его, вам понадобится валидный SSL сертификат, подписанный доверенным провайдером и хранимый в файле для хранения ключей (.jks или .p12). Для целей тестирования мы включили в пакет сертификат, подписанный нами самими. Вам не следует использовать его в продакшен. Чтобы разрешить его использование, добавьте следующие свойства в ваш конфигурационный файл:

server:
  ssl:
    key-store: classpath:keystore.p12
    key-store-password: openbpm
    key-store-type: pkcs12
    key-alias: openbpm
    key-password: openbpm
  port: 8443

После запуска OpenBPM Engine Run вы можете получить доступ к webapps через https://localhost:8443/openbpm-engine/app/ и к REST API через https://localhost:8443/engine-rest/.

Префикс Имя свойства Описание Значение по умолчанию

server.ssl

.key-store

Название файла для хранения SSL сертификата. Этот файл должен быть помещен в каталоге configuration/keystore и иметь расширение .jks или .p12.

-

.key-store-password

Пароль для доступа к хранилищу ключей.

-

.key-store-type

Тип хранилища ключей Может быть равно jks или p12

-

.key-alias

Имя, идентифицирующее SSL сертификат в хранилище ключей.

-

.key-password

Пароль для доступа к SSL сертификату в хранилище ключей.

-

Логирование

OpenBPM Engine предоставляет точную и настраиваемую систему логирования. Обзор доступных категорий логирования можно найти в руководстве пользователя по логированию. Чтобы сконфигурировать поведение функции логирования в OpenBPM Engine Run, кастомизируйте ваш файл конфигурации при помощи следующих свойств.

Для получения дополнительной информации по конфигурированию логирования посетите Руководство по логированию от Spring Boot.

Префикс Имя свойства Описание Значение по умолчанию

logging

.level.root

Устанавливает уровень логирования для всех доступных категорий логирования. Допустимые значения: OFF. ERROR. WARN. INFO. DEBUG. FATAL. `TRACE

-

.level.{logger-name}

Устанавливает уровень логирования для определенной категории логирования. Обзор доступных категорий можно найти в руководстве пользователя по логированию. Допустимые значения: OFF. ERROR. WARN. INFO. DEBUG. FATAL. TRACE

-

.file.name

Задает местоположение файла с логами (например, logs/openbpm-bpm-run-log.txt)

-

Лицензия и атрибуция

Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .

Оригинал документации: https://docs.camunda.org