Ранее я опубликовал демонстрацию интеграции управления бизнес-процессами (BPM) с правилами с использованием продукта JBoss Business Rules Management System (BRMS). В этой демонстрации рассказывалось о проекте IDE для разработчиков JBoss Developer Studio (JBDS), а также о стороне бизнес-пользователя, а также веб-инструмент управления бизнес-правилами (BRM).
Модель данных в то время была построена с использованием JBDS и, если быть точным, представляет собой не что иное, как объекты Java, объект Person и объект Request. Затем они помещаются в один файл архива Java (jar) и импортируются в проект BRM.
Декларативные модели
Многие клиенты заинтересованы в использовании декларативной модели данных, которая является моделью данных, размещенной в вашем хранилище правил. Вы не будете создавать классы объектов Java, вместо этого вы создадите модель с помощью редактора инструментов BRM.
Использование декларативной модели имеет ряд преимуществ:
- это подтверждает, что модель принадлежит базе знаний, а не приложению.
- жизненный цикл модели отделен от ваших приложений.
- ваши типы Java могут быть дополнены аннотациями для конкретных правил.
- при использовании импортированных файлов архива Java (jar) они должны синхронизироваться между правилами и приложениями, которые их используют, а декларативная модель — нет.
Использование примера проекта декларативной модели
Документация Quick Start описывает, как использовать проект для демонстрации декларативной модели, но для простоты начала:
- клонировать проект с https://github.com/eschabell/brms-customer-evaluation-demo/tree/v1.4
- добавить продукт JBoss BRMS, см. installs / README
- запустить init.sh для настройки проекта
- запустить сервер JBoss BRMS с standalone.sh (во вновь созданном целевом каталоге)
- поддержка импорта / repository_export_declarative_model.zip в BRM по адресу http: // localhost: 8080 / jboss-brms
- построить проект и развернуть
- запустите процесс из Business Central по адресу http: // localhost: 8080 / business-central и посмотрите журнал сервера.
Журнал вашего сервера должен воспроизводить что-то похожее на это:
16:49:24,047 INFO [stdout] (http-/127.0.0.1:8080-3) starting new transaction 16:49:26,555 INFO [stdout] (http-/127.0.0.1:8080-3) Entering Initialize Node 16:49:26,556 INFO [stdout] (http-/127.0.0.1:8080-3) There as no evaluation objects defined, adding default ones for demo purposes. 16:49:26,562 INFO [stdout] (http-/127.0.0.1:8080-3) Leaving Initialize Node 16:49:26,565 INFO [stdout] (http-/127.0.0.1:8080-3) Gateway: Qualify Age 16:49:26,565 INFO [stdout] (http-/127.0.0.1:8080-3) Gateway: Qualify Age 16:49:26,567 INFO [stdout] (http-/127.0.0.1:8080-3) Entering Adult Customer Node 16:49:26,568 INFO [stdout] (http-/127.0.0.1:8080-3) Detected and reporting valid request 16:49:26,569 INFO [stdout] (http-/127.0.0.1:8080-3) Set validRequest to: true 16:49:26,573 INFO [stdout] (http-/127.0.0.1:8080-3) Leaving Adult Customer Node 16:49:26,573 INFO [stdout] (http-/127.0.0.1:8080-3) Entering Finance Rules Node 16:49:26,585 INFO [stdout] (http-/127.0.0.1:8080-3) Leaving Finance Rules Node. 16:49:26,585 INFO [stdout] (http-/127.0.0.1:8080-3) Gateway: Decide Financial Status 16:49:26,585 INFO [stdout] (http-/127.0.0.1:8080-3) Determined request is valid, heading to Rich Customer Node 16:49:26,588 INFO [stdout] (http-/127.0.0.1:8080-3) Entering Rich Customer Node 16:49:26,588 INFO [stdout] (http-/127.0.0.1:8080-3) Detected and reporting valid request 16:49:26,588 INFO [stdout] (http-/127.0.0.1:8080-3) Customer has amount: 5000 in the bank. 16:49:26,589 INFO [stdout] (http-/127.0.0.1:8080-3) Leaving Rich Customer Node 16:49:26,589 INFO [stdout] (http-/127.0.0.1:8080-3) Process ended in End Rich Customer Node.
Вы можете изучить различные способы взаимодействия с декларативной моделью, изучив процесс в веб-дизайнере:
- Задача инициализации сценария показывает, как взаимодействовать с переменными контекста процесса и загружать нашу модель данными.
- Шлюзы можно просмотреть, изучив выходные переходы, они показывают взаимодействие с моделью.
- Сценарий « Взрослый клиент» показывает, как факты вставляются в рабочую память с использованием нашей декларативной модели.
Я надеюсь, что эта демонстрация поможет вам понять, как наша модель данных может быть реализована в проектах BPM JBoss BRMS.