SlideShare ist ein Scribd-Unternehmen logo
1 von 17
*


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

Weitere ähnliche Inhalte

Was ist angesagt?

Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsMohamed Heny SELMI
 
L’intelligence artificielle aujourd’hui (FR)
L’intelligence artificielle aujourd’hui (FR)L’intelligence artificielle aujourd’hui (FR)
L’intelligence artificielle aujourd’hui (FR)thierry tranchina
 
Intelligence artificielle etroite introduction
Intelligence artificielle etroite introductionIntelligence artificielle etroite introduction
Intelligence artificielle etroite introductionSmals
 
Machine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleMachine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleSoft Computing
 
Comprendre l’intelligence artificielle [webinaire]
Comprendre l’intelligence artificielle [webinaire]Comprendre l’intelligence artificielle [webinaire]
Comprendre l’intelligence artificielle [webinaire]Technologia Formation
 
Conférence Sécurité et Intelligence Artificielle - INHESJ 2018
Conférence Sécurité et Intelligence Artificielle - INHESJ 2018Conférence Sécurité et Intelligence Artificielle - INHESJ 2018
Conférence Sécurité et Intelligence Artificielle - INHESJ 2018OPcyberland
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheMohamed Heny SELMI
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Intelligence artificielle et système multi-agent
Intelligence artificielle et système multi-agentIntelligence artificielle et système multi-agent
Intelligence artificielle et système multi-agentNoureddine Djebbari
 
Sécurité informatique - Etat des menaces
Sécurité informatique - Etat des menacesSécurité informatique - Etat des menaces
Sécurité informatique - Etat des menacesMaxime ALAY-EDDINE
 
Intelligence artificielle et robotique
Intelligence artificielle et robotiqueIntelligence artificielle et robotique
Intelligence artificielle et robotiqueSKYWARE COMPAGNY
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigFelipe Sanchez Garzon
 
Reconnaissance faciale
Reconnaissance facialeReconnaissance faciale
Reconnaissance facialeAymen Fodda
 
Cours CyberSécurité - Concepts Clés
Cours CyberSécurité - Concepts ClésCours CyberSécurité - Concepts Clés
Cours CyberSécurité - Concepts ClésFranck Franchin
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeENSET, Université Hassan II Casablanca
 
Securite informatique
Securite informatiqueSecurite informatique
Securite informatiqueSouhaib El
 

Was ist angesagt? (20)

Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
L’intelligence artificielle aujourd’hui (FR)
L’intelligence artificielle aujourd’hui (FR)L’intelligence artificielle aujourd’hui (FR)
L’intelligence artificielle aujourd’hui (FR)
 
Intelligence artificielle etroite introduction
Intelligence artificielle etroite introductionIntelligence artificielle etroite introduction
Intelligence artificielle etroite introduction
 
Machine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleMachine Learning et Intelligence Artificielle
Machine Learning et Intelligence Artificielle
 
Comprendre l’intelligence artificielle [webinaire]
Comprendre l’intelligence artificielle [webinaire]Comprendre l’intelligence artificielle [webinaire]
Comprendre l’intelligence artificielle [webinaire]
 
Conférence Sécurité et Intelligence Artificielle - INHESJ 2018
Conférence Sécurité et Intelligence Artificielle - INHESJ 2018Conférence Sécurité et Intelligence Artificielle - INHESJ 2018
Conférence Sécurité et Intelligence Artificielle - INHESJ 2018
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Aide au diagnostic
Aide au diagnosticAide au diagnostic
Aide au diagnostic
 
Intelligence artificielle et système multi-agent
Intelligence artificielle et système multi-agentIntelligence artificielle et système multi-agent
Intelligence artificielle et système multi-agent
 
Sécurité informatique - Etat des menaces
Sécurité informatique - Etat des menacesSécurité informatique - Etat des menaces
Sécurité informatique - Etat des menaces
 
Intelligence artificielle et robotique
Intelligence artificielle et robotiqueIntelligence artificielle et robotique
Intelligence artificielle et robotique
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
 
Reconnaissance faciale
Reconnaissance facialeReconnaissance faciale
Reconnaissance faciale
 
Cours CyberSécurité - Concepts Clés
Cours CyberSécurité - Concepts ClésCours CyberSécurité - Concepts Clés
Cours CyberSécurité - Concepts Clés
 
Cours datamining
Cours dataminingCours datamining
Cours datamining
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Securite informatique
Securite informatiqueSecurite informatique
Securite informatique
 
Cours Big Data Part I
Cours Big Data Part ICours Big Data Part I
Cours Big Data Part I
 

Andere mochten auch

Présentation intelligence artificielle et domaines dapplications
Présentation intelligence artificielle et domaines dapplicationsPrésentation intelligence artificielle et domaines dapplications
Présentation intelligence artificielle et domaines dapplicationsAdelphe Patrick Mveng
 
Vers un monde digital plus intelligent
Vers un monde digital plus intelligentVers un monde digital plus intelligent
Vers un monde digital plus intelligentFrançois DUCROT
 
105 langevin xavier ia(intelligence artificielle)
105 langevin xavier ia(intelligence artificielle)105 langevin xavier ia(intelligence artificielle)
105 langevin xavier ia(intelligence artificielle)Xavier Langevin
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreECAM Brussels Engineering School
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...ECAM Brussels Engineering School
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéECAM Brussels Engineering School
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...ECAM Brussels Engineering School
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 

Andere mochten auch (20)

Présentation intelligence artificielle et domaines dapplications
Présentation intelligence artificielle et domaines dapplicationsPrésentation intelligence artificielle et domaines dapplications
Présentation intelligence artificielle et domaines dapplications
 
Vers un monde digital plus intelligent
Vers un monde digital plus intelligentVers un monde digital plus intelligent
Vers un monde digital plus intelligent
 
105 langevin xavier ia(intelligence artificielle)
105 langevin xavier ia(intelligence artificielle)105 langevin xavier ia(intelligence artificielle)
105 langevin xavier ia(intelligence artificielle)
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Composition, agrégation et immuabilité
Composition, agrégation et immuabilitéComposition, agrégation et immuabilité
Composition, agrégation et immuabilité
 
Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
Héritage et redéfinition de méthode
Héritage et redéfinition de méthodeHéritage et redéfinition de méthode
Héritage et redéfinition de méthode
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbre
 
Introduction à la formation Digitalent
Introduction à la formation DigitalentIntroduction à la formation Digitalent
Introduction à la formation Digitalent
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Arbre et algorithme de recherche
Arbre et algorithme de rechercheArbre et algorithme de recherche
Arbre et algorithme de recherche
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Développement informatique : Programmation réseau
Développement informatique : Programmation réseauDéveloppement informatique : Programmation réseau
Développement informatique : Programmation réseau
 

Ähnlich wie Intelligence artificielle

Trouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiquesTrouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiquesGauthier Delamarre
 
Comment choisir le bon système d'exploitation pour un système embarqué.pdf
Comment choisir le bon système d'exploitation pour un système embarqué.pdfComment choisir le bon système d'exploitation pour un système embarqué.pdf
Comment choisir le bon système d'exploitation pour un système embarqué.pdfAitAddiHajar
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Alphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateurAlphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateurAlphorm
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Normandy JUG
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx FranceMarc Bojoly
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de baseMariem ZAOUALI
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Firas Kouẞàa
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficienceMichel Bruchet
 
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...Wiiisdom
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 

Ähnlich wie Intelligence artificielle (20)

Introduction aux BRMS
Introduction aux BRMSIntroduction aux BRMS
Introduction aux BRMS
 
Trouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiquesTrouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiques
 
Comment choisir le bon système d'exploitation pour un système embarqué.pdf
Comment choisir le bon système d'exploitation pour un système embarqué.pdfComment choisir le bon système d'exploitation pour un système embarqué.pdf
Comment choisir le bon système d'exploitation pour un système embarqué.pdf
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
Openerp
OpenerpOpenerp
Openerp
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Alphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateurAlphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateur
 
Les framework mvc
Les framework mvcLes framework mvc
Les framework mvc
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
X-Rules - FR
X-Rules - FRX-Rules - FR
X-Rules - FR
 
MongoDB .pptx
MongoDB .pptxMongoDB .pptx
MongoDB .pptx
 
Drools et les moteurs de règles
Drools et les moteurs de règlesDrools et les moteurs de règles
Drools et les moteurs de règles
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Perf university
Perf universityPerf university
Perf university
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de base
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
OpenNMS
OpenNMSOpenNMS
OpenNMS
 

Intelligence artificielle

  • 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 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
  • 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