Pregunta

Estoy escribiendo una presentación sobre la tecnología de motor de reglas, específicamente JBoss Drools.

¿Cuáles son algunos de los 'mitos' sobre motores de reglas.

Uno se me ocurre es que permite a los usuarios de negocio para controlar el motor de reglas, yo creo que es posible, pero requiere control y la educación -. Y no todos los usuarios de negocios son capaces de hacerlo

¿Está de acuerdo / desacuerdo? ¿Alguien más tiene alguna idea?

feliz para liberar mis 'descubrimientos' finales bajo Creative Commons ...

¿Fue útil?

Solución

No sé acerca de los mitos, pero estoy de acuerdo con la gente de negocios que mantienen reglas no es pan comido.

Creo que la gente de negocios esperando a tener la paciencia y la atención al detalle anal retentivo necesario para hacer el trabajo de TI es una fantasía. Ha estado en juego desde que idiomas 3G (aproximaciones gráficas a la programación) se han ofrecido como una manera de conseguir secretarias a escribir el código por lo que los programadores de todo podían ser despedidos.

Me gustaría señalar que a medida que el tamaño del conjunto de reglas aumenta, la posibilidad de asegurar que es correcta y auto-consistente baja. Si el conjunto de reglas tiene miles de reglas que va a ser difícil de prueba.

Hablando de eso, la explosión combinatoria de combinaciones hará que sea difícil de probar un motor de reglas.

motores de reglas son la tecnología excelente, pero tenga cuidado.

Otros consejos

drools En realidad, después de haber utilizado en gran medida, no estoy de acuerdo con usted en su punto acerca de los usuarios que tienen la capacidad de hacer cosas con facilidad, creo que es relativamente trivial para proporcionar a los usuarios una interfaz sencilla para generar reglas de gran alcance de forma dinámica.

Una duda me gustaría añadir a la lista es:

  

Mito: Los motores de reglas son lentos

!

No es así, una vez más, he empujado incluso miles de eventos por segundo a través babea con bastante facilidad.

Otro el que estoy totalmente odiaba era:

  

Mito:. Es de peso demasiado pesado y complejo para el uso

Tonterías, la sintaxis es trivial y con unas pocas líneas de Java, puede hacer algunas cosas muy a la moda! Lo siento si esto parece ser una queja, tenía meses de esta basura a un empleador anterior como Wad tratando de introducir esta tecnología!

Los mitos ...
1 / Los usuarios de negocios pueden:
los derechos de autora
desplegarlos
probarlos
ejecutarlos
Whithout la ayuda de TI ... Me han entregado un entrenamiento para un cliente que en realidad estaba pensando que era cierto porque el vendedor lo dijo ... ah ah ah hicieron que mi día / boca regular / año !!!

¿Se puede pensar seriamente en una empresa que va a correr el riesgo de desplegar un servicio en la parte posterior del equipo de TI ?? De ninguna manera!
Es necesario de seguridad, así que me impide escribir una regla que indica:
si el nombre del cliente es "Damien", entonces el 100% de descuento - Bebé maravilloso

La arquitectura de un proyecto no se puede hacer por los usuarios no técnicos

2 / Puede administrar proyecto regla fácilmente sin tener que preocuparse de nada.
Hay un límite de número de reglas que se pueden tratar. En teoría se podría tener tantas reglas como deseen, pero esto no es del todo correcto. JRules detener la sincronización de reglas entre Eclipse y estrategia en tiempo real de alrededor de 3.000 normas. Se llevará siempre si usted tiene un proyecto con 100.000 reglas en toda RETE. La construcción del árbol llevará mucho tiempo. Incluso en el modo secuencial que se necesita mucho tiempo para proceder.
No se puede utilizar un repositorio de reglas como la carpeta "Mis documentos" y simplemente seguir añadiendo reglas.

3 usuarios / negocio puede escribir todo tipo de reglas sin ningún tipo de formación.
Diferentes cosas: Read a / orden de las condiciones puede afectar al rendimiento.
b / algunas reglas son complejas y necesitan una buena comprensión de la lengua
c / el algoritmo utilizado puede afectar el resultado de la ejecución
d / una sola regla mal escrito puede multiplicar el tiempo de ejecución por n.
Trabajé en un proyecto donde sólo el 1 regla era responsable de algunos tiempos de espera aleatorios.
e / Algunos problema complejo se puede expresar en una sola regla.
Este problema se resuelve en una regla y tiene un resultado:
Hay cuatro jugadores de golf de pie en un té, en una línea de izquierda a derecha.
- El golfista a la derecha inmediata del Fred lleva un pantalón azul
- Joe es segundo en la línea
- Bob lleva pantalones a cuadros
- Tom no está en la posición de uno o cuatro, y él no está usando los pantalones de color naranja
BTW: Este es un ejemplo JBoss.
¿Cómo puede un usuario de negocios hacer esto?

motor de 4 / Regla puede hacer el encadenamiento hacia atrás
Creo que JBoss dicen que pueden, pero no estoy seguro de esto. Blaze y no puede JRules.

5 / Uno no necesita ningún lenguaje de programación a las reglas de escritura.
Correcta, pero se necesita un poco de ejecutar las reglas. Excepto si usted está usando un XSD simple como modelo de objetos. Pero su Servicio Decisión no va a hacer que gran cosa inteligente.

6 / Es más lento que Java
Por supuesto, pero utilizando los BRMS está externalizando la lógica de negocio por lo que tiene un costo.
Exactamente como cuando externalizar datos. La llamada base de datos tiene un costo.
He enviado 5.000 objetos en la memoria de trabajo de JRules con un proyecto que contiene 4 reglas ficticias que fueron llamando unos a otros ... Rendimiento propósito de la prueba
Resultado: 19 Millones reglas ejecutados en 75 segundos. Haz las cuentas ... no es tan lento.

7 / Usted puede hacer cualquier cosa en una regla
No haga la llamada base de datos en una regla (sobre todo en las condiciones). El uso de Rete, en teoría, una regla podría "prueba" la condición para encontrar los correspondientes resultados de los miles de memoria de tiempo.
Nadie quiere llamar a una base de datos que gran parte de una aplicación.

Espero que ayude

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top