Tutoriel Drools : Moteur de règles Archistructure et diagramme

⚡ Résumé intelligent

Drools est un système de gestion des règles métier open source écrit en Java qui sépare la logique métier du code applicatif. Cette ressource explique les règles, l'algorithme Rete, l'architecture et les composants de Drools. Eclipse Configuration du plugin et exemple de règle « Hello World ».

  • ⚙️ Définition principale : Drools est un Java- un BRMS basé sur un système qui exécute les règles métier à l'aide de l'algorithme de correspondance de modèles Rete.
  • (I.e. Structure des règles : Une règle suit un format « quand-alors », déclenchant des actions uniquement lorsque ses conditions correspondent aux faits présents en mémoire de travail.
  • ???? Archi Les règles sont chargées dans une base de règles, les faits entrent en mémoire de travail, et le moteur les associe et les exécute selon un agenda.
  • ???? Eclipse Installer: Le plugin Drools s'installe dans Eclipse via le fichier ZIP de distribution jBPM et la boîte de dialogue « Installer un nouveau logiciel ».
  • (I.e. Modes d'enchaînement : Drools prend en charge le chaînage avant, des faits aux conclusions, et le chaînage arrière, d'un objectif aux faits.

Tutoriel Drools

Qu'est-ce que Bave ?

Bave est un logiciel de gestion de règles métier (BRMS) open source écrit en Java qui offre aux utilisateurs une variété de fonctionnalités telles que le moteur de règles métier, la création Web, l'application de gestion de règles et la prise en charge d'exécution pour les modèles de modèle de décision et de notation. Il utilise un système de mise en œuvre avancé de l'algorithme de correspondance de modèles rete.

Drools a été publié sous la licence Apache 2.0 et il est compatible avec n'importe quelle JVM et également disponible dans le référentiel central Maven.

L'outil Drools vous aide à séparer et à raisonner sur la logique et les données trouvées dans les processus métier. Il prend en charge le moteur de règles de bave basé sur l'inférence de chaînage avant et arrière.

Les bave sont divisées en deux parties :

  • Rédaction – Cela implique l’élaboration de fichiers de règles.
  • Runtime – Cela implique la création de mémoire de travail et la gestion de l’activation.

Qu’est-ce que la règle ?

Les règles sont des éléments de connaissances souvent exprimés par la formule : « Lorsque des conditions spécifiques se produisent, effectuez certaines tâches. »

La partie la plus cruciale d'une règle est qu'elle quand partie. Une fois quand une partie est satisfaite, puis la pièce est déclenchée.

syntaxe:

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

Méthode de correspondance de modèles

La méthode de correspondance de modèles vous aide à comparer des faits nouveaux ou anciens avec les règles de production. Elle est complétée par le moteur d'inférence.

Algorithms utilisés pour la correspondance de modèles sont :

  • Algorithme de Rete
  • Algorithme de sauts
  • Algorithme linéaire
  • Traiter l'algorithme

Cependant, l’algorithme le plus utilisé par Drools est l’algorithme Rete.

Algorithme de Rete

L'algorithme Rete est un algorithme de correspondance de modèles utile qui vous permet d'implémenter des systèmes de règles de production. Cela vous aide à sacrifier la mémoire pour augmenter la vitesse. Il réduit ou élimine également des types spécifiques de redondance grâce au partage de nœuds. Il stocke les correspondances partielles tout en effectuant des jointures entre différents types de faits.

Moteur de règles Drools

Moteur de règles Drools est une approche basée sur des règles pour implémenter un système expert dans le logiciel Drools. Le moteur de règles fournit des systèmes experts qui sont des systèmes basés sur la connaissance qui vous aident à prendre des décisions telles que quoi faire et comment le faire. Il rassemble des connaissances dans une base de connaissances qui peut être utilisée pour le raisonnement.

Suite d'outils Drools

Maintenant, dans ce didacticiel Drools Rule Engine, nous allons en apprendre davantage sur Drools Tool Suite. Voici cinq types d’outils faisant partie de la suite Drools :

  • Bave Guvnor: Il s'agit d'un référentiel centralisé pour la base de connaissances Drools.
  • Flux de bave: Il offre des flux de travail et des processus métier.
  • Bave Fusion: Outil utilisé pour le traitement d'événements complexes
  • Drools Expert ou moteur de règles: Un outil utile pour effectuer un raisonnement.
  • Planificateur de bave : To propose une planification automatisée, qui inclut des problèmes de planification NP-difficiles.

Composants importants dans Drools

Maintenant, dans ce didacticiel Drools, découvrons les composants importants de Drools.

Voici les termes essentiels utilisés dans Drools :

  • Les faits – Les faits représentent les données qui servent d’entrée aux règles
  • Mémoire de travail – Stockage avec des faits, où ils sont utilisés pour la correspondance de modèles. Il peut être modifié, inséré et supprimé.
  • Séance de connaissances – Ce composant contient toutes les ressources nécessaires à la règle de tir. Ici, tous les faits sont insérés dans une seule session, puis les règles de correspondance sont déclenchées.
  • – Il représente la connaissance de l’écosystème Drools. Il stocke la formation des ressources où se trouvent les règles.
  • Module – Il s’agit d’un module qui stocke plusieurs bases de connaissances pouvant accueillir différentes sessions

Architecture de Bave

Moteur de règles Drools Architecture
Moteur de règles Drools Architecture

Voici le système de fonctionnement de l'architecture Drools :

Étape 1) Les règles sont chargées dans Rule Base, qui sont disponibles à tout moment.

Étape 2) Les faits sont intégrés à la mémoire de travail où ils peuvent ensuite être modifiés ou réintégrés.tracTed.

Étape 3) Le processus de mise en correspondance des faits nouveaux ou existants avec les règles de production est appelé correspondance de modèles et est effectué par le moteur de règles.

Étape 4) L'agenda permet de gérer l'ordre d'exécution des règles conflictuelles à l'aide d'une stratégie de résolution des conflits.

Caractéristiques de la bave

Voici les fonctionnalités importantes de Drool :

  • Vous aide à séparer l'application de la logique dynamique
  • Programmation déclarative
  • Centralisation des connaissances
  • Rapidité et évolutivité
  • Séparer la logique de l'application
  • Des règles compréhensibles

Comment ajouter des plugins Drools dans Eclipse

Maintenant, dans ce didacticiel Drools, apprenons comment ajouter le plugin Drools dans Eclipse.

Étape 1) Cliquez sur « Distribution ZIP » pour l'intégration de jBPM
Allez dans https://www.drools.org/download/download.html et cliquez sur « ZIP de distribution » pour l’intégration jBPM. Une fois téléchargé, extracenregistrez-le sur votre disque dur.

Ajouter des plugins Drools dans Eclipse

Étape 2) Installer un nouveau logiciel
In Eclipse, sélectionnez Installer un nouveau logiciel.

Ajouter des plugins Drools dans Eclipse

Étape 3) Cliquez sur le bouton Ajouter
Cliquez sur le bouton Ajouter pour ajouter un logiciel.

Ajouter des plugins Drools dans Eclipse

Étape 4) Parcourir le dossier
Dans l'écran suivant, cliquez sur Local et sélectionnez le dossier « org.drools.updatesite/ », puis cliquez sur OK.

Ajouter des plugins Drools dans Eclipse

Étape 5) Cliquez sur le bouton Suivant
Sur la page de correction d'installation, cliquez sur le bouton Suivant.

Ajouter des plugins Drools dans Eclipse

Étape 6) Acceptez le contrat de licence
Acceptez le contrat de licence et cliquez sur suivant.

Ajouter des plugins Drools dans Eclipse

Étape 7) Redémarrez Eclipse
Le logiciel sera téléchargé et il vous sera demandé de redémarrer Eclipse.

Étape 8) Processus d'installation terminé
In Windows > Menu Préférences, vous verrez l'option Drools indiquant qu'il est installé.

Ajouter des plugins Drools dans Eclipse

Exemple de programme Hello World de Drools

Vous trouverez ci-dessous un exemple Drools pour le programme 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

Qu’est-ce que le chaînage arrière ou avant ?

Un moteur de chaîne avant vérifie les faits et tire une conclusion spécifique.

Considérons un scénario du système de diagnostic médical. Si les symptômes du patient sont enregistrés comme des faits dans la mémoire de travail, il est alors facile de diagnostiquer une maladie.

Chaînage en arrière ou en avant

Moteur à chaîne avant

Un moteur à chaînage arrière a un objectif fixé et le moteur essaie de le satisfaire.

Considérons le même scénario de diagnostic médical. Supposons qu'il s'agisse d'une épidémie d'une certaine maladie. Cette IA pourrait présumer qu’un individu donné était atteint de la maladie et tenter de déterminer si son diagnostic est correct sur la base des informations disponibles.

Chaînage en arrière ou en avant

Moteur de chaînage arrière

Pourquoi utiliser le moteur de règles Drools ?

Voici les principales raisons d’utiliser le moteur de règles Drools :

  • Les règles sont faciles à comprendre pour les développeurs et analystes d'affaires.
  • Les règles sont faciles à maintenir.
  • Rule Engine utilise un algorithme Rete qui stipule que les performances du moteur ne dépendent jamais du nombre de règles.
  • Les règles peuvent être modifiées et déployées sans faire tomber l'application.
  • Externalise la logique métier à partir de la base de code relativement statique.
  • Les règles sont développées dans des formats moins compliqués afin que l'analyste commercial puisse facilement lire et vérifier un groupe de règles.
  • Les règles vous permettent de créer un entrepôt de connaissances sous forme exécutable.
  • Des outils comme Eclipse vous aider à gérer les règles, à obtenir une réponse instantanée, une authentification et une prise en charge du contenu.

Inconvénients du moteur de règles

Voici les inconvénients/inconvénients de l’utilisation du moteur de règles :

  • Beaucoup d'efforts d'apprentissage nécessitent de la part des développeurs pour connaître cette méthode de programmation
  • Le moteur de règles n’est pas une méthode sécurisée pour résoudre les problèmes.
  • Il est nécessaire de comprendre le fonctionnement du moteur de règles pour consommer davantage de mémoire.
  • Il existe un large éventail de règles pour un branchement complexe.

Les règles peuvent changer avec le temps et entreront en vigueur avec les modifications du code

FAQ

Oui. Drools est distribué sous licence Apache 2.0 et est entièrement gratuit et open source. Il fonctionne sur n'importe quelle JVM et est disponible via le dépôt central Maven pour une intégration facile aux projets.

Les règles Drools sont écrites en DRL (Drools Rule Language), une syntaxe déclarative basée sur la structure « quand-alors ». Il est également possible de créer des règles à l'aide de tables de décision, de modèles DMN ou de langages spécifiques au domaine pour les utilisateurs métiers.

Un moteur de règles externalise la logique en règles maintenables qui peuvent être modifiées sans redéploiement de l'application. La logique conditionnelle « si-sinon » codée en dur est dispersée dans le code source, plus difficile à mettre à jour et ne s'adapte pas bien à l'augmentation du nombre de conditions.

Drools met en œuvre des systèmes experts, une branche classique de l'IA, en codant les connaissances humaines sous forme de règles. Le moteur raisonne sur les faits pour parvenir à des conclusions, prenant en charge le chaînage avant et arrière, à l'instar des systèmes de décision d'IA symbolique.

Oui. Les assistants IA peuvent générer des règles d'apprentissage par renforcement profond (DRL) à partir d'exigences en langage clair, détecter les règles conflictuelles ou redondantes et suggérer des optimisations. Les équipes valident ensuite les règles générées afin de garantir une logique métier correcte et une exécution fiable.

Résumez cet article avec :