sábado, 21 de abril de 2012

Laboratorio # 5 Modelación en Intalio.

 Un saludo cordial querido lector, a continuación te daré a conocer los primeros pasos que debes seguir para modelar un BPM en la herramienta Intalio. Pero te preguntará, cómo modelar sino conozco el lenguaje? A continuación una serie de tips básicos para que inicies con el pie derecho.

BPMN es un lenguaje que nos permite modelar procesos, usando ciertos elementos. hay básicamente 3 cosas que podemos modelar:

Eventos:
Marcan la ocurrencia de un suceso, los eventos pueden o no ocurrir durante la ejecución del proceso.

observa el siguiente cuadro, en él encontrarás los tipos básicos de eventos que podemos tener.

No es necesario que entiendas todos, con los ejemplos espero ilustrarte mejor el cómo se usan.

Actividades.
Son tareas que realiza el proceso y que posteriormente desencadenan eventos.
Se representan mediante un rectángulo, y si a su vez, conformadas por otras tareas, se les llama tareas compuestas.

Compuerta.
Permiten controlar el flujo de trabajo, ya sea para ejecutar tareas u eventos en paralelo, o para determinar el comportamiento del proceso bajo ciertas circunstancias (condicionales). en la siguiente tabla los tipos:


el de XOR y COMPLEX no serán usados por los momentos, este tipo de condicionales están orientados a data. el tipo de condicional orientado a eventos, que sirve para modelar carreras es el siguiente:
 

Exclusiva Basada en Eventos.






Esto es solo una breve introducción. Ahora vamos a pasar a la parte práctica.

Haremos juntos un ejercicio y luego te dejaré dos ejemplos, para que intentes implementarlos por tu cuenta, y la solución para que compares con lo que hiciste.

Ejercicio.
Nuestros productos están listos para ser enviados.para determinar qué compañía de envío utilizar, enviamos 3 mensajes separados a cada una pidiéndole que despachen nuestros productos. la primera compañía que responda a esta solicitud, será la escogida.

Paso1.
Análisis del problema:
Primero que todo debemos identificar los participantes, que son todos aquellos que intervienen en el proceso de negocio de alguna forma. En este caso:
-Nuestra Empresa: Que es la que desea hacer el envío.
-Compañía de Envío: A la cual se le hace la solicitud para ver si puede o no hacer el envio. Hay 3.
En el proceso de modelado BPMN, los participantes se representan con carriles (pool). Existen dos tipos:
-Ejecutables: Se dice que es el sistema, el pool que realiza el proceso de negocio como tal.
-No Ejecutable: Todo aquel que colabora de manera indirecta en el proceso de negocio.
Lo siguiente que debemos hacer es identifcar el proceso de negocio. Este proceso de negocio es el de concretar envío, por decirlo de alguna forma. Es aquel que realiza la empresa para decidir por cual medio distribuir sus productos, noten que no se nos dice que se envían, solo se desea saber quién será el que realice el envío. Por todo esto, el pool ejecutable es la empresa, y los no ejecutables son las compañías de envío.

Paso2.
El modelado:
Una vez tenemos identificados nuestros participantes, lo que debemos hacer es identificar que eventos usaremos para modelar nuestra situación. Primeramente, tenemos el evento de que los productos están terminados, podemos representarlo con un evento o actividad de inicio (cualquiera de las dos funciona). luego prosigue el envío de mensaje el cual debemos realizar en paralelo, por esta razón usaremos la compuerta AND, pero para la recepción de mensajes, como es una carrera, debemos usar la compuerta exclusiva basada en eventos, que fue descrita con anterioridad, una vez hecho esto, finaliza el proceso. En el caso de las compañías, ellas solo deben recibir una solicitud, procesarla y dar respuesta.

Paso3.
Intalio:
Para poder realizar nuestro modelo, debemos usar el Intalio | Designer. Una vez abierto, Creas un nuevo proyecto












Coloca el nombre que quieras, yo le puse lab5, luego pulsa Finish.






Ahora, creemos un nuevo modelo.









NOTA IMPORTANTE: Es importante que durante todo lo que vamos a realizar a continuación no le des a "guardar" ni una sola vez, si lo haces no podrás exportar el modelo, puesto que Intalio es una herramienta que permite hacer modelos funcionales, es decir que puedan ejecutarse, y  como por ahora solo vamos a modelar, si lo guardas, te lo tomará como un proceso incompleto y te dará problemas.


En mi caso lo llame ejercicio. Ahora verás que te sale un carril por defecto, y una tarea inicial por defecto, para agregar cualquier cosa al modelo debemos hacerlo desde donde dice palette.
















Ahora, procedemos a agregar los pool que habíamos acordado. podemos renombrar el existente, para que sea nuestro pool principal (Empresa), para ello hacemos doble clic sobre la palabra pool que está en el carril; bastaría entonces con crear 3 pool más (las compañías de envio). Para agregar un pool busca en la zona verde un dibujito azul que dice pool y después de darle clic sobre él, haces clic en el diagrama. el pool se agregará solo. En la parte baja a la izquierda puedes ver una miniatura de tu modelo (Circulo verde).

Agregados nuestros pool, arreglaremos que no sean ejecutables los de las compañías, para ello nos paramos sobre el pool, y con clic derecho, vemos que no sean ejecutables. verás que se oscurecen.


















Ahora, procedemos a colocar cada elemento que modele la situación. La actividad que tenemos allí, puedes re nombrarla, dando clic en la palabra Task, le pondremos: "Productos listos". Ahora tienes dos opciones: Dejarla como una actividad de inicio, o convertirla en un evento de inicio. si optas por la segunda opción, dale clic con botón derecho->change activity type->start events->empty start event. Ahora, si dejas el ratón sobre el pool te saldrá una lista de eventos y compuertas que puedes colocar, busca la paralela y colócala.


Para colocar las flechitas que ves, debes posicionar el ratón en un evento y/o compuerta. Si lo colocas de lado derecho, te permite modelar flujo, si lo colocas arriba o abajo indican envío/recepción de mensajes, ten mucho cuidado con esto, es importante.Avanzando un poco más encontramos modelados los 3 eventos de envío de mensaje.
En el mundo de BPMN, el envío de mensajes se modela con un sobre negro y el de recepción con uno blanco, ten calma, Intalio oscurece o no el sobre dependiendo del sentido de la flecha (si sale del evento representa envío, si llega al evento representa recepción). dejemos un momento el carril del sistema y modelemos el carril de una de las compañías.








Este es el comportamiento de una carril compañía. Las compañías tienen un evento de inicio de recepción de mensaje, el cual se representa como ves en la imagen, luego tenemos una actividad, llamada procesar solicitud. En este paso, la compañía decide si se hace cargo o no del envío. luego colocamos una compuerta OR (exclusión) para ver cual es la siguiente acción a realizar. la flechita con la linea indica que es la acción que se hace por defecto, es decir, normalmente aceptan hacer los envíos. cómo puedes colocar la raya a la flecha? das clic derecho sobre ella y te vas a condition type, seleccionas default y es todo. Para colocar textos, recuerda que basta darle doble clic sobre el objeto; y las actividades (TASK) se consiguen en la zona verde ubicada a la izquierda. Este comportamiento es exactamente el mismo en las 3 compañías, así que este proceso se repite en los dos carriles faltantes.

Ahora procedemos a realizar la conexiones, recuerda lo importante del sentido de las flechas. Cuando te pares sobre el evento, por la parte posterior o superior, aparecerán tres flechas, debes usar la del circulo en la base. Coloca las que están en verde primero, y las que se ven en azul después. Para Intalio debes colocar dos flechas en cada envío y recepción puesto que debe haber una confirmación por cada mensaje, contrario a BPMN en papel, donde sólo se coloca una flecha.

Ahora realiza el mismo procedimiento con los carriles faltantes. Para finalizar toda compuerta que coloques debe tener su homóloga, esto es por notación y funcionamiento de las compuertas.Te queda entonces:














Una vez terminado tu modelo,puedes exportarlo. Recuerda que no debiste darle guardar ni una sola vez durante todo lo que hemos hecho, de lo contrario no podrás exportar. Para guardarlo como una imagen debes ir a:
File->Export->SOA Tools Plataform -> BPMN Diagram Image
Seleccionas la carpeta de tu proyecto, y dentro seleccionas la carpeta con el nombre de tu diagrama, y solo debes marcar la ultima opción de dentro de la carpeta (modeler.bmpn_diagram) selecciona la carpeta donde quieres guardar la imagen, el nombre que tendrá y pulsa finish.

Ejercicio Terminado.

Ahora te dejo los ejemplos, intenta aplicar lo hecho hasta ahora.

Ejemplo 1:
El siguiente ejercicio es para familiarizarnos un poco con la notación BPMN:
• Cree 6 tareas que se ejecuten secuencialmente, nómbrelas de la ‘A’ a la ‘F’.
• La tarea B, realmente es un subproceso, compuesto de dos tareas B1 y B2, las
cuales se ejecutan secuencialmente en el orden respectivo.
• La tarea C y el subproceso B se ejecutan paralelamente.
• Bajo ciertas condiciones no se ejecuta C.
• En circunstancias aún más especiales, en vez de ejecutarse C se debe detener el
proceso completo, incluso las actividades del subproceso B.
• Antes de ejecutar la tarea E se debe esperar un tiempo.
• La tarea A es realmente la recepción inicial de un mensaje de un participante
llamado ‘cajero’ y la tarea F es realmente un evento de fin vacio.
• La tarea E es realmente un envío de mensaje a un participante llamado ‘cliente’.

Solución.

Ejemplo2:

Después de un incendio, por un lado se necesita obtener información de nuestra compañía de seguro. Por otro lado, es posible que necesitemos información adicional del departamento de bomberos, pero solo si los bomberos participaron durante el apagado del incendio. Cuando se tenga toda la información, se necesita escribir un informe consolidado.

Solución.

No hay comentarios:

Publicar un comentario