Drools - Introduction

Toute application Java de niveau entreprise peut être divisée en trois parties:

  • UI - Interface utilisateur (frontend)
  • Couche de service qui est à son tour connectée à une base de données
  • Couche métier

Nous avons un certain nombre de frameworks qui gèrent ensemble l'interface utilisateur et la couche de service, par exemple Spring et Struts. Pourtant, nous n'avions pas de méthode standard pour gérer la logique métier jusqu'à la création de Drools.

Qu'est-ce que Drools?

Drools est un Business Logic integration Platform (BLiP). Il est écrit en Java. Il s'agit d'un projet open source soutenu par JBoss et Red Hat, Inc. Il étend et implémente l'algorithme de correspondance Rete Pattern.

En termes simples, Drools est un ensemble d'outils qui nous permettent de séparer et de raisonner sur la logique et les données trouvées dans les processus métier. Les deux mots clés importants que nous devons remarquer sontLogic et Data.

Drools est divisé en deux parties principales: Authoring et Runtime.

  • Authoring - Le processus de création implique la création de fichiers de règles (fichiers .DRL).

  • Runtime - Cela implique la création d'une mémoire de travail et la gestion de l'activation.

Qu'est-ce qu'un moteur de règles?

Drools est un moteur de règles ou un système de règles de production qui utilise l'approche basée sur des règles pour implémenter un système expert. Les systèmes experts sont des systèmes basés sur les connaissances qui utilisent la représentation des connaissances pour transformer les connaissances acquises en une base de connaissances qui peut être utilisée pour le raisonnement.

Un système de règles de production est Turing complet avec un accent sur la représentation des connaissances pour exprimer la logique propositionnelle et de premier ordre d'une manière concise, non ambiguë et déclarative.

Le cerveau d'un système de règles de production est un Inference Enginequi peut évoluer vers un grand nombre de règles et de faits. Le moteur d'inférence compare les faits et les données aux règles de production - également appeléesProductions ou juste Rules - pour déduire des conclusions qui aboutissent à des actions.

Une règle de production est une structure en deux parties qui utilise la logique du premier ordre pour raisonner sur la représentation des connaissances. Un moteur de règles métier est un système logiciel qui exécute une ou plusieurs règles métier dans un environnement de production d'exécution.

Un moteur de règles vous permet de définir "What to Do" et pas "How to do it. »

Qu'est-ce qu'une règle?

Les règles sont des éléments de connaissance souvent exprimés en « Lorsque certaines conditions se produisent, puis faire quelques tâches. »

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

La partie la plus importante d'une règle est sa whenpartie. Si lawhen une partie est satisfaite, le then une partie est déclenchée.

rule  <rule_name>
   <attribute> <value>
      
   when
      <conditions>
      
   then
      <actions>
end

Correspondance de motif

Le processus de mise en correspondance des faits nouveaux ou existants avec les règles de production est appelé correspondance de modèles, qui est effectuée par le moteur d'inférence. Il existe un certain nombre d'algorithmes utilisés pour la correspondance de modèles, notamment -

  • Linear
  • Rete
  • Treat
  • Leaps

Drools Implémente et étend l'algorithme Rete. L'implémentation de Drools Rete est appelée ReteOO, ce qui signifie que Drools a une implémentation améliorée et optimisée de l'algorithme Rete pour les systèmes orientés objet.

Avantages d'un moteur de règles

Programmation déclarative

Les règles permettent d'exprimer facilement des solutions à des problèmes difficiles et de vérifier également les solutions. Contrairement aux codes, les règles sont rédigées dans un langage moins complexe; Les analystes commerciaux peuvent facilement lire et vérifier un ensemble de règles.

Séparation logique et données

Les données résident dans les objets de domaine et la logique métier réside dans les règles. Selon le type de projet, ce type de séparation peut être très avantageux.

Vitesse et évolutivité

L'algorithme Rete OO sur lequel Drools est écrit est déjà un algorithme éprouvé. Avec l'aide de Drools, votre application devient très évolutive. S'il y a des demandes de changement fréquentes, on peut ajouter de nouvelles règles sans avoir à modifier les règles existantes.

Centralisation des connaissances

En utilisant Rules, vous créez un référentiel de connaissances (une base de connaissances) qui est exécutable. C'est un point de vérité unique pour la politique commerciale. Idéalement, les règles sont si lisibles qu'elles peuvent également servir de documentation.

Intégration d'outils

Des outils tels qu'Eclipse offrent des moyens de modifier et de gérer les règles et d'obtenir immédiatement des commentaires, une validation et une assistance sur le contenu. Des outils d'audit et de débogage sont également disponibles.