Nueva versión de JBoss Rules.

Tras algunos meses de Milestones ya tenemos una versión estable de JBoss Rules 4.0. Para los que no conozcan JBoss Rules (antes llamado Drools ) es una plataforma que facilita la creación de sistemas expertos basados en conjuntos de reglas, siendo el núcleo de algunas de nuestras aplicaciones.

Aunque esta nueva versión llega un poco tarde para una de nuestras aplicaciones, en la que ya tenemos mas de 900 reglas definidas, en nuestra nueva plataforma de tramitación ya hemos realizado las modificaciones necesarias para que sus módulos de priorización, asignación de puntos y validación de expedientes utilicen las nuevas funcionalidades.

Las mejoras mas detectables son:

  • Más velocidad y menor consumo de memoria que la versión 3.0, gracias a los nuevos concepto de memoria de trabajo stateful y stateless, y al nuevo sistema de evaluación y compilación.
  • Un lenguaje de definición de expresiones mucho mas potente, que elimina algunas limitaciones muy serias que tenía la versión anterior. Destaca la potencia de MVEL y de las nuevas instrucciones from, fromAll, collect, accumulate.
  • Un mejorado editor visual para Eclipse.
  • Un nuevo repositorio de reglas basado en JackRabbit.

Antes reglas como la siguiente no podían ser definidas directamente sobre el motor de reglas y teníamos que recurrir a la manipulación de bytecodes utilizando CGlib para generar wrappers.

rule “Calculamos el total de presupuestos de todas las actividades”
when
expediente: DatoEntidad(name ==”Expediente”)
// Calculo del presupuesto total de todas las actividades del expediente
presupuestoTotal: Number() from accumulate( presupuesto: DatoNumerico(identificador ==”presupuesto”),sum(presupuesto.getValor()))
then
expediente.addProperty(new DatoNumerico(“presupuestoTotal”,presupuestoTotal));
end

El único inconveniente es la incompatibilidad con la versión anterior, ya que se han realizado profundos, aunque justificados, cambios en el API.

Podemos ver la lista completa de nuevas funcionalidades en http://blog.athico.com/2007/07/jboss-drools-40-released.htm.

Repositorio Maven en el que se encuentra: http://repository.jboss.com/maven2/org/drools/

Comentarios

  1. Y yo diria que mas que justificados cambios sin compatibilidad hacia atras, porq he sufrido las limitaciones de la version anterior, y cada dia me preguntaba cual era la diferencia con Prolog, mas alla del nombre…

  2. Tienes toda la razón, en el momento de escribir el post, no utilizábamos JBRMs, pero ahora si que lo hacemos y es una maravilla poder editar reglas desde su interfaz web.

Comments are closed.