SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
© 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

Weitere ähnliche Inhalte

Was ist angesagt?

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óvilesArgentesting
 
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 SegurasHéctor Garduño Real
 
[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?Grupo Smartekh
 
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...Internet Security Auditors
 
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 OpenSAMMInternet Security Auditors
 
Eset brochure-10razones-interactiva-2020
Eset brochure-10razones-interactiva-2020Eset brochure-10razones-interactiva-2020
Eset brochure-10razones-interactiva-2020ESET Latinoamérica
 
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 ESETESET Latinoamérica
 

Was ist angesagt? (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
 

Andere mochten auch

Ud calidad y normalización
Ud calidad y normalizaciónUd calidad y normalización
Ud calidad y normalizaciónmariacces
 
Normalizacion
NormalizacionNormalizacion
NormalizacionWEHARP83
 

Andere mochten auch (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
 

Ähnlich wie Introducción a Drools

Proyecto final IoT por David Penaloza
Proyecto final IoT por David PenalozaProyecto final IoT por David Penaloza
Proyecto final IoT por David PenalozaDavid 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...COIICV
 
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 DynatraceDynatrace Latin America
 
134212673 teletrabajo
134212673 teletrabajo134212673 teletrabajo
134212673 teletrabajoxavazquez
 
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...COIICV
 
Proyecto final IoT Jorge Villalobos Cascante
Proyecto final  IoT   Jorge Villalobos CascanteProyecto final  IoT   Jorge Villalobos Cascante
Proyecto final IoT Jorge Villalobos CascanteJorge 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.pptxALEXANDROWILFREDOROD2
 
Computación en la nube
Computación en la nubeComputación en la nube
Computación en la nubedavidrami78
 
Internet of things architecture and impact
Internet of things architecture and impactInternet of things architecture and impact
Internet of things architecture and impactCJava Peru
 
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 MicroserviciosThoughtworks
 
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 cloudSocial You, S.L.
 
Capitulo1Computacion en la Nube
Capitulo1Computacion en la NubeCapitulo1Computacion en la Nube
Capitulo1Computacion en la NubeMarlon Martinez
 
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 CeibaEgdares Futch H.
 
Presentacion ISO 20000
Presentacion ISO 20000Presentacion ISO 20000
Presentacion ISO 20000itService ®
 
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).pptxJhonFrancisRiveraLiv
 
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_datosDaniel Esteban Hernandez
 
Calidad del Software en la Dirección General de Tráfico
Calidad del Software en la Dirección General de TráficoCalidad del Software en la Dirección General de Tráfico
Calidad del Software en la Dirección General de TráficoCIFF Fundación
 

Ähnlich wie Introducción a 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
 
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
 
Calidad del Software en la Dirección General de Tráfico
Calidad del Software en la Dirección General de TráficoCalidad del Software en la Dirección General de Tráfico
Calidad del Software en la Dirección General de Tráfico
 

Mehr von 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
 

Kürzlich hochgeladen

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 

Kürzlich hochgeladen (20)

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 

Introducción a 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