4 novembre 2009

Gestion des règles métiers avec Drools 5

drools1Title
Depuis plusieurs années maintenant, nous intégrons à nos projets un moteur de règles métiers, le plus souvent associé à un gestionnaire de règles (ou BRMS pour Business Rules Management System). Nous avons recours, généralement, à la plateforme Drools du consortium JBoss.

Nous avons mis en œuvre cette plateforme dans des contextes métier aussi riches et variés que la gestion d’actifs, le CRM ou encore la vente de produits financiers.

Dans ce premier billet, nous verrons la souplesse qu’apporte l’utilisation d’un tel système dans une application d’entreprise; et, nous présenterons les principales fonctionnalités de Drools V5.


Pourquoi recourir à un moteur de règles ?

L’intégration d’un moteur de règles tel que Drools permet de :
  • externaliser les règles métiers du code de l’application
    les règles métiers deviennent indépendantes de la génération du logiciel
  • centraliser les règles métiers dans un dépôt particulier
    • exploitation par d’autres applications
    • souplesse au niveau de l’administration
  • appliquer à chaud un changement des règles métiers au sein de l’application
  • conserver et ré-exploiter l’historique des règles métiers
  • activer un jeu de règles en fonction de l’environnement (développement, recette, production, etc…)
  • décrire les règles métiers sous une forme compréhensible par les personnes qui les exploitent
  • proposer une interface utilisateur pour administrer les règles métiers

Avec une approche classique, le développeur écrit les règles métiers qui lui sont transmises par le business owner.
Approche classique de la partie business logic

Approche classique


Avec un BRMS tel que Drools, c’est le business owner lui même qui écrit ses règles.
Approche avec Drools BRMS

Approche avec Drools BRMS



Les principales fonctionnalités de Drools V5

La plateforme Drools V5 est constituée par 4 applications :

  • Drools Expert
  • C’est le cœur du système : le moteur d’exécution des règles. Il est basé sur un moteur d’inférence utilisant l’algorithme Rete. D’un côté les faits et de l’autre les règles : le moteur réunie ces deux parties et gère le déclenchement des règles. Drools Expert peut être utilisé indépendamment des autres projets.
    Moteur d'inférence Drools

    Moteur d'inférence Drools



  • Drools Guvnor
  • Il s’agit d’une application web permettant d’administrer un dépôt de règles : c’est le module BRMS de Drools. A partir de cette interface, le business owner pourra gérer ses règles métiers.

  • Drools Flow
  • C’est le moteur de workflow de Drools. Il permet de définir des processus de travail, décrivant des enchaînements de tâches et d’évènements.

  • Drools Fusion
  • C’est le moteur de gestion des évènements. Il est capable de traiter à travers le temps l’apparition d’évènements (issus du moteur de workflow par exemple). Ainsi, une association particulière d’évènements pourra faire l’objet d’un traitement spécifique.

    Les principales fonctionnalités de Drools Expert sont transversales aux autres projets Drools :
    • Domain Specific Langage – DSL (définition d’un langage dédié au métier)
    • Tables de décision (écriture de règles métiers dans un tableur tel qu’Excel)
    • Mode d’exécution stateless ou statefull
    • Modification dynamique de la base de connaissance (production memory)
    • Outil programmatique pour le monitoring des bases de connaissance et de l’espace d’exécution du moteur de règle
    • Gestion de transactions et de la persistance JPA
    • Plugin Drools pour Eclipse
    • Support JMX


    Bilan

    La plateforme Drools est riche en fonctionnalités et apporte une flexibilité à chaque étape du cycle de vie d’une application d’entreprise. L’intégration de cette plateforme dans nos projets a toujours été un succès, et s’adapte à tous les contextes métiers. Pour preuve un grand nom de l’industrie, FedEx, met désormais en oeuvre Drools sur certains de ses projets.


    Liens

    Page principale du projet : http://www.jboss.org/drools/
    Blog du projet : http://blog.athico.com/
    Article sur l’utilisation de la plateforme par FedEx : http://blog.athico.com/2009/10/secret-sauce.html

    • Twitter
    • LinkedIn
    • viadeo FR
    • Facebook
    • Google Buzz
    • Netvibes
    • Tumblr
    • del.icio.us
    • Digg


    7 commentaires

    Ajouter votre commentaire
    1. PIA Blog / Productivity by Design » DSL avec Drools
      [...] de conception Domain Driven Design. Le moteur de règle Drools Expert, de la plateforme Drools (voir cet article) supporte la définition et l’utilisation de DSL.Définition du langage via les dictionnaires [...]
    2. Mehdi
      quel est le produit de drools qui effectue la reproduction des regles (machine profiling)?
    3. fra
      Bonjour, vous pouvez effectuer du profiling grâce au plugin Drools pour Eclipse. Son mode debug permet également d’analyser l’état de la working memory et ainsi suivre l’exécution du moteur de règles.
    4. Mehdi
      Comment Drools effectue « the Rule learner » ?
    5. fra
      Bonjour, il n’y a pas de module d’auto-apprentissage de règles dans cette plateforme Drools 5.
    6. Mehdi
      Comment utiliser la notion de drools flow pour des règles dans des tables de décisions?
    7. Mehdi
      How can i configure drools with the consolde JMX ?