www.baamtu.com
L’approche par règles métier
24 Février 2012
www.baamtu.com
1.Qui suis-je?2.Présentation de Baamtu3.SeneJUG, Jcertif & JUGAfrica4.Approche par règles métier (ARM)5.Echange
Sommaire
www.baamtu.com
L’approche par règles métier
Questions?
Qui suis-je & Baamtu
www.baamtu.com
• Mouhamed Moustapha Diouf
• Docteur Ingénieur en Informatique (Génie logiciel) de la faculté des sciences
de Bordeaux• Directeur Général de Baamtu• Architect en SI• Expert approche par règles métier• Scrum Master• Plusieurs publications dans des revues scientifiques• J’ai travaillé pour :
• Génigraph/Genitech• Alti• Veterans affairs• Voyages-sncf.com technlogies• Caisse d’épargne
• Jujitsu, Cinema, Basket-ball, Footboot et … le tiéré
Baamtu : ses hommes, ses activités, son ambition
www.baamtu.com
• Présente en France et au Sénégal
• Résultat d’une passion et d’une aventure humaine.
• Depuis 5 ans en France et depuis 3 ans au Sénégal.
• Equipe très expérimentée dans le service• Haut niveau d’expertise, qualité de service irréprochable• Savoir faire technique et fonctionnel éprouvé• Conception et mise en œuvre de SI• Conduite et suivi de projets
• Forte compétence locale. • Compétence technique très élevée • Compétence fonctionnelle et partenariat avec Cabinets d’études• Service commercial dynamique et réactif
Baamtu : ses hommes, ses activités, son ambition
Accompagner nos clients et les orienter dans leur besoin de faire évoluer leur SI afin de s’adapter perpétuellement.Proposer des ressources de qualité pouvant intervenir aux phases :
• pré-cadrage, cadrage, d'expression des besoins• définition d'architectures• réalisation (développement, test, recette, audit)• assistance technique.
www.baamtu.com
Baamtu : ses hommes, ses activités, son ambition
• Desktop : Microsoft et Java (Swing, SWT/JFace).• Web : du PHP au Java, en y intégrant des solutions de RIA (Rich Internet
Application). Nos ingénieurs travaillent depuis longtemps et régulièrement avec les frameworks Web les plus prisés : Symphony, Dojo, Struts, JBoss Seam, Grails, Spring, Play!, etc.
• Architectures multicouches utilisant l'orchestration de processus (BPM) avec externalisation des règles métier (JRules, Jess, JBoss Rules, etc), SOA
• Mobile : WAP, J2ME, Androïd (Notre jeu a été sélectionné pour figurer dans le nouveau HTC Tatoo).
• Méthodologies agiles
www.baamtu.com
Baamtu : ses hommes, ses activités, son ambition
www.baamtu.com
• Les activités de Baamtu
• Intégrateur de solutions libres• Elaboration et mise en œuvre d’architectures applicatives complexes • Développement de solutions de mobilité• Contributeur actif dans la communauté OpenERP• Plate forme de développement offshore
• Les ambitions de Baamtu
• LA référence en termes de SSII au Sénégal et en Afrique de l’ouest• LA référence africaine sur l’intégration, la formation et les services autour
OpenERP • Favoriser le développement des PME-PMI africaines
• en les dotant de solutions logicielles à forte valeur ajoutée • en les accompagnant dans la maîtrise et l’évolution de leur SI
Baamtu : ses hommes, ses activités, ses ambitions
www.baamtu.com
Progiciel de gestion intégrée pour entreprise, distribuée sous licence libre (GPL) et qui répond de manière efficace à la complexité et aux besoins croissants des entreprises.
C’est quoi OpenERP ?
Full WebLargement répandu OpenSource
Un éditeur fort: Tiny
Couverture fonctionnelle exceptionnelleDéploiement
RapideArchitecture
technique solide Solution ouverteConception modulaire
Gestion comptable et
financière
www.baamtu.com
Large couverture fonctionnelle
C’est quoi OpenERP ?
Gestion de stocksPortail
Gestion de production
Etats SYSCOHDA
Gestion de projets
Gestion des ventes
Gestion documentaire
Gestion des immobilisations
Gestion des achatsCRM/SRMGestion budget
Points de vente
www.baamtu.com
Gestion comptable et financière
BCompta: la solution comptable Syscohada
BCompta : la solution comptable conforme
Syscohada
www.baamtu.com
BCompta: la solution comptable Syscohada
• Paramétrage plan de compte Syscohada• Journaux comptables • Gestion des paiements (conditions de paiement, échéanciers)• Politiques de prix• Lettrage et Reconciliation • Rapprochement bancaire• Traitements périodiques• Relances multiniveaux• Tableaux de bord comptables, Indicateurs de gestion• Comptabilité analytique• Analyse financière des tiers (créances et dettes)• Gestion budgétaire• Edition d’états (Rapports génériques, états syscohada)• Gestion des immobilisations
www.baamtu.com
BCompta: le paramétrage
• Organisation hiérarchique (évaluation dynamique)
• Types de compte (configurables, extensibles)
• Taxes applicables
• Exercices et périodes fiscales
• Gestion multi-devises
• Multi sociétés
« Souplesse » et « Extensibilité»
Le plan de compte Syscohada
www.baamtu.com
BCompta: les écritures comptables
• Ecritures manuelles• Saisie par journal• Saisie par mouvements
• Ecritures récurrentes• Modèles d’écriture souples• Exécution périodique
• Génération automatique des écritures• Depuis la brique Gestion Commerciale• Depuis la brique Ressources Humaines• Depuis les autres modules fonctionnels
• Saisies validées selon profils (reformuler)
Saisie/génération des écritures
www.baamtu.com
BCompta: reporting & éditions d’états
• Rapports génériques (avec plusieurs filtres)
• Balance simple (soldes de comptes)• Balance détaillée à 8 colonnes (avec R.A.N)• Grand livre• Impression des journaux • Etats récapitulatifs TVA (A voir ?)• Personnalisation des rapports (A voir)
•Etat suivi des Tiers• Balance âgée des tiers• Balance des tiers• Grand livre des tiers
• Etats Syscohada• Bilan, CDR (Système normal/allégé)• Tafire• Autres états
Editions et reporting
www.baamtu.com
BCompta: traitements périodiques
• Validation de mouvements de compte
• Rapprochement / lettrage• Lettrage/de-lettrage manuel• Lettrage automatique (multicritères + profondeur)
• Rapprochement bancaire• Rapprochement à partir d’un relevé papier• Rapprochement à partir de relevé électronique (extension)
• Traitement de fin de période• Clôture de période ou d’exercice• Génération d’écritures de début d’exercices
Quelques traitements périodiques
www.baamtu.com
BCompta: édition syscohada
• Développement en collaboration avec experts fonctionnels
• Plusieurs phases de validation• Plusieurs jeux de balance importés et testés
• Système normal ou allégé
• Souplesse du paramétrage• Définition des agrégats Bilan/CDR/Tafire• Définition d’agrégats « manuels »• Pas d’export/import de balance• Prise en compte dynamique• Impression pilotée• Personnalisation des états
• Module de contrôle en amont
Etats Syscohada
www.baamtu.com
• Baamtu, des ressources de qualité à votre service
• Tanoor Dieng : Ingénieur web (7 ans)• Tidiane Sy : Ingénieur génie logiciel (9 ans)• Diabel Ndaw : Ingénieur génie logiciel (15 ans)• Mouhamed DIOUF : Dr Ingénieur logiciel (8 ans)• Arona Samb : direction commerciale• El Hadj Gaye : Ingénieur génie logiciel• Daouda Mar : Ingénieur génie logiciel• Partenariat avec Arc informatique• Partenariat avec 01-Graph
Baamtu : ses hommes, ses activités, ses ambitions
www.baamtu.com
L’approche par règles métier
Business Rule Approach
www.baamtu.com
1.Approche classique en génie logiciela. Rapide présentationb. Limitation
2.Approche par règles métier (ARM)a. C’est quoi?b. C’est quoi une règle métier?c. C’est quoi un moteur de règles?d. C’est quoi un BRMS?
3.Qu’apporte l’ARM4.Jboss Rules aka Drools
1.Les composants2.Comment l’utiliser
Sommaire
www.baamtu.com
Approche classique en génie logiciel
• L'informatisation d'un système suit un cycle de vie : Une étude préalable : analyse de l'existant,
recensement des besoins utilisateurs, étude de faisabilité et rédaction d'un cahier des charges.
Une analyse fonctionnelle : élaboration d'une solution conceptuelle (abstraction des moyens informatiques) et rédaction d'un dossier de conception.
Une analyse organique : définition des structures de données, choix des matériels et établissement du planning et des budgets de réalisation.
Une phase de développement : réalisation effective du système informatique, tests du logiciel réalisé.
Mise en service : rédaction d'un manuel, formation des utilisateurs, exploitation et maintenance du système.
www.baamtu.com
Limitations
Dans une tel mode la coopération entre les deux pôles métier et système est limitée car elle n'a lieu qu'en début et fin de phase.
Une fois le système livré, lorsque la logique métier changera, il faudra à nouveau faire appel à l'équipe système pour traduire ces nouveaux besoins dans l'application.
Malgré l’évolution des cycles de vie et de développement, la maintenance reste chère et réservée aux experts techniques.
Pas d’influence directe sur
l’application, si ce n’est au
travers de l’équipe système
www.baamtu.com
Dans toute application, on ne se pose plus la question de savoir « est-ce que le métier changera ? » mais plutôt « quand ces changements vont-ils intervenir ? ».
Un système doit être capable de s'adapter rapidement aux changements du marché.
Mieux encore, il faudrait que le comportement d'un système d'information puisse être modifié par l'expert métier, sans avoir à attendre que le service informatique soit disponible.
L'ARM permet la réalisation de systèmes d'information guidés par le métier, pour le métier et en vue du métier.
Approche par Règles Métier: c’est quoi?(1/4)
www.baamtu.com
Les règles métier permettent de séparer la logique métier (le comportement) et la logique système d'une application (le comment).
Approche par Règles Métier: c’est quoi?(2/4)
Ex :Constructiondes parties d’un mail
Ex :assemblage
et envoi du mail
www.baamtu.com
Les experts techniques (développeurs) ne s'occupent que de la logique système applicative tandis que les experts métiers se chargent de la maintenance métier (qui change le plus souvent) dans un environnement zéro-développement en utilisant des éditeurs en langage naturel.
Le cycle de développement devient plus court car de la conception aux scénarii de tests, en passant par le codage, les experts métiers travaillent en étroite collaboration avec l'équipe technique en participant à toutes les phases du cycle de vie et de développement.
Avec l'ARM, dans chaque domaine les applications sont dirigées et gérées par les experts métier du domaine.
Approche par Règles Métier: c’est quoi?(3/4)
www.baamtu.com
Approche par Règles Métier: c’est quoi?(4/4)
Les règles sont au cœur de toute application, cependant le plus difficile est de les recenser et de les structurer pour une meilleure gestion.
L'utilisation d'un gestionnaire de règles métier ou Business Rules Management System (BRMS) facilite le recensement et la mise en œuvre des règles métier.
En cas de maintenance de la logique métier, l’expert technique n’interviennent pas tout le temps
www.baamtu.com
Les règles métier permettent une encapsulation des besoins de l'utilisateur.
Les règles métier sont des règles qui sont sous la juridiction des experts métier.
Le terme « règle métier » a un sens différent selon un point de vue métier ou IT. Cependant on peut dire que : les règles métier sont des formulations qui définissent ou
contraignent quelques aspects d'un métier. Son but est de structurer un métier (politique, savoir-faire), de contrôler ou d'influencer le comportement d'un métier.
C’est quoi une règle métier? (1/3)
www.baamtu.com
De manière plus basique et simple on peut dire qu'une règle métier est un couple de SI – ALORS SI étant la partie condition (Left Hand Side) ALORS la partie action (ou Right Hand Side) qui est exécutée si la
partie condition est évaluée à vraie. Les règles métier sont du ressort des experts fonctionnels du domaine. Les règles métier peuvent provenir des déclarations de la politique de
l'entreprise, d'un système d'information existant ou tout simplement de personnes travaillant dans l'entreprise et qui ont su acquérir au fil des années une expérience considérable.
C’est quoi une règle métier? (2/3)
www.baamtu.com
C’est quoi une règle métier? (3/3)
Il existe plusieurs manières de définir une règles métier : En langage métier En langage technique En table de décision
1
2
3
www.baamtu.com
L'un des principaux avantages d'avoir un BRMS complet est la réduction de la complexité de mise en œuvre d'une logique applicative complexe pour permettre l'exécution de la logique métier.
Le BRMS fournit un outil plus sophistiqué pour l'exécution des règles : le moteur de règles.
Les moteurs de règles peuvent être subdivisés en deux catégories : ceux qui font un chaînage avant (forward chaining) et ceux qui font le chaînage arrière (backward chaining) : Le chaînage avant est orienté données et est donc « réactif ». Les faits
(données) sont injectés dans la mémoire de travail ou working memory (WM) entraînant l'élection d'une ou plusieurs règles pouvant être exécutées.
Le chaînage arrière est orienté but ou résultat (goal-driven). Exemple : j’ai 500 euros, combien de types et de pots de peinture je peux acheter.
Un moteur peut supporter les deux type de chaînage, on dit qu’il est hybride.
C’est quoi un moteur de règles? (1/2)
www.baamtu.com
Fonctionnement : si les expressions booléennes qui sont définies dans la partie condition, sont évaluées à vraie alors exécuter les actions de manière séquentielle.
Les règles métier sont exécutées, et leur ordre d'exécution contrôlé par le moteur de règles.
La performance d'un moteur de règles varie beaucoup avec l'implémentation.
Sans optimisation, les performances diminuent avec le nombre de règles grandissant dans la base de connaissance ou repository de règles.
Cependant la plupart des moteurs de règles en chaînage avant utilise un algorithme à base de RETE pour optimiser ces performances qui sont finalement asymptotiquement indépendant du nombre de règles.
C’est quoi un moteur de règles? (1/2)
www.baamtu.com
Fonctionnement d’un moteur de règles
Les règles sont exécutées par le moteur de règles.
Vérification des conditions sur tous les faits dans la WM.
Les faits sont des beans : les données connues du problème (solutions, passagers, etc)
Sélection des règles qui satisfont les conditions.
Résolutions des éventuels conflits.
Exécution de la partie action des règles sélectionnées
www.baamtu.com
BRMS = Business Rules Management System C’est système de gestion de règles métier (ce qu’est un SGBD pour une BD) Ce que doit proposer un bon gestionnaire de règles :
Un éditeur de règles en langage naturel Les outils de management : Un lieu de stockage pour règles métier. Utilisation d’un ruleflow Assistant de gestion de l’intégrité des règles. Archivage (logging). Système de verrou. La gestion des permissions (accès au repository) Versionnement
Les outils de suivi (profiling) Les outils de debuggage et de traçage Recherche par requête
C’est quoi un BRMS?
www.baamtu.com
Meilleur réalisation de l’intention : utilisation d’éditeurs en langage naturel.
Evolution plus rapide : modification des règles métier et à chaud. Plus de collaboration avec l’expertise technique et participation
réelle au cycle de vie et de développement. Mise en place de ses propres scénarii de test. Mise en place de la logique métier en même temps que l’ossature
technique. Création et gestion d’un repository de règles (droit, templating,
requettes, profiling, versionning). Meilleur organisation de l’exécution des règles métier (ruleflow,
prioritisation). Plusieurs manières d’écrire des règles (langage naturel, table de
décision, arbre de décision). Possibilité de recharger un ruleset et de les rejouer.
Qu’apporte l’ARM (pour le métier)
www.baamtu.com
Les experts technique ne s’occupent de la partie qui les intéresse c’est-à-dire l’infrastructure technique.
Plus de collaboration avec les experts fonctionnels (pas d’effet boule de neige).
Mise en place de modèles métier plus simples (pour faciliter les appels de procédure).
Intervient uniquement pour les évolutions techniques. Utilisation d’algorithmes de pattern matching performants et
éprouvés. Commencer les développements sans que tout le métier ne soit
identifié. Peu de retour en arrière parce que la logique de l’application a
changée en cours de développement.
Qu’apporte l’ARM (pour le technique)
www.baamtu.com
Quelque soit l’entreprise et le domaine, les règles métier sont présentent, influençant tous les aspects de l’organisation.
Elles souvent codées en dur ou disséminées dans le savoir faire des experts, pouvant engendrer une perte de connaissance (known-how) pour l’organisation.
Dans un context SOA (services atomiques et autonomes), un EDM (Entreprise Decision Management) à pour objectif d’éviter ceci traitant les règles métier comme n’importe quel asset de l’entreprise.
Les règles peuvent être gérées de manière centraliser avec BRMS et puis être exposées à travers des protocoles standards (SOAP, JMS, JSON, …)
L’approche par règles métier et SOA
www.baamtu.com
Enterprise Decision Management (1/2)
Decision Service
Account ServiceLoan Service
Validation Service
Support Service
Entreprise Data Service
DB
www.baamtu.com
Enterprise Decision Management (2/2)
www.baamtu.com
Outil open source : Forte communauté (Jboss & Red hat) Mature : existe depuis bientôt 10 ans Performant (implémentation de Rete (OO Rete))
Passé d’un simple moteur de règles vers un vrai BRMS durant ces 5 dernières années
JBoss Rules aka Drools
www.baamtu.com
Le moteur de règles ou rule engine (drools-experts) Authoring : Drools Rule Language (DRL) fournit une grammaire
(vocabulaire) complète pour l’écriture de règles. On peut écrire ces règles en langage « naturel » (Domain Specific Langage ou DSL) ou sous forme de tables de décision
Un BRMS : Guvnor depuis la version 4.0. Guvnor offre la possibilité de centraliser les règles (Rules Repository) et de éditeurs Zero-client et d’autres fonctionnalités.
« Drools jBPM » pour la gestion de process métier Drools Fusion pour faire du CEP Drools Planner : optimiseur de planification automatique Qu’utiliserons-nous?
Les Composants de Drools
www.baamtu.com
Mode embedded : Le moteur de règles (qui est une simple composant java) est
packager avec l’application qui l’utilise.
Modes d’intégration
Application
Service 1
Service 2
Moteur de règles
Service n
.drl
DB
www.baamtu.com
Mode distributed ou réparti : Le moteur de règles est exposé comme un service web (EDM)
Modes d’intégration
www.baamtu.com
On peut également utiliser des patterns d’entreprise pour l’intégration en mode distributed : Un ESB (transformation, orchestration, etc) Un framework de médiation de service Messaging Spring Etc
Comment invoquer le service de décision (règles) : Stateless (des avantages, des inconvénients mais idéal dans un
context SOA ) Statefull (des avantages, des inconvénients surtout en terme de
haute dispo et scalabilite)
Modes d’intégration
www.baamtu.com
Exemple de déploiement
www.baamtu.com
L’approche par règles métier
Questions?
DEMO JBOSS RULES
www.baamtu.com
L’approche par règles métier
Questions?
Merci! Questions?