Блог Бизнес архитектура
IT, BPM, разработка программ
Что такое jBPM?
jBPM — движок на Java от компании JBoss для реализации потоков рабочих процессов (workflow), формализованных с помощью языка BPEL или собственного языка описания процессов jPDL. Выпускается под лицензией LGPL. jBPM свободное программное обеспечение для управления бизнес процессами. Оно позволяется эффективно взаимодействовать между бизнес аналитиками и разработчиками. К слову сказать, традиционные BPM заточены только для не технических пользователей. Но в jBPM могут работать, и не технический персонал, и разработчики.
Некоторые идеи jBPM лежат в основе российской системы управления бизнес-процессами и административными регламентами RunaWFE, содержащей кроме BPM-движка компоненты для работы конечного пользователя: систему аутентификации и авторизации, оповещать о поступивших заданиях, редактор бизнес-процессов и т.д. Выпускается также под лицензией LGPL.
Что умеет jBPM
Бизнес процессы позволяют моделировать бизнес цели, описывая шаги которые необходимо выполнить для их достижения, используя блок схемы. Это очень улучшает видимость и маневренность всей бизнес логики, приводит к более высокоуровневым и специфичным для домена представлениям, которые могут быть поняты бизнес-пользователями и могут легче контролироваться.
Ядро jBPM легкое, написано на Java, позволяет запускать бизнес процессы используя нотацию BPMN 2.0. Ядро jBPM можно запустить в любой Java среде, встроить в приложение или запустить как сервис.
В дополнение к основному движку предлагается множество функций и инструментов для поддержки бизнес-процессов на протяжении всего жизненного цикла :
- Поддержка Eclipse и веб редактора для графического создания бизнес процессов (drag & drop).
- Поддержка в заимозаменяемости и транзакции на основе JPA / JTA.
- Служба задач для персона основана на WS-HumanTask .
- Консоль управления, поддерживающая управление экземпляром процесса, списки задач и управление формой задачи, а также отчетность .
- Дополнительный репозиторий процессов для развертывания вашего процесса (и других связанных с ним знаний) .
- Ведение журналирования (для запросов / мониторинга / анализа )
- Интеграция с Seam, Spring, OSGi, etc.
BPM позволяется эффективно взаимодействовать между бизнес аналитиками, и разработчиками, и конечными пользователями, предлагая функции и инструменты управления процессом таким образом, чтобы ими было удобно пользоваться бизнес-пользователям и разработчикам . Узлы, привязанные к домену, могут быть подключены к палитре, что делает процессы более понятными для бизнес-пользователей .
jBPM поддерживает адаптивные и динамические процессы, которые требуют гибкости для моделирования сложных , действительных ситуаций, которые просто не могут быть описаны жестким процессом. Мы возвращаем контроль для конечных пользователей позволяя им контролировать, какие части процесса должны быть выполнены, динамически отклоняться от процесса и многое другое.
jBPM имеет не изолированное выполнение процессов. Комплексная бизнес логика может быть также комбинирована с бизнес правилами и комплексной обработкой событий. jBPM может быть комбинирован с проектом Drools — cистемой управления бизнес правилами (http://www.drools.org/) для поддержки одной унифицированной среды, где интегрированы парадигмы: ваша модель, ваша бизнес логика — комбинация процессов, правил, событий.
Язык процессов
jBPM основано на общем механизме процесса, в который основой является поддержка нескольких родных языков процесса . jBPM версии 5 имеет фокус на BPMN 2.0 как языка для описания бизнес процессов. BPMN 2.0 — это стандарт стандартизированной спецификации , который определяет визуализацию и XML и сериализации бизнес процессов, и может быть расширен (если необходимо) для включения более продвинутых функций .
jBPM6
Изучение jBPM6 (Разработка, создание, деплой процесс приложений используя jBPM технологический стек).
jBPM6 последняя версия jBPM. Она основана на BPMN 2.0 спецификации и поддерживает весь жизненный цикл бизнес-процесса (от разработки до исполнения, контроля и управления).
Разработка модели данных
jBPM6 — это открытое решение для запуска бизнес процессов и их управления, которые включает:
- В страиваемый, легкий процессор Java , поддерживающий родной запуск BPMN 2.0
- Взаимодействие человека с использованием независимой службы задач WS-HT
- Моделирование процессов в нотации BPMN 2.0 в Eclipse (для разработчиков) или в веб интерфейсе (для бизнес пользователей)
- веб-инструментарий для моделирования, развертывания, выполнения и мониторинга процессов, включая, например, моделирование данных и форм, моделирование, развертывание, списки задач и т.д.
- веб-мониторинг и отчетность деловой активности, которая позволяет вам определять свои собственные отчеты
- управления и развертывания ваших процессов с использованием технологий под Git и Maven
- сервер выполнения, с которым вы можете удаленно подключиться (REST, JMS), и может быть развернут в кластерной среде для балансировки нагрузки и высокой доступности
- жесткая, мощная интеграция с бизнес-правилами и обработкой событий
Литература
Управление бизнес процессами с JBoss jBPM (Практический гайд для бизнес аналитиков)
Мастеринг jBPM6 (Разработка, создание, деплой процесс приложений используя jBPM технологический стек)
jBPM6 Разработческий гайд. Изучение JBoss BPM framework
Блог Бизнес архитектура
IT, BPM, разработка программ
Конфигурирования JBPM сервера для запуска потоков рабочих процессов
JBPM — движок на Java от компании JBoss для реализации потоков рабочих процессов, формализованных с помощью языка BPEL или собственного языка описания процессов jPDL
Для установки JBPM в качестве сервера нам потребуется операционная система ubuntu (debian) или любая другая. Установим на ней java и ssh сервер.
Установим Java JDK 1.8+ (и внесем в переменную JAVA_HOME путь к нему) , установим Ant 1.9+ (внесем в переменную ANT_HOME путь к нему) . Скачать их можно по следующим адресам
С помощью команд проверим их установку
С помощью wget загрузим последнюю версию jbpm архива jbpm-installer-full-7.4.1.Final.zip
wget https://download.jboss.org/jbpm/release/7.4.1.Final/jbpm-installer-full-7.4.1.Final.zip
Распакуем unzip jbpm-6.5.0.Final-installer-full.zip
Для работы нашего jBPM сервера мы будем использовать WildFly — Java EE-сервер. В нем хорошо реализованы принципы Java EE, и он является альтернативой WebSphere или WebLogic решения. В качестве контейнера сервлетов WildFly использует Undertow.
Установим jBPM консоль
unzip jbpm-installer/lib/jbpm-console-6.5.0.Final-wildfly-10.0.0.Final.war -d ./wildfly-10.0.0.Final/standalone/deployments/jbpm-console.war
touch ./wildfly-10.0.0.Final/standalone/deployments/jbpm-console.war.dodeploy
Установим Kie сервер
unzip jbpm-installer/lib/kie-server-6.5.0.Final-wildfly-10.0.0.Final.war -d ./wildfly-10.0.0.Final/standalone/deployments/kie-server.war
touch ./wildfly-10.0.0.Final/standalone/deployments/kie-server.war.dodeploy
unzip jbpm-installer/lib/dashboard-builder-6.5.0.Final-wildfly-10.0.0.Final.war -d wildfly-10.0.0.Final/standalone/deployments/dashboard-builder.war
touch ./wildfly-10.0.0.Final/standalone/deployments/dashboard-builder.war.dodeploy
Дадим права пользователям для управления и пользователям для работы с приложением
Есть и альтернативный способ добавления пользователям
./bin/add-user.sh -a -u admin -p password1! -g admin,analyst,kiemgmt,rest-all,kie-server
./bin/add-user.sh -a -u krisv -p password1! -g admin,analyst,rest-all,kie-server
./bin/add-user.sh -a -u john -p password1! -g analyst,Accounting,PM
./bin/add-user.sh -a -u mary -p password1! -g analyst,HR
./bin/add-user.sh -a -u sales-rep -p password1! -g analyst,sales
./bin/add-user.sh -a -u jack -p password1! -g analyst,IT
./bin/add-user.sh -a -u katy -p password1! -g analyst,HR
./bin/add-user.sh -a -u salaboy -p password1! -g admin,analyst,IT,HR,Accounting,rest-all
./bin/add-user.sh -a -u kieserver -p password1! -g kie-server
Конфигурация приложения находится в файле bin/standalone.conf
Мы можем отредактировать данный файл.
Добавим побольше памяти нашему сервер
-Xms2048m -Xmx2048m -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=512m
Добавим свойства не импортировать демо файлы
Для запуска JBPM воспользуемся командой
./bin/standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 -c standalone-full.xml
(0.0.0.0 можно поменять на айпи адрес вашей машины). По умолчанию, сервер подхватывает localhost.
После запуска мы можем открыть сервер по адресу http://localhost:8080/jbpm-console (логин и пароль, который мы задали с помощью скрипта — admin/password1! Входим с помощью него)
Для установка демо варианта с помощь ant можно загрузить архив с jbpm (full или minimum), и запустить скрипт install.demo, который установит нужные компоненты, и вы сможете разрабатывать и исполнять бизнес процессы на своей машине.
В процессе выполнения скрипты будет загружен
- WildFly application server
- Configure and deploy a process execution server
- Configure and deploy the workbench
- Configure and deploy the case management application
- Загружен eclipse
- Установлен Drools и плагин jBPM Eclipse
- Установлен Eclipse BPMN 2.0 Modeler
После установки компонентов мы сможем запустить сервер с помощью команды ant start.demo. Если мы хотим запустить без eclipse воспользуемся следующей командой
ant install.demo.noeclipse
ant start.demo.noeclipse
Или если мы хотим запустить без веб утилит, то выполним команду
ant install.demo.eclipse
ant start.demo.eclipse
Будет запущен H2 database server, WildFly application server, запущен EclipseJBPM console станет доступна по следующему адресу:
Сase management UI станет доступ по следующему адресу:
Создадим новый репозиторий проекта
Скопируем git репозиторий проекта
После того как мы создали репозиторий проекта мы можем создавать бизнес процессы, переменные, дерево решений, единицы работ и прочее.
Рисование бизнес процесса в веб интерефейсе.
Если мы хотим запустить редактирования бизнес процессов в среде разработки, то запустим eclipse
Первый взгляд на jBPM 6.0 — Первый взгляд на jBPM 6.0
Навигационные полоски
Хотя в последнее время мы плотно занимаемся движком бизнес-процессов Activiti, всегда полезно знать «а что вокруг». В частности давно подмывало внимательней посмотреть на jBPM и куда пошло его развитие после того, как Tom Baeyens покинул JBoss (RedHat). Ну и сравнить с Activiti — благо у этих продуктов по сути дела общий «папа» и общие корни.
И вот наконец дошли руки посмотреть последнюю версию 6.0, которая на текущий момент пока еще в стадии Release Candidate (CR2).
Скачать, поставить и запустить jBPM за 5 минут
Скачать jBPM можно, как и все другие продукты Jboss с сайта SourceForge: http://sourceforge.net/projects/jbpm/files/jBPM%206/. Полный дистрибутив весит почти 300 «метров» — не слабо — но и не удивительно — так как jBPM идет сразу с jBossAS 7.1.1 (что логично).
Для того что бы получить работающее демо достаточно распаковать инсталлер и запустить
Скрипт сделает все что надо — установит JBoss AS, задеплоит в него требуемые артифакты (как например jbpm-console), скачает eclipse и поставит в него необходимые плагины.
В итоге вы получаете не только готовый к использованию сервис, но и средства разработки.
После этого простой командой
можно легко запустить JBossAS и Eclipse (только придется подождать порядка минуты пока все запустится). Хотя смысл запускать Eclipse — не понятен — в дефолтовом workspace все равно нет никаких заранее расположенных там проектов — то ест мы просто получаем eclipse с набором предустановленных плагинов — я мог бы его и сам ручками запустить.
Понятное дело, что данный «быстрый» старт хорош только в ознакомительных целях. В реальной ситуации все-таки лучше ручками все собрать, настроить и поставить именно в том сервер который требуется.
jBPM Console
Заходим в http://localhost:8080/jbpm-console и если все прошло хорошо получаем окно входа в консоль jBPM (пользователь-пароль по умолчанию krisv / krisv)
После логина попадаем на главную страницу — и понимаем, что «все серьезно»
Вся работа организована в проектах (в Activiti такого нет). В рамках проекта можно описать процесс, при этом используется тот же Signavio Editor что и в Activiti, только в данном случае он значительно переработан
Что сразу очень заинтересовало — это наличие вкладки симуляции (это надо посмотреть отдельно).
Так же в рамках проекта можно редактировать формы
Объекты которыми оперирует процесс
Причем у проекта есть как «бизнесовая» сторона (Business View), так и «техническая», переключившись на которую мы можем увидеть что «Проект» — это действительно проект — на базе maven!
Выбор возможностей в меню «Add Item» впечатляет — сказывается и глубокая интеграция с Drools (по сути дела jbpm — это теперь часть проекта Drools)
Заключение
На первый раз достаточно информации — надо все переварить и уложить в голове. Но что уже сейчас можно сказать:
- Мой давнишний прогноз, что с уходом основного разработчика и по сути дела архитектора из проекта приведет к его гибели — не оправдался. И наверное к лучшему.
- Выглядит все очень интересно. Особенно хочется потрогать симуляцию, отчеты (встроены), интеграцию через WS-HumanTask стандарт. обо всем этом в ближайшее время
- При этом выглядит (именно с точки зрения интерфейса — эстетически) все очень корявенько — но за этим прослеживается богатые функциональные возможности
- По которым получается что сейчас jBPM значительно превосходит Activiti (многое из того что я увидел в самом Activiti не доступно сейчас. По идее и симуляция, и редактирование форм заявлялись в проекте KIS BPM (http://kisbpm.com/index.html) — но это судя по всему будет не Open Source, ну и статус проекта очень непонятен — с декабря 2012-ого года никакого движения не видно.
Постараюсь в ближайшие дни пройтись подробней по вкусным местам и рассказать о них.