L'approche par regles metier

46
www.baamtu.com L’approche par règles métier 24 Février 2012

Transcript of L'approche par regles metier

Page 1: L'approche par regles metier

www.baamtu.com

L’approche par règles métier

24 Février 2012

Page 2: L'approche par regles metier

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

Page 3: L'approche par regles metier

www.baamtu.com

L’approche par règles métier

Questions?

Qui suis-je & Baamtu

Page 4: L'approche par regles metier

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

Page 5: L'approche par regles metier

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

Page 6: L'approche par regles metier

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

Page 7: L'approche par regles metier

• 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

Page 8: L'approche par regles metier

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

Page 9: L'approche par regles metier

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

Page 10: L'approche par regles metier

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

Page 11: L'approche par regles metier

www.baamtu.com

Gestion comptable et financière

BCompta: la solution comptable Syscohada

BCompta : la solution comptable conforme

Syscohada

Page 12: L'approche par regles metier

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

Page 13: L'approche par regles metier

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

Page 14: L'approche par regles metier

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

Page 15: L'approche par regles metier

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

Page 16: L'approche par regles metier

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

Page 17: L'approche par regles metier

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

Page 18: L'approche par regles metier

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

Page 19: L'approche par regles metier

www.baamtu.com

L’approche par règles métier

Business Rule Approach

Page 20: L'approche par regles metier

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

Page 21: L'approche par regles metier

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.

Page 22: L'approche par regles metier

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

Page 23: L'approche par regles metier

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)

Page 24: L'approche par regles metier

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

Page 25: L'approche par regles metier

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)

Page 26: L'approche par regles metier

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

Page 27: L'approche par regles metier

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)

Page 28: L'approche par regles metier

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)

Page 29: L'approche par regles metier

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

Page 30: L'approche par regles metier

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)

Page 31: L'approche par regles metier

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)

Page 32: L'approche par regles metier

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

Page 33: L'approche par regles metier

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?

Page 34: L'approche par regles metier

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)

Page 35: L'approche par regles metier

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)

Page 36: L'approche par regles metier

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

Page 37: L'approche par regles metier

www.baamtu.com

Enterprise Decision Management (1/2)

Decision Service

Account ServiceLoan Service

Validation Service

Support Service

Entreprise Data Service

DB

Page 38: L'approche par regles metier

www.baamtu.com

Enterprise Decision Management (2/2)

Page 39: L'approche par regles metier

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

Page 40: L'approche par regles metier

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

Page 41: L'approche par regles metier

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

Page 42: L'approche par regles metier

www.baamtu.com

Mode distributed ou réparti : Le moteur de règles est exposé comme un service web (EDM)

Modes d’intégration

Page 43: L'approche par regles metier

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

Page 44: L'approche par regles metier

www.baamtu.com

Exemple de déploiement

Page 45: L'approche par regles metier

www.baamtu.com

L’approche par règles métier

Questions?

DEMO JBOSS RULES

Page 46: L'approche par regles metier

www.baamtu.com

L’approche par règles métier

Questions?

Merci! Questions?