Drools Tutorial: Drools Rule Engine Architekstura i primjeri

Što je Drools?

Sline je softver otvorenog koda za upravljanje poslovnim pravilima (BRMS) napisan u Java koji korisnicima pruža niz značajki kao što su Business Rule Engine, web autorstvo, aplikacija za upravljanje pravilima i podrška za vrijeme izvođenja za modele odlučivanja i notacijske modele. Koristi napredni implementacijski sustav rete algoritma za usklađivanje uzoraka.

Drools je objavljen pod licencom Apache 2.0 i kompatibilan je s bilo kojim JVM-om, a dostupan je i u Maven Central Repository.

Alat Drools pomaže vam da odvojite i zaključite logiku i podatke koji se nalaze u poslovnim procesima. Podržava mehanizam za ulančavanje unaprijed i unatrag temeljen na zaključivanju.

Sline se dijele na dva dijela:

  • Autorstvo – Uključuje razvoj datoteka s pravilima.
  • dužina trajanja – Uključuje stvaranje radne memorije i rukovanje aktivacijom.

Što je pravilo?

Pravila su dijelovi znanja koji se često izražavaju kao: "Kada se pojave određeni uvjeti, onda izvršite neke zadatke."

Najvažniji dio pravila je to kada dio. Jednom kada dio je zadovoljan, tada dio je pokrenut.

Sintaksa:

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

Metoda podudaranja uzorka

Metoda podudaranja uzoraka pomaže vam da usporedite nove ili stare činjenice s pravilima proizvodnje. Dovršava ga Inference Engine.

Algorithms koji se koriste za usklađivanje uzorka su:

  • Reteov algoritam
  • Algoritam skokova
  • Linearni algoritam
  • Algoritam liječenja

Međutim, algoritam koji uglavnom koristi Drools je Rete algoritam.

Reteov algoritam

Rete algoritam je koristan algoritam za usklađivanje uzoraka koji vam omogućuje implementaciju sustava pravila proizvodnje. Pomaže vam da žrtvujete memoriju za veću brzinu. Također smanjuje ili uklanja određene vrste redundancije uz pomoć dijeljenja čvorova. Pohranjuje djelomična podudaranja tijekom izvođenja spajanja između različitih vrsta činjenica.

Drools Rule Engine

Drools Rule Engine je pristup temeljen na pravilima za implementaciju ekspertnog sustava u softveru Drools. Rule engine pruža ekspertne sustave koji su sustavi temeljeni na znanju koji vam pomažu u donošenju odluka poput onoga što učiniti i kako to učiniti. Skuplja znanje u bazu znanja koja se može koristiti za zaključivanje.

Drools Tools Suite

U ovom vodiču za Drools Rule Engine naučit ćemo o paketu alata Drools. Evo pet vrsta alata koji dolaze kao dio paketa Drools:

  • Slinavi Guvnor: To je centralizirano spremište za Drools KnowledgeBase.
  • Slina teče: Nudi tijek rada i poslovne procese.
  • Slinava Fusion: Alat koji se koristi za složenu obradu događaja
  • Drools Expert ili Rules Engine: Koristan alat za zaključivanje.
  • Drools planer: To nudi automatizirano planiranje, koje uključuje NP-tvrde probleme planiranja.

Važne komponente u Droolsu

Sada u ovom Drools vodiču, naučimo o važnim komponentama Droolsa.

Evo osnovnih pojmova koji se koriste u Droolsu:

  • Činjenicama – Činjenice predstavljaju podatke koji služe kao ulaz za pravila
  • Radna memorija – Pohrana s činjenicama, gdje se koriste za usklađivanje uzoraka. Može se mijenjati, umetati i uklanjati.
  • Sesija znanja – Ova komponenta sadrži sve resurse potrebne za pravilo pokretanja. Ovdje se sve činjenice ubacuju u jednu sesiju, a zatim se aktiviraju odgovarajuća pravila.
  • Baza znanja – Predstavlja znanje u Drools ekosustavu. Pohranjuje formaciju resursa u kojima se nalaze pravila.
  • Moduli – Ovo je modul koji pohranjuje više baza znanja koje mogu održavati različite sesije

Architecture of Drools

Drools Rule Engine Architektura
Drools Rule Engine Architektura

Evo radnog sustava Drools arhitekture:

Korak 1) Pravila se učitavaju u bazu pravila, koja je dostupna cijelo vrijeme.

Korak 2) Činjenice se ubacuju u radnu memoriju gdje se zatim mogu modificirati ili povući.

Korak 3) Proces uparivanja novih ili postojećih činjenica s proizvodnim pravilima naziva se uparivanje uzorka, a izvodi ga mehanizam pravila.

Korak 4) Dnevni red vam omogućuje upravljanje redoslijedom izvršenja sukobljenih pravila uz pomoć strategije rješavanja sukoba.

Značajke Droola

Evo važnih značajki Droola:

  • Pomaže vam da odvojite aplikaciju od dinamičke logike
  • Deklarativno programiranje
  • Centralizacija znanja
  • Brzina i skalabilnost
  • Odvojite logiku od primjene
  • Razumljiva pravila

Kako dodati Drools dodatke Eclipse

U ovom vodiču za Drools, naučimo kako dodati dodatak Drools Eclipse.

Korak 1) Kliknite na “Distribution ZIP” za jBPM integraciju
Idi na https://www.drools.org/download/download.html i kliknite "Distribucija ZIP" za jBPM integraciju. Nakon preuzimanja, izdvojite ga na svoj tvrdi disk.

Dodajte Drools dodatke Eclipse

Korak 2) Instalirajte novi softver
In Eclipse, odaberite Instaliraj novi softver.

Dodajte Drools dodatke Eclipse

Korak 3) Pritisnite gumb Dodaj
Pritisnite gumb Dodaj za dodavanje softvera.

Dodajte Drools dodatke Eclipse

Korak 4) Pregledaj mapu
Na sljedećem ekranu kliknite na Lokalno i odaberite mapu “org.drools.updatesite/”, a zatim kliknite na U redu.

Dodajte Drools dodatke Eclipse

Korak 5) Kliknite na gumb Dalje
Na stranici ispravljanja instalacije kliknite na gumb Dalje.

Dodajte Drools dodatke Eclipse

Korak 6) Prihvatite licencni ugovor
Prihvatite licencni ugovor i kliknite dalje.

Dodajte Drools dodatke Eclipse

Korak 7) Ponovno Eclipse
Softver će se preuzeti i od vas će se tražiti da ponovno pokrenete eclipse.

Korak 8) Proces instalacije završen
In Windows > izbornika Preferences, vidjet ćete opciju Drools koja označava da je instalirana.

Dodajte Drools dodatke Eclipse

Primjer slinavog programa Hello World

Dolje je primjer slinjenja za program 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

Što je ulančavanje unatrag naspram unaprijed?

Motor za lančano kretanje prema naprijed provjerava činjenice i izvodi određeni zaključak.

Razmotrimo scenarij medicinskog dijagnostičkog sustava. Ako se pacijentovi simptomi stave kao činjenice u radnu memoriju, tada mu je lako dijagnosticirati bolest.

Lančano unazad nasuprot naprijed

Motor s prednjim lancem

Unazad ulančani motor ima postavljeni cilj, a motor ga nastoji zadovoljiti.

Razmotrite isti scenarij medicinske dijagnoze. Pretpostavimo da je epidemija određene bolesti. Ovaj AI mogao bi pretpostaviti da određena osoba ima bolest i pokušati utvrditi je li njegova dijagnoza točna na temelju dostupnih informacija.

Lančano unazad nasuprot naprijed

Motor s ulančanim pogonom unazad

Zašto koristiti Drools Rule Engine?

Ovdje su glavni razlozi za korištenje mehanizma pravila Drools:

  • Pravila su lako razumljiva programerima i poslovni analitičari.
  • Pravila se lako održavaju.
  • Rule Engine koristi Rete algoritam koji kaže da izvedba stroja nikad ne ovisi o broju pravila.
  • Pravila se mogu mijenjati i implementirati bez prekida rada aplikacije.
  • Eksternalizira poslovnu logiku iz relativno statične baze kodova.
  • Pravila su razvijena u manje kompliciranim formatima tako da poslovni analitičar može lako pročitati i provjeriti grupu pravila.
  • Pravila vam omogućuju stvaranje skladišta znanja koje je izvršno u obliku.
  • Alati poput Eclipse pomoći vam u upravljanju pravilima, dobiti trenutni odgovor, autentifikaciju i podršku za sadržaj.

Nedostaci Rules Enginea

Ovdje su nedostaci/protiv upotrebe mehanizma pravila:

  • Od programera je potrebno puno truda u učenju da bi poznavali ovu metodu programiranja
  • Mehanizam pravila nije sigurna metoda za rješavanje problema.
  • Potrebno je razumjeti rad mehanizma pravila kako bi trošio više memorije
  • Postoji širok skup pravila za složeno grananje.

Pravila se mogu promijeniti tijekom vremena i stupit će na snagu s promjenama koda

rezime

  • JBoss Drools je integracijska platforma poslovne logike (BLiP)
  • Vrste alata Drool su: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planer.
  • Drool vam pomaže da odvojite aplikaciju od dinamičke logike.
  • Činjenica je predstavljala podatke koji služe kao input za pravila.
  • Radna memorija je spremište s činjenicama, gdje se one koriste za usklađivanje uzoraka. Može se mijenjati, umetati i uklanjati.
  • Baza znanja je komponenta koja sadrži sve resurse potrebne za aktiviranje pravila.
  • Sesija znanja predstavlja znanje u ekosustavu Drools.
  • Baza znanja predstavlja znanje u Drools ekosustavu.
  • Modul pohranjuje više baza znanja, koje mogu držati različite sesije.
  • Pravila su dijelovi znanja koji se često izražavaju kao: "Kada se pojave određeni uvjeti, onda izvršite neke zadatke."
  • Drools je mehanizam za pravila koji koristi pristup temeljen na pravilima za implementaciju ekspertnog sustava.
  • Motor za lančano kretanje prema naprijed provjerava činjenice i izvodi određeni zaključak.
  • Unazad ulančani motor ima postavljeni cilj, a motor ga nastoji zadovoljiti.
  • Rete algoritam je koristan algoritam za usklađivanje uzoraka koji vam omogućuje implementaciju sustava pravila proizvodnje.
  • Pravila su lako razumljiva programerima i poslovnim analitičarima.
  • Glavni nedostatak korištenja mehanizma pravila kao što je Drool je taj što zahtijeva mnogo truda u učenju koji je potreban programerima da bi poznavali ovu metodu programiranja.