Introduction BRMS Paris JUG 20101109
-
Upload
emmanuel-bonnet -
Category
Technology
-
view
1.095 -
download
0
description
Transcript of Introduction BRMS Paris JUG 20101109
![Page 1: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/1.jpg)
© Groupe GENITECH 1
Les BRMSBusiness Rules
Management System
![Page 2: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/2.jpg)
© Groupe GENITECH
Présentations
2
►Emmanuel Bonnet
►ebonnet (at) genigraph.fr
►Responsable Dpt Conseil
►Consultant, Expert BRMS
►Formateur IBM/Ilog JRules / JBoss Rules
►Génigraph
►SSII 100% orienté Objet
►SSII –RM (Règles Métier) !
►www.genigraph.fr
![Page 3: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/3.jpg)
© Groupe GENITECH 3
Les BRMS
…
![Page 4: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/4.jpg)
© Groupe GENITECH
Les règles métiers
Les moteurs de règles
Le BRMS
4
![Page 5: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/5.jpg)
© Groupe GENITECH 5
Une règle métierSi
le conducteur n’a pas eu d’accident depuis 3 ansEt
le bonus actuel du conducteur est 0.5
Alors
appliquer au conducteur une remise de 15%
![Page 6: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/6.jpg)
© Groupe GENITECH
Un moteur d’inférence
6
Inférence
engine
![Page 7: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/7.jpg)
© Groupe GENITECH
Un BRMS
►Gestion du cycle de vie–Règles métier
►Ecriture -> Exécution– Versioning
– Process : Validation, Test
7
![Page 8: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/8.jpg)
© Groupe GENITECH 8
BRMS : what’s in it for me ?
►Externaliser
►Expliciter
►Gérer
► Des décisions métier► Nichées dans un applicatif
![Page 9: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/9.jpg)
© Groupe GENITECH 9
Logique technique
Décisions métiers
Externaliser ?
![Page 10: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/10.jpg)
© Groupe GENITECH 10
BRMS : Externaliser
►Logique métier extérieure à l’application
► Modifiable
► indépendant du code applicatif
► Cycles courts
►Existe-t-il un besoin ?
![Page 11: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/11.jpg)
© Groupe GENITECH 11
Cycle de vie des règles
► Le cycle de vie des règles change plus souvent que celui de l’application
Sans BRMS:
Avec BRMS:
Application
Règles
![Page 12: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/12.jpg)
© Groupe GENITECH 12
Expliciter ?
Si
le conducteur n’a pas eu d’accident depuis 3 ansEt
le bonus actuel du conducteur est 0.5
Alors
appliquer au conducteur une remise de 15%
![Page 13: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/13.jpg)
© Groupe GENITECH 13
BRMS : Expliciter
►Compréhensible► Métier lisible / visible
►Modifiable► Pas besoin des informaticiens
►Traçable► On peut « relire » la séquence d’une décision
![Page 14: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/14.jpg)
© Groupe GENITECH 14
Gérer ?
Si
le conducteur n’a pas eu d’accident depuis 3 ansEt
le bonus actuel du conducteur est 0.5
Alors
appliquer au conducteur une remise de 15%
Si
le conducteur n’a pas eu d’accident depuis 6 ansEt
le bonus actuel du conducteur est 0.8
Alors
appliquer au conducteur une remise de 15%
Si
le conducteur n’a pas eu d’accident depuis 10 ansEt
le bonus actuel du conducteur est 0.8
Alors
appliquer au conducteur une remise de 15%
![Page 15: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/15.jpg)
© Groupe GENITECH 15
BRMS :Gérer
►Décisions Métier► Stockée / Référencées
►Organisation des connaissances► Searchable !!
► Exécutable !!!
![Page 16: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/16.jpg)
© Groupe GENITECH 16
Projets : the Usual Suspects
►Le métier change souvent► « encore un nouveau requirement ! »
►La connaissance est très pointue► «SVP, pas d’informaticien !»
►Des décisions doivent être tracées► « Pourquoi cette décision ? »
► Initialiser des données …..
![Page 17: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/17.jpg)
© Groupe GENITECH
Tout ce que vous voulez savoir sur
Les règles métiers
Les moteurs de règles
Les BRMS
sans jamais avoir osé le demander …
17
![Page 18: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/18.jpg)
© Groupe GENITECH 18
Tout ce que vous voulez savoir sur …
Les règles
métierssans oser le demander
![Page 19: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/19.jpg)
© Groupe GENITECH 19
Une règle, c’est quoi?
If…
and/or
…
Then…
(Else…
)
![Page 20: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/20.jpg)
© Groupe GENITECH 20
Le métier, c’est quoi?
La rédaction de spécifications ?
La présence à des réunions ?
La gestion des prestataires ?
« Le savoir du client »
![Page 21: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/21.jpg)
© Groupe GENITECH 21
Les règles métier, c’est quoi
Du code ?
Une implémentation technique ?
Des Design patterns ?
Une application informatique ?
« Le savoir du client »
Sous la forme
IF
THEN
![Page 22: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/22.jpg)
© Groupe GENITECH 22
Exemple
Si
le conducteur n’a pas eu d’accident depuis 3 ansEt
le bonus actuel du conducteur est 0.5
Alors
appliquer au conducteur une remise de 15%
![Page 23: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/23.jpg)
© Groupe GENITECH 23
Exemple
Si
le conducteur n’a pas eu d’accident depuis 3 ansEt
le bonus actuel du conducteur est 0.5
Alors
appliquer au conducteur une remise de 15%
![Page 24: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/24.jpg)
© Groupe GENITECH 24
Exemple
Si
le conducteur n’a pas eu d’accident depuis 3 ansEt
le bonus actuel du conducteur est 0.5
Alors
appliquer au conducteur une remise de 15%
![Page 25: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/25.jpg)
© Groupe GENITECH 25
Mapping
Grammaire / Langage usuel
+
Concept / Attributs / Traitements
=
Mapping entre langages
naturel orienté objet
![Page 26: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/26.jpg)
© Groupe GENITECH
JRules Mapping
26
![Page 27: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/27.jpg)
© Groupe GENITECH
Règle métier : résumé
►Le savoir du client
►En langage naturel
– Structuré
• Formalisme : IF / THEN
• Grammaire
►Traduction informatique
– Mapping vers langages objets
– Sorte de « Compilation » 27
![Page 28: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/28.jpg)
© Groupe GENITECH
Sous le capot ?
(JBoss Rules)
28
![Page 29: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/29.jpg)
© Groupe GENITECH
Le Langage naturel
►Parlons en ….
► Les utilisateurs qui lisent des règles !!!!
– Ils peuvent écrire aussi ?
►N’est ce pas un mythe ?
» Java = grammaire + vocabulaire
» Sécurité, simplicité, lisibilité
29
![Page 30: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/30.jpg)
© Groupe GENITECH 30
Tout ce que vous voulez savoir sur …
Les moteurs
de règlessans oser le demander
![Page 31: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/31.jpg)
© Groupe GENITECH
Moteur de règle
►Exécute
– les règles en regards de faits
►Optimise(Volume)
►Garantit la cohérence(Séquence / Contexte)
31
![Page 32: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/32.jpg)
© Groupe GENITECH 32
Moteur d’inférenceL’algo ‘Red is dead’
Il vaut mieux exécuter une fois une règle
Il vaut mieux exécuter mille fois une règle
Il vaut mieux exécuter une fois mille règles
Il vaut mieux exécuter mille fois mille règles
« Attention, ca va couper «
![Page 33: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/33.jpg)
© Groupe GENITECH
La structure (1/3)
33
Inférence
engine
![Page 34: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/34.jpg)
© Groupe GENITECH
La structure (2/3)
34
Inférence
engine
![Page 35: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/35.jpg)
© Groupe GENITECH
La structure (3/3)
35
Inférence
engine
![Page 36: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/36.jpg)
© Groupe GENITECH 36
RETE
►Algorithme RETE (Charles Forgy – 1980)
►Rapide
►Gère– Chaînage avant
– Un grand nombre de règles
– Un gros volume de données
– La validité d’un résultat au cours de l’exécution (règles inter-dépendantes)
![Page 37: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/37.jpg)
© Groupe GENITECH 37
Principe du RETE
►Cohérence garantie– réévaluation constante
►Principe de « pattern matching »
► Données vérifiées « contre » les conditions des règles– Liste d’instances de règles candidates
– Réévaluation après chaque éxecution d’une règle
![Page 38: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/38.jpg)
© Groupe GENITECH 38
IF
A.a1 = 1
B.b2 = 2
A.a2 = B.b3
Then
R1 (A,B).
IF
B.b1 = 2
C.c1 = B.b2
Then
R2 (B,C).
A
a1
a2
B
b1
b2
b3
C
c1
![Page 39: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/39.jpg)
© Groupe GENITECH 39
A B C
a1=1 b1=2
a2=b3
R1 (A,B)
c1=b2
R2(B,C)
B
b1 = 2
b2 = 3
b3 = 4
C
c1 = 3
A
a1 = 1
a2 = 4
B
b1 = 2
b2 = 3
b3 = 4
![Page 40: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/40.jpg)
© Groupe GENITECH 40
Tout ce que vous voulez savoir sur …
Les BRMSsans oser le demander
![Page 41: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/41.jpg)
© Groupe GENITECH
Business Rules SystemBRMS
Rule GUIRules
Repository
L’architecture
41
Software
System GUI component
Model component
Persistency component
Rules component Rules Engine
Business User
IT Architect
Enter rules
Extract rules
Deploy rules
![Page 42: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/42.jpg)
© Groupe GENITECH 42
Les composants
![Page 43: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/43.jpg)
© Groupe GENITECH 43
Ruleflow
► Un workflow pour règles
![Page 44: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/44.jpg)
© Groupe GENITECH 44
Différents types de règles
![Page 45: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/45.jpg)
© Groupe GENITECH
BRMS : intégration
► Intégration Java / .NET
– Souvent simplissime
►Frameworks J2EE
– Déploiement à chaud
– Clustering / montée en charge
45
![Page 46: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/46.jpg)
© Groupe GENITECH
BRMS : outils
►Gestion de configuration
– Edition
– Exécution
►Processus de déploiement
– Gestion des roles/droits
►Agilité
– Tests automatiques46
![Page 47: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/47.jpg)
© Groupe GENITECH 47
Exemple de Process
NEW
TEST
DEPLOYED
REJECTED
RETIRED
User, Developer
BA, Developer
BA, Developer
BA, Developer
User, Developer
![Page 48: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/48.jpg)
© Groupe GENITECH 48
Les BRMSretours d’experiences
![Page 49: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/49.jpg)
© Groupe GENITECH 49
Les défis
► Identifier les décisions à externaliser
►Extraire / Organiser le métier
►Trouver le bon process• Qui fait quoi ? BA, IT
• Comment on déploie ?
![Page 50: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/50.jpg)
© Groupe GENITECH 50
Les faux problèmes
►Les performances– Rarement un problème !!!!
►La mise en production rapide– Attention !
► L’implication des utilisateurs– Toujours un plus
![Page 51: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/51.jpg)
© Groupe GENITECH 51
Les anti patterns
►Solution = Marteau– problèmes = clous
►Cycle de vie court– Bypassons les lourdeurs
• Gestion de conf, tests, validation ne sont pas a éliminer …
►Utilisateur, langage naturel– C’est pas de l’informatique
• Allégeons les process pour la prod (test) … mais testons
![Page 52: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/52.jpg)
© Groupe GENITECH 52
Impact sur le projet►Ajout d’un nouvel axe de développement
– Axe règle
– Tâches/Rôles supplémentaires spécifiques aux règles• Utilisateurs ….
– QA différente• Tests unitaires ne sont pas des tests d’intégration
► Méthodologie liée aux règles– Analyse/Capture
– Cycles itératifs
– Tests unitaires
– Travail main dans la main IT/BA
– Délégation progressive de responsabilité de IT vers BA
![Page 53: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/53.jpg)
© Groupe GENITECH 53
BRMS du marché
►IBM / ILOG-JRules
►FICO Blaze Advisor
►Drools / RedHat JBoss Rules
►Corticon BRMS
► Pegasystems PegaRULES
etc…
► Non-BRMS
– Jess
![Page 54: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/54.jpg)
© Groupe GENITECH 54
Les leaders
IBM / ILOG JRules
►Avantages:
– Historique Outil complet et mature
– Beaucoup d’outils pour TOUT gérer
– Excellente intégration, surtout en J2EE (RES)
– Excellentes possibilités en langage naturel
– Excellents outils pour la délégation du pouvoir aux BAs/ Policy Managers
– Moteur: intègre plusieurs algorithmes d’exécution
► Inconvénients:– Ticket d’entrée ..
– Outil complet Phase d’apprentissage plus longue
![Page 55: Introduction BRMS Paris JUG 20101109](https://reader034.fdocuments.in/reader034/viewer/2022051209/548f597db479597e6a8b505a/html5/thumbnails/55.jpg)
© Groupe GENITECH 55
Les leaders
Drools / RedHat JBoss Rules
►Avantages:
– Drools : Open source
– Wiki, mailing list
– Bons outils de gouvernance des règles
– Simple à intégrer
► Inconvénients:– Edition en langage naturel moins puissante
– Outils de reporting limités
– Pas de framework d’intégration J2EE
– Tables de décision limitées