Підручник Drools: Drools Rule Engine Archiтектура та приклади

Що таке Drools?

Течуть слини це програмне забезпечення для керування бізнес-правилами (BRMS) із відкритим кодом, написане на Java який надає користувачам різноманітні функції, такі як механізм бізнес-правил, створення веб-сторінок, додаток для керування правилами та підтримка виконання моделей рішень і нотацій. Він використовує вдосконалену систему реалізації алгоритму зіставлення шаблонів rete.

Drools був випущений під ліцензією Apache 2.0 і сумісний з будь-якою JVM, а також доступний у центральному сховищі Maven.

Інструмент Drools допомагає вам розділяти та міркувати над логікою та даними, які містяться в бізнес-процесах. Він підтримує механізм правил прямого та зворотного ланцюжків на основі висновків.

Слини поділяються на дві частини:

  • Авторство – Це передбачає розробку файлів правил.
  • Час виконання – Це передбачає створення робочої пам’яті та обробку активації.

Що таке правило?

Правила — це частини знань, які часто виражаються так: «Якщо виникають певні умови, тоді виконуйте певні завдання».

Найважливішою частиною правила є його коли частина. Один раз коли частина задоволена, потім частина спрацьовує.

Синтаксис:

When
<Condition is true>
Then
<Take desired Action>

Метод зіставлення шаблону

Метод зіставлення шаблонів допомагає вам порівнювати нові чи старі факти з правилами виробництва. Його завершує механізм логічного висновку.

Algorithms для зіставлення шаблонів використовуються:

  • Алгоритм Рете
  • Алгоритм стрибків
  • Лінійний алгоритм
  • Алгоритм лікування

Однак Drools найчастіше використовує алгоритм Rete.

Алгоритм Рете

Алгоритм Rete — це корисний алгоритм зіставлення шаблонів, який дозволяє впроваджувати системи правил виробництва. Це допоможе вам пожертвувати пам'яттю заради збільшення швидкості. Це також зменшує або усуває певні типи резервування за допомогою спільного використання вузлів. Він зберігає часткові збіги під час виконання об’єднань між різними типами фактів.

Двигун Правил Слин

Двигун Правил Слин це підхід на основі правил для впровадження експертної системи в програмне забезпечення Drools. Механізм правил надає експертні системи, які є системами на основі знань, які допомагають вам приймати рішення, наприклад, що робити і як це робити. Він збирає знання в базу знань, яку можна використовувати для міркувань.

Набір інструментів Drools

Тепер у цьому підручнику Drools Rule Engine ми дізнаємось про Drools Tool Suite. Ось п’ять типів інструментів, які є частиною набору Drools:

  • Тече слина у Гувнора: це централізоване сховище для бази знань Drools.
  • Слини течуть: пропонує робочий процес і бізнес-процеси.
  • Тече слюня Фьюжн: Інструмент, що використовується для складної обробки подій
  • Drools Expert або Rules Engine: корисний інструмент для міркування.
  • Планувальник слюнок: To пропонує автоматизоване планування, яке включає NP-складні задачі планування.

Важливі компоненти в Drools

У цьому посібнику з Drools давайте дізнаємося про важливі компоненти Drools.

Ось основні терміни, які використовуються в Drools:

  • факти – Факт представляє дані, які служать вхідними для правил
  • Робоча пам'ять – Зберігання з фактами, де вони використовуються для зіставлення шаблонів. Його можна змінювати, вставляти та видаляти.
  • Сесія знань – Цей компонент містить усі ресурси, необхідні для правила запуску. Тут усі факти вставляються в один сеанс, а потім запускаються відповідні правила.
  • База знань – Він представляє знання в екосистемі Drools. Він зберігає формування ресурсів, де знаходяться правила.
  • Модулі – Це модуль, який зберігає кілька баз знань, які можуть містити різні сеанси

Archiтектура Слин

Двигун Правил Слин Archiтектура
Двигун Правил Слин Archiтектура

Ось робоча система архітектури Drools:

Крок 1) Правила завантажуються в базу правил, яка доступна постійно.

Крок 2) Факти стверджуються в робочій пам’яті, де їх потім можна змінити або відкликати.

Крок 3) Процес зіставлення нових або існуючих фактів із правилами виробництва називається зіставленням шаблонів, яке виконується механізмом правил.

Крок 4) Порядок денний дозволяє керувати порядком виконання суперечливих правил за допомогою стратегії вирішення конфлікту.

Особливості Drool

Ось важливі функції Drool:

  • Допомагає відокремити програму від динамічної логіки
  • Декларативне програмування
  • Централізація знань
  • Швидкість і масштабованість
  • Відокремте логіку від програми
  • Зрозумілі правила

Як додати плагіни Drools Eclipse

У цьому посібнику з Drools давайте дізнаємося, як додати плагін Drools Eclipse.

Крок 1) Натисніть «Поширення ZIP» для інтеграції jBPM
Перейдіть до https://www.drools.org/download/download.html і натисніть «Distribution ZIP» для інтеграції jBPM. Після завантаження розпакуйте його на жорсткий диск.

Додайте плагіни Drools Eclipse

Крок 2) Встановіть нове програмне забезпечення
In Eclipseвиберіть «Установити нове програмне забезпечення».

Додайте плагіни Drools Eclipse

Крок 3) Натисніть кнопку Додати
Натисніть кнопку «Додати», щоб додати програмне забезпечення.

Додайте плагіни Drools Eclipse

Крок 4) Огляд папки
На наступному екрані натисніть «Локальний» і виберіть папку «org.drools.updatesite/», а потім натисніть «ОК».

Додайте плагіни Drools Eclipse

Крок 5) Натисніть кнопку Далі
На сторінці виправлення встановлення натисніть кнопку Далі.

Додайте плагіни Drools Eclipse

Крок 6) Прийміть ліцензійну угоду
Прийміть ліцензійну угоду та натисніть «Далі».

Додайте плагіни Drools Eclipse

Крок 7) Перезавантажувати Eclipse
Програмне забезпечення завантажиться, і вам буде запропоновано перезавантажити eclipse.

Крок 8) Процес встановлення завершено
In Windows > Меню налаштувань, ви побачите опцію Drools, що вказує на її встановлення.

Додайте плагіни Drools Eclipse

Приклад програми Drools Hello World

Нижче наведено приклад Drools для програми Hello World:

package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
 when
	m : Message( status ** Message.Hello, myMessage : message )
  then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE ); 
update( m );
end
 rule "GoodBye"

when
	Message( status ** Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end

Що таке зворотне чи пряме з’єднання?

Механізм прямого ланцюга перевіряє факти та робить конкретний висновок.

Розглянемо сценарій системи медичної діагностики. Якщо симптоми пацієнта закладені як факти в оперативну пам'ять, то легко діагностувати у нього захворювання.

Зворотне проти прямого ланцюжка

Двигун з переднім ланцюгом

Двигун зворотного ланцюжка має поставлену мету, і двигун намагається її задовольнити.

Розглянемо такий же сценарій медичного діагнозу. Припустимо, що виникла епідемія якогось захворювання. Цей штучний інтелект може припустити, що дана особа хвора на хворобу, і спробувати визначити, чи правильний її діагноз на основі наявної інформації.

Зворотне проти прямого ланцюжка

Двигун із зворотним ланцюгом

Навіщо використовувати Drools Rule Engine?

Ось основні причини використання механізму правил Drools:

  • Правила прості для розуміння розробниками та бізнес-аналітики.
  • Правила легко підтримувати.
  • Rule Engine використовує алгоритм Rete, який стверджує, що продуктивність механізму ніколи не залежить від кількості правил.
  • Правила можна змінювати та застосовувати без припинення роботи програми.
  • Виводить бізнес-логіку з порівняно статичної кодової бази.
  • Правила розроблено в менш складних форматах, щоб бізнес-аналітик міг легко прочитати та перевірити групу правил.
  • Правила дозволяють створити сховище знань, яке є виконуваним у формі.
  • Такі інструменти, як Eclipse допоможе вам керувати правилами, отримати миттєву відповідь, автентифікацію та підтримку вмісту.

Недоліки Rules Engine

Ось недоліки/мінуси використання механізму правил:

  • Знання цього методу програмування вимагає від розробників великих зусиль у навчанні
  • Механізм правил не є безпечним методом вирішення проблем.
  • Потрібно розуміти роботу механізму правил, щоб споживати більше пам’яті
  • Існує широкий набір правил для складного розгалуження.

Правила можуть змінюватися з часом і набудуть чинності після зміни коду

Підсумки

  • JBoss Drools — це платформа інтеграції бізнес-логіки (BLiP)
  • Типи інструменту Drool: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Drool допомагає вам відокремити програму від динамічної логіки.
  • Факт представляє дані, які служать вхідними для правил.
  • Робоча пам'ять - це сховище з фактами, де вони використовуються для зіставлення шаблонів. Його можна змінювати, вставляти та видаляти.
  • База знань – це компонент, який містить усі ресурси, необхідні для запуску правила.
  • Сесія знань представляє знання в екосистемі Drools.
  • База знань представляє знання в екосистемі Drools.
  • Модуль зберігає кілька баз знань, які можуть проводити різні сесії.
  • Правила — це частини знань, які часто виражаються так: «Якщо виникають певні умови, тоді виконуйте певні завдання».
  • Drools — це система правил, яка використовує підхід на основі правил для реалізації експертної системи.
  • Механізм прямого ланцюга перевіряє факти та робить конкретний висновок.
  • Двигун зворотного ланцюжка має поставлену мету, і двигун намагається її задовольнити.
  • Алгоритм Rete — це корисний алгоритм зіставлення шаблонів, який дозволяє впроваджувати системи правил виробництва.
  • Правила прості для розуміння розробниками та бізнес-аналітиками.
  • Основним недоліком використання механізму правил, такого як Drool, є те, що розробникам потрібно багато зусиль у навчанні, щоб знати цей метод програмування.