Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

JBoss BRMS

Workshop para 5 medios días (20 horas)
by

Robson Watt

on 24 August 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of JBoss BRMS

ROBSON WATT CH.
Services Consultant, Red Hat Chile
WORKSHOP JBOSS ENTERPRISE BRMS
rwattcha@redhat.com
Reglas de Negocio
Agenda del Workshop
Día 1
Introducción BRMS
Conceptos Generales BRMS y Reglas de Negocio
Instalación herramientas
JbDeveloper Studio 5.x
Jboss BRMS standalone 5.3
Integración IDE - BRMS (Guvnor)
Día 2
Consola de Administración de JBoss BRMS
Características Principales
Categorización
Tipos de Reglas (Nomenclaturas)
DSL
DRL
XSL
Objetivo del día:
El alumno podrá levantar y configurar un entorno de trabajo para desarrollos locales
Objetivo del día
El alumno conocerá el entorno web que provee JBoss BRMS y podrá diferenciar entre los tipos de reglas existentes.
Día 3
API Java para el consumo de reglas
Invocación a servidor BRMS
Invocación de reglas en ambiente Local

Laboratorio N°1
Escribir reglas e identificar actor (lenguaje natural)
Implementar regla en Consola BRMS
Creación del modelo
DSL
DRL
Tabla
Elaborar test cases en consola BRMS
Implementar cliente BRMS
Consumir Reglas desde Servidor
Objetivo del día: El alumno conocerá el procedimiento de creación de reglas en guvnor y la invocación de las mismas
Día 4
Laboratorio N°2
Escribir reglas e identificar actor (lenguaje natural)
Implementar regla en planilla xls
Desplegar regla en consola BRMS
Implementar cliente BRMS
Consumir reglas desde servidor
Consumir reglas locales

(Tarea para la casa: preparar conjunto de reglas a partir de su experiencia o área de trabajo)
Objetivo del día
El alumno conocerá cómo crear reglas simples sobre planillas xls, el despliegue sobre el servidor y la API java de consumo
Día 5
Laboratorio FINAL
Ejecución de su regla de negocio real
Crear regla a partir de cero
Crear pojo o modelo en guvnor
Implementar proyecto brms para consumir reglas
Elaboración de Test Cases

Encuesta Final de workshop
Objetivo del día
El alumno podrá idear, implementar y consumir sus propias reglas de negocio con la mínima ayuda del instructor
Conceptos Básicos
Regla
Describe las políticas, normas, operaciones, definiciones y restricciones presentes en una organización y que son de vital importancia para alcanzar los objetivos misionales


CUANDO ________________ ENTONCES ______________



Motor de Reglas
Concentrador, integrador y Mantenedor de una o varias reglas de negocio.
¿Qué es BRMS?
JBoss Enterprise BRMS es un sistema de gestión de reglas de negocio perteneciente a la suite de Middleware de RedHat que facilita el desarrollo, el acceso y la gestión de cambios de políticas comerciales y reglas de negocio.

JBoss Enterprise BRMS incluye un motor de reglas sumamente veloz y eficiente, y un desarrollo de reglas, un sistema de gestión y un repositorio fáciles de usar.
Un sistema de administración de reglas empresariales es útil en los siguientes escenarios:
Se necesita administrar un sistema para implementación y modificación de reglas.
Múltiples usuarios con diferentes niveles de habilidad necesitan acceder y modificar las reglas.
No existe una infraestructura para administrar las reglas.
Hay muchas reglas "empresariales" que se deben administrar de manera opuesta a las reglas técnicas que serán parte de una aplicación.
¿Cuándo se debe utilizar un BRMS?

Las siguientes personas con los siguientes cargos en su empresa son principalmente los que utilizarán el sistema de administración de las reglas empresariales:
Analistas empresariales
Expertos en reglas
Desarrolladores
Administradores de reglas
¿Quién utiliza BRMS?
Modelo de Negocio Tradicional
Uso de recursos de TI
Modificación de códigos existentes
Plan de pruebas de QA
Despliegue Productivo
Desventajas
Modelo de Negocio BRMS
Planilla de Reglas
BRMS
Código
Pre-existente
Ventajas
Las reglas son creadas por quienes mejor las conocen.
El uso de planillas XLS es de fácil entendimiento para usuarios de negocio
Reutilización de código
100% escalable
Recursos de TI pueden abordar otros proyectos
Proceso de Creación de Reglas
Identificar
actores y
atributos
Escribir reglas
lenguaje
natural
Crear
Planilla
de reglas
Ejecutar
Plan de Pruebas
Distribución
Ejemplo de Regla
1.- Identificar modelo y sus atributos
Persona
edad
sueldo
sexo
estado civil
bono
beneficio

2.- Escribir reglas en lenguaje natural
Cuando
la persona tenga más de 40 años y gane menos de $180.000
Entonces
se le dará un bono de $50.000

Cuando
la persona sea mujer, viuda, tenga más de 60 años
Entonces
se asignará al grupo de beneficiarios
3.- Crear planilla de reglas
Habilitación de ambiente de trabajo
Instalación de JDK
Ejecutar archivo exe
Configurar JAVA_HOME
Linux
Ejecutar bin o descomprimir fichero
# ./jdk1.6.0_30.bin
Agregar al sistema
# /usr/sbin/alternatives --install /usr/bin/java java /opt/jdk1.6.0_30/bin/java 2
# /usr/sbin/alternatives --config java
Crear variable de entorno JAVA_HOME
# cd
# vim .bashrc

JAVA_HOME=/opt/jdk1.6.0_30
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
Instalación de JDK
Windows
Instalación JBoss BRMS StandAlone
Instrucciones
Descomprimir fichero BRMS
Crear una copia de la instancia "default"
Habilitar usuario para consola de administración
Tunning de memoria (opcional)
Instalación Jbdeveloper Studio
Instrucciones
Ejecutar instalador del producto
Crear workspace de trabajo
Configuración de JbDeveloper
Configuración del Server Runtime
Seleccionar servidor del tipo Jboss enterprise Middleware 5.x
Buscar la ruta de instalación del servidor brms del paso anterior
Configuración del Drools Runtime
Buscar la ruta
$JBOSS_HOME/server/$instancia/deploy/jboss-brms.war/WEB-INF/lib
Iniciar servidor
Probar conexión con Guvnor
Cadena de ejecución de reglas en BRMS
1.- Parsea DRL
2.- Crea las reglas
3.- Agrega Modelos
4.- Ejecuta todas las reglas
Conclusiones
La tecnología BRMS ofrece una nueva forma de crear aplicaciones de negocio, donde la lógica de negocio es un lenguaje "declarativo" de reglas en lugar de un lenguaje procedural tradicional.

Motores de reglas son buenos para expresar la lógica de negocio simple.

JBoss BRMS se puede utilizar para gestionar miles de reglas que, aunque cada uno sea bastante simple, puede ser un dolor de cabeza para la gestión en el código procesal.

Jboss BRMS trabaja sobre un modelo de creación y administración de reglas de muy fácil entendimiento

JBoss BRMS incluye un motor de reglas, el sistema de gestión de reglas, entornos de creación basados ​​en la web y Eclipse.
Consola BRMS - Menú Browse
Permite realizar búsquedas dentro de la knowledge base del motor BRMS.
Consola BRMS - Menú Knowledge Bases
Permite la administración de las reglas y sus componentes asociados.
Permite la creación de nuevos componentes y recursos.
Consola BRMS - Menú QA
Permite ejecutar planes de prueba masivos
Realiza un análisis del uso de los atributos en las reglas existentes
Realiza un análisis de reglas que se sobrescriben
Realiza un análisis de reglas faltantes
Consola BRMS - Menú Administración
Categoría: Se usa para order los paquetes de reglas de acuerdo a su área de negocio
Estado: Se usa para ordenar los componentes asociados a un paquete, regla o modelo.
Archivar: Se usa para eliminar/restaurar los componentes archivados.
Log: Registra todos los cambios que se efectúen en la plataforma.
Permisos de usuario: Manejo de roles
Importar Exportar: Maneja los respaldos del repositorio.
Repository Configuration: Crear archivo de conexión para repositorios de BRMS
Tipos de Reglas de Negocio
JBoss BRMS provee 3 maneras de crear reglas de negocio:
Domain Specific Language - DSL

Technical Rules - DRL

Spreadsheet Decision Tables
Cuando el afiliado tenga más de 18 años y gane menos de $200.000.- Entonces le daremos un bono de $15.000
rule 'DRL'
dialect 'mvel'
when
a:afiliado(edad > 18, sueldo < 200000)
then
a.setBono(20000);
end
Tablas de decisión
AND
OR
Por cada consulta debe existir una y sólo una regla de salida
Tablas de decisión
XOR-GROUP
Agrupa un conjunto de reglas
Cuando se gatilla una regla, automáticamente termina el ciclo

PRIORITY
Determina el orden de ejecución de un conjunto de reglas
Ejercicio Práctico N°1
Elabore una planilla de reglas a partir del siguiente código.
Ejercicio Práctico N°2
Elabore sus propias reglas de negocio de ejemplo siguiendo las siguientes instrucciones:
1.- Identifique su modelo y defina a lo menos 6 atributos
2.- Escriba a lo menos 8 reglas en lenguaje natural DSL
3.- Elabore su plantilla de reglas utilizando las propiedades xor-group y priority.
4.- Presente su ejemplo a los asistentes para el análisis en conjunto
API Java de Consumo de reglas
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
//Configuración de la tabla de desición
DecisionTableConfiguration config = KnowledgeBuilderFactory.newDecisionTableConfiguration();
config.setInputType(DecisionTableInputType.XLS);
kbuilder.add(ResourceFactory.newClassPathResource("PlantillaReglasLocal.xls"),
ResourceType.DTABLE, config);

KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size() > 0) {
for (KnowledgeBuilderError error: errors) {
System.err.println(error);
}
throw new IllegalArgumentException("Could not parse knowledge.");
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());

StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
ksession.execute(modelos);
1.- Consumo de reglas local XLS
API Java Consumo de Reglas
2.- Consumo de reglas local DRL
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("ArchivoDeReglas.drl"), ResourceType.DRL);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size() > 0) {
for (KnowledgeBuilderError error: errors) {
System.err.println(error);
}
throw new IllegalArgumentException("Could not parse knowledge.");
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
ksession.execute(modelo);
API Java Consumo de Reglas
3.- Consumo de reglas sobre servidor BRMS
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("test agent", KnowledgeAgentFactory.newKnowledgeAgentConfiguration());
kagent.applyChangeSet(ResourceFactory.newUrlResource(Main.class.getResource("change-set.xml")));

KnowledgeBase kbase = kagent.getKnowledgeBase();
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
ksession.execute(modelo);
<change-set xmlns="http://drools.org/drools-5.0/change-set" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://drools.org/drools-5.0/change-set http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd">
<add>
<resource source='http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/package/laboratorio/LATEST' type='PKG' basicAuthentication="enabled" username="admin" password="admin"/>
</add>
</change-set>
Change-set.xml

Escribir reglas e identificar actor (lenguaje natural)
Implementar regla en Consola BRMS
Crear modelo
DSL
DRL
Tabla
Elaborar test cases en consola BRMS
Laboratorio N°1
Laboratorio N°1
Escribir reglas e identificar actor (lenguaje natural)
Cliente
edad
sueldo
antiguedadLaboral
estadoCivil
credito
Si el cliente tiene entre 18 y 30 años, gana más de $400.000, es soltero y tiene más de 1 año de antiguedad, entonces el cliente es apto para un crédito
Laboratorio N°1
Implementar regla en Consola BRMS
Creación del modelo
1.- Crear paquete en BRMS
2.- Crear modelo Declarativo
3.- Crear atributos del modelo
Laboratorio N°1
Implementar regla en consola BRMS
DSL
1.- Crear Regla de Negocio asistida
2.- Completar la regla de la forma
3.- Crear Test Case para probarla
Laboratorio N°1
Implementar regla en consola BRMS
DRL
1.- Crear regla técnica
2.- Completar la regla DRL
3.- Correr escenario de prueba
Laboratorio N°1
Implementar regla en consola BRMS
Tabla de decisión
1.- Crear regla tabla asistida
2.- Construir regla
3.- Probar plan de prueba
Tablas de decisión
Para la utilización de tablas de decisión es importante considerar:
Ejercicio práctico
Creando nuestra primera regla de negocios
Identifique su actor/modelo
Identifique a lo menos 5 atributos a utilizar en su regla de negocio
Escriba 5 reglas en lenguaje natural
Escriba las reglas en una planilla
Datos de Cabecera
RuleSet (obligatorio)
Import (obligatorio)
Variables (opcional)
Tablas de decisión
Opcionales:
NAME
PRIORITY
XOR-GROUP
update()
NO-LOOP

Obligatorios:
RuleTable
CONDITION
ACTION
Campos de Reglas
Ejercicio Tablas de decisión
Crear POJO
Escribir reglas en plantilla a partir del pojo
Agregar lógica drools a plantilla (import, name, ruletable, condition, etc)
Crear nuevo paquete en servidor BRMS
Subir Pojo y Regla a servidor BRMS
Elaborar test case y probar
Consumir regla en BRMS utilizando la API java
Full transcript