Tutorial di Drools: Motore di regole ArchiStruttura e diagramma

โšก Riepilogo intelligente

Drools รจ un sistema di gestione delle regole aziendali open-source scritto in Java che separa la logica aziendale dal codice dell'applicazione. Questa risorsa spiega le regole, l'algoritmo Rete, l'architettura e i componenti di Drools, Eclipse Configurazione del plugin ed esempio di regola "Hello World".

  • โš™๏ธ Definizione di base: Drools รจ un JavaBRMS basato su reti che esegue regole aziendali utilizzando l'algoritmo di corrispondenza di pattern Rete.
  • ๐Ÿ“œ Struttura delle regole: Una regola segue un formato "quando-allora", attivando azioni solo quando le sue condizioni corrispondono ai fatti presenti nella memoria di lavoro.
  • ???? ๏ธ Architecnologia: Le regole vengono caricate in una base di regole, i fatti entrano nella memoria di lavoro e il motore li confronta e li elabora seguendo un programma.
  • ???? Eclipse Setup: Il plugin Drools si installa in Eclipse tramite il file ZIP di distribuzione di jBPM e la finestra di dialogo Installa nuovo software.
  • ๐Ÿ”„ Modalitร  di concatenamento: Drools supporta il ragionamento in avanti, dai fatti alle conclusioni, e il ragionamento a ritroso, da un obiettivo ai fatti.

Tutorial di Drools

Cos'รจ Drools?

Sbava รจ un software BRMS (Business Rules Management Software) open source scritto in Java che fornisce agli utenti una varietร  di funzionalitร  come Business Rule Engine, creazione Web, applicazione di gestione delle regole e supporto runtime per modelli decisionali e di notazione. Utilizza un sistema di implementazione avanzato dell'algoritmo di corrispondenza dei modelli di rete.

Drools รจ stato rilasciato con licenza Apache 2.0 ed รจ compatibile con qualsiasi JVM ed รจ disponibile anche nel Maven Central Repository.

Lo strumento Drools ti aiuta a separare e ragionare sulla logica e sui dati presenti nei processi aziendali. Supporta il motore delle regole drools basato su inferenza concatenante in avanti e all'indietro.

Le sbavature sono divise in due parti:

  • Authoring โ€“ Implica lo sviluppo di file di regole.
  • Runtime โ€“ Implica la creazione della memoria di lavoro e la gestione dellโ€™attivazione.

Cos'รจ la regola?

Le regole sono parti della conoscenza spesso espresse come: "Quando si verificano condizioni specifiche, esegui alcuni compiti".

La parte piรน cruciale di una regola รจ quando parte. Una volta quando una parte รจ soddisfatta poi la parte viene attivata.

Sintassi:

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

Metodo di corrispondenza dei modelli

Il metodo di corrispondenza dei modelli ti aiuta a confrontare fatti nuovi o vecchi con le regole di produzione. รˆ completato dal motore di inferenza.

Algorithms utilizzati per il Pattern Matching sono:

  • Algoritmo di rete
  • Algoritmo dei salti
  • Algoritmo lineare
  • Trattare l'algoritmo

Tuttavia, l'algoritmo maggiormente utilizzato da Drools รจ l'algoritmo di Rete.

Algoritmo di rete

L'algoritmo Rete รจ un utile algoritmo di patternmatching che consente di implementare sistemi di regole di produzione. Ti aiuta a sacrificare la memoria per una maggiore velocitร . Riduce o elimina inoltre tipi specifici di ridondanza con l'aiuto della condivisione dei nodi. Memorizza corrispondenze parziali durante l'esecuzione di join tra diversi tipi di fatti.

Motore delle regole delle sbavature

Motore delle regole delle sbavature รจ un approccio basato su regole per implementare un sistema esperto nel software Drools. Il motore delle regole fornisce sistemi esperti che sono sistemi basati sulla conoscenza che ti aiutano a prendere decisioni su cosa fare e come farlo. Raccoglie la conoscenza in una base di conoscenza che puรฒ essere utilizzata per il ragionamento.

Suite di strumenti Drools

Ora in questo tutorial di Drools Rule Engine, impareremo a conoscere Drools Tool Suite. Ecco cinque tipi di strumenti che fanno parte della suite Drools:

  • Sbava Guvnor: รˆ un repository centralizzato per Drools KnowledgeBase.
  • Flusso di sbavature: Offre flussi di lavoro e processi aziendali.
  • Sbava Fusion: Strumento utilizzato per l'elaborazione di eventi complessi
  • Drools Expert o motore di regole: Uno strumento utile per eseguire il ragionamento.
  • Pianificatore di sbavature: Offre una pianificazione automatizzata, che include problemi di pianificazione NP-hard.

Componenti importanti in Drools

Ora in questo tutorial di Drools, impariamo i componenti importanti di Drools.

Ecco i termini essenziali utilizzati in Drools:

  • Caratteristiche โ€“ I fatti rappresentano i dati che servono come input per le regole
  • Memoria di lavoro โ€“ Archiviazione con fatti, dove vengono utilizzati per la corrispondenza dei modelli. Puรฒ essere modificato, inserito e rimosso.
  • Sessione di conoscenza โ€“ Questo componente contiene tutte le risorse necessarie per attivare la regola. Qui, tutti i fatti vengono inseriti nella singola sessione e quindi vengono attivate le regole di corrispondenza.
  • base di conoscenza โ€“ Rappresenta la conoscenza nell'ecosistema Drools. Memorizza la formazione delle risorse in cui si trovano le regole.
  • Moduli โ€“ Questo รจ un modulo che memorizza piรน basi di conoscenza che possono contenere sessioni diverse

Architecnica delle sbavature

Motore delle regole delle sbavature Architectura
Motore delle regole delle sbavature Architectura

Ecco il sistema di lavoro dell'architettura Drools:

Passo 1) Le regole vengono caricate nella Rule Base, che รจ sempre disponibile.

Passo 2) I fatti vengono inseriti nella memoria di lavoro dove possono poi essere modificati o riscrittitracted.

Passo 3) Il processo di corrispondenza dei fatti nuovi o esistenti con le regole di produzione รจ chiamato corrispondenza dei modelli, che viene eseguito dal motore delle regole.

Passo 4) L'agenda consente di gestire l'ordine di esecuzione delle regole in conflitto con l'aiuto di una strategia di risoluzione dei conflitti.

Caratteristiche di Bava

Ecco le caratteristiche importanti di Drool:

  • Ti aiuta a separare l'applicazione dalla logica dinamica
  • Programmazione dichiarativa
  • Centralizzazione della conoscenza
  • Velocitร  e scalabilitร 
  • Logica separata dall'applicazione
  • Regole comprensibili

Come aggiungere i plugin Drools in Eclipse

Ora in questo tutorial di Drools impariamo come aggiungere il plugin Drools Eclipse.

Passo 1) Fare clic su "ZIP di distribuzione" per l'integrazione jBPM
Vai su https://www.drools.org/download/download.html e fai clic su โ€œZIP di distribuzioneโ€ per lโ€™integrazione jBPM. Una volta scaricato, escitractrasferiscilo sul tuo disco rigido.

Aggiungi i plugin Drools Eclipse

Passo 2) Installa nuovo software
In Eclipse, seleziona Installa nuovo software.

Aggiungi i plugin Drools Eclipse

Passo 3) Fare clic sul pulsante Aggiungi
Fare clic sul pulsante Aggiungi per aggiungere un software.

Aggiungi i plugin Drools Eclipse

Passo 4) Sfoglia cartella
Nella schermata successiva, fare clic su Locale e selezionare la cartella โ€œorg.drools.updatesite/โ€, quindi fare clic su Ok.

Aggiungi i plugin Drools Eclipse

Passo 5) Fare clic sul pulsante Avanti
Nella pagina di riparazione dell'installazione, fare clic sul pulsante Avanti.

Aggiungi i plugin Drools Eclipse

Passo 6) Accetta il contratto di licenza
Accetta il contratto di licenza e fai clic su Avanti.

Aggiungi i plugin Drools Eclipse

Passo 7) riavvio Eclipse
Il software verrร  scaricato e ti verrร  chiesto di riavviare Eclipse.

Passo 8) Processo di installazione completato
In Windows > Menu Preferenze, vedrai l'opzione Drools che indica che รจ installata.

Aggiungi i plugin Drools Eclipse

Esempio del programma Drools Hello World

Di seguito รจ riportato un esempio di Drools per il programma 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

Cos'รจ il concatenamento all'indietro o in avanti?

Un motore di concatenazione controlla i fatti e trae una conclusione specifica.

Consideriamo uno scenario del sistema di diagnosi medica. Se i sintomi del paziente vengono inseriti come fatti nella memoria di lavoro, allora รจ facile diagnosticargli un disturbo.

Concatenamento all'indietro e in avanti

Motore a catena diretta

Un motore concatenato all'indietro ha l'obiettivo prefissato e il motore cerca di soddisfarlo.

Considera lo stesso scenario della diagnosi medica. Supponiamo che si verifichi un'epidemia di una certa malattia. Questa intelligenza artificiale potrebbe presumere che un determinato individuo abbia la malattia e tentare di determinare se la sua diagnosi รจ corretta sulla base delle informazioni disponibili.

Concatenamento all'indietro e in avanti

Motore concatenato all'indietro

Perchรฉ utilizzare Drools Rule Engine?

Ecco i motivi principali per utilizzare il motore delle regole Drools:

  • Le regole sono facili da comprendere per gli sviluppatori e analisti di business.
  • Le regole sono facilmente mantenibili.
  • Rule Engine utilizza un algoritmo di Rete secondo il quale le prestazioni del motore non dipendono mai dal numero di regole.
  • Le regole possono essere modificate e distribuite senza arrestare l'applicazione.
  • Esternalizza la logica aziendale dalla codebase relativamente statica.
  • Le regole sono sviluppate in formati meno complicati in modo che l'analista aziendale possa leggere e verificare facilmente un gruppo di regole.
  • Le regole consentono di creare un magazzino di conoscenza eseguibile in forma.
  • Strumenti come Eclipse aiutarti a gestire le regole, ottenere una risposta immediata, autenticazione e supporto dei contenuti.

Svantaggi del motore delle regole

Ecco gli svantaggi/contro dell'utilizzo del motore delle regole:

  • Sono necessari molti sforzi di apprendimento da parte degli sviluppatori per conoscere questo metodo di programmazione
  • Il motore delle regole non รจ un metodo sicuro per risolvere i problemi.
  • รˆ necessario comprendere il funzionamento del motore di regole per consumare piรน memoria
  • Esiste un ampio insieme di regole per una ramificazione complessa.

Le regole possono cambiare nel tempo e diventeranno effettive con le modifiche al codice

DOMANDE FREQUENTI

Sรฌ. Drools รจ rilasciato sotto licenza Apache 2.0 ed รจ completamente gratuito e open source. Funziona su qualsiasi JVM ed รจ disponibile tramite il repository centrale Maven per una facile integrazione nei progetti.

Le regole di Drools sono scritte in DRL (Drools Rule Language), una sintassi dichiarativa basata sulla struttura "quando-allora". Le regole possono essere create anche utilizzando tabelle decisionali, modelli DMN o linguaggi specifici di dominio per gli utenti aziendali.

Un motore di regole esternalizza la logica in regole gestibili che possono essere modificate senza dover ridistribuire l'applicazione. La logica if-else codificata in modo rigido รจ sparsa nel codice sorgente, piรน difficile da aggiornare e non scalabile all'aumentare del numero di condizioni.

Drools implementa sistemi esperti, una branca classica dell'IA, codificando la conoscenza umana sotto forma di regole. Il motore ragiona sui fatti per giungere a conclusioni, supportando il concatenamento in avanti e all'indietro, in modo simile ai sistemi decisionali simbolici dell'IA.

Sรฌ. Gli assistenti basati sull'IA possono redigere regole DRL a partire da requisiti in linguaggio naturale, individuare regole in conflitto o ridondanti e suggerire ottimizzazioni. I team devono comunque convalidare le regole generate per garantire la correttezza della logica aziendale e un'esecuzione affidabile.

Riassumi questo post con: