Durante el día de ayer fue publicada la versión de Drools 5.0 CR1 (Candidate Release). Esta versión de Drools ya incluye versiones estables y probadas de sus módulos:
Drools Expert: Motor de inferencia de reglas empresariales, nos permite desacoplar reglas de negocio de nuestras aplicaciones y utilizar su motor de inferencia que utiliza para la deducción encadenamiento hacia adelante (forward chaining) y una extensión del Algoritmo RETE (llamada RETEOO).
Drools RuleFlow: modulo de BPM/Workflow, que nos permite definir procesos de negocio utilizando una API unificada para aprovechar las ventajas y la sesión del motor de inferencia. Permitiendo de esta manera una solución elegante y completamente integrada para el modelado de problemas empresariales reales.
Drools Fusion: modulo de procesamiento de eventos complejos, se agrega a la integración, este interesante modulo que permite que nuestras reglas de negocio puedan realizar deducciones basadas en datos temporales. Tambien de una manera integrada al set de APIs.
Drools Guvnor: BRMS, sistema de administración de reglas empresariales que nos permitirá centralizar todos nuestros recursos de reglas, RuleFlow y consumirlos desde este repositorio.
En las proximas semanas estare cubriendo cada uno de estos modulos con post practicos acerca de ellos, ya que se necesita probar bastante la herramienta y mejorar la documentacion actual para aprovechar al maximo la capacidad que nos brinda.
En la siguiente URL se pueden ver los cambios que se han ido agregando durante toda la etapa de desarrollo de esta nueva version.
http://blog.athico.com/2009/03/drools-50-cr1-new-and-noteworthy.html
Les recomiendo que vayan probando este framework porque presenta muchas ventajas a la hora de desarrollar soluciones complejas que requieran las funcionalidades presentadas por sus modulos. Tambien es interesante el hecho de poder probarlo para proponer nuevas funcionalidades y mejoras sobre las que actualmente existen.
Para descargar los binarios pueden dirigirse
http://www.jboss.org/drools/downloads.html
Donde al final de la pagina se encuentran los binarios de esta versión.
Saludos!
Hola, recien comienzo a investigar sobre el tema. Me han encargado verificar si es posible la integración de jboss con rational rose. La idea es desarrollar el BRMS en jboss y poder importar el resultante a Rational. O si existe alguna forma desde Rational (estoy obligado a utilizar esta herramienta) de importar los diseños de jboss. Muchas gracias
LikeLike
Gracias por tu comentario.
Es bastante amplio el tema, y las integraciones por lo general son posibles. El tema es que actualmente no existe ninguna.
Si puedes comentarme, exactamente que necesitarias hacer en Rational que quieres que se vea luego reflejado en Drools?
A que llamas desarrollar el BRMS? Drools ya es un BRMS por si mismo.
Saludos
LikeLike
Hola Salaboy, estoy desarrollando un proyecto donde necesito usar el motor de inferencia difuso de drool, he visto de ejemplo del juego de poker. Tomo tres valores de entrada (double) y me tiene que devolver una salida (double). Ejemplo en Fussy :
[….]
public double[] crispInference(double[] _input) {
MembershipFunction medioambiente = new FuzzySingleton(_input[0]);
MembershipFunction recursosnaturales = new FuzzySingleton(_input[1]);
MembershipFunction pffuncionamiento = new FuzzySingleton(_input[2]);
MembershipFunction efecto;
MembershipFunction[] _call;
_call = RL_ruleEfecto(medioambiente,recursosnaturales,pffuncionamiento); efecto=_call[0];
double _output[] = new double[1];
if(efecto instanceof FuzzySingleton)
_output[0] = ((FuzzySingleton) efecto).getValue();
else _output[0] = ((OutputMembershipFunction) efecto).defuzzify();
return _output;
}
****
private MembershipFunction[] RL_ruleEfecto(MembershipFunction med, MembershipFunction recs, MembershipFunction pf) {
double _rl;
double _input[] = new double[3];
if(med instanceof FuzzySingleton)
_input[0] = ((FuzzySingleton) med).getValue();
if(recs instanceof FuzzySingleton)
_input[1] = ((FuzzySingleton) recs).getValue();
if(pf instanceof FuzzySingleton)
_input[2] = ((FuzzySingleton) pf).getValue();
OP_opAnd _op = new OP_opAnd();
OutputMembershipFunction efec = new OutputMembershipFunction();
efec.set(2,_op,_input);
TP_tModificacion _t_med = new TP_tModificacion();
TP_tModificacion _t_recs = new TP_tModificacion();
TP_tModificacion _t_pf = new TP_tModificacion();
TP_tEfecto _t_efec = new TP_tEfecto();
int _i_efec=0;
_rl = _op.and(_op.and(_t_med.poco.isEqual(med),_t_recs.poco.isEqual(recs)),_t_pf.poco.isEqual(pf));
efec.set(_i_efec,_rl, _t_efec.despreciable); _i_efec++;
_rl = _op.or(_op.or(_t_med.mucho.isEqual(med),_t_recs.mucho.isEqual(recs)),_t_pf.mucho.isEqual(pf));
efec.set(_i_efec,_rl, _t_efec.significativo); _i_efec++;
MembershipFunction[] _output = new MembershipFunction[1];
_output[0] = efec;
return _output;
}
***
[…..]
El tema es que no se como pasarlo a Drool. Me enviarian algun ejemplo. Gracias
LikeLike
Hola como estas?
Mira actualmente se esta desarrollando todo un modulo de drools para manejar logica difusa, pero todavia no hay mucho usable. Yo creo que para la version 6 ya estara el modulo listo.
Ahora mismo no tengo el tiempo suficiente para transformar tu ejemplo a reglas, pero si miras los ejemplos que he posteado aqui puedes copiarlos y empezarlos a usar. Cualquier duda puntal que tengas, no dudes en consultar.
Saludos!
LikeLike