en 20 minutos ... charla drools

20
© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas. Introducción a Drools Antonio Mendoza Pérez [email protected] Grupo JUSTO/GINVEST Proyecto e-Lara

Category:

Technology


4 download

TRANSCRIPT

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Introducción a Drools

Antonio Mendoza Pé[email protected] JUSTO/GINVESTProyecto e-Lara

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

¿Qué es una regla de negocio?

>> qué tiene que pasar bajo determinadas circunstancias.

Aplicar 20% de descuento en pedido

a cliente VIP

>> nuestras aplicaciones están repletas de reglas de este tipo.

Enviar bono descuento si realiza más de tres

pedidos en 48h

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

¿Qué es Drools?

http://drools.org/

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Proyecto KIE

Proyecto maven + kmodule.xml

Entidades, conectores, utilidades...

Reglas y procesos.

Configuración.

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

¿Dónde escribimos las reglas?

*.drl

*.dslr

*.xls

package

imports

consultas

reglas

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Hello World!!

- 2 partes, condición (LHS) y consecuencia (RHS);- defino variables que puedo utilizar tanto en la parte LHS como en RHS; - accedemos directamente al valor de la variable nombre.

LHS

RHS

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Hello World – V2!!

- el orden no importa;- el motor reacciona a los cambios en los datos (insert, modify, retract).

Test:cliente.setNombre("Antonio");ksession.insert(cliente);

Salida de consola:2015-04-09 16:22:37 DEBUG - Cambiando nombre a ANTONIO

2015-04-09 16:22:37 INFO - Hola ANTONIO !!

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Métodos vs. Reglas

Métodos:

- son invocados directamente;

- pasando instancias específicas;

- una invocación da lugar a una ejecución.

Reglas:

- no pueden ser invocadas directamente;

- no se pueden pasar instancias específicas;

- las reglas se ejecutan por coincidencias contra los datos que hay en el motor;

- dependiendo de estas coincidencias, una regla puede ser ejecutada una, muchas o ninguna vez.

http://docs.jboss.org/drools/release/6.2.0.Final/drools-docs/html_single/index.html#d0e4324

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Atributos

● no-loop● lock-on-active● salience● agenda-group● auto-focus● ruleflow-group● activation-group● dialect● date-effective● date-expires● enabled● duration

- los atributos nos permiten guiar el comportamiento de las reglas.

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Operadores y elementos condicionales

● in, not in● &&, ||● >, <, =...● contain, not contains● ! (null-safe)● memberOf , not

memberOf● ...

● and, or● not, exists● forall● from● collect● accumulate● ...

Agrupa las lineas que cumplen una condición;crea una lista; Asigna el valor a la variable $lineasPedido.

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Operadores y elementos condicionales

● in, not in● &&, ||● >, <, =...● contain, not contains● ! (null-safe)● memberOf , not

memberOf● ...

● and, or● not, exists● forall● from● collect● accumulate● ...

Agrupa las líneas de un pedido y calcula el importetotal como la suma de los importes =(cantidad * percioUnidad).

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Join ('Cross Products')

Select pedido.* from pedido, cliente where pedido.clienteId = cliente.id and cliente.tipo = “VIP"

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

¿Qué es un evento?

>> es un cambio de estado en un dominio concreto en un momento determinado.● Inmutable.● Contiene información temporal.• Momento en que se produce• [Duración del evento]

● Contiene información relacionada con el cambio de estado.

Ejemplos:● PedidoPagado(pedidoId, clienteId, timestamp)● PedidoEntretado(pedidoId, clienteId, timestamp)

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

¿Cómo genero un evento?

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Operadores temporales

● after● before● coincides● during● finishes● finished By● includes● meets● met By● overlaps● overlapped By● starts● started By

Si para un evento del tipo PedidoEntregado(pedidoId, clienteId)no se ha generado un evento del tipo PedidoPagado (pedidoId, clienteId) en las dos siguientes horas.....

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

'Sliding windows'

Time sliding windows 'Lengh sliding windows'

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

'Sliding windows'

Time sliding windows

Dado un cliente, si los pedidos entregados en tres días son >= tres...

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

reglas + eventos + procesos(expert + fusion + jBPM)

PedidoEntregadoPedidoEntregadoPedidoEntregado

< 3d

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Oficial:● http://drools.org/

Blogs:● http://blog.athico.com/● http://salaboy.com/● kverlaen.blogspot.com● mswiderski.blogspot.com/

Libros:● Instant Drools Starter● Drools JBoss Rules 5.X Developer’s Guide● Drools Developer's Cookbook

Referencias

© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

Gracias

Introducción a Drools