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).

lunes, 23 de febrero de 2009

Fallas, Excepciones y Compensacion II

Actualmente existen tres tipos de mecanismos para gestionar errores en un proceso de negocio: Transacciones, Excepciones, y Compensaciones. Estos tres mecanismos, trabajan juntos para evitar que los procesos fallen.

Este esquema se basa en el principio transaccional basado en el modelo “todo o nada”, ofreciendo flujos o rutas (paths) alternativos cuando se producen excepciones, las cuales pueden desencadenar acciones compensatorias para deshacer las operaciones fallidas.

Transacciones: Una transacción, es una secuencia de operaciones agrupadas en una unidad indivisible, en la cual se ejecutan todas las tareas o ninguna. Si una tarea, se encuentra dentro de una transacción y esta no puede ser ejecutada, todas las tareas anteriores que ya han sido ejecutadas deben ser devueltas a su estado original. En un diagrama del proceso (notación BPMN), se utiliza el sub-proceso para agrupar las actividades dentro de una transacción.

Manejo de Excepciones: Una excepciones de negocio reorienta el flujo o ruta del proceso cuando se detecta una excepción. Por ejemplo, una tarea que debe realizar una operación de debito, pero la cuenta carece de fondos suficientes. Como resultado de ello, una excepción puede ser lanzada, y el flujo del proceso es afectado. En un diagrama del proceso, el manejo de excepciones se realiza adjuntado una excepción a un sub-proceso, conectándola con una actividad que la manejara, para luego retornar a su ruta normal, sino finaliza el proceso antes esta condición.

Compensaciones: Las compensaciones establecen reglas para deshacer tareas si una tarea falla. Por ejemplo, una tarea recibe una transacción y es completada. Posteriormente, sin embargo, una tarea relacionada no se ejecuta. La tarea de compensación asociada a la primera actividad se ejecuta, restituyendo la transacción. La compensación no se ejecuta si la tarea no tiene asignada una excepción.

Este es un ejemplo donde podemos ver la secuencia o ruta del proceso ante diversos escenarios:

Descripción de Secuencia

Sin Excepcion


  1. La Tarea A se ejecuta y completa.
  2. La Tarea B Falla, debido a una excepcion de negocio.
  3. El proceso de negocio falla porque no hay un manejo de excepciones configurado para el subproceso AB.
Con Excepcion


  1. La Tarea A se ejecuta y completa.
  2. La Tarea B se ejecuta y completa.
  3. La Tarea C se ejecuta y completa.
  4. La Tarea D Falla, debido a una excepcion de negocio.
  5. Se ejecuta la Excepcion 1, y luego el proceso de negocio, sigue su ruta (no falla el proceso, porque se considero una excepcion).
Con Compensacion


  1. La Tarea A se ejecuta y completa.
  2. La Tarea B se ejecuta y completa.
  3. La Tarea C se ejecuta y completa.
  4. La Tarea D se ejecuta y completa.
  5. La Tarea E se ejecuta y completa.
  6. La Tarea F se ejecuta y completa.
  7. La Tarea G Falla, debido a una excepcion de negocio.
  8. Se ejecuta la actividad de Compensacion 1.
  9. A pesar que la tarea de compensacion 1 se ejecuta, el proceso de negocio falla. Para evitar este comportamiento, podemos incluir todas estas actividades dentro de un subproceso.
Saludos;

martes, 10 de febrero de 2009

Fallas, Excepciones y Compensacion I

Uno de los elementos más importantes, dentro de la notación BPMN es el manejo de excepciones de negocio, fallas, y operaciones de compensación. Actualmente existen diversos tipos de excepciones que pueden ser modeladas con la notación BPMN.

Existen tres tipos de excepciones:

Fallas Técnicas: Estos son eventos que se generan fuera del contexto de ejecución de un proceso de negocio; el cual puede causar que el proceso no este disponible. Ejemplo de este tipo de fallas: mal funcionamiento del disco, errores de CPU, etc. Por su naturaleza, este tipo de fallas técnicas generan la interrupción del proceso de negocio.

Excepciones Temporales: Estos son eventos temporales que pueden ser resueltos con el tiempo. Por Ejemplo: la red no esta disponible, servicio web no disponible, o base de datos no disponible. En estos casos, el proceso será suspendido después de una serie de intentos fallidos y, a continuación, el proceso puede reanudarse manualmente una vez que el problema ha sido resuelto. En este tipo de eventos, el proceso puede realizar el rollback de cualquier actividad, o intentar una acción para un número especifico de veces. Si los reintentos no tienen éxito, el proceso puede ser suspendido (pero no finaliza).

Excepciones de Negocio: Este tipo de excepciones suelen estar relacionados con datos, por ejemplo: código ciudad no valido, número de cuenta no valido, fondos insuficientes para esta transacción, etc.

En el próximo post, hablaremos de las herramientas que tenemos en la notación para representar este tipo de excepciones.

domingo, 25 de enero de 2009

Intalio Eventos Multiples

Como hemos descrito en notas anteriores, un evento es algo que afecta el flujo de ejecución de un proceso de negocio. Según la notación BPMN tenemos tres tipos de eventos inicio, intermedios, y fin. En este ejemplo podemos ver diversos tipos de eventos.

Primero, podemos ver la utilización de un evento denominado “múltiple intermediate event”, que opera como un gateway exclusivo basado en eventos. En este tipo de gateway, solo un evento podrá ejecutarse. En nuestro diagrama utilizamos un evento intermedio o timer. Cuando el mensaje es recibido antes de una fecha determinada, el proceso continua su ejecución normal (Tarea G), de lo contrario se ejecuta la tarea F y se lanza un error.

Por ultimo, podemos ver un ejemplo de la utilización de un “messages end event”, para enviar un mensaje al participante que ejecuta la tarea C.

domingo, 18 de enero de 2009

Manejo de Eventos Intermedios Timer en Intalio

En el post anterior, un amigo realizo algunas preguntas relacionadas con el control de tiempos. La notación BPMN, introduce un símbolo para el manejo de eventos timers, también conocidos como temporizadores. En la notación, se les conoce como “Timer Intermediate Event”.

Los timer intermediate Event, o eventos intermedios de tiempo, se utilizan para controlar el tiempo de una actividad ejecutada por un participante humano o por un servicio (Web Services). Con frecuencia se utilizan, para tareas de escalamiento, notificaciones y cancelación de procesos.

Un ejemplo de este tipo de operaciones: si una actividad no se ejecuta en un periodo de tiempo, podemos romper el flujo o ruta de proceso normal, para cancelar una orden de servicio, o notificar a un cliente. Se pueden utilizar expresiones timers como : PT20S que establece 20 seg, PT50S establece 50 seg y PT2M establece 2 min.

En el ejemplo, tenemos un subproceso que ejecutar dos actividades, adiciono un timers para controlar el tiempo y así permitir que se dispare un evento: “si el tiempo de ejecución del subproceso sobrepasa un valor, ejecuto la actividad Timeout”.

domingo, 23 de noviembre de 2008

Manejo de Eventos en Intalio BPM


Uno de los elementos gráficos de la notación BPMN son los eventos. En este ejemplo, podemos ver el comportamiento del motor BPEL, para el manejo de eventos intermedios y timers, elementos fundamentales en la comprensión de BPMN para el modelado de procesos de negocio.

Primero un poco de teoría. Un evento es algo que pasa durante la ejecución de un proceso. Estos eventos afectan el flujo del proceso, y usualmente tienen una causa (disparador o trigger), o un impacto (resultado - result). Los eventos son representados con círculos, sobre diversas marcas que representan diferentes disparadores y resultados. Existen tres tipos de eventos basado en como afectan el flujo del proceso: inicio, intermedio, finalización (start, intermediate, end).

Por ejemplo tenemos un evento timer, donde podemos establecer un período de tiempo (fecha), o un ciclo (por ejemplo, todos los miércoles a las 6am), con el cual podemos condicionar el inicio o disparo de un evento.

Otro tipo de eventos son los intermedios, los cuales son utilizados para condicionar la entrada de un mensaje dentro del flujo. Un evento intermedio, según definición, ocurre entre un evento de inicio (Start Event) y uno de fin (End Event), y afecta el flujo de el proceso, pero no inicia o finaliza el proceso directamente.

Por lo general, los eventos timers, son utilizados en tareas, y generalmente pueden representar una condición de timeout para un Web services, que puede disparar un evento para enviar la solicitud a una cola de mensajeria de excepciones.

En este ejemplo, estamos utilizando un timer, que permite observar el comportamiento de un evento intermedio; en resumen, el proceso de negocio no ejecutara la tarea B, hasta que pasen 2 min. (timer), y se ejecute la tarea C.

sábado, 15 de noviembre de 2008

Proceso y actividades en BPM, una vision pragmatica

Hace unos días, me invitaron a una reunión, en la cual un proveedor muy importante en el área de BPM, realizaba demostraciones sobre un producto para el modelado de procesos de negocio. Quiero compartir con la comunidad algunas apreciaciones y diferencias de opiniones, que considero muy importantes.

La mayoría de las presentaciones sobre BPM disponibles en la red, y los mensajes de proveedores importantes en esta área, se centran en: “el primer paso es el modelado de los procesos”. En primer lugar considero vital, que en los primeros pasos no hablemos de procesos, hablemos de actividades que son ejecutadas por personas.

En la mayoría de las organizaciones, desde un punto de vista pragmático, no existe en el vocabulario de los trabajadores la palabra proceso; la cual inicialmente es percibida como algo complejo; la realidad; las organizaciones están formadas por personas que ejecutan actividades; y en la mayoría de los casos, no se conoce el objetivo estratégico que esta relacionado a su trabajo. La clave es como llevar el trabajo del día a día (actividades) a un proceso, promocionándole una esencia organizacional más formal.

El objetivo de un consultor BPM, es identificar las actividades, responsables, relaciones con otras actividades, participantes, identificar que variables pueden ser medidas, y si están enmarcadas dentro de un objetivo estratégico de la organización, y como estas pueden ser mapeadas en un marco de procesos referencial. Este trabajo, define, forma, y establece el concepto de un proceso, pero no es de el; donde se inicia el trabajo. Este modelo es una aproximación más humana, y pragmática para introducir el concepto de proceso en la organización.

Otro aspecto, es que asumimos que el diseño de los procesos esta basado en un lenguaje natural, por ende; para la organización es muy fácil modelar sus procesos. Esta premisa no es cierta; en realidad no es un lenguaje natural, ya que requiere de un análisis, practicas de modelado, reglas; inclusive si se cuenta con un marco referencial.

Por ultimo, algunos proveedores aseveran que el modelamiento de los procesos de negocio los llevara al camino de SOA; en realidad este camino se inicia con el entendimiento de este estilo de arquitectura en las gerencias responsables de las infraestructuras de hardware y software que sustentas las operaciones de negocio de la organización.

Algunas Recomendaciones
  1. No introducir el término de proceso, en la organización en las primeras fases, si el de actividades.
  2. Cuando el rompecabezas este armado, identificamos un proceso (actividades, participantes, reglas, etc.), y le damos un firma mas formal.
  3. Es imprescindible establecer una buena estrategia para capacitar a las personas en el modelamiento de procesos; recuerde que en realidad no es un lenguaje natural, y requiere del conocimiento de prácticas y reglas.

lunes, 8 de septiembre de 2008

Capitulo II El Diagnostico

El Diagnostico
Una estrategia para crear la necesidad, es impulsar actividades del diagnostico de la documentacion existente de los procesos, actividades, etc.

Sobre la Calidad del Diagnostico
No importa que los datos no sean levantados y recopilados de forma exhaustiva durante las sesiones iniciales, el objetivo es hacer un diagnostico preliminar de la documentación o existencia de procesos, para potenciar la necesidad de implantar soluciones que estandaricen y automaticen toda la definición de los procesos en la organización. Recuerde que el objetivo inicial es identificar la presencia de toda la documentación relacionada con los procesos de cada unidad organizacional, sin hacer análisis de la calidad de los documentos.

Recomendaciones para Diagnostico

La clave para comenzar con un buen diagnostico, es detectar la existencia y utilización de herramientas que son utilizadas regularmente en la organización para documentar los procesos, por ejemplo, word, visio, etc; este análisis potenciara la necesidad de uniformizar o estandarizar las herramientas para documentar los procesos, la necesidad de tener un repositorio único, basado en una norma de modelado como BPMN, que permita simular y proporcionar algunos elementos dinámicos a esa documentación. Este trabajo abrirá un abanico muy amplio de las mejoras que pueden sustentar un cambio organizacional.

Nota: Recuerde, que el objetivo preliminar del diagnostico no es analizar los macro procesos, ni realizar un análisis cualitativo de los mismo.

Areas claves:
  1. Numero de procesos existente por cada unidad organizativa.
  2. Proporción de macro procesos existentes en las unidades.
  3. Evaluar el número de procesos documentados.
  4. Evaluar la existencia de indicadores de gestión para procesos.
  5. Procesos con Indicadores vs. Procesos sin Indicadores.
  6. Proporción de herramientas utilizadas para diagramas (PowerPoint, Visio, docs, pdf, etc.).
Los Resultados del Diagnostico

El diagnostico se convertirá en una herramienta para establecer conclusiones sobre la situación actual de los procesos de la organización, por ejemplo el numero de procesos documentados, la existencia de herramientas para su documentación. Este diagnostico, será el insumo preliminar para detectar procesos repetidos y serán una referencias que luego utilizaremos para asociar los procesos con un modelo referencial, hablaremos mas adelante sobre este marco referencial.

Detectar Áreas de Apoyo

En muchas organizaciones, podrían existir iniciativas orientadas en la mejora continua de procesos, por ende; es importante detectar todas estas iniciativas existentes y utilizarlas como mecanismo de participación para acelerar y potenciar todas las iniciativas. Recuerde: Unificar iniciativas, evitar redundancia, lo mejor no es imponer, sino acordar y avanzar.

La importancia de un Marco de Referencia

Una recomendación importante es utilizar un marco referencial de procesos que pueda ser extendida y adoptada, y responda a todas las necesidades presentes y futuras de la organización, articulando diversos enfoques.

Algunas organizaciones cuentan con marcos de referencia, en el cual se describen las áreas generales o macro procesos, el Comité extendido de procesos, debe acordar un marco de referencia, en el cual puedan ser mapeados todos los procesos actuales de la organización.

El marco de referencia responde a preguntas como cual es el modelo que queremos? se equilibra con la realidad existente en la corporación?, estamos todos referenciados ahí?

Los marcos de referencia contribuyen con la formalización de los procesos de la organización, y es el punto de partida para soluciones como cuadro de mandos par medir las áreas claves de procesos y los acuerdos de servicios.

El Marco Referencial y el ajuste.

Los marcos de referencia, deben especificar todos los macro procesos actuales de la organización y futuros, e incluir características y necesidades particulares, para ajustarla. Esto es responsabilidad del Comité Extendido de Procesos.

Se pueden presentar escenarios, donde algunas unidades organizaciones ya cuenten con un marco referencial propio, el cual puede ser extendido o actualizados según las necesidades de toda la organización, la clave: todos deben verse reflejados.

Un ejemplo particular es NGOSS, que es un marco referencia para empresas de telecomunicaciones, el cual puede ser extendido o modificado acorde con las características y necesidades de la organización.

jueves, 3 de julio de 2008

Seminario de Intalio BPMS en Costa Rica Presentaciones Intalio

Introduccion a Intalio BPMS



Algunas Demostraciones



Saludos;

Seminario de Intalio BPMS en Costa Rica Presentaciones

Hola a todos, lo prometido es deuda... Estas son las presentacion que utilice para los seminarios.

SOA y ESB, la combinacion perfecta


Arquitectura de un ESB Gobierno



Introduccion a Mule ESB



Introduccion a la Gestion de Procesos de Negocio (BPM)



Saludos;

miércoles, 2 de julio de 2008

Seminario de Intalio BPMS en Costa Rica

Hace poco tuve la oportunidad de ir a la Universidad Nacional de Costa Rica a impartir dos seminarios "SOA y ESB" y "BPM utilizando Intalio BPMS", donde aborde diversos temas de arquitectura empresarial y gestión de procesos de negocio utilizando las alternativas Open Source y de software libre: Mule ESB, ActiveMQ, e Intalio BPMS.

Quiero agradecer la hospitalidad que los tico me brindaron durante mi estadía; a Xenia y Dinia por toda la colaboración prestada, y al Sr. Francisco por su visión y capacidad de vigilia en el tema de nuevas tecnologías. La UNA (Universidad Nacional de Costa Rica), tiene un programa de especialización en el área de las tecnologías de información y la gestión de proyectos (PMI) llamada Progestic. Progestic esta planeando incorporar la Gestión de Procesos de Negocio (BPM) como un elemento dentro de su plan integral de capacidades, para convertirse en una guía en Centro América.

Ha sido una experiencia invaluable, donde he podido compartir con la comunidad estudiantil, empresarial y de gobierno; la importancia de incluir SOA, ESB y BPM como estrategia para utilizar las tecnologías de información y comunicaciones de forma efectiva y con una orientación clara en la gestión de procesos de negocio y todas las disciplinas que lo comprende; por supuesto utilizando software libre y open source.

Anexo para toda la comunidad las areas que comprenden estos dos seminarios, para que conoscan los temas y las relaciones existentes; pronto colocare las presentaciones.

Introducción a las Arquitecturas Orientadas en Servicios (SOA) y Bus de Servicios Empresariales (ESB).
  • Arquitectura Orientadas en Servicios
    • Definición de SOA?
    • Beneficios de SOA.
    • El Reuso y el ROI.
    • Estándares y Especificaciones disponibles.
      • WS-I, OASIS, W3C
      • Xml, Xml Schemas, WSDL, SOAP, UDDI, etc.
      • Estándares WS-*
      • Análisis y diseño orientado en servicios.
    • Análisis y diseño orientado en servicios.
    • Interfase vs. Contrato.
    • Principios de orientación en servicios.
    • SOA y Web Services.
    • Alternativas de Implementación.
    • Arquitecturas SOA.
    • Metodologías disponibles.
    • Mejores Prácticas.
  • Modelo de Implementación para la construcción de Web Services.
    • Apache Axis 2.
    • Xfire (CXF).
    • Spring Web Services.
    • Utilitarios (SoapUI, Jmeter).
  • Demostración A
    • Creación de un Web Services (Servicio Web).
    • Consumo de un Web Services.
    • Generación de Proxys mediante WSDL.
    • Herramientas SOA Open Source.
  • Bus de Servicios Empresariales
    • Que es un ESB?
    • Beneficios de un ESB.
    • Funciones de un ESB.
    • Alternativas ESB Propietarias vs. Open Source.
    • Introducción a Mule ESB
      • Arquitectura de Mule ESB.
      • Componentes de Mule: Conectores, Transformadores, Interceptores, Router, endpoint, inbound-router, outbound-router, etc.
      • Integración de Mule ESB con Spring y ActiveMQ.
      • Mejores Prácticas.
  • Demostración B
    • Ejecutar el ejemplo Echo.
    • Exponer un UMO como servicio (Axis, Xfire).
    • Consumir un Web services.
    • Integración de Mule ESB con Intalio BPMS.
    • Integración de Mule ESB con ActiveMQ.
  • Patrones de Integración Empresarial.

Introducción a la Gestión de Procesos de Negocio (BPM) y la alternativa Open Source Intalio BPMS.

  • Introducción a Business Process Management (BPM)
    • Definición de BPM.
    • Objetivos de BPM.
    • Disciplinas Relacionadas (BPMN, BPEL, BAM, BRE, SOA, Web Services).
    • Conceptos Básicos (proceso, participante, notación, etc.).
    • Ciclo de Vida de un proceso de negocio (Modelado, diseño, despliegue, ejecución, optimización).
    • Orquestación de Procesos e interacciones.
  • Introducción a BPMN (Business Process Modeling Notation).
    • Notación BPMN.
    • Reglas generales de la notación BPMN.
    • Modelado de procesos de negocio con BPMN.
    • BPMN vs. Workflow.
    • Recomendaciones y Mejores Prácticas de Modelado.
  • Demostración A
    • Modelado de Procesos con BPMN.
    • Reglas Generales de Modelado.
  • Introducción a BPEL (Business Process Execution Language).
    • Componentes BPEL.
  • Introducción a BAM (Business Activity Monitoring).
    • Objetivos de BAM.
    • Que son los KPI (Key Performance Indicator).
    • Funcionalidades de un Dashboard.
  • Introducción a Introducción a BRE (Business Rules Engine).
    • Gestión de Reglas de Negocio.
  • Demostración B
    • Utilización de Reglas de Negocio en Web Services.
    • Ejemplo de BAM.
  • Alternativa BPM: Intalio BPMS.
    • Arquitectura y estandares de Intalio BPMS (BPMN, BPEL, BPEL4People, Wsdl, Xforms).
    • Productos y Modelo de Suscripción.
    • Introducción a Intalio BPMS.
    • Intalio BPMN Modeler.
    • Intalio BPMS People Workflow.
    • Intalio BPMS BPEL.
    • Intalio BPMS Mapper.
    • Intalio BPMS Server.
    • Partners de Negocio.
      • Liferay (http://www.liferay.com).
      • Alfresco (http://www.alfresco.com/).
      • Apache (http://www.apache.org/)
      • Eclipse (http://www.eclipse.org/)
      • OpenLexicon (http://www.openlexicon.org/)
      • Orbeon (http://www.orbeon.com/)
  • Demostración C
    • Componentes de Intalio BPMS Designer.
    • Intalio BPMN 1.1 Modeler.
    • Modelado de Procesos con Intalio BPMN.
    • Recomendaciones de modelado (n1, n2, n3).
  • Intalio BPMS y Web Services.
    • Reglas Generales de Construcción.
    • Mejores Prácticas.
  • Demostración D
    • Consumo de Web Services con Intalio.
    • Orquestación de Servicios con Intalio.
    • Workflow con Intalio.
    • Patrones de Workflow
    • Creación de Formularios (Xform).
    • Manejo de Roles.
    • Integración Web Services con Workflow.
    • Despliegue de Procesos de Negocio.
Algunas fotos:





Saludos;

lunes, 19 de mayo de 2008

Capitulo I: La organización y la estrategia

Desde hace algunos meses, he estado escribiendo mis apreciaciones sobre el proceso necesario para implantar las diversas disciplinas que comprenden BPM. Mi objetivo es lograr escribir un libro con las mejores practicas. Estas son mis primeras notas.

Capitulo I: La organización y la estrategia

Para asegurar la diseminación de la gestión de procesos de negocio en la organización, es vital desarrollar un conjunto de estrategias que minimicen la resistencia al cambio y maximicen las posibilidades de éxito de su inserción en la cultura organizacional.

Una de las estrategias que debe ser considerada es la creación de un comité extendido de procesos que represente y contenga el conocimiento de todos los procesos de la organización, el cual estará conformado por expertos en cada una de las áreas operativas. La facilitación dentro de este comité debe sustentarse sobre la proposición y la toma de decisiones concertadas y la creación de equipos más que grupos de trabajo.

Antes de comenzar un proyectos BPM es importante considerar:
  1. Creación de un Comité Extendido de Procesos.
  2. Realizar un diagnostico Preliminar del estado de la documentación de procesos.
  3. Establecer un Marco de Referencia Organizacional.
  4. Establecer un Marco de Arquitectura Tecnológica.
  5. Evaluación y Selección de las herramientas para implantar BPM en la Organización.
Comité Extendido de Procesos

El comité extendido de procesos es el motor de todas las iniciativas para crear y acelerar el cambio de la organización. El objetivo del comité es desarrollar discusiones, puntos de vistas, enfoques, opiniones diversas, y establecer conclusiones y recomendaciones concretas sobre la situación actual y futura de los procesos.

El comité tiene una amplia variedad de objetivos, pero los principales son:
  1. Establecer el Marco de Procesos Referencial de la Organización.
  2. Evaluar y Seleccionar un Marco de Arquitectura Tecnológica que implemente los requerimientos mínimos para la Gestión de Procesos de Negocio.
Equipo vs. Grupo de trabajo.

Una recomendación que consideramos importante es utilizar dentro del comité extendido de procesos, facilitadotes que contribuyan en convertir el grupo de trabajo, en un equipo donde los objetivos se encuentren alineados. Es necesario incentivar los mecanismos para mejorar las ideas y planteamientos exhaustivos y el dinamismo propositito.

Propuesto no impuesto

Una estrategia es contribuir con propuestas y no la imposición de modelos de trabajo, la discusión y la toma de decisiones debe ser concertada, y debe convertirse en la piedra angular de todo el proceso.

Quien es el dueño del proceso

Es importante comprender que cada unidad será la responsable de establecer sus procesos de negocio, dentro de su visión organizacional.

Las Responsabilidades de las Unidades

Estratégicamente, es vital establecer cuales son las responsabilidades de cada una de las unidades dentro del proyecto de implantación de BPS en la organización.

Recomendaciones:
  1. Cada unidad de negocio es dueña de sus procesos.
  2. Cada unidad de negocio debe documentar y modelar sus procesos.
  3. Cada unidad de negocio debe conocer sus indicadores de gestión.
  4. Cada unidad debe establecer sus macro procesos.
  5. Los Macro procesos deben ser mapeados en un Marco Referencial Corporativo.
El Diagnostico Preliminar

Las organizaciones cuentan con procesos para desempeñarse en sus áreas de negocio; una buena práctica es armar un diagnostico general de las condiciones generales de los procesos presentes: documentación, diagramación, normas y procedimientos, herramientas, etc.

Ver la proporción existente entre las herramientas utilizadas para documentar los procesos, su diagramación, la existencia de manuales de normas y procedimientos, cualquier documentación asociada a los procesos, herramientas mas utilizadas, la presencia de indicadores para los procesos, etc.

Cada representante del Comité Extendido de Procesos, deberá proveer la información de sus procesos actuales para diagnosticar su situación.

El Diagnostico Preliminar Como impulsor de Cambios

Desarrollar esta actividad, contribuirá con establecer y fortalecer la necesidad de impulsar los cambios necesarios para uniformizar las herramientas para documentar los procesos, y estandarizar todo el trabajo relacionado en todas las unidades o gerencias de la organización.

sábado, 3 de mayo de 2008

Como introducir BPM en la organizacion con Intalio BPM

Actualmente existen diversas alternativas tecnológicas disponibles en el mercado en el área de GPN/BPM; basadas en Software Libre y Open Source; productos que implementan las disciplinas de Gestión de procesos de negocios (GPN) / Business Process Management (BPM).

Hace 6 meses, inicie un trabajo de evaluación, selección y ejecución de pruebas de concepto, para potenciar una plataforma de servicios que existía, y contribuir con las lineas estrategicas existentes del estado y la organizacion. Se selecciono “Intalio BPM”, como herramienta. Se realizaron dos pruebas de concepto para conocer las capacidades iniciales de Intalio para implementar procesos de negocio de larga vida, utilizado la infraestructura de servicios actual, que provee una plataforma de integración.

En lineas generales, intalio ofrece un modelo ágil para el despliegue de procesos de negocio, donde podemos integrar dos tipos de actividades : Automáticas y humanas. Procesos como la consulta de un servicio de información, notificacion y la aprobacion de un tareas establecen el marco inicial para unir ambos mundos.

Las organizaciones que desean introducir estos conceptos tecnologicos, por lo general ya cuentan con una plataforma de servicios, con la cual pueden introducir una nueva capa : Orquestación de Servicio y procesos de negocio. Para implementar estas disciplinas la organizacion debe contar con una base tecnológica sustentada sobre SOA y ESB.

Que funciones pueden ser evaluadas en un piloto?
  1. Consumo de Servicios Web (Web Services).
  2. Flujos de Trabajo (Workflows) de Aprobación, Rechazo y notificación.
  3. Utilización de varios participantes (CDC, Operaciones, Ventas).
  4. Proceso de negocio iniciado desde una interfase Web.
  5. Proceso de negocio expuesto mediante un Web Services.
  6. Aplicar Reglas de negocio.
Estas son algunas recomendaciones para iniciar un proyecto con Intalio BPM.

1.- Utilizar un diagrama Base para probar el consumo de servicios Web con Intalio BPM.
2.- Utilizar broker de condiciones, e implementarlos sobre servicios.

3.- Integrar Web Services con brokers de condiciones.

4.- Utilizar BPMN para modelar un proceso.

Saludos.

miércoles, 13 de febrero de 2008

Workflow y Web Services a la lista.

Un aspecto importante en la utilizacion de BPM mediante intalio, es su capacidad para unir los conceptos de Web Services y Workflow en un procesos de negocio. En este ejemplo podemos ver como se introducen ambos conceptos para una empresa de telecomunicaciones que vende productos diversos a sus clientes. Este proceso tiene la resposabilidad de notificar a diversas unidades, la aprobacion o rechazo de la solicitud de un nuevo producto para un cliente, y la configuracion de sus servicios.

En este ejemplo, tenemos dos web services que son invocados por el proceso de negocio, y la participacion de 2 actores, uno para notificacion y el otro para aprobacion.