SlideShare una empresa de Scribd logo
© 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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

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

Destacado (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
 

Similar a En 20 minutos ... Charla 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
 
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.pptxKatherinneDeza1
 
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
 

Similar 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
 

Más 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

Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Luis Fernando Uribe Villamil
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxencinasm992
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfcj3806354
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareAndres Avila
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.AlejandraCasallas7
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiegoCampos433849
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestrerafaelsalazar0615
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaFernando Villares
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesPABLOCESARGARZONBENI
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docxwerito139410
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfAlejandraCasallas7
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx44652726
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfManuelCampos464987
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónJuanPrez962115
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respetocdraco
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxLeidyfuentes19
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024DanielErazoMedina
 

Último (20)

Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 

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