Drools Урок: Drools Rule Engine Archiструктура и примери
Какво е 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:
Стъпка 1) Правилата се зареждат в базата правила, която е достъпна през цялото време.
Стъпка 2) Фактите се утвърждават в работната памет, където след това могат да бъдат модифицирани или оттеглени.
Стъпка 3) Процесът на съпоставяне на нови или съществуващи факти с производствени правила се нарича съпоставяне на шаблони, което се извършва от машината за правила.
Стъпка 4) Дневният ред ви позволява да управлявате реда на изпълнение на конфликтните правила с помощта на стратегия за разрешаване на конфликти.
Характеристики на Drool
Ето важни характеристики на Drool:
- Помага ви да отделите приложението от динамичната логика
- Декларативно програмиране
- Централизация на знанието
- Скорост и мащабируемост
- Отделете логиката от приложението
- Разбираеми правила
Как да добавите плъгини Drools Eclipse
Сега в този урок за Drools, нека научим как да добавим плъгин Drools Eclipse.
Стъпка 1) Щракнете върху „Distribution ZIP“ за jBPM Integration
Отиди https://www.drools.org/download/download.html и щракнете върху „Разпространение ZIP“ за интегриране на jBPM. След като го изтеглите, разархивирайте го на вашия твърд диск.
Стъпка 2) Инсталирайте нов софтуер
In Eclipse, изберете Инсталиране на нов софтуер.
Стъпка 3) Кликнете върху бутона Добавяне
Кликнете върху бутона Добавяне за добавяне на софтуер.
Стъпка 4) Преглед на папка
В следващия екран щракнете върху Local и изберете папка „org.drools.updatesite/“, след което щракнете върху Ok.
Стъпка 5) Кликнете върху бутона Напред
На страницата за коригиране на инсталиране щракнете върху бутона Напред.
Стъпка 6) Приемете лицензионното споразумение
Приемете лицензионното споразумение и щракнете върху Напред.
Стъпка 7) Рестартирайте Eclipse
Софтуерът ще се изтегли и ще бъдете помолени да рестартирате eclipse.
Стъпка 8) Процесът на инсталиране е завършен
In Windows > Меню Предпочитания, ще видите опцията 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
Какво е Backward vs. Forward Chaining?
Верижният двигател проверява фактите и извлича конкретно заключение.
Нека разгледаме сценария на системата за медицинска диагностика. Ако симптомите на пациента се поставят като факти в работната памет, тогава е лесно да му се диагностицира заболяване.
Двигател с предна верига
Двигателят с обратна верига има поставената цел и двигателят се опитва да я удовлетвори.
Помислете за същия сценарий на медицинска диагноза. Да приемем, че епидемия от определена болест. Този AI може да предположи, че дадено лице има заболяването и да се опита да определи дали диагнозата му е правилна въз основа на наличната информация.
Двигател с обратна верига
Защо да използвате Drools Rule Engine?
Ето основните причини да използвате Drools rules engine:
- Правилата са лесни за разбиране от разработчиците и бизнес анализатори.
- Правилата се поддържат лесно.
- Rule Engine използва алгоритъм на Rete, който заявява, че производителността на двигателя никога не зависи от броя на правилата.
- Правилата могат да се променят и внедряват, без да прекъсвате приложението.
- Екстернализира бизнес логиката от сравнително статичната кодова база.
- Правилата са разработени в по-малко сложни формати, така че бизнес анализаторът да може лесно да прочете и провери група от правила.
- Правилата ви позволяват да създадете склад от знания, който е изпълним във форма.
- Инструменти като Eclipse ви помагат да управлявате правила, да получавате незабавен отговор, удостоверяване и поддръжка на съдържание.
Недостатъци на Rules Engine
Ето недостатъците / минусите на използването на машина за правила:
- Много усилия за учене изискват от разработчиците да познават този метод на програмиране
- Механизмът за правила не е сигурен метод за отстраняване на проблеми.
- Трябва да разбере работата на механизма за правила, за да консумира повече памет
- Има широк набор от правила за сложно разклоняване.
Правилата може да се променят с времето и ще влязат в сила с промени в кода
Oбобщение
- 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 е, че изисква много усилия за учене, необходими на разработчиците, за да познават този метод на програмиране.