Quelqu'un at-il utilisé avec succès Windows Workflow pour un moteur de règles métier / validation?

11

Je me demandais si quelqu'un avait utilisé avec succès Windows Workflow Foundation pour un moteur BusinessRules / Validation, ou si vous connaissez des exemples de code ou des articles à ce sujet.

Si vous l'avez déjà utilisé, qu'en pensez-vous? Comment est-il comparé aux autres systèmes BusinessRule / Validation?

Je pense à des règles comme

if (A, B, and C) 
    AllowAccess();

Ou

if (Value between X and Y)
    return true;
Rachel
la source

Réponses:

6

J'ai commencé à construire un moteur en utilisant WWF WCF il y a plusieurs mois. Je ne sais pas à quel point votre base de règles est complexe, mais la nôtre était assez grande. Lorsque vous avez le potentiel pour quelque chose comme 40 000 succursales, le WWF n'est pas un bon choix. Comme alternative, j'ai fini par construire un moteur qui utilisait des tables d'exceptions logiques en SQL. Les lignes stockaient les valeurs de base, ainsi que des chaînes formatées pour les formules variant entre les exceptions. Combiné avec un langage dynamique (j'ai utilisé un moteur ironpython intégré avec un wrapper et vous pourriez utiliser un moteur JScript intégré), la logique pourrait être déterminée à un niveau très abstrait à la volée. Je suis tellement content d'avoir choisi cette voie.La logique du glisser-déposer semble excellente, mais les gens d'affaires ne pourront jamais l'utiliser, malgré le marketing, et cela ne fera que ralentir un développeur à mon humble avis, devenant rapidement un nid de rat .

Mise à jour: Si vous êtes toujours intéressé, voici le guide du débutant . Ce n'est certainement pas expansif, mais a quelques vidéos décentes. En ce qui concerne la configuration, nos ingénieurs réseau ont fait la configuration pour moi (politique de l'entreprise pour la maintenance du serveur, la sécurité, etc.), mais supposément, c'était presque identique à la mise en place d'un service WCF de base. Jetez-le simplement dans un répertoire virtuel dans ISS. Comme il s'agit généralement d'un processus de longue durée, soyez extrêmement prudent avec la gestion de la mémoire lors de l'écriture du service. Ne pas disposer de ressources encore et encore pendant 6 mois va vraiment s'accumuler et votre serveur ne sera pas content.

Morgan Herlocker
la source
Comment était-il configuré? Connaissez-vous des articles en ligne pour commencer ou contenant un exemple de code?
Rachel
Merci. Quelle a été la performance de l'exécution des règles métier?
Rachel
Et honnêtement, je suis contre l'idée d'utiliser le WWF pour cela, mais mon coéquipier est tout à fait d'accord, donc je voudrais au moins lui donner une chance :)
Rachel
1
@ Rachel - les performances étaient raisonnables (assez rapides pour être exécutables dans un paramètre d'interface utilisateur avec un peu de multi-threading si cela signifie quelque chose). Ce n'est pas incroyablement rapide non plus, mais rien avec un service WCF distribué ne flambera non plus.
Morgan Herlocker
Y a-t-il encore du matériel disponible sur Internet qui illustre votre moteur logique et votre approche IronPython? (Votre lien "guide du débutant" ne fonctionne plus).
Robert Harvey
1

Je dois être d'accord avec ironcode. Nous avons écrit un système de type organigramme par glisser-déposer quelques années avant la sortie du nouveau Biztalk (étrangement). L'idée était que les non-programmeurs pouvaient programmer et que le système serait facilement maintenable et modifiable.

Le résultat: vous aviez encore besoin d '«analystes commerciaux» qui devaient être aussi hautement qualifiés qu'un programmeur, mais dans le nouveau «langage» du système WWF. Vous n'y avez donc pas gagné grand-chose. Le débogueur était loin d'être aussi bon qu'un véritable système de développement, vous y avez donc perdu. Vous avez également eu besoin de programmeurs pour écrire les modules délicats qui étaient au cœur du traitement des données et de l'interface graphique. L'évolutivité s'est également éteinte très rapidement. Des règles commerciales simples étaient faciles à mettre en place, mais une fois la douzaine passée, vous étiez en spaghetti.

Je pense que cela a eu certains avantages, mais en gros, vous feriez mieux d'utiliser un moteur de script pour lier des modules personnalisés.

Cela avait l'air vraiment cool pour les types de marketing, fait pour une excellente démo :)

gbjbaanb
la source