SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
© 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Introducción a Drools
Antonio Mendoza Pérez
amendoza@um.es
Grupo JUSTO/GINVEST
Proyecto 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 importe
total 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

Mais conteúdo relacionado

Mais procurados

Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting
 

Mais procurados (11)

Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
 
Metodologías de Desarrollo de Aplicaciones Web Seguras
Metodologías de Desarrollo de Aplicaciones Web SegurasMetodologías de Desarrollo de Aplicaciones Web Seguras
Metodologías de Desarrollo de Aplicaciones Web Seguras
 
[WEBINAR] Nuevos retos en PCI ¿Cuál es su aplicación en BYOD y Cloud Computing?
[WEBINAR] Nuevos retos en PCI ¿Cuál es su aplicación en BYOD y Cloud Computing?[WEBINAR] Nuevos retos en PCI ¿Cuál es su aplicación en BYOD y Cloud Computing?
[WEBINAR] Nuevos retos en PCI ¿Cuál es su aplicación en BYOD y Cloud Computing?
 
Medea. Metodología de desarrollo en ÁTICA
Medea. Metodología de desarrollo en ÁTICAMedea. Metodología de desarrollo en ÁTICA
Medea. Metodología de desarrollo en ÁTICA
 
Modelos de desarrollo seguro de software
Modelos de desarrollo seguro de softwareModelos de desarrollo seguro de software
Modelos de desarrollo seguro de software
 
Guía de implementación, integración de la seguridad en el ciclo de vida del s...
Guía de implementación, integración de la seguridad en el ciclo de vida del s...Guía de implementación, integración de la seguridad en el ciclo de vida del s...
Guía de implementación, integración de la seguridad en el ciclo de vida del s...
 
Desarrollo de software seguro: una visión con OpenSAMM
Desarrollo de software seguro: una visión con OpenSAMMDesarrollo de software seguro: una visión con OpenSAMM
Desarrollo de software seguro: una visión con OpenSAMM
 
Eset guia-teletrabajo-2
Eset guia-teletrabajo-2Eset guia-teletrabajo-2
Eset guia-teletrabajo-2
 
Eset brochure-10razones-interactiva-2020
Eset brochure-10razones-interactiva-2020Eset brochure-10razones-interactiva-2020
Eset brochure-10razones-interactiva-2020
 
Por qué las grandes empresas eligen ESET
Por qué las grandes empresas eligen ESETPor qué las grandes empresas eligen ESET
Por qué las grandes empresas eligen ESET
 
Owasp Latam tour 2014 - Poniendo el caballo delante del carro
Owasp  Latam tour 2014 - Poniendo el caballo delante del carroOwasp  Latam tour 2014 - Poniendo el caballo delante del carro
Owasp Latam tour 2014 - Poniendo el caballo delante del carro
 

Destaque

Ud calidad y normalización
Ud calidad y normalizaciónUd calidad y normalización
Ud calidad y normalización
mariacces
 

Destaque (20)

Ud calidad y normalización
Ud calidad y normalizaciónUd calidad y normalización
Ud calidad y normalización
 
Pórtico
PórticoPórtico
Pórtico
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
En 20 minutos ... Tests de Aceptación con Cucumber
En 20 minutos ... Tests de Aceptación con CucumberEn 20 minutos ... Tests de Aceptación con Cucumber
En 20 minutos ... Tests de Aceptación con Cucumber
 
En 20 minutos ... Técnicas SEO - Mejorando la Visibilidad de nuestra Web
En 20 minutos ... Técnicas SEO - Mejorando la Visibilidad de nuestra WebEn 20 minutos ... Técnicas SEO - Mejorando la Visibilidad de nuestra Web
En 20 minutos ... Técnicas SEO - Mejorando la Visibilidad de nuestra Web
 
En 20 minutos ... jQuery
En 20 minutos ... jQueryEn 20 minutos ... jQuery
En 20 minutos ... jQuery
 
Notimovil
NotimovilNotimovil
Notimovil
 
LOGATICA
LOGATICALOGATICA
LOGATICA
 
En 20 minutos ... Como se hizo LooWID.com
En 20 minutos ... Como se hizo LooWID.comEn 20 minutos ... Como se hizo LooWID.com
En 20 minutos ... Como se hizo LooWID.com
 
En 20 minutos ... Charla selenium
En 20 minutos ... Charla seleniumEn 20 minutos ... Charla selenium
En 20 minutos ... Charla selenium
 
En 20 minutos ... HTML5 + CSS3
En 20 minutos ... HTML5 + CSS3En 20 minutos ... HTML5 + CSS3
En 20 minutos ... HTML5 + CSS3
 
En 20 minutos ... Arquitectura Oracle
En 20 minutos ... Arquitectura OracleEn 20 minutos ... Arquitectura Oracle
En 20 minutos ... Arquitectura Oracle
 
Normalización
NormalizaciónNormalización
Normalización
 
En 20 minutos ... Sonar Qube: cómo de bueno es el código de tu proyecto
En 20 minutos ... Sonar Qube: cómo de bueno es el código de tu proyectoEn 20 minutos ... Sonar Qube: cómo de bueno es el código de tu proyecto
En 20 minutos ... Sonar Qube: cómo de bueno es el código de tu proyecto
 
Experiencia de Usuario (UX)
Experiencia de Usuario (UX)Experiencia de Usuario (UX)
Experiencia de Usuario (UX)
 
En 20 minutos... Buenas Practicas SSL
En 20 minutos... Buenas Practicas SSLEn 20 minutos... Buenas Practicas SSL
En 20 minutos... Buenas Practicas SSL
 
Auditoria en BD de las Sesiones Web
Auditoria en BD de las Sesiones WebAuditoria en BD de las Sesiones Web
Auditoria en BD de las Sesiones Web
 
En 20 minutos ... Responsive Design
En 20 minutos ... Responsive DesignEn 20 minutos ... Responsive Design
En 20 minutos ... Responsive Design
 
Curso de BPMN 2.0
Curso de BPMN 2.0Curso de BPMN 2.0
Curso de BPMN 2.0
 
Importancia de las Normas de calidad
Importancia de las Normas de calidadImportancia de las Normas de calidad
Importancia de las Normas de calidad
 

Semelhante a En 20 minutos ... Charla drools

134212673 teletrabajo
134212673 teletrabajo134212673 teletrabajo
134212673 teletrabajo
xavazquez
 
Perspectivas del uso de las tecnologias cloud
Perspectivas del uso de las tecnologias cloudPerspectivas del uso de las tecnologias cloud
Perspectivas del uso de las tecnologias cloud
Social You, S.L.
 
01 - AGROBANDCO- Propuesta de Servicio Cloud Hosting + Soporte Cloud (2022).pptx
01 - AGROBANDCO- Propuesta de Servicio Cloud Hosting + Soporte Cloud (2022).pptx01 - AGROBANDCO- Propuesta de Servicio Cloud Hosting + Soporte Cloud (2022).pptx
01 - AGROBANDCO- Propuesta de Servicio Cloud Hosting + Soporte Cloud (2022).pptx
JhonFrancisRiveraLiv
 

Semelhante a En 20 minutos ... Charla drools (20)

Computación en la nube resumen Capítulo 1
Computación en la nube resumen Capítulo 1Computación en la nube resumen Capítulo 1
Computación en la nube resumen Capítulo 1
 
Proyecto final IoT por David Penaloza
Proyecto final IoT por David PenalozaProyecto final IoT por David Penaloza
Proyecto final IoT por David Penaloza
 
J. Benedito. El Esquema Nacional de Seguridad y el cloud computing en la Dipu...
J. Benedito. El Esquema Nacional de Seguridad y el cloud computing en la Dipu...J. Benedito. El Esquema Nacional de Seguridad y el cloud computing en la Dipu...
J. Benedito. El Esquema Nacional de Seguridad y el cloud computing en la Dipu...
 
Libere sus aplicaciones mas rápido con Dynatrace
Libere sus aplicaciones mas rápido con DynatraceLibere sus aplicaciones mas rápido con Dynatrace
Libere sus aplicaciones mas rápido con Dynatrace
 
134212673 teletrabajo
134212673 teletrabajo134212673 teletrabajo
134212673 teletrabajo
 
José Benedito, Diputación de Valencia - Proyectos SAAS en la Diputación. Expe...
José Benedito, Diputación de Valencia - Proyectos SAAS en la Diputación. Expe...José Benedito, Diputación de Valencia - Proyectos SAAS en la Diputación. Expe...
José Benedito, Diputación de Valencia - Proyectos SAAS en la Diputación. Expe...
 
Proyecto final IoT Jorge Villalobos Cascante
Proyecto final  IoT   Jorge Villalobos CascanteProyecto final  IoT   Jorge Villalobos Cascante
Proyecto final IoT Jorge Villalobos Cascante
 
4.-.-SESION3.1-PUESSESION3.1-PUESTO.pptx
4.-.-SESION3.1-PUESSESION3.1-PUESTO.pptx4.-.-SESION3.1-PUESSESION3.1-PUESTO.pptx
4.-.-SESION3.1-PUESSESION3.1-PUESTO.pptx
 
Computación en la nube
Computación en la nubeComputación en la nube
Computación en la nube
 
Tecnología de Gestión y Comunicación
Tecnología de Gestión y ComunicaciónTecnología de Gestión y Comunicación
Tecnología de Gestión y Comunicación
 
IMPLEMENTACION DE SISt DE INFORMACIÓN.pptx
IMPLEMENTACION DE SISt DE INFORMACIÓN.pptxIMPLEMENTACION DE SISt DE INFORMACIÓN.pptx
IMPLEMENTACION DE SISt DE INFORMACIÓN.pptx
 
Internet of things architecture and impact
Internet of things architecture and impactInternet of things architecture and impact
Internet of things architecture and impact
 
Cloud
CloudCloud
Cloud
 
Divide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosDivide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los Microservicios
 
Perspectivas del uso de las tecnologias cloud
Perspectivas del uso de las tecnologias cloudPerspectivas del uso de las tecnologias cloud
Perspectivas del uso de las tecnologias cloud
 
Capitulo1Computacion en la Nube
Capitulo1Computacion en la NubeCapitulo1Computacion en la Nube
Capitulo1Computacion en la Nube
 
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La CeibaMGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
 
Presentacion ISO 20000
Presentacion ISO 20000Presentacion ISO 20000
Presentacion ISO 20000
 
01 - AGROBANDCO- Propuesta de Servicio Cloud Hosting + Soporte Cloud (2022).pptx
01 - AGROBANDCO- Propuesta de Servicio Cloud Hosting + Soporte Cloud (2022).pptx01 - AGROBANDCO- Propuesta de Servicio Cloud Hosting + Soporte Cloud (2022).pptx
01 - AGROBANDCO- Propuesta de Servicio Cloud Hosting + Soporte Cloud (2022).pptx
 
Io t _analitica_maximizando_el_poder_de_sus_datos
Io t _analitica_maximizando_el_poder_de_sus_datosIo t _analitica_maximizando_el_poder_de_sus_datos
Io t _analitica_maximizando_el_poder_de_sus_datos
 

Mais de Sección de Metodologías, Normalización y Calidad del Software

Mais de Sección de Metodologías, Normalización y Calidad del Software (6)

Atica Dev Ops II
Atica Dev Ops IIAtica Dev Ops II
Atica Dev Ops II
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
En 20 minutos ... Chrome Developer Tools
En 20 minutos ... Chrome Developer ToolsEn 20 minutos ... Chrome Developer Tools
En 20 minutos ... Chrome Developer Tools
 
En 20 minutos ...Control de Cambios de la BD con Liquibase
En 20 minutos ...Control de Cambios de la BD con LiquibaseEn 20 minutos ...Control de Cambios de la BD con Liquibase
En 20 minutos ...Control de Cambios de la BD con Liquibase
 
Vision estatica de medea
Vision estatica de medeaVision estatica de medea
Vision estatica de medea
 
FundeWeb. El framework de desarrollo en ÁTICA
FundeWeb. El framework de desarrollo en ÁTICAFundeWeb. El framework de desarrollo en ÁTICA
FundeWeb. El framework de desarrollo en ÁTICA
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (15)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

En 20 minutos ... Charla drools

  • 1. © 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas. Introducción a Drools Antonio Mendoza Pérez amendoza@um.es Grupo JUSTO/GINVEST Proyecto e-Lara
  • 2. © 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
  • 3. © 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas. ¿Qué es Drools? http://drools.org/
  • 4. © 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.
  • 5. © 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
  • 6. © 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
  • 7. © 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 !!
  • 8. © 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
  • 9. © 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.
  • 10. © 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.
  • 11. © 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 importe total como la suma de los importes = (cantidad * percioUnidad).
  • 12. © 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"
  • 13. © 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)
  • 14. © 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas. ¿Cómo genero un evento?
  • 15. © 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.....
  • 16. © 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas. 'Sliding windows' Time sliding windows 'Lengh sliding windows'
  • 17. © 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...
  • 18. © 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas. reglas + eventos + procesos (expert + fusion + jBPM) PedidoEntregadoPedidoEntregadoPedidoEntregado < 3d
  • 19. © 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
  • 20. © 2015. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas. Gracias Introducción a Drools