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
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.
Krok 2) Zainstaluj nowe oprogramowanie
In Eclipse, wybierz opcję Zainstaluj nowe oprogramowanie.
Krok 3) Kliknij przycisk Dodaj
Kliknij przycisk Dodaj, aby dodać oprogramowanie.
Krok 4) Przeglądaj folder
Na następnym ekranie kliknij Lokalny i wybierz folder „org.drools.updatesite/”, a następnie kliknij OK.
Krok 5) Kliknij przycisk Dalej
Na stronie naprawy instalacji kliknij przycisk Dalej.
Krok 6) Zaakceptuj umowę licencyjną
Zaakceptuj umowę licencyjną i kliknij Dalej.
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.
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ść.
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.
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.