Samouczek Drools: Silnik reguł Drools Architecture i przykłady

Co to jest Drools?

Drools to oprogramowanie do zarządzania regułami biznesowymi (BRMS) o otwartym kodzie źródłowym, napisane w języku Java który zapewnia użytkownikom różnorodne funkcje, takie jak silnik reguł biznesowych, tworzenie stron internetowych, aplikacja do zarządzania regułami i obsługa modeli decyzyjnych i modeli notacji w czasie wykonywania. Wykorzystuje zaawansowany system implementacji algorytmu dopasowywania wzorców rete.

Drools został wydany na licencji Apache 2.0 i jest kompatybilny z dowolną maszyną JVM i jest dostępny również w centralnym repozytorium Maven.

Narzędzie Drools pomaga oddzielić i uzasadnić logikę oraz dane znajdujące się w procesach biznesowych. Obsługuje silnik reguł drools oparty na wnioskowaniu do przodu i do tyłu.

Drools są podzielone na dwie części:

  • Authoring – Polega na opracowaniu plików reguł.
  • Czas pracy – Polega na utworzeniu pamięci roboczej i obsłudze aktywacji.

Co to jest reguła?

Reguły to część wiedzy często wyrażana w następujący sposób: „Kiedy wystąpią określone warunki, wykonaj pewne zadania”.

Najważniejszą częścią reguły jest to jeśli chodzi o komunikację i motywację część. Raz jeśli chodzi o komunikację i motywację część jest zadowolona, następnie część jest uruchamiana.

Składnia:

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

Metoda dopasowywania wzorców

Metoda dopasowywania wzorców pomaga porównać nowe lub stare fakty z zasadami produkcji. Całość uzupełnia silnik wnioskowania.

Algorithms używane do dopasowywania wzorców to:

  • Algorytm Rete’a
  • Algorytm skoków
  • Algorytm liniowy
  • Traktuj algorytm

Jednak algorytmem najczęściej używanym przez Drools jest algorytm Rete.

Algorytm Rete’a

Algorytm Rete jest użytecznym algorytmem dopasowywania wzorców, który umożliwia implementację systemów reguł produkcyjnych. Pomaga poświęcić pamięć na rzecz zwiększonej szybkości. Zmniejsza lub eliminuje również określone rodzaje redundancji za pomocą współdzielenia węzłów. Przechowuje częściowe dopasowania podczas wykonywania połączeń między różnymi typami faktów.

Silnik reguł Drools

Silnik reguł Drools to oparte na regułach podejście do wdrożenia systemu Expert w oprogramowaniu Drools. Silnik reguł zapewnia systemy eksperckie, które są systemami opartymi na wiedzy i pomagają w podejmowaniu decyzji dotyczących tego, co i jak zrobić. Gromadzi wiedzę w bazie wiedzy, którą można wykorzystać do rozumowania.

Pakiet narzędzi Drools

W tym samouczku Drools Rule Engine dowiemy się o Drools Tool Suite. Oto pięć typów narzędzi wchodzących w skład pakietu Drools:

  • Ślini się Guvnor: Jest to scentralizowane repozytorium bazy wiedzy Drools.
  • Ślini się przepływ: Oferuje przepływ pracy i procesy biznesowe.
  • Ślini się Fuzja:Narzędzie służące do przetwarzania złożonych zdarzeń
  • Ekspert Drools lub silnik reguł: Przydatne narzędzie do wnioskowania.
  • Planista ślinienia się: To oferuje zautomatyzowane planowanie, które obejmuje problemy planowania NP-trudnego.

Ważne komponenty Drools

Teraz, w tym samouczku Drools, poznajmy ważne komponenty Drools.

Oto podstawowe terminy używane w Drools:

  • Fakty – Fakt reprezentuje dane, które służą jako dane wejściowe dla reguł
  • Pamięć robocza – Magazyn z Faktami, gdzie wykorzystywane są do dopasowywania wzorców. Można go modyfikować, wstawiać i usuwać.
  • Sesja wiedzy – Ten komponent zawiera wszystkie zasoby wymagane do reguły strzelania. Tutaj wszystkie fakty są wstawiane do pojedynczej sesji, a następnie uruchamiane są pasujące reguły.
  • Baza Wiedzy – Reprezentuje wiedzę w ekosystemie Drools. Przechowuje tworzenie zasobów, w których znajdują się reguły.
  • Moduł – Jest to moduł przechowujący wiele baz wiedzy, w których mogą odbywać się różne sesje

Architektura Drools

Silnik reguł Drools Architektura
Silnik reguł Drools Architektura

Oto działający system architektury Drools:

Krok 1) Reguły ładowane są do Bazy Reguł, która jest zawsze dostępna.

Krok 2) Fakty są zapisywane w pamięci roboczej, gdzie można je następnie modyfikować lub wycofywać.

Krok 3) Proces dopasowywania nowych lub istniejących faktów do reguł produkcyjnych nazywany jest dopasowywaniem wzorców i jest wykonywany przez silnik reguł.

Krok 4) Agenda umożliwia zarządzanie kolejnością wykonywania sprzecznych zasad za pomocą strategii rozwiązywania konfliktów.

Funkcje Droola

Oto ważne cechy Drool:

  • Pomaga oddzielić aplikację od logiki dynamicznej
  • Programowanie deklaratywne
  • Centralizacja wiedzy
  • Szybkość i skalowalność
  • Oddziel logikę od aplikacji
  • Zrozumiałe zasady

Jak dodać wtyczki Drools do Eclipse

Teraz w tym samouczku Drools nauczmy się, jak dodać wtyczkę Drools Eclipse.

Krok 1) Kliknij „Distribution ZIP”, aby uzyskać integrację z jBPM
Iść do https://www.drools.org/download/download.html i kliknij „Distribution ZIP”, aby uzyskać integrację z jBPM. Po pobraniu rozpakuj go na dysk twardy.

Dodaj wtyczki Drools Eclipse

Krok 2) Zainstaluj nowe oprogramowanie
In Eclipse, wybierz opcję Zainstaluj nowe oprogramowanie.

Dodaj wtyczki Drools Eclipse

Krok 3) Kliknij przycisk Dodaj
Kliknij przycisk Dodaj, aby dodać oprogramowanie.

Dodaj wtyczki Drools Eclipse

Krok 4) Przeglądaj folder
Na następnym ekranie kliknij Lokalny i wybierz folder „org.drools.updatesite/”, a następnie kliknij OK.

Dodaj wtyczki Drools Eclipse

Krok 5) Kliknij przycisk Dalej
Na stronie naprawy instalacji kliknij przycisk Dalej.

Dodaj wtyczki Drools Eclipse

Krok 6) Zaakceptuj umowę licencyjną
Zaakceptuj umowę licencyjną i kliknij Dalej.

Dodaj wtyczki Drools Eclipse

Krok 7) Reboot Eclipse
Oprogramowanie zostanie pobrane i zostaniesz poproszony o ponowne uruchomienie Eclipse.

Krok 8) Proces instalacji został zakończony
In Windows > Preferencje, zobaczysz opcję Drools wskazującą, że jest zainstalowana.

Dodaj wtyczki Drools Eclipse

Przykład programu Drools Hello World

Poniżej znajduje się przykład Drools dla programu 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

Co to jest łączenie wstecz i do przodu?

Silnik typu forward-chaining sprawdza fakty i wyciąga konkretny wniosek.

Rozważmy scenariusz systemu diagnostyki medycznej. Jeśli objawy pacjenta zostaną wprowadzone do pamięci roboczej jako fakty, łatwo jest zdiagnozować u niego jakąś dolegliwość.

Łańcuch do tyłu i do przodu

Silnik z łańcuchem do przodu

Silnik z łańcuchem wstecznym ma wyznaczony cel i silnik stara się go osiągnąć.

Rozważmy ten sam scenariusz diagnozy medycznej. Załóżmy, że jest to epidemia określonej choroby. Ta AI może zakładać, że dana osoba jest chora i na podstawie dostępnych informacji próbować ustalić, czy jej diagnoza jest prawidłowa.

Łańcuch do tyłu i do przodu

Silnik z łańcuchem wstecznym

Dlaczego warto używać Drools Rule Engine?

Oto główne powody, dla których warto używać silnika reguł Drools:

  • Zasady są łatwe do zrozumienia dla programistów i analitycy biznesowi.
  • Zasady są łatwe w utrzymaniu.
  • Rule Engine wykorzystuje algorytm Rete, który stwierdza, że ​​wydajność silnika nigdy nie zależy od liczby reguł.
  • Reguły można modyfikować i wdrażać bez wyłączania aplikacji.
  • Eksternalizuje logikę biznesową ze stosunkowo statycznej bazy kodu.
  • Reguły są opracowywane w mniej skomplikowanych formatach, dzięki czemu analityk biznesowy może łatwo przeczytać i zweryfikować grupę reguł.
  • Reguły pozwalają na stworzenie magazynu wiedzy, który jest wykonywalny w formie.
  • Narzędzia takie jak Eclipse pomogą Ci zarządzać regułami, uzyskać natychmiastową odpowiedź, uwierzytelnienie i obsługę treści.

Wady silnika reguł

Oto wady/wady korzystania z silnika reguł:

  • Znajomość tej metody programowania wymaga od programistów dużego wysiłku związanego z nauką
  • Silnik reguł nie jest bezpieczną metodą rozwiązywania problemów.
  • Musi zrozumieć działanie silnika reguł, aby zużywał więcej pamięci
  • Istnieje szeroki zbiór reguł dotyczących rozgałęzień złożonych.

Reguły mogą z czasem ulegać zmianom i zaczną obowiązywać wraz ze zmianami w kodzie

Podsumowanie

  • JBoss Drools to platforma integracji logiki biznesowej (BLiP)
  • Rodzaje narzędzi Drool to: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Drool pomaga oddzielić aplikację od logiki dynamicznej.
  • Fakt reprezentował dane, które służą jako dane wejściowe dla reguł.
  • Pamięć robocza to magazyn faktów, w którym są one wykorzystywane do dopasowywania wzorców. Można go modyfikować, wstawiać i usuwać.
  • Baza wiedzy jest komponentem, w którym znajdują się wszystkie zasoby potrzebne do reguły odpalania.
  • Sesja wiedzy przedstawia wiedzę w ekosystemie Drools.
  • Baza wiedzy reprezentuje wiedzę znajdującą się w ekosystemie Drools.
  • Moduł przechowuje wiele baz wiedzy, w których mogą odbywać się różne sesje.
  • Reguły to część wiedzy często wyrażana w następujący sposób: „Kiedy wystąpią określone warunki, wykonaj pewne zadania”.
  • Drools to silnik reguł, który wykorzystuje podejście oparte na regułach do wdrożenia systemu eksperckiego.
  • Silnik typu forward-chaining sprawdza fakty i wyciąga konkretny wniosek.
  • Silnik z łańcuchem wstecznym ma wyznaczony cel i silnik stara się go osiągnąć.
  • Algorytm Rete jest użytecznym algorytmem dopasowywania wzorców, który umożliwia implementację systemów reguł produkcyjnych.
  • Reguły są łatwe do zrozumienia dla programistów i analityków biznesowych.
  • Główną wadą używania silnika reguł takiego jak Drool jest to, że wymaga dużo wysiłku w nauce, wymaganego przez programistów, aby poznać tę metodę programowania.