*


Réalisé par :
Zaibi Mohammed
*
*Historique d’inférences
*Pourquoi recourir à un moteur de règles ?
*Programmation logique
*Résumé d’un comparatif des moteurs de règles
*Drools: Moteurs de règles
    * Offre Drools
      *   Expert, Flow (jBpm), Planer, Fusion(Event Processing), (BRMS/BPMS)
    * Les alternatives
*Démonstration
*
* Moteur de règles est un système capable
    * de définir des règles (= traitement)
    * et de les appliquer à des faits ( = données)
* Moteur d’Inférence
    * opération mentale, ou jugement, qui consiste à tirer une
      conclusion
       * sur des propositions tenues pour vraies (prémisses)
       * à partir de règles de base
       * en concluant à la vérité
*   3 types d'inférence :
    * la déduction : utiliser dans la programmation logique
    * l'induction : loi générale à partir d’observations
    * l'abduction : hypothèse explicative d’une observation      Charles Sanders Peirce
      formalisés par Peirce en 1903                               Philosophe américain
                                                                        1839-1914
                                              3
*

        Programmer           • Dire « ce que je fais » plutôt que « comment je fais »

    de manière déclarative   • Décrire les règles métiers sous une forme compréhensible par les personnes




                             • Les règles métiers du code de l’application
         Externaliser
                             • Les règles métiers deviennent indépendantes de la génération du logiciel




      Appliquer à chaud      • Un changement des règles métiers au sein de l’application




                             • Proposer une interface utilisateur pour administrer les règles métiers
         Administrer
                             • Créer de la souplesse au niveau de l’administration




    Centraliser la gestion   • Centraliser les règles métiers dans un dépôt particulier
                             • Centraliser la gestion de la connaissance
                             • Partager avec d’autres applications
     de la connaissance      • Conserver et ré-exploiter l’historique des règles métiers
                                                   4
*
    *   Moteur d’inférence
         * Séparer les traitements des données (Règles et faits)
         * Faire de la programmation déclarative (qu’est ce que je fais plutôt
           que comment je fais)
         * Rapidité et dimensionnement (l’algorithme RETE pour trouver les
           règles en fonction de vos objets métiers)
         * Centralisation et gestion de la connaissance (règles compréhensible
           par l’humain)




                                           5
*
    *Solutions envisagées:




    *Solutions écartées:
      * Jess « Licence commerciale, pas utilisable pour un site eCommerce
       commerciale »
      * Groovy Rules « Pas prêt pour la production »
                                           6
*
    *Drools – superstar mais trop complexe




                               7
*
    *Java Rules Engines, exemple de règle:




    *Dommage de faire du XML pour faire des if/then/else
                               8
*
    *Java Rules Engines




                          9
*




    10
*
    * Expert
      * Contient l’implémentation du moteur
        * algorithme de RETE
      * La gestion des règles
        * Langage MVEL
      * Permet de lancer le moteur en java
        À partir de fichier
        * DRL : liste des règles
        * DSL : contient le langage métier si utiliser
        * DSLR : liste des règles en langage DSL


                                         11
*
    * Démonstration
      * smart-content-selection




                                  12
*
    * Guvnor
      * Gère les règles suivant différents environnements
      * Avec une interface graphique
      * Se repose sur Drools Expert
      * Hiérarchisation des règles
    * Qui peut utiliser Guvnor
      * Expert fonctionnel
      * Expert ou administrateurs de règles
      * Développeurs
    * Quand utiliser Guvnor
      * Gérer des versions et des déploiements
      * Ne pas appeler les développeurs
      * Non lié au déploiement du cœur applicatif
                                     13
*
    * Guvnor – interface d’administration Web (Business Rules
     Management System)




                                  14
*
    * Drools Planner
      * Moteur de planification automatique
        * grâce à la définition de contraintes
        * solver calcule et propose des solutions




                                        15
*
    * jBPM/ Flow – Moteur de workflow
      * Les règles peuvent être écrite en MVEL (ou java)
      * Le moteur d’inférence est celui de Drools




                                     16
*
    * Fusion – Gestion des événements
      * Centré sur le timing des événements
      * Cas d’utilisation
        * Bourse : trading
        * Tarif téléphonique
        * Détection de fraude
        *…




    * Algorithme CEP
      * Complex Event Processing
      * système d’évènement proche de CEP avec la possibilité de
       gérer des évènement changeant dans le temps.
                                  17

Intelligence artificielle

  • 1.
  • 2.
    * *Historique d’inférences *Pourquoi recourirà un moteur de règles ? *Programmation logique *Résumé d’un comparatif des moteurs de règles *Drools: Moteurs de règles * Offre Drools * Expert, Flow (jBpm), Planer, Fusion(Event Processing), (BRMS/BPMS) * Les alternatives *Démonstration
  • 3.
    * * Moteur derègles est un système capable * de définir des règles (= traitement) * et de les appliquer à des faits ( = données) * Moteur d’Inférence * opération mentale, ou jugement, qui consiste à tirer une conclusion * sur des propositions tenues pour vraies (prémisses) * à partir de règles de base * en concluant à la vérité * 3 types d'inférence : * la déduction : utiliser dans la programmation logique * l'induction : loi générale à partir d’observations * l'abduction : hypothèse explicative d’une observation Charles Sanders Peirce formalisés par Peirce en 1903 Philosophe américain 1839-1914 3
  • 4.
    * Programmer • Dire « ce que je fais » plutôt que « comment je fais » de manière déclarative • Décrire les règles métiers sous une forme compréhensible par les personnes • Les règles métiers du code de l’application Externaliser • Les règles métiers deviennent indépendantes de la génération du logiciel Appliquer à chaud • Un changement des règles métiers au sein de l’application • Proposer une interface utilisateur pour administrer les règles métiers Administrer • Créer de la souplesse au niveau de l’administration Centraliser la gestion • Centraliser les règles métiers dans un dépôt particulier • Centraliser la gestion de la connaissance • Partager avec d’autres applications de la connaissance • Conserver et ré-exploiter l’historique des règles métiers 4
  • 5.
    * * Moteur d’inférence * Séparer les traitements des données (Règles et faits) * Faire de la programmation déclarative (qu’est ce que je fais plutôt que comment je fais) * Rapidité et dimensionnement (l’algorithme RETE pour trouver les règles en fonction de vos objets métiers) * Centralisation et gestion de la connaissance (règles compréhensible par l’humain) 5
  • 6.
    * *Solutions envisagées: *Solutions écartées: * Jess « Licence commerciale, pas utilisable pour un site eCommerce commerciale » * Groovy Rules « Pas prêt pour la production » 6
  • 7.
    * *Drools – superstar mais trop complexe 7
  • 8.
    * *Java Rules Engines, exemple de règle: *Dommage de faire du XML pour faire des if/then/else 8
  • 9.
    * *Java Rules Engines 9
  • 10.
    * 10
  • 11.
    * * Expert * Contient l’implémentation du moteur * algorithme de RETE * La gestion des règles * Langage MVEL * Permet de lancer le moteur en java À partir de fichier * DRL : liste des règles * DSL : contient le langage métier si utiliser * DSLR : liste des règles en langage DSL 11
  • 12.
    * * Démonstration * smart-content-selection 12
  • 13.
    * * Guvnor * Gère les règles suivant différents environnements * Avec une interface graphique * Se repose sur Drools Expert * Hiérarchisation des règles * Qui peut utiliser Guvnor * Expert fonctionnel * Expert ou administrateurs de règles * Développeurs * Quand utiliser Guvnor * Gérer des versions et des déploiements * Ne pas appeler les développeurs * Non lié au déploiement du cœur applicatif 13
  • 14.
    * * Guvnor – interface d’administration Web (Business Rules Management System) 14
  • 15.
    * * Drools Planner * Moteur de planification automatique * grâce à la définition de contraintes * solver calcule et propose des solutions 15
  • 16.
    * * jBPM/ Flow – Moteur de workflow * Les règles peuvent être écrite en MVEL (ou java) * Le moteur d’inférence est celui de Drools 16
  • 17.
    * * Fusion – Gestion des événements * Centré sur le timing des événements * Cas d’utilisation * Bourse : trading * Tarif téléphonique * Détection de fraude *… * Algorithme CEP * Complex Event Processing * système d’évènement proche de CEP avec la possibilité de gérer des évènement changeant dans le temps. 17