¿Alguien ha utilizado con éxito el flujo de trabajo de Windows para un motor de validación / reglas comerciales?

11

Me preguntaba si alguien ha utilizado con éxito Windows Workflow Foundation para un motor BusinessRules / Validation, o si conoce algún código de muestra o artículos sobre esto.

Si lo ha usado antes, ¿qué le parece? ¿Cómo se compara con otros sistemas BusinessRule / Validation?

Estoy pensando en reglas como

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

O

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

Respuestas:

6

Comencé a construir un motor usando WWF WCF hace varios meses. No sé cuán compleja es su base de reglas, pero la nuestra era bastante grande. Cuando tienes el potencial de algo así como 40,000 sucursales, WWF no es una buena opción. Como alternativa, terminé construyendo un motor que usaba tablas de excepciones lógicas en SQL. Las filas almacenarían los valores básicos, así como cadenas formateadas para fórmulas que variaban entre excepciones. Combinado con un lenguaje dinámico (utilicé un motor de ironpython incrustado con un contenedor y podría usar un motor JScript incrustado), la lógica podría determinarse en un nivel altamente abstracto sobre la marcha. Estoy tan contento de haber seguido esta ruta.La lógica de arrastrar y soltar parece genial, pero la gente de negocios nunca podrá usarla, a pesar del marketing, y solo retrasará a un desarrollador en mi humilde opinión, convirtiéndose rápidamente en un nido de ratas .

Actualización: si todavía está interesado, aquí está la guía para principiantes . Ciertamente no es expansivo, pero tiene algunos videos decentes. En cuanto a la configuración, nuestros ingenieros de red hicieron la configuración por mí (política de la empresa para el mantenimiento del servidor, seguridad, etc.), pero supuestamente fue casi idéntico a configurar un servicio WCF básico. Básicamente tirarlo en un directorio virtual en ISS. Debido a que generalmente es un proceso de larga duración, tenga mucho cuidado con la administración de memoria al escribir el servicio. No desechar un recurso una y otra vez durante 6 meses realmente se acumulará y su servidor no estará contento.

Morgan Herlocker
fuente
¿Cómo fue la configuración? ¿Conoces algún artículo en línea para comenzar o que contenga código de muestra?
Rachel
Gracias. ¿Cómo fue el desempeño de la ejecución de las reglas de negocio?
Rachel
Y, sinceramente, estoy en contra de la idea de usar WWF para esto, sin embargo, mi compañero de equipo está dispuesto a hacerlo, así que al menos me gustaría darle una oportunidad :)
Rachel
1
@ Rachel: el rendimiento fue razonable (lo suficientemente rápido como para ejecutarse en una configuración de interfaz de usuario con un poco de subprocesamiento múltiple si eso significa algo). Tampoco es increíblemente rápido, pero nada con un servicio de WCF distribuido tampoco será increíble.
Morgan Herlocker
¿Todavía hay material disponible en Internet que demuestre su motor lógico y su enfoque IronPython? (Su enlace "guía para principiantes" ya no funciona).
Robert Harvey
1

Tengo que estar de acuerdo con ironcode. Escribimos un sistema de estilo de diagrama de flujo de arrastrar y soltar un par de años antes de que saliera el nuevo Biztalk (curiosamente). La idea era que los no programadores pudieran programar y el sistema sería fácilmente mantenible y modificable.

El resultado: todavía se necesitaban 'analistas de negocios' que necesitaran estar tan capacitados como un programador, pero en el nuevo 'lenguaje' del sistema WWF. Entonces no ganaste mucho allí. El depurador no era tan bueno como un verdadero sistema de desarrollo, por lo que perdió allí. También necesitaba programadores para escribir los módulos difíciles que eran el núcleo del procesamiento de datos y GUI. La escalabilidad también se extinguió muy rápidamente. Las reglas comerciales simples eran fáciles de armar, pero una vez que pasabas una docena, estabas en espagueti.

Creo que tuvo algunos beneficios, pero básicamente sería mejor usar un motor de secuencias de comandos para unir módulos personalizados.

Sin embargo, se veía realmente genial para los tipos de marketing, lo que hizo una gran demostración :)

gbjbaanb
fuente