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