jueves, 1 de agosto de 2013

Video de ayuda


Pasos para iniciar el ejemplo (09-candy-drools-guvnor-final)


1) Hacemos checkout del proyecto en cualquier directorio


2) Ingresamos a la carpeta guvnor y ejecutamos el siguiente comando

| mvn clean install -Dmaven.test.skip=true jetty:run-exploded

y esperamos a que nos aparezca lo siguiente:

 | [INFO] Started Jetty Server
 | [INFO] Starting scanner at interval of 10 seconds.

en caso de no aparecer, cheque la configuración de maven (yo uso 2.0.11) y si existe una conexion a internet activa para bajar las librerías necesarias.

3) Abrimos un navegador e ingresamos a la siguiente url: 

| http://localhost:9080/drools-guvnor/

puede ser que nos aparezca la siguiente leyenda:

 | This looks like a brand new repository.
 | Would you like to install a sample repository?

hagan click en "No thanks".

4) Hacemos click en "Administration" / "Import Export"

Elegimos el archivo "repository_export.xml" (puede ser que este comprimido en un archivo con

el mismo nombre, descomprimir primero) que esta al mismo nivel que la carpetas de candy-app y guvnor.

Oprimimos en "Import" y esperamos a que nos muestre el mensaje de confirmación!


De esta forma importamos las reglas, dsl y configuraciones que estaban expuestos en la charla.

Si todo fue bien, veremos las las 6 reglas existentes para esta prueba, para esto vamos oprimamos sobre el paquete "ar.com.epidataconsulting" y en el tab "Assets" oprimimos sobre el (+) de "Business rule assets".



Veamos en detalle alguna de ellas, para eso oprimimos sobre el botón "Open"



5) Ingresamos nuevamente sobre el paquete creado "ar.com.epidataconsulting" (color azul), luego sobre el tab "Edit", y oprimimos sobre "Validate configuration" (color rojo) y por ultimo "Build package" (color verde).



6) Ingresamos al proyecto de candy crush, ejecutamos el siguiente comando: 

 | mvn eclipse:eclipse

abrimos al eclipse e importamos el proyecto, una vez finalizado solamente tenemos que ejecutar el Main de la clase "ar.com.epidataconsulting.drools.CandyCrushTest"

7) El juego esta configurado para jugar en un tablero de 9 x 9, esto se cambia dependiendo del nivel / pantalla donde estés en el juego (corresponde al nivel 2 de Candy), para esto tenes que modificar manualmente el atributo "FILAS" y "COLUMNAS" de la clase CandyCrush.

Si esta todo bien, en la consola del eclipse no debe figurar ninguna exception y nos va a visualizar una ventana con un botón denominado "capturar"



7) Oprimimos el botón "capturar" y seleccionamos (haciendo doble click y arrastrando) el área del tablero del juego y oprimimos la tecla "enter" cuando hayamos seleccionado correctamente el área.


es recomendable dejar distancia entre los bordes (como se ve en la foto), dado que cuando captura el área generalmente no logra calcular bien el medio de cada "caramelo" cuando esta mas cerca de los bordes.

** si todos los pasos fueron llevados acabo sin ningún problema, solo queda esperar que la aplicación resuelva el juego basándose en las reglas que tiene cargadas en guvnor **
Fuentes:
El código fuente se encuentra alojado en github para que cualquier lo pueda ver o modificar

https://github.com/damianlezcano/proyectos-java/tree/master/charla-jugando-con-drools

Epidaters,
Les contamos que el Miércoles 24 de Julio 2013 a las 18hs, se llevará a cabo la Epi-charla "Jugando con Drools", la cual tendrá lugar en la sala de Tucumán y estará a cargo de Damián Lezcano. La duración de la charla será de 2 horas.
Imágenes integradas 1

Descripción:


El objetivo es brindarles una forma practica, agradable y entretenida de aprender drools, empezaremos con una introducción y ejemplos básicos, y a medida que profundicemos en la tecnología veremos como interactuan cada modulo de la plataforma (Expert, Fusion, Guvnor, Flow) y los beneficios que representan.

Para esto se tomó un juego muy popular entre los internautas, el Candy Crush que se hizo famoso gracias a facebook, veremos como crear reglas y estrategias con el objeto de superar los distintos niveles. 

Para los interesados, les adelanto una de las reglas que conforman la lógica de nuestra aplicación:

Regla de Negocio (DSL):

 when
Si tomamos una fila y cuatro columnas de caramelos, luego las nombramos de izquierda a derecha con las letras A hasta la D, y por ultimo nos posicionamos sobre el primer caramelo, verificando que:
- el caramelo A es igual al caramelo B
- el caramelo C es distinto al caramelo A
- el caramelo D es igual al caramelo A
  then
Imprimir el nombre de esta Regla!!!
Hacer un click en el caramelo C y caramelo D

Como se observa, esto es una regla que representa la lógica de nuestra aplicación (escrita por alguien no técnica), veremos paso a paso como se llegó a escribir este tipo de reglas y cual es la magia de tras de esto. 

Como CEP a travez de sus operadores nos resuelven problemas de ocurrencias y de la mano de guvnor una interfaz lo suficiente potente para captar y centralizar el conocimiento del negocio de nuestra empresa.


Temario:

1) Conceptos básico de Drools Expert
- Configuración de contexto
- Modelado de la primer regla (técnica / negocio)
- Declare / Globals / Funciones y mas...
- DSL / Listas de Valores

2) Conceptos básico de Drools Fusion (CEP)
- Configuración de contexto
- Atributo
- Modelado de reglas

3) Conceptos básicos de Drools Guvnor
- Integración con nuestra aplicación

4) Conceptos básicos de Drools Flow (BPM)