2009-08-22 9 views
4

Comment puis-je externaliser les règles métier à partir des processus métier afin de pouvoir ajouter des règles sans toucher à la logique de processus métier? Par exemple, j'ai deux processus métier, disons "Ajouter un produit" et "Mettre à jour un produit", il y a quelques règles communes que ces deux processus partagent, et les règles peuvent continuer à être ajoutées plus tard. J'ai l'intention d'écrire une fois le processus métier, qui exécute toutes les règles disponibles pour un processus particulier, et si aucune exception n'est levée, continue à terminer le processus métier avec succès.Séparer les règles métier des processus métier

Je n'ai pas l'intention d'utiliser un moteur de règles car je pense que cela pourrait être trop lourd pour mon architecture.

Merci et salutations,
Ajay

+0

Quel est le problème avec le moteur de règles? –

+1

La question est valide, mais celui qui a mis -1, pouvez-vous montrer votre visage s'il vous plaît et écrire un commentaire sur ce qui ne va pas avec cette question? Je donne +1 pour une question valide. –

+0

Mon domaine d'application ne nécessite pas de règles très complexes avec plusieurs paramètres qui dépendent du contexte, etc.donc je pense que le moteur de règles va devenir un ballonnement sur l'architecture. – Ajay

Répondre

1

La réponse à cette question est plus compliquée que je pourrais écrire ici. Cela touche aux sciences des relations de données, à la sécurité, à la doctrine politique et aux contraintes administratives de votre entreprise/industrie.

Je pourrais mal interpréter votre question si vous vouliez dire quelque chose de moins vague que les «règles métier» et les «règles métier».

0

Les questions sont assez larges, donc je vais répondre en termes de schéma général. Ce que j'ai fait dans de nombreux cas, c'est de définir le processus de sorte que l'on insère un certain nombre d'activités «gate-keeper» aux étapes appropriées du processus. Chacun de ces portiers est responsable de l'application d'un sous-ensemble particulier des règles métier. Ainsi, par exemple, une telle activité peut imposer la qualité des données. Un autre peut prendre une décision de routage en fonction des règles métier. Un autre prix. Etc.

Les règles elles-mêmes sont détenues à l'extérieur du flux de travail et peuvent être modifiées indépendamment de celles-ci. L'astuce consiste à contraindre la «conséquence du processus» de l'évaluation des règles afin que l'on puisse continuer à avoir un processus prévisible (et testable).

1

Vous pouvez séparer les règles du flux du processus avec de nombreuses techniques. À un certain niveau d'abstarction, vous appelez une «méthode» à partir de divers points de votre processus d'affaires. La question devient alors l'un des mécanismes par lesquels cette méthode peut être modifiée sans changer le processus métier lui-même.

On pourrait empaqueter la méthode dans sa propre bibliothèque (dll, jar ou autre) et remplacer ce fichier par une nouvelle version. Changez la bibliothèque, modifiez les règles métier.

On pourrait exprimer la logique dans le procédé en termes de paramètres configurables obtenus à partir d'une base de données. Changez la base de données, modifiez les règles métier.

Si la complexité augmente suffisamment, vous constatez que vous avez implémenté votre propre moteur de règles.

À un certain point, il devient plus efficace d'utiliser un moteur de règles existant plutôt que de réinventer cette roue.

Pour des conseils plus détaillés, vous devez nous en dire plus sur ce que vous faites.

Questions connexes