domingo, 18 de abril de 2010

Introducción al modelado de procesos mediante BPMN

Hace algunos dias, tuve el privilegio de realizar una presentación en la Universidad Central de Venezuela, sobre la importancia del modelado de procesos en las organizaciones publicas y privadas, su relacion con la toma de decisiones, y con el lenguaje de automatizacion BPEL.


Saludos;

domingo, 21 de febrero de 2010

Modelado de ITIL mediante BPMN (Gestión de Incidencias y Problemas)

Actualmente, he estado impulsado el uso de BPMN (Business Process Modeling Notation) como notación gráfica para el modelado de procesos en la institución donde laboro. Producto de este trabajo, actualmente estamos utilizando esta notación para automatizar los procesos relacionados con las disciplinas de incidencias y problemas de ITIL (Information Technology Infrastructure Library).

Nuestro objetivo posterior, es la especificacion de servicios de grano fino, grueso (Orquestacion : BPEL), y decision (BRE). para automatizar los procesos relacionados. El proceso se ha modelado con una visión integral, sin embargo, es factible que este modelo pueda ser dividido en piezas mas pequeñas que respondan a las distintas perspectivas de modelado.

Quiero compartir con la comunidad el trabajo de modelado realizado en colaboración con pasantes, y analista de procesos en nuestra organización.

A) Proceso modelado con BPMN.


B) Proceso con la utilización de eventos intermedios.



C) Proceso donde se identifican los posibles servicios.


Agradesco a Marisela florez, y Margaret Medina por su apoyo. 

Saludos;

sábado, 24 de octubre de 2009

Tempo "Una implementacion de BPEL4People"

Hace algun tiempo, estuve revisando la arquitectura del marco Tempo, componente clave de Intalio Community, y quise compartir una notas en español que he realizado, traducciones que pueden servir para mayor comprension.

Tempo es una implementacion del estandar Bpel4People, que gestiona diversos patrones de flujo de trabajo. Una de sus principales caracteristicas es que expone sus APIs mediante Web Services.

Que tecnologias utiliza
  1. Integracion nativa basada en XForms mediante Orbeon Xforms.
  2. Integracion de LDAP para autentificacion de usuario y autorizacion basada en roles.
  3. Persistencia de Tareas via JDBC.
  4. Persistencia de archivos (attachments), via JDBC.
  5. Lista de tareas (interfase de usuario), implementadas mediante Spring MVC y JSP/JSTL.

Caracteristicas mas importantes

  1. Su modelo de objetos de tareas es extensible.
  2. Proprociona tareas para aceptar, completar, cancelar, reasignar, etc.
  3. Cuenta con un marco de Seguridad basado en “role-based access control (RBAC)” y single sign-on (SSO).
  4. Cuenta con un set de procesos BPEL definidos para el workflow (asignacion de tareas, escalacion, etc.)
  5. Cuenta con servicios para el despliegue (Deployment Service) de las tareas, formas, etc.
  6. Soporte de Attachments.
  7. Interfases basadas en Web-service y REST.

Arquitectura

Tempo esta conformado por una arquitectura de tres capas.

Capa de interfase de usuario: Capa que gestiona las interacciones con los usuarios finales.

Capa de flujo de trabajo: Capa que gestiona el ciclo de vida de las tareas. Esta capa es ejecutada por un conjunto de procesos(WS-BPEL) llamados procesos de gestión de tareas, y pueden ser accesados a través de una interfaz de servicios Web.

Capa de persistencia: Esta capa persiste las propiedades de las tareas, y es ejecutado por tareas de gestión de servicios (JPA-JDBC), que son accesados a través de una interfaz de servicios Web.

Componentes Base

Modelo de Objetos de Tareas: Define las propiedades de la tarea en un package común de que se reutiliza en otros componentes.

Marco de Seguridad: es un marco para el control de acceso basado en roles, e l cual implemente la autorización, autenticación, single-sign-on, etc.

Servicio de archivos adjuntos: es una interfaz que se utiliza para almacenar los archivos adjuntos en una base de datos o un sistema de gestion de contenido "Content Management System" CMS.

Servicio de Dispatcher: Componente que actúa como un proxy entre los procesos para la gestión de tareas y el marco de interfaz de usuario.

Servicio de implementación de flujo de trabajo: proporciona una interfaz para implementar los flujo de trabajo en la base de datos.

Componentes (Un poco mas de detalle)

XForms Manager (XFM) : El Administrador de XForms (XFM) ,es el responsable de gestionar el codigo XForms y sus acciones. Este componente es invocado por el marco de la interfaz de usuario cuando el usuario hace clic en la lista de tareas para se gestione un documento XForms. XFM invoca el los servicios de gestión de tareas para recuperar los datos de la tarea específica y obtiene la forma XForms a través del servicio de implementación de flujo de trabajo. XFM agrega herramientas para las acciones de flujo de trabajo: botónes para enviar o terminar una tarea, herramientas para la gestión de archivos adjuntos, entre otros; este mecanismo permite que se añadan acciones nuevas al formulario sin afectar el código de sus definiciones. XFM utiliza Orbeon Presentation Server para ejecutar XForms., también utiliza el idioma Orbeon XPL, y ejecuta acciones del flujo de trabajo invocando el servicio de gestión de tareas y procesos BPEL, los cuales son expuestos como servicios Web. XFM se despliega como un archivo WAR en prácticamente cualquier servidor de aplicaciones J2EE.

Interfaz de usuario Marco (UIFW) : El marco de interfaz de usuario (UIFW) es la aplicación web que ofrece a los usuarios el acceso a la ejecucion de procesos. Proporciona una pantalla de inicio de sesión y lista de tareas. Es el responsable de mostrar la forma adecuada cuando el usuario selecciona una tarea. UIFW se despliega como un archivo WAR en prácticamente cualquier servidor de aplicaciones J2EE.

Los procesos de gestión de Trabajo (PGT): Gestiona el ciclo de vida de las tareas de flujo de trabajo desde el momento se crea una tarea hasta que finaliza. Es responsable de cambiar los estados de tareas de acuerdo a las normas y las interacciones del usuario tal como se define en sus procesos. Este componente, invoca el Servicio de Gestión de tareas para cambiar de estado de tareas de una manera segura. Proporciona servicios a los que los usuarios puedan realizar acciones de flujo de trabajo. También interactúa con los procesos BPEL donde se utilizan las actividades de flujo de trabajo, a través del Servicio Dispatcher. El TMP implementa WS-BPEL 2.0 y se despliega en cualquier WS-BPEL 2.0 compatible, como Apache Ode.

El Servicio de Gestión de Tareas (TMS) : Es el servicio de datos que persiste las tareas en la base de datos proporcionando servicios a las aplicaciones cliente para que puedan acceder y modificar datos de la tarea de una forma segura. TMS es utilizado por el Marco de la interfaz de usuario para recuperar la lista de tareas, el Administrador de XForms para recuperar datos de tareas y los procesos de gestión de tareas para cambiar el estado de la tarea. El componente TMS es implementado en Java como un servicio web mediante Axis2.

El Marco de Seguridad (SFW) : Proporciona un acceso basado en roles de interfaz de control para los sistemas de seguridad, fundamentalmente para la autorización, autenticación y single sign-on. Es utilizado por el Marco de interfaz de usuario para la autenticación de usuarios en el inicio de sesión y por el Servicio de Gestión de Tareas para la autorización de cualquier llamada al TMS.
Servicio de archivos adjuntos de tareas (TAS): es un servicio que persiste archivos adjuntos vinculados a las tareas. La API soporta agregar y eliminar los archivos adjuntos (archivos binarios), junto con alguna descripción y tipo de contenido.

Saludos;

jueves, 25 de junio de 2009

Modelado con BPMN (Proceso Ejemplo) - Intalio BPP

Un aspecto importante para poder modelar un proceso de negocio, es la comprensión de cada uno de los artefactos que conforman la notación grafica BPMN. Una buena práctica, es utilizar eclipse BPMN como herramienta para modelar los procesos.

En este proceso, un ciudadano registra una solicitud para poder asistir a un curso. La organización, en adelante “OR”; debe verificar la disponibilidad o cupo para el curso seleccionado por el ciudadano. La OR verifica la disponibilidad, y notifica al ciudadano que esta preinscrito; y que debe depositar en una cuenta un monto determinado. Una vez que el ciudadano ha realiza el depósito en el banco, este debe dirigirse a la OR para su validación y registro. Cuando la OR verifica el pago, el ciudadano este inscrito formalmente, y posteriormente se le notifica, la fecha de inicio de la capacitación.

Es importante aclarar, que este proceso, y las practicas de modelado que incluye, se adaptan a las necesidades, requerimientos, y el nivel de detalle que se requiere el modelador. Mi intención, es mostrar algunas prácticas generales.

Pasos Generales
  • El primer paso, es modelar un proceso nivel 0, donde no se incluyen los participantes (pools).

  • El segundo paso, es incluir los participantes en el proceso, describir las actividades, y crear un pools que orqueste todas las interacciones necesarias.


  • En el último diagrama, se muestra la utilización de los eventos intermedios, y el gateway o bifurcación basada en eventos.

Saludos;

lunes, 6 de abril de 2009

Perspectivas en el Modelado BPMN

Cuando iniciamos un proyecto BPM, una de las actividades que debemos abordar es el modelamiento. Durante esta tarea, es importante entender y convivir con la presencia de diversas perspectivas y el grado de ambigüedad presente en cada etapa del modelado.

El proceso de modelado debe reducir la ambigüedad del diagrama adaptándose a las diversas perspectivas que introduce su análisis. Para aclarar este punto:

Niveles en el modelado
  1. Diagrama nivel 0: Este modelo contiene un solo pool (participante), y en las actividades se describen los actores, entradas y salidas. En este nivel, podemos modelar un proceso de negocio solo con dos tipos de artefactos gráficos: actividades y bifurcaciones.
  2. Diagrama nivel 1: Este modelo contiene diversos pools que representan los roles en un proceso. En este momento, es importante entender la diferencia entre orquestación y coreografía. En líneas generales debemos centrarnos en la orquestación, donde un pool ejecutable orquesta todas las interacciones entre los participantes.
  3. En los siguientes niveles, debemos detallar las reglas de negocio requeridas en el modelado; por ejemplo: actividades de escalamiento, control de variables, captura de excepciones de negocio, condiciones para cancelar un proceso, ciclo de vida, etc.
Cuando trabajamos en un proyecto BPM con un proveedor, puede existir la tendencia de entregar como insumo para su automatización el diagrama de nivel 0 o nivel 1, pero esta aproximación tiene claras desventajas, que pueden poner en riesgo la ejecución del proyecto.

Desventajas
  1. Existe un grado importante de ambigüedad en el proceso de negocio modelado.
  2. No se utilizan todas las potencialidades de modelamiento necesarias para disminuir el grado de ambigüedad.
  3. El cliente no garantiza el cumplimiento de los estándares mínimos de modelado de proceso.
  4. El conocimiento de modelado no lo tiene la empresa, sino el proveedor de TI...
El mensaje

Es importante entender que el proceso de modelado debe adaptarse a las perspectivas y análisis. Un analista de proceso, tiene una perspectiva distinta a un arquitecto o desarrollador. En BPMN existen todos los artefactos gráficos (notación grafica), requeridas.

Diversas perspectivas, introducen diferentes niveles de modelado, la clave es que esta experiencia no se separe para ir desarrollando un marco de patrones de modelado.

lunes, 30 de marzo de 2009

Taller de Intalio BPP en Venezuela Cantv

Hace algunos días, tuve la oportunidad de dictar un taller de Intalio BPP, en Cantv, con integrantes de la Plataforma de Integracion Corporativa, Proyecto IPTV, y el proyecto convergencia. El primer día conversamos sobre los estilos de arquitectura SOA y ESB como estrategia para proporcionar mayor agilidad operativa en una plataforma de TI. El mensaje primordial, es que existe una relación muy estrecha entre estos estilos de arquitectura y BPM.

Ambos estilos aceleran, sustentan y aseguran la aplicacion de practicas que garanticen el éxito de una implantación BPM. Otro elementos importante fue dar a conocer las diversas disciplinas que comprenden BPM, su relación y las mejores practicas.

Luego, conversamos sobre la necesidad de contar con un framework de patrones para el modelado de procesos, que fortalezca las técnicas necesarias para utilizar todo el universo de elementos graficos de la notación BPMN. Se requieren patrones por ejemplo para:
  1. Manejo de excepciones
  2. Manejo de timeouts.
  3. Manejo de reintentos.
  4. Manejo de variables
  5. Manejo de interacciones.
  6. Tecnicas para la reutilizacion de procesos.
  7. Tecnicas para el manejo de correlaciones.
  8. Tecnicas para el manejo de reglas de negocio.
  9. etc.
Estos son los temas generales que abordamos en el taller:
  1. Introducción a SOA
  2. Introducción a ESB
  3. Introducción a BPM
  4. Disciplinas de BPM.
  5. Armando el rompecabezas de TI.
  6. Notación Gráfica BPM (tareas, pools, lanes, eventos, etc.)
  7. Practicas generales de Modelamiento (joins, sincronizacion, paralelos, etc.)
  8. Casos prácticos para el modelado de procesos.
  9. Orquestacion de Servicios.
  10. Orquestacion de Procesos.
  11. Practicas de BPMN
  12. Introduccion a Intalio|BPP (componentes y estándares soportados).
  13. Intalio|Designer.
  14. Componentes de un proceso (contexto, eventos, bifurcaciones, etc.).
  15. Procesos ejecutables.
  16. Otros.
Saludos;

jueves, 19 de marzo de 2009

Looping Subprocess en Intalio BPMS - BPMN

El "looping subprocess" son subprocesos que pueden ser iterados, basado en condiciones que limitan el numero de iteraciones requeridas, generalmente llamados bucles. En este post, podemos ver los criterios necesarios para utilizar un subproceso con actividades que requieren ser iteradas un numero de veces, y la utilizacion de expresiones Xpath para acceder a los datos (nodos) que comprenden un array.

En este ejemlpo, tenemos un web services expuesto por Mule ESB, el cual retorna un maestro detalle. Es necesario iterar cada nodo del array, e invocar otro servicio.


Para poder iterar, debemos establecer las condiciones para limitar el numero de iteraciones. Específicamente, en el ejemplo utilizamos la funcion Xpath count() para obtener en numero de nodos, y almacenarlos en una variable.


Establecemos las condiciones que limitaran el numero de iteraciones en el bucle.


Mapeamos la salida,


Para finalizar, existen actualmente tres tipos de bucles: For Each, While y Repeat Until, las cuales se utilizan en las siguientes condiciones:
  1. Iterar un subproceso hasta que se cumpla una condición (While).
  2. Iterar un subproceso hasta que se cumpla una condición (Repeat Until).
  3. Iterar un subproceso un numero de veces (contador inicial, contador final) (For Each).