jbpm5 introduction - spanish - extended version -

53
jBPM5 Introducción a Thursday, December 1, 11

Upload: salaboy-salaboy

Post on 05-Dec-2014

2.880 views

Category:

Technology


1 download

DESCRIPTION

www.jbug.com.ar - Introduccion a jBPM5, version extendida (2hs aprox)

TRANSCRIPT

Page 1: jBPM5 Introduction - Spanish - Extended Version  -

jBPM5Introducción a

Thursday, December 1, 11

Page 2: jBPM5 Introduction - Spanish - Extended Version  -

Programa

• Quien soy, que hago acá?• BPM Background• jBPM5

• Introducción • Componentes / Estándares• Herramientas

• BPM no es suficiente • Drools Platform• Demo

Thursday, December 1, 11

Page 3: jBPM5 Introduction - Spanish - Extended Version  -

Quién soy?, qué hago acá?

• Desarrollador / Arquitecto / System Integrator• Trabajando en proyectos Open Source desde 2007• BPM Background• Expert Systems Background• Muy interesado en todo lo que tenga que ver con IA• Plus actor

Thursday, December 1, 11

Page 4: jBPM5 Introduction - Spanish - Extended Version  -

Aviso Importante

• Esta es una charla sobre tecnología

• Proyectos Open Source

• Bajo Apache Software License V2

• Extremadamente amigable para empresas

• No tengo ningún tipo de relación con Red Hat/JBoss quienes soportan estos proyectos

Thursday, December 1, 11

Page 5: jBPM5 Introduction - Spanish - Extended Version  -

Qué es BPM?

• Business (Negocio)

• Process (Proceso)

• Business Process (Proceso de Negocio)

• Business Process Management (Gestión de Procesos de Negocio)

Thursday, December 1, 11

Page 6: jBPM5 Introduction - Spanish - Extended Version  -

Qué significa negociopara nosotros?

Relativo a un dominio, compañía o escenario de negocio en el cual se realizan actividades, tareas, interacciones humanas y se aplican ciertas reglas

para que la empresa funcione.

Thursday, December 1, 11

Page 7: jBPM5 Introduction - Spanish - Extended Version  -

Qué significa procesopara nosotros?

Conjunto de acciones ordenadas que tienden a transformar una entrada en una salida especifica con

ciertas características.

Thursday, December 1, 11

Page 8: jBPM5 Introduction - Spanish - Extended Version  -

Business Process(proceso de negocio)

Secuencia de acciones/tareas/actividades realizadas por personas y sistemas con el fin de alcanzar/

cumplir un objetivo de negocio.

Thursday, December 1, 11

Page 9: jBPM5 Introduction - Spanish - Extended Version  -

Ejemplo de Proceso de Negocio

Thursday, December 1, 11

Page 10: jBPM5 Introduction - Spanish - Extended Version  -

BPMGestión de Procesos de Negocio

• Cuando tenemos una cantidad considerable de procesos de negocio, vamos a necesitar gestionarlos correctamente

• Historia

• Etapas principales

Thursday, December 1, 11

Page 11: jBPM5 Introduction - Spanish - Extended Version  -

Breve historia de BPM (1/2)

• Nació/se formalizo hace mas de 30 años

• Enfocada en mejorar como las companias realizan su trabajo

• El termino Workflows es anterior y se refiere a interacciones de personas con personas

Thursday, December 1, 11

Page 12: jBPM5 Introduction - Spanish - Extended Version  -

Breve historia de BPM (2/2)

• Un enfoque mas relacionado con conceptos de negocio se vino empezó a analizar luego

• BPM es una disciplina que provee un marco para describir nuestros procesos de negocio que van a ser mejorados continuamente

Thursday, December 1, 11

Page 13: jBPM5 Introduction - Spanish - Extended Version  -

Etapas de BPM

• Etapa #1: Discover (Descubrimiento) (Quality)

• Etapa #2: Formalize (Formalización) (Quality)

• Etapa #3: Monitor (Monitoreo) (Decision Making)

• Etapa #4: Improve (Mejora) (Quality)

Thursday, December 1, 11

Page 14: jBPM5 Introduction - Spanish - Extended Version  -

Sistemas de Gestión de Procesos de Negocio (BPMS)

• Podemos hacer BPM con papel y lápiz • O podemos usar un Sistema de Gestión de Procesos de

Negocio, que nos brinda:• Una suite de herramientas para ayudarnos en cada

etapa• El poder de automatizar la ejecución de nuestros

procesos de negocio• Información vital para mejorar como se toman

decisiones dentro de la empresa

Thursday, December 1, 11

Page 15: jBPM5 Introduction - Spanish - Extended Version  -

Etapas en un BPMS

• Etapa #1: Discover (Quality)

• Etapa #2: Formalize (Quality)

• Etapa #3: Implementación (Technical) -> Devs!!!

• Etapa #4: Ejecución (Technical) -> Devs!!!

• Etapa #5: Monitor (Decision Making)

• Etapa #6: Improve (Quality)

Thursday, December 1, 11

Page 16: jBPM5 Introduction - Spanish - Extended Version  -

Ciclo/Iteraciones BPM

Thursday, December 1, 11

Page 17: jBPM5 Introduction - Spanish - Extended Version  -

jBPM5 en pocas palabras

• Es un BPMS• Provee como núcleo un motor de procesos de negocio• Nos permite modelar nuestros procesos usando

BPMN2• Puede ser fácilmente embebido en nuestras

aplicaciones o usado como servicio• Tiene como foco proveer herramientas para permitir

que desarrolladores y analistas de negocio trabajen juntos definiendo, implementando y ejecutando procesos de negocio

Thursday, December 1, 11

Page 18: jBPM5 Introduction - Spanish - Extended Version  -

Componentes dentro de jBPM5• Ecosistema de jBPM5

• jBPM5 Runtime• BPMN2 Semantic Module• Core Business Process Engine• Persistence and Transaction Mechanism

• History Logs• jBPM5 Human Task Server • jBPM5 Service Repository• jBPM5 Tooling• jBPM5 Designer• jBPM5 Process Console• jBPM5 REST Process Server• jBPM5 BAM

Thursday, December 1, 11

Page 19: jBPM5 Introduction - Spanish - Extended Version  -

jBPM5 - Componentes

Thursday, December 1, 11

Page 20: jBPM5 Introduction - Spanish - Extended Version  -

jBPM Runtime

• BPMN2 Semantic Module: es el encargado de entender definiciones de procesos de negocio descriptas usando el estándar BPMN2

• Core Business Process Engine: es el encargado de crear instancias y ejecutar estas definiciones. Nos provee un set de APIs para integrar el motor con nuestras aplicaciones.

• Persistence and Transaction Mechanism: se encarga de mantener y almacenar el estado de nuestros procesos de negocio

• History Logs: se encarga de guardar toda la información generada por la ejecución de nuestros procesos de negocio.

Thursday, December 1, 11

Page 21: jBPM5 Introduction - Spanish - Extended Version  -

Business Process Model and Notation V2• Especificación Estándar creada por Object Management Group

(OMG)• Lanzada públicamente: 2011-01-03• Definido basado en la experiencia adquirida por la industria en los

últimos 20 años.• Define la sintaxis y la semántica de ejecución para nuestros procesos

de negocio• La especificación se divide en tres grandes áreas:

• Procesos:• Modelado de Procesos• Ejecución de Procesos

• Colaboraciones• Coreografías

Thursday, December 1, 11

Page 22: jBPM5 Introduction - Spanish - Extended Version  -

jBPM5 Human Task

Thursday, December 1, 11

Page 23: jBPM5 Introduction - Spanish - Extended Version  -

Servidor de Tareas Humanas de jBPM5 • Es un componente separado, que puede ser reemplazado

con distintas implementaciones. Es el encargado de mantener y administrar el ciclo de vida de las interacciones humanas

• Implementa un estándar llamado Web Service Human Task (WS-HT) definido por OASIS Group

• Define las estructuras de datos que van a manejar las tares humanas definidas en nuestros procesos de negocio

• Define los estados en los que puede estar una tarea humana durante su ciclo de vida.

Thursday, December 1, 11

Page 24: jBPM5 Introduction - Spanish - Extended Version  -

Interfaces de Usuario Unificadas(Task List)

Thursday, December 1, 11

Page 25: jBPM5 Introduction - Spanish - Extended Version  -

Interfaces de Usuario Unificadas(Task

Thursday, December 1, 11

Page 26: jBPM5 Introduction - Spanish - Extended Version  -

jBPM5 - Herramientas

Thursday, December 1, 11

Page 27: jBPM5 Introduction - Spanish - Extended Version  -

jBPM5 - Herramientas

• jBPM5 Designer: Diseñador gráfico que nos permite dibujar nuestros procesos de negocio usando la notación gráfica BPMN2

• jBPM5 Process Console: Nos permite correr e interactuar nuestros procesos de negocio.

• jBPM5 REST Process Server: Expone el runtime de jBPM5 a traces de una interface REST, lo cual nos permite interactuar con el motor desde clientes que pueden estar escritos en otros lenguajes.

• jBPM5 BAM: Provee los mecanismos para analizar y agregar la información que se genera cuando ejecutamos nuestros procesos de negocio.

Thursday, December 1, 11

Page 28: jBPM5 Introduction - Spanish - Extended Version  -

Repositorio de Servicio de jBPM5

• Conectores a servicios específicos del dominio

• Repositorio centralizado de estos conectores

• Promueve la reutilizacion

• Nos permite definir un repositorio local y privado a la empresa o externo

Thursday, December 1, 11

Page 29: jBPM5 Introduction - Spanish - Extended Version  -

Vista de alto nivel

Thursday, December 1, 11

Page 30: jBPM5 Introduction - Spanish - Extended Version  -

Solo BPM no alcanza

• BPM es solo el primer paso

• Nuestros procesos de negocio representan una sola dimensión de nuestro conocimiento "empresarial"

• jBPM5 es solo un modulo dentro de una plataforma que nos permite representar y ejecutar conocimiento

Thursday, December 1, 11

Page 31: jBPM5 Introduction - Spanish - Extended Version  -

Spaghetti BPEL of hell

Thursday, December 1, 11

Page 32: jBPM5 Introduction - Spanish - Extended Version  -

Otras formas de representar conocimiento

• Business Rules (Reglas de Negocio)

• Events (Eventos, definiciones temporales)

• Ontologies (Ontologías)

• Predictive Models (Modelos Predictivos)

• etc.

Thursday, December 1, 11

Page 33: jBPM5 Introduction - Spanish - Extended Version  -

Drools 5 BLiP

• Plataforma de integración de lógica de negocio / Business Logic integration Platform (BLiP)

• Módulos:• Drools Expert (Inference Engine)• jBPM5 (Process Engine)• Drools Fusion (Complex Event Processing)• Drools Guvnor (Knowledge Repository)

• Hay otros módulos experimentales que no vamos a cubrir hoy (Planner, Chance, Grid, FIPA Agents, etc.)

Thursday, December 1, 11

Page 34: jBPM5 Introduction - Spanish - Extended Version  -

Drools Expert - Sistemas Expertos

"Un sistema experto es un software que intenta proveer una respuesta a un problema para el cual normalmente uno o mas expertos serian consultados"

• En los 70 el foco era reemplazar, hoy en día asistir• Terminamos creando software que tiene conocimiento

sobre un dominio especifico• Vamos a poder hacer preguntas y obtener respuestas o

evaluar situaciones

Thursday, December 1, 11

Page 35: jBPM5 Introduction - Spanish - Extended Version  -

Sistemas Expertos - Usos Comunes

• Medicina• Diagnostico basado en síntomas de pacientes

• Análisis de Campo• Evaluación geográfica de regiones (Petrol

Prospecting)• Prestamos e Hipotecas (Bancos)• Evaluación de riesgo (scoring)

• Medios / TV / Radio• Selección de contenidos por usuario

Thursday, December 1, 11

Page 36: jBPM5 Introduction - Spanish - Extended Version  -

Ingeniería del Conocimiento

"Ingeniería del conocimiento" se conoce como la ciencia de observar expertos, modelar y construir

modelos con su conocimiento y experiencia que ellos mismos puedan evaluar.

Thursday, December 1, 11

Page 37: jBPM5 Introduction - Spanish - Extended Version  -

Motor de InferenciaDrools Expert

"Un motor de inferencia es un software que trata de derivar respuestas basándose en una base de

conocimiento. Se lo conoce como el "cerebro" de un sistema experto el cual es usado para formular

conclusiones sobre una situación dada."

Thursday, December 1, 11

Page 38: jBPM5 Introduction - Spanish - Extended Version  -

Sistemas Expertos

Thursday, December 1, 11

Page 39: jBPM5 Introduction - Spanish - Extended Version  -

Regla

If / When / Where / On        Condiciones/Filtros Then / Do        Acciones

Thursday, December 1, 11

Page 40: jBPM5 Introduction - Spanish - Extended Version  -

Ejemplo

When

Fuego

Then

Disparar Alarma

Thursday, December 1, 11

Page 41: jBPM5 Introduction - Spanish - Extended Version  -

Características comunes

• Las respuestas van a contener justificaciones• Estos sistemas están creados para soportar una gran

cantidad de conocimiento• El conocimiento puede ser:• Expresado por Usuarios de Negocio• Reutilizado• Mejorado Iterativamente• El conocimiento puede ser mantenido desacoplado

de nuestras aplicaciones

Thursday, December 1, 11

Page 42: jBPM5 Introduction - Spanish - Extended Version  -

Drools Fusion

• Enfocado en Procesamiento de Eventos Complejos

• Nos permite realizar "Temporal reasoning"/ razonamiento temporal

• 13 operadores temporales (before, after, during, and so on)

• Nos permite realizar detección de eventos complejos, agregando, correlacionando y ordenando eventos que ocurren en distintos momentos

Thursday, December 1, 11

Page 43: jBPM5 Introduction - Spanish - Extended Version  -

Drools FusionEvent Driven Architecture

Thursday, December 1, 11

Page 44: jBPM5 Introduction - Spanish - Extended Version  -

Drools Fusion - EjemploMonitoreo de Pacientes

Thursday, December 1, 11

Page 45: jBPM5 Introduction - Spanish - Extended Version  -

Drools FusionOperadores Temporales

Thursday, December 1, 11

Page 46: jBPM5 Introduction - Spanish - Extended Version  -

Drools Fusion - Usos Comunes

• Detección de Fraude

• Stock Trading

• Hardware monitoring

• Transporte y Logística

• En cualquier escenario que necesitemos agregar y correlacionar eventos

Thursday, December 1, 11

Page 47: jBPM5 Introduction - Spanish - Extended Version  -

Drools Guvnor

• Comúnmente denominado BRMS• Repositorio de Conocimiento Centralizado (JCR)• Encargado de versionar y categorizar • Hoy en día incluye un conjunto de herramientas que

facilitan y promueven su uso• Asistente para la creación de reglas• Asistente para la creación de escenarios de tests• Editor de restricciones de dominio• Validador y verificador de Reglas de Negocio• Modelador de Procesos de Negocio asistido

Thursday, December 1, 11

Page 48: jBPM5 Introduction - Spanish - Extended Version  -

Drools GuvnorGuided Editor

Thursday, December 1, 11

Page 49: jBPM5 Introduction - Spanish - Extended Version  -

Drools & jBPM5 - Componentes

Thursday, December 1, 11

Page 50: jBPM5 Introduction - Spanish - Extended Version  -

Emergency Service Application

• Simular un escenario real• Demostrar las capacidad de la integración de reglas de

negocio, procesos de negocio y procesamiento de events complejos.

• Código Fuente:• https://github.com/Salaboy/emergency-service-

drools-app

Thursday, December 1, 11

Page 51: jBPM5 Introduction - Spanish - Extended Version  -

Emergency Service

Thursday, December 1, 11

Page 52: jBPM5 Introduction - Spanish - Extended Version  -

Preguntas?

Thursday, December 1, 11

Page 53: jBPM5 Introduction - Spanish - Extended Version  -

Thursday, December 1, 11