Статьи

Red Hat JBoss BRMS — Добавление декларативной модели данных в демонстрационную версию оценки клиента

Ранее я опубликовал демонстрацию интеграции управления бизнес-процессами (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.