SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
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
 
L’intelligence artificielle
L’intelligence artificielleL’intelligence artificielle
L’intelligence artificielleiapassmed
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docxkhalil Ismail
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatiqueHicham Ben
 
the naive bayesien classifier
the naive bayesien classifierthe naive bayesien classifier
the naive bayesien classifierAmrane Alik
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsMohamed Heny SELMI
 
Sécurité des systèmes d’information industriels
Sécurité des systèmes d’information industrielsSécurité des systèmes d’information industriels
Sécurité des systèmes d’information industrielsPRONETIS
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFENadir Haouari
 
Méthode d'Agile: Scrum
Méthode d'Agile: ScrumMéthode d'Agile: Scrum
Méthode d'Agile: ScrumChaymaMghazli
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsMohamed Ayoub OUERTATANI
 
QCM système d'information
QCM système d'informationQCM système d'information
QCM système d'informationFrust Rados
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheMohamed Heny SELMI
 
L’optimisation par essaims de particules
L’optimisation par essaims de particulesL’optimisation par essaims de particules
L’optimisation par essaims de particuleschagra bassem
 
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
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un SupermarchéMouad Lousimi
 

Tendances (20)

Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Sécurité informatique - Etat des menaces
Sécurité informatique - Etat des menacesSécurité informatique - Etat des menaces
Sécurité informatique - Etat des menaces
 
L’intelligence artificielle
L’intelligence artificielleL’intelligence artificielle
L’intelligence artificielle
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docx
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatique
 
Méthodes agiles & Scrum
Méthodes agiles & ScrumMéthodes agiles & Scrum
Méthodes agiles & Scrum
 
the naive bayesien classifier
the naive bayesien classifierthe naive bayesien classifier
the naive bayesien classifier
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Sécurité des systèmes d’information industriels
Sécurité des systèmes d’information industrielsSécurité des systèmes d’information industriels
Sécurité des systèmes d’information industriels
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFE
 
Méthode d'Agile: Scrum
Méthode d'Agile: ScrumMéthode d'Agile: Scrum
Méthode d'Agile: Scrum
 
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
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
QCM système d'information
QCM système d'informationQCM système d'information
QCM système d'information
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
AI_course.pdf
AI_course.pdfAI_course.pdf
AI_course.pdf
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
 
L’optimisation par essaims de particules
L’optimisation par essaims de particulesL’optimisation par essaims de particules
L’optimisation par essaims de particules
 
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
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un Supermarché
 

En vedette

Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Présentation intelligence artificielle et domaines d'applications - #DigitalT...Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Présentation intelligence artificielle et domaines d'applications - #DigitalT...Digital Thursday
 
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
 

En vedette (20)

Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Présentation intelligence artificielle et domaines d'applications - #DigitalT...Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Présentation intelligence artificielle et domaines d'applications - #DigitalT...
 
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
 

Similaire à 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
 
Saas Libre
Saas LibreSaas Libre
Saas Libregrolland
 

Similaire à 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
 
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
 
Saas Libre
Saas LibreSaas Libre
Saas Libre
 

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