Slintání Tutorial: Slintání pravidlo Engine Architecture & Příklady

Co je Drools?

Slintá je open-source software pro správu obchodních pravidel (BRMS) napsaný v Java který uživatelům poskytuje řadu funkcí, jako je Business Rule Engine, tvorba webu, aplikace pro správu pravidel a běhová podpora pro modely rozhodovacího modelu a notace. Využívá pokročilý implementační systém algoritmu porovnávání vzorů sítě.

Drools byl vydán pod licencí Apache 2.0 a je kompatibilní s jakýmkoli JVM a je k dispozici také v centrálním úložišti Maven.

Nástroj Drools vám pomůže oddělit a zdůvodnit logiku a data nalezená v obchodních procesech. Podporuje dopředné a zpětné řetězení založené na principu slintání.

Sliny jsou rozděleny na dvě části:

  • Authoring – Zahrnuje vývoj souborů pravidel.
  • Runtime – Zahrnuje vytvoření pracovní paměti a manipulaci s aktivací.

Co je pravidlo?

Pravidla jsou součástí znalostí, které se často vyjadřují jako: „Když nastanou specifické podmínky, proveďte nějaké úkoly“.

Nejdůležitější částí pravidla je to kdy část. Jednou kdy část je spokojená, pak součást je spuštěna.

Syntaxe:

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

Metoda porovnávání vzorů

Metoda porovnávání vzorů vám pomůže porovnat nová nebo stará fakta s produkčními pravidly. Doplňuje jej Inference Engine.

Algorithms pro porovnávání vzorů se používají:

  • Algoritmus Rete
  • Algoritmus skoků
  • Lineární algoritmus
  • Algoritmus ošetření

Algoritmus, který Drools většinou používá, je však Rete Algorithm.

Algoritmus Rete

Algoritmus Rete je užitečný algoritmus porovnávání vzorů, který vám umožňuje implementovat systémy produkčních pravidel. Pomáhá vám obětovat paměť pro zvýšení rychlosti. S pomocí sdílení uzlů také snižuje nebo odstraňuje specifické typy redundance. Ukládá částečné shody při provádění spojení mezi různými typy faktů.

Motor pravidla slintání

Motor pravidla slintání je přístup založený na pravidlech k implementaci systému Expert v softwaru Drools. Modul pravidel poskytuje expertní systémy, což jsou systémy založené na znalostech, které vám pomáhají rozhodovat se, co dělat a jak to dělat. Shromažďuje znalosti do znalostní báze, kterou lze použít pro uvažování.

Sada nástrojů Drools

Nyní v tomto tutoriálu Drools Rule Engine se dozvíme o Drools Tool Suite. Zde je pět typů nástrojů, které jsou součástí sady Drools:

  • Slintá Guvnor: Je to centralizované úložiště pro Drools KnowledgeBase.
  • Tok slin: Nabízí workflow a obchodní procesy.
  • Slintání Fusion: Nástroj používaný pro komplexní zpracování událostí
  • Drools Expert nebo Rules Engine: Užitečný nástroj pro provádění uvažování.
  • Plánovač slin: Nabízí automatizované plánování, které zahrnuje NP-tvrdé plánovací problémy.

Důležité komponenty v Drools

Nyní se v tomto tutoriálu Drools seznámíme s důležitými součástmi Drools.

Zde jsou základní pojmy používané v Drools:

  • Fakta – Fakt představují data, která slouží jako vstup pro pravidla
  • Pracovní paměť – Storage with Facts, kde se používají pro porovnávání vzorů. Lze jej upravovat, vkládat a odebírat.
  • Sezení znalostí – Tato komponenta obsahuje všechny prostředky potřebné pro pravidlo střelby. Zde jsou všechna fakta vložena do jediné relace a poté jsou spuštěna odpovídající pravidla.
  • Znalostní báze – Představuje znalosti v ekosystému Drools. Ukládá tvorbu zdrojů, kde se nacházejí pravidla.
  • Modul – Toto je modul, který ukládá více bází znalostí, které mohou mít různé relace

Architecture of Drools

Motor pravidla slintání Architecture
Motor pravidla slintání Architecture

Zde je pracovní systém architektury Drools:

Krok 1) Pravidla se načítají do databáze pravidel, která jsou neustále k dispozici.

Krok 2) Fakta jsou uplatňována do pracovní paměti, kde mohou být změněna nebo odvolána.

Krok 3) Proces porovnávání nových nebo existujících skutečností s produkčními pravidly se nazývá porovnávání vzorů, které provádí modul pravidel.

Krok 4) Agenda umožňuje řídit exekuční příkaz kolidujících pravidel pomocí strategie řešení konfliktů.

Vlastnosti Drool

Zde jsou důležité funkce Drool:

  • Pomáhá oddělit aplikaci od dynamické logiky
  • Deklarativní programování
  • Centralizace znalostí
  • Rychlost a škálovatelnost
  • Oddělte logiku od aplikace
  • Srozumitelná pravidla

Jak přidat pluginy Drools Eclipse

Nyní v tomto tutoriálu Drools se naučíme, jak přidat plugin Drools Eclipse.

Krok 1) Klikněte na „Distribution ZIP“ pro integraci jBPM
Jít do https://www.drools.org/download/download.html a klikněte na „Distribution ZIP“ pro integraci jBPM. Po stažení jej rozbalte na pevný disk.

Přidejte pluginy Drools Eclipse

Krok 2) Nainstalujte nový software
In Eclipse, vyberte Instalovat nový software.

Přidejte pluginy Drools Eclipse

Krok 3) Klikněte na tlačítko Přidat
Kliknutím na tlačítko Přidat přidáte software.

Přidejte pluginy Drools Eclipse

Krok 4) Procházet složku
Na další obrazovce klikněte na Místní a vyberte složku „org.drools.updatesite/“ a poté klikněte na OK.

Přidejte pluginy Drools Eclipse

Krok 5) Klikněte na tlačítko Další
Na stránce opravy instalace klikněte na tlačítko Další.

Přidejte pluginy Drools Eclipse

Krok 6) Přijměte licenční smlouvu
Přijměte licenční smlouvu a klepněte na tlačítko Další.

Přidejte pluginy Drools Eclipse

Krok 7) Restart Eclipse
Software se stáhne a budete požádáni o restartování eclipse.

Krok 8) Proces instalace dokončen
In Windows > v nabídce Preferences (Předvolby), uvidíte možnost Drools označující, že je nainstalována.

Přidejte pluginy Drools Eclipse

Příklad programu slintání Hello World

Níže je uveden příklad Drools pro 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

Co je zpětné vs. dopředné řetězení?

Dopředný řetězový motor kontroluje fakta a vyvozuje konkrétní závěr.

Podívejme se na scénář systému lékařské diagnostiky. Pokud se pacientovy symptomy uloží jako fakta do pracovní paměti, pak je snadné diagnostikovat jeho onemocnění.

Zpětné vs. dopředné řetězení

Motor s předním řetězem

Zpětný řetězový motor má stanovený cíl a motor se mu snaží vyhovět.

Zvažte stejný scénář lékařské diagnózy. Předpokládejme, že jde o epidemii určité nemoci. Tato umělá inteligence by mohla předpokládat, že daný jedinec měl onemocnění, a pokusit se na základě dostupných informací určit, zda je jeho diagnóza správná.

Zpětné vs. dopředné řetězení

Zpětně řetězový motor

Proč používat Drools Rule Engine?

Zde jsou hlavní důvody pro použití modulu pravidel Drools:

  • Pravidla jsou snadno srozumitelná pro vývojáře a obchodní analytici.
  • Pravidla jsou snadno udržovatelná.
  • Rule Engine používá algoritmus Rete, který říká, že výkon motoru nikdy nezávisí na počtu pravidel.
  • Pravidla lze upravovat a nasazovat, aniž by bylo nutné aplikaci vypnout.
  • Externalizuje obchodní logiku z poměrně statické kódové základny.
  • Pravidla jsou vyvíjena v méně komplikovaných formátech, takže obchodní analytik může snadno přečíst a ověřit skupinu pravidel.
  • Pravidla umožňují vytvořit sklad znalostí, který je spustitelný ve formě.
  • Nástroje jako Eclipse vám pomohou spravovat pravidla, získat okamžitou odpověď, ověřování a podporu obsahu.

Nevýhody modulu Rules Engine

Zde jsou nevýhody/nevýhody používání modulu pravidel:

  • Znalost této metody programování vyžaduje od vývojářů velké úsilí při učení
  • Modul pravidel není bezpečnou metodou k řešení problémů.
  • Potřebuje pochopit fungování enginu pravidel, aby spotřeboval více paměti
  • Existuje široká sada pravidel pro složité větvení.

Pravidla se mohou časem měnit a vstoupí v platnost se změnami kódu

Shrnutí

  • JBoss Drools je integrační platforma Business Logic (BLiP)
  • Typy nástroje Drool jsou: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Drool vám pomůže oddělit aplikaci od dynamické logiky.
  • Fakt představuje data, která slouží jako vstup pro pravidla.
  • Pracovní paměť je úložiště s Fakty, kde se používají pro porovnávání vzorů. Lze jej upravovat, vkládat a odebírat.
  • Znalostní báze je komponenta, která obsahuje všechny zdroje potřebné pro pravidlo střelby.
  • Sezení znalostí představuje znalosti v ekosystému Drools.
  • Znalostní báze představuje znalosti v ekosystému Drools.
  • Modul ukládá více bází znalostí, které mohou mít různé relace.
  • Pravidla jsou součástí znalostí, které se často vyjadřují jako: „Když nastanou specifické podmínky, proveďte nějaké úkoly“.
  • Drools je modul pravidel, který k implementaci expertního systému používá přístup založený na pravidlech.
  • Dopředný řetězový motor kontroluje fakta a vyvozuje konkrétní závěr.
  • Zpětný řetězový motor má stanovený cíl a motor se mu snaží vyhovět.
  • Algoritmus Rete je užitečný algoritmus porovnávání vzorů, který vám umožňuje implementovat systémy produkčních pravidel.
  • Pravidla jsou snadno srozumitelná pro vývojáře a obchodní analytiky.
  • Hlavní nevýhodou používání enginu pravidel, jako je Drool, je to, že vyžaduje hodně úsilí, které vývojáři vyžadují, aby znali tuto metodu programování.