2010-03-15 10 views
2

Je ne suis pas sûr que cette question soit qualifiée pour être ici mais je ne peux pas penser à un meilleur endroit pour aller.Outil/moteur 'business rules' approprié pour mon application web

Je construis une application web qui a plusieurs chemins alternatifs à la plupart des cas d'utilisation. Ces chemins que je perçois comme des règles d'affaires. Je voudrais d'abord coder mon application pour les scénarios principaux, puis appliquer des scénarios alternatifs en tant que règles métier (des règles peuvent être ajoutées et supprimées même lorsque l'application est en production). Je pense que mon application mérite un moteur de règles. Je n'en ai pas utilisé dans le passé. J'ai donc quelques questions, mais avant que voici le profil de ma demande:

  • application basée sur le Web (données intensive)
  • Un peu critique (liées aux soins de santé) - dynamisme doit être pris en compte
  • plate-forme Microsoft .Net (ASP.Net, MS SQL Server, WCF)

Voici quelques requêtes:

  • Comment mieux t o externaliser les règles?
  • Est-il possible d'appliquer des règles immédiatement ou par lots est la seule possibilité?
  • Comment un utilisateur professionnel peut-il contrôler les règles?
  • Quel est le meilleur moteur de règles (approprié)? (Je préfère accommoder un produit open source)

Toute expérience supplémentaire est la bienvenue car je suis toujours en train de percer dans les besoins.

Répondre

1

De nombreux moteurs de règles métier sont disponibles pour ASP.Net; Windows Workflow Foundation, BizTalk Business Rule Engine, Solver Foundation, Stream Insight et Reactive Framework. Google révèle beaucoup plus, tels que Simple Rule Engine et Custom Rule Engine.

S'il y a beaucoup de solutions à un problème, c'est un indice qu'aucun d'entre eux n'est bon, et cela a été mon expérience en utilisant des moteurs de règles. J'ai étudié le WWF, et mon expérience a montré que la mise en œuvre du moteur et la définition des règles étaient plus difficiles et sujettes aux erreurs que le simple codage des règles dans la logique applicative. Je déconseille les DSL au format binaire ou graphique. Dans mon expérience, ils sont très difficiles à modifier, déboguer, rechercher et maintenir.

Mon conseil est d'implémenter les règles dans un langage textuel familier, compréhensible par l'utilisateur, spécifique au domaine. La langue dépend du domaine dans lequel vous travaillez et des langues que vos utilisateurs connaissent. Recherchez des produits et des implémentations concurrents pour voir ce qui est déjà utilisé dans votre domaine.

+0

Merci mon ami. Je portais un point de vue similaire, mais le vôtre l'a certainement renforcé. Considérant que mon application est plus un produit qu'un simple site web, je ferais mieux d'en construire un qui soit ciblé et spécifique à mon domaine. – Kabeer

+1

Problème avec tous ces outils est qu'ils essaient tous de "cacher" la complexité des tables de décision de l'utilisateur final en inventant de nouvelles façons d'éditer ces tables de manière simplifiée. Il y a maintenant de nouveaux outils qui tentent de se débarrasser des tables de décision. Ce type d'outils de gestion des règles vient tout juste d'émerger. Vérifiez le contrôle Web Rule asp.net, par exemple (http://rule.codeeffects.com). Pas de tables de décision du tout.Et, je crois, c'est ce qui va sauver la création de règles métier à l'avenir :) – Kizz