Процессные приложения

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

Процессное приложение — это обычное приложение на Java, которое использует движок управления процессами Camunda для функциональности, связанной с BPM и рабочими процессами. Большинство таких приложений запускают свой собственный движок управления процессами (или используют движок, предоставленный рантайм-контейнером), запускают несколько определений процессов согласно стандарту BPMN 2.0 и взаимодействуют с экземплярами процессов, полученными из этих определений. Поскольку большинство процессных приложений выполняют очень похожие задачи, связанные с бутстрапом, деплойментом и работой в рантайме, мы собрали эту функциональность в Java-класс, называемый — Сюрприз! — ProcessApplication. Его концепция похожа на концепцию класса javax.ws.rs.core.Application в JAX-RS: добавление класса процессного приложения позволяет осуществлять бутстрап и конфигурировать предлагаемые сервисы.

Добавление класса ProcessApplication к вашему приложению на Java предоставляет вашему приложению следующие сервисы:

  • Бутстрап для встроенных движков управления процессами или движков, управляемых контейнерами быстрого поиска (look up containers). Вы можете задавать множественные движки управления процессами в файле processes.xml, добавленном в ваше приложение. Класс ProcessApplication гарантирует, что этот файл будет подобран приложением и заданные в нем движки управления процессами буду стартовать и останавливаться при деплойменте и остановке приложения.

  • Автоматический деплоймент BPMN 2.0 ресурсов, находящихся в classpath. Вы можете задать множественные деплойменты (архивы процессов) в файле processes.xml. Класс ProcessApplication гарантирует, что эти деплойменты состоятся после деплоймента вашего приложения. Также поддерживается сканирование приложения для поиска файлов ресурсов (заканчивающихся на *.bpmn20.xml или \*.bpmn).

  • Разрешение локальных для приложения реализаций Java Delegate и бины для случая деплоймента нескольких приложений. Класс ProcessApplication позволяет вашему приложению на Java Application делать видимыми ваши локальные реализации Java Delegate или Spring/CDI-бины для разделенного движка управления процессами, управляемого контейнером. Таким образом вы можете запустить один движок, обслуживающий несколько процессных приложений, которые можно деплоить и передеплоивать независимо друг от друга.

Превращение существующего Java-приложения в процессное приложение — это простая процедура, не требующая глубокой переработки кода. Вам всего лишь надо добавить:

  • Класс ProcessApplication: класс ProcessApplication представляет собой интерфейс для взаимодействия между вашим приложением и движком управления процессами. Существует несколько базовых классов, которые вы можете расширять, чтобы отразить различия между окружениями (например, между Servlet и EJB Container).

  • Файл processes.xml к META-INF: файл дескриптора деплоймента позволяет вам предоставить декларативную конфигурацию деплойментов, совершаемых приложением в отношении движка управления процессами. Он может быть пустым (см. раздел о пустом processes.xml) и служить обычным маркером. Если он отсутствует, движок будет стартовать, но автоматического деплоймента не произойдет.

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

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

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

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