Drools Tutorial: Drools Rule Engine Architectură și exemple
Ce este Drools?
Saliva este un software de management al regulilor de afaceri (BRMS) open source scris în Java care oferă utilizatorilor o varietate de funcții, cum ar fi Motorul de reguli de afaceri, crearea web, aplicația de gestionare a regulilor și suportul de rulare pentru modelele de model de decizie și notație. Utilizează un sistem avansat de implementare a algoritmului de potrivire a modelelor rete.
Drools a fost lansat sub Apache License 2.0 și este compatibil cu orice JVM și disponibil și în Maven Central Repository.
Instrumentul Drools vă ajută să separați și să raționați logica și datele găsite în procesele de afaceri. Acceptă motorul de reguli de drools înlănțuire înainte și înapoi.
Drools sunt împărțite în două părți:
- Creare – Implică dezvoltarea dosarelor de reguli.
- Runtime – Implică crearea memoriei de lucru și gestionarea activării.
Ce este regula?
Regulile sunt părți ale cunoștințelor adesea exprimate ca: „Când apar anumite condiții, atunci faceți anumite sarcini”.
Cea mai importantă parte a unei reguli este ea cand parte. O singura data cand o parte este mulțumită, apoi piesa este declansata.
Sintaxă:
When <Condition is true> Then <Take desired Action>
Metoda de potrivire a modelelor
Metoda de potrivire a modelelor vă ajută să comparați fapte noi sau vechi cu regulile de producție. Este completat de motorul de inferență.
Algorithms utilizate pentru potrivirea modelelor sunt:
- Algoritmul Rete
- Algoritmul Salturi
- Algoritm liniar
- Algoritmul de tratare
Cu toate acestea, algoritmul folosit cel mai mult de Drools este algoritmul Rete.
Algoritmul Rete
Algoritmul Rete este un algoritm util de potrivire a modelelor care vă permite să implementați sisteme de reguli de producție. Vă ajută să sacrificați memoria pentru o viteză crescută. De asemenea, reduce sau elimină anumite tipuri de redundanță cu ajutorul partajării nodurilor. Stochează potriviri parțiale în timp ce realizează îmbinări între diferite tipuri de fapte.
Drools Rule Engine
Drools Rule Engine este o abordare bazată pe reguli pentru a implementa un sistem Expert în software-ul Drools. Motorul de reguli oferă sisteme Expert care sunt sisteme bazate pe cunoștințe care vă ajută să luați decizii precum ce să faceți și cum să faceți acest lucru. Adună cunoștințele într-o bază de cunoștințe care poate fi folosită pentru raționament.
Drools Tools Suite
Acum, în acest tutorial Drools Rule Engine, vom afla despre Drools Tool Suite. Iată cinci tipuri de instrumente care fac parte din suita Drools:
- Drools Guvnor: Este un depozit centralizat pentru baza de cunoștințe Drools.
- Drools Flow: Oferă flux de lucru și procese de afaceri.
- Drools Fusion: Instrument utilizat pentru procesarea evenimentelor complexe
- Drools Expert sau Rules Engine: Un instrument util pentru efectuarea raționamentului.
- Planificator de salive: Oferă planificare automată, care include probleme de planificare NP-hard.
Componente importante în Drools
Acum, în acest tutorial Drools, să învățăm despre componentele importante ale Drools.
Iată termenii esențiali folosiți în Drools:
- Beneficii – Faptul reprezintă datele care servesc drept intrare pentru reguli
- Memoria de lucru – Stocare cu fapte, unde sunt folosite pentru potrivirea modelelor. Poate fi modificat, inserat și eliminat.
- Sesiune de cunoștințe – Această componentă deține toate resursele necesare pentru reglarea tragerii. Aici, toate faptele sunt inserate într-o singură sesiune, iar apoi sunt declanșate regulile de potrivire.
- Baza de cunoștințe – Reprezintă cunoștințele din ecosistemul Drools. Stochează formarea resurselor în care se găsesc reguli.
- Module – Acesta este un modul care stochează mai multe baze de cunoștințe care pot ține diferite sesiuni
Architectura de Drools

Iată sistemul de lucru al arhitecturii Drools:
Pas 1) Regulile sunt încărcate în Rule Base, care sunt disponibile mereu.
Pas 2) Faptele sunt afirmate în Memoria de lucru unde pot fi apoi modificate sau retrase.
Pas 3) Procesul de potrivire a faptelor noi sau existente cu regulile de producție se numește potrivire de modele, care este realizat de motorul de reguli.
Pas 4) Agenda vă permite să gestionați ordinea de execuție a regulilor conflictuale cu ajutorul unei strategii de rezolvare a conflictelor.
Caracteristicile lui Drool
Iată caracteristicile importante ale Drool:
- Vă ajută să separați aplicația de logica dinamică
- Programare Declarativă
- Centralizarea cunoștințelor
- Viteză și scalabilitate
- Separați logica de aplicație
- Reguli de înțeles
Cum să adăugați pluginuri Drools în Eclipse
Acum, în acest tutorial Drools, să învățăm cum să adăugați pluginul Drools Eclipse.
Pas 1) Faceți clic pe „Distribution ZIP” pentru integrarea jBPM
Mergi la pagina https://www.drools.org/download/download.html și faceți clic pe „Distribution ZIP” pentru integrarea jBPM. Odată descărcat, extrageți-l pe hard disk.
Pas 2) Instalați software nou
In Eclipse, selectați Instalare software nou.
Pas 3) Faceți clic pe butonul Adăugați
Faceți clic pe butonul Adaugă pentru a adăuga un software.
Pas 4) Răsfoiți folderul
În ecranul următor, faceți clic pe Local și Selectați folderul „org.drools.updatesite/”, apoi faceți clic pe Ok.
Pas 5) Faceți clic pe butonul Următorul
Pe pagina de remediere a instalării, faceți clic pe butonul Următorul.
Pas 6) Acceptați acordul de licență
Acceptați acordul de licență și faceți clic pe următorul.
Pas 7) reboot Eclipse
Software-ul se va descărca și vi se va cere să reporniți Eclipse.
Pas 8) Procesul de instalare finalizat
In Windows > Meniul Preferințe, veți vedea opțiunea Drools care indică faptul că este instalată.
Programul Drools Hello World Exemplu
Mai jos este un exemplu Drools pentru programul 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
Ce este înlănțuirea înapoi vs. înainte?
Un motor de înlănțuire înainte verifică faptele și trage o concluzie specifică.
Să luăm în considerare un scenariu al sistemului de diagnostic medical. Dacă simptomele pacientului sunt puse ca fapte în memoria de lucru, atunci este ușor să-l diagnosticați cu o boală.
Motor cu lanț înainte
Un motor cu lanțuri înapoi are scopul stabilit, iar motorul încearcă să-l satisfacă.
Luați în considerare același scenariu de diagnostic medical. Să presupunem că o epidemie a unei anumite boli. Această IA ar putea presupune că o anumită persoană a avut boala și ar putea încerca să determine dacă diagnosticul său este corect pe baza informațiilor disponibile.
Motor cu lanțuri înapoi
De ce să folosiți Drools Rule Engine?
Iată principalele motive pentru a utiliza motorul de reguli Drools:
- Regulile sunt ușor de înțeles pentru dezvoltatori și analiști de afaceri.
- Regulile sunt ușor de întreținut.
- Rule Engine folosește un algoritm Rete care afirmă că performanța motorului nu depinde niciodată de numărul de reguli.
- Regulile pot fi modificate și implementate fără a opri aplicația.
- Externalizează logica de afaceri din baza de cod comparativ statică.
- Regulile sunt dezvoltate în formate mai puțin complicate, astfel încât analistul de afaceri să poată citi și verifica cu ușurință un grup de reguli.
- Regulile vă permit să creați un depozit de cunoștințe care este executabil în formă.
- Instrumente de genul Eclipse vă ajută să gestionați regulile, să obțineți un răspuns instantaneu, autentificare și suport pentru conținut.
Dezavantajele Rules Engine
Iată dezavantajele / dezavantajele utilizării motorului de reguli:
- Multe eforturi de învățare necesită din partea dezvoltatorilor pentru a cunoaște această metodă de programare
- Motorul de reguli nu este o metodă sigură de depanare a problemelor.
- Trebuie să înțeleagă funcționarea motorului de reguli pentru a consuma mai multă memorie
- Există un set larg de reguli pentru o ramificare complexă.
Regulile se pot schimba în timp și vor intra în vigoare odată cu modificările codului
Rezumat
- JBoss Drools este o platformă de integrare a logică de afaceri (BLiP)
- Tipurile de instrumente Drool sunt: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
- Drool vă ajută să separați aplicația de logica dinamică.
- Faptul a reprezentat datele care servesc drept intrare pentru reguli.
- Memoria de lucru este o stocare cu Fapte, unde sunt folosite pentru potrivirea modelelor. Poate fi modificat, inserat și eliminat.
- Baza de cunoștințe este o componentă care deține toate resursele necesare pentru reglarea tragerii.
- Sesiunea de cunoștințe reprezintă cunoștințele din ecosistemul Drools.
- Baza de cunoștințe reprezintă cunoștințele din ecosistemul Drools.
- Modulul stochează mai multe baze de cunoștințe, care pot organiza diferite sesiuni.
- Regulile sunt părți ale cunoștințelor adesea exprimate ca: „Când apar anumite condiții, atunci faceți anumite sarcini”.
- Un Drools este un motor de reguli care utilizează o abordare bazată pe reguli pentru a implementa un sistem Expert.
- Un motor de înlănțuire înainte verifică faptele și trage o concluzie specifică.
- Un motor cu lanțuri înapoi are scopul stabilit, iar motorul încearcă să-l satisfacă.
- Algoritmul Rete este un algoritm util de potrivire a modelelor care vă permite să implementați sisteme de reguli de producție.
- Regulile sunt ușor de înțeles pentru dezvoltatori și analiștii de afaceri.
- Dezavantajul major al utilizării unui motor de reguli precum Drool este că necesită mult efort de învățare cerut de dezvoltatori pentru a cunoaște această metodă de programare.