Урок за Drools: Механизъм за правила ArchiСтруктура и диаграма

⚡ Умно обобщение

Drools е система за управление на бизнес правила с отворен код, написана на Java който разделя бизнес логиката от кода на приложението. Този ресурс обяснява правилата, алгоритъма Rete, архитектурата и компонентите на Drools, Eclipse настройка на плъгина и пример за правило „Здравей, свят“.

  • Основна дефиниция: Drools е Java-базирана BRMS, която изпълнява бизнес правила, използвайки алгоритъма за съпоставяне на шаблони Rete.
  • 📜 Структура на правилата: Правилото следва формат „когато-тогава“, като задейства действия само когато условията му съвпадат с фактите в работната памет.
  • 🏗️ Archiтекстура: Правилата се зареждат в база от правила, фактите влизат в работната памет и двигателят ги съпоставя и изпълнява чрез дневен ред.
  • 🔌 Eclipse Setup: Плъгинът Drools се инсталира в Eclipse чрез ZIP файла с дистрибуцията на jBPM и диалоговия прозорец „Инсталиране на нов софтуер“.
  • 🔄 Режими на верижно свързване: Drools поддържа верижно свързване от факти към заключения и верижно свързване назад от цел обратно към факти.

Урок за Drools

Какво е Drools?

Текат лиги е софтуер за управление на бизнес правила (BRMS) с отворен код, написан на Java който предоставя на потребителите разнообразни функции като Business Rule Engine, уеб авторство, приложение за управление на правила и поддръжка по време на изпълнение за модели на решения и нотационни модели. Той използва усъвършенствана система за внедряване на алгоритъм за съпоставяне на шаблони.

Drools беше пуснат под Apache License 2.0 и е съвместим с всяка JVM и също наличен в Maven Central Repository.

Инструментът Drools ви помага да отделите и разсъждавате върху логиката и данните, открити в бизнес процесите. Той поддържа верижно предаване напред и назад, базирано на изводи.

Лигавите са разделени на две части:

  • Авторство – Включва разработването на файлове с правила.
  • Runtime – Включва създаване на работна памет и обработка на активирането.

Какво е правило?

Правилата са части от знанието, често изразени като: „Когато възникнат специфични условия, изпълнете някои задачи.���

Най-важната част от едно правило е то когато част. Веднъж когато част е удовлетворена, след това частта се задейства.

Синтаксис:

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

Метод за съпоставяне на шаблони

Методът за съвпадение на шаблони ви помага да сравнявате нови или стари факти с производствените правила. Завършва се от Inference Engine.

Algorithms използвани за съвпадение на шаблони са:

  • Алгоритъм на Rete
  • Алгоритъм за скокове
  • Линеен алгоритъм
  • Алгоритъм за лечение

Въпреки това алгоритъмът, използван най-вече от Drools, е алгоритъмът Rete.

Алгоритъм на Rete

Алгоритъмът Rete е полезен алгоритъм за съпоставяне на шаблони, който ви позволява да внедрявате системи с производствени правила. Помага ви да пожертвате паметта за повишена скорост. Той също така намалява или елиминира специфични видове резервиране с помощта на споделяне на възли. Той съхранява частични съвпадения, докато извършва обединения между различни типове факти.

Drools Rule Engine

Drools Rule Engine е базиран на правила подход за внедряване на експертна система в софтуера Drools. Механизмът на правилата предоставя експертни системи, които са базирани на знания системи, които ви помагат да вземате решения като какво да правите и как да го правите. Той събира знания в база от знания, която може да се използва за разсъждения.

Drools Tools Suite

Сега в този урок за Drools Rule Engine ще научим за Drools Tool Suite. Ето пет вида инструменти, които идват като част от пакета Drools:

  • Гювнор се лигави: Това е централизирано хранилище за Drools KnowledgeBase.
  • Текат лиги: Предлага работен процес и бизнес процеси.
  • Лигави Fusion: Инструмент, използван за сложна обработка на събития
  • Drools Expert или Rules Engine: Полезен инструмент за извършване на разсъждения.
  • Drools Planner: To предлага автоматизирано планиране, което включва NP-трудни проблеми с планирането.

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

Сега в този урок за Drools, нека научим за важните компоненти на Drools.

Ето основните термини, използвани в Drools:

  • ��акти – Фактът представлява данните, които служат като вход за правила
  • Работна памет – Съхранение с факти, където те се използват за съвпадение на шаблони. Може да се променя, вмъква и премахва.
  • Сесия за знания – Този компонент съдържа всички ресурси, необходими за правилото за задействане. Тук всички факти се вмъкват в една сесия и след това се задействат съответстващи правила.
  • Знание – Представлява знанието в екосистемата Drools. Той съхранява формирането на ресурсите, където се намират правила.
  • Модули – Това е модул, който съхранява множество бази знания, които могат да провеждат различни сесии

Archiтектура на Drools

Drools Rule Engine Archiтекстура
Drools Rule Engine Archiтекстура

Ето работната система на архитектурата на Drools:

Стъпка 1) Правилата се зареждат в базата правила, която е достъпна през цялото време.

Стъпка 2) Фактите се записват в работната памет, където след това могат да бъдат модифицирани или преработени.tracТед.

Стъпка 3) Процесът на съпоставяне на нови или съществуващи факти с производствени правила се нарича съпоставяне на шаблони, което се извършва от машината за правила.

Стъпка 4) Дневният ред ви позволява да управлявате реда на изпълнение на конфликтните правила с помощта на стратегия за разрешаване на конфликти.

Характеристики на Drool

Ето важни характеристики на Drool:

  • Помага ви да отделите приложението от динамичната логика
  • Декларативно програмиране
  • Централизация на знанието
  • Скорост и мащабируемост
  • Отделете логиката от приложението
  • Разбираеми правила

Как да добавите плъгини Drools Eclipse

Сега в този урок за Drools, нека научим как да добавим плъгин Drools Eclipse.

Стъпка 1) Щракнете върху „Distribution ZIP“ за jBPM Integration
Отиди https://www.drools.org/download/download.html и щракнете върху „Distribution ZIP“ за jBPM интеграция. След като бъде изтеглено, т.е.tracго качете на твърдия си диск.

Добавете плъгини Drools Eclipse

Стъпка 2) Инсталирайте нов софтуер
In Eclipse, изберете Инсталиране на нов софтуер.

Добавете плъгини Drools Eclipse

Стъпка 3) Кликнете върху бутона Добавяне
Кликнете върху бутона Добавяне за добавяне на софтуер.

Добавете плъгини Drools Eclipse

Стъпка 4) Преглед на папка
В следващия екран щракнете върху Local и изберете папка „org.drools.updatesite/“, след което щракнете върху Ok.

Добавете плъгини Drools Eclipse

Стъпка 5) Кликнете върху бутона Напред
На страницата за коригиране на инсталиране щракнете върху бутона Напред.

Добавете плъгини Drools Eclipse

Стъпка 6) Приемете лицензионното споразумение
Приемете лицензионното споразумение и щракнете върху Напред.

Добавете плъгини Drools Eclipse

Стъпка 7) Рестартирайте Eclipse
Софтуерът ще се изтегли и ще бъдете помолени да рестартирате eclipse.

Стъпка 8) Процесът на инсталиране е завършен
In Windows > Меню Предпочитания, ще видите опцията Drools, показваща, че е инсталирана.

Добавете плъгини Drools Eclipse

Програма за лигавене 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

Какво е Backward vs. Forward Chaining?

Верижният двигател проверява фактите и извлича конкретно заключение.

Нека разгледаме сценария на системата за медицинска диагностика. Ако симптомите на пациента се поставят като факти в работната памет, тогава е лесно да му се диагностицира заболяване.

Верижно свързване назад срещу напред

Двигател с предна верига

Двигателят с обратна верига има поставената цел и двигателят се опитва да я удовлетвори.

Помислете за същия сценарий на медицинска диагноза. Да приемем, че епидемия от определена бол��ст. Този AI може да предположи, че дадено лице има заболяването и да се опита да определи дали диагнозата му е правилна въз основа на наличната информация.

Верижно свързване назад срещу напред

Двигател с обратна верига

Защо да използвате Drools Rule Engine?

Ето основните причини да използвате Drools rules engine:

  • Правилата са лесни за разбиране от разработчиците и бизнес анализатори.
  • Правилата се поддържат лесно.
  • Rule Engine използва алгоритъм на Rete, който заявява, че производителността на двигателя никога не зависи от броя на правилата.
  • Правилата могат да се променят и внедряват, без да прекъсвате приложението.
  • Екстернализира бизнес логиката от сравнително статичната кодова база.
  • Правилата са разработени в по-малко сложни формати, така че бизнес анализаторът да може лесно да прочете и провери група от правила.
  • Правилата ви позволяват да създадете склад от знания, който е изпълним във форма.
  • Инструменти като Eclipse ви помагат да управлявате правила, да получавате незабавен отговор, удостоверяване и поддръжка на съдържание.

Недостатъци на Rules Engine

Ето недостатъците / минусите на използването на машина за правила:

  • Много усилия за учене изискват от разработчиците да познават този метод на програмиране
  • Механизмът за правила не е сигурен метод за отстраняване на проблеми.
  • Трябва да се разбере как работи системата за правила, за да се консумира повече памет
  • Има широк набор от правила за сложно разклоняване.

Правилата може да се променят с времето и ще влязат в сила с промени в кода

Въпроси и Отговори

Да. Drools е издаден под Apache License 2.0 и е напълно безплатен и с отворен код. Работи на всяка JVM и е достъпен чрез Maven Central Repository за лесна интеграция с проекти.

Правилата на Drools са написани на DRL (Drools Rule Language), декларативен синтаксис, базиран на структурата „когато-тогава“. Правилата могат да бъдат създадени и с помощта на таблици за решения, DMN модели или специфични за дадена област езици за бизнес потребители.

Механизмът за правила екстернализира логиката в поддържаеми правила, които се променят без повторно внедряване на приложението. Твърдо кодираната if-else логика е разпръсната из кодовата база, по-трудна за актуализиране и не се мащабира добре с нарастването на броя на условията.

Drools внедрява експертни системи, класически клон на изкуствения интелект, чрез кодиране на човешкото знание като правила. Двигателят разсъждава върху факти, за да стигне до заключения, поддържайки верижно свързване напред и назад, подобно на символните системи за вземане на решения с изкуствен интелект.

Да. Асистентите с изкуствен интелект могат да изготвят правила за DRL от изисквания на разбираем език, да откриват противоречиви или излишни правила и да предлагат оптимизации. Екипите все още валидират генерираните правила, за да гарантират правилна бизнес логика и надеждно изпълнение.

Обобщете тази публикация с: