miércoles, 26 de diciembre de 2007

Orquestacion de Procesos vs Servicios

Es importante diferenciar, dos conceptos que aparecen continuamente en los sitios de tecnología y sobre los cuales existe un gran debate. La orquestación de servicios vs. La orquestación de procesos.

Por lo general, la orquestación de servicios pertenece al dominio de las arquitecturas orientadas en servicios (SOA), y la orquestación de procesos a la gestión de procesos de negocios (BPM).

La diferencia fundamental descansa sobre dos criterios: el estado y la duración. La orquestación de servicios es por lo general sin estado y de corta vida, mientras que la orquestación de procesos es con estado y de larga vida; implementada sobre un BPEL engine.

Los procesos con estado y de larga vida, pueden incluir el consumo de servicios, la gestión de flujos de trabajo conocidos como Workflow, procesos de aprobación como disparadores de un proceso, escalamiento, notificaciones, etc. Por el contrario la orquestacion de servicios no tiene estado, y son funciones atomicas.

Los procesos de negocio, estan conformados por servicios, subprocesos, workflows, etc. y son ellos quienes desarrollan la persistencia necesaria para controlar la orquestacion de alto nivel, que necesitan las organizaciones.

viernes, 2 de noviembre de 2007

Intalio BPMS 5: Utilizacion de doXslTransform

Intalio Designer cuenta con una funcionalidad llamada doXslTransform() que permite utilizar XSLT(XML Document Transformation Language) para transformar datos en los procesos. Esta funcion requiere solo dos parámetros como mínimo. El primer parámetro es la ruta o path de la ubicación del archivo XSLstylesheet, y el segundo parámetros en el documento xml que va a ser transformado.

En algunos procesos de largo aliento, se puede requerir la transformación de determinadas equivalencias, por ejemplo código de clientes en diversos sistemas legado, que por lo general son manejados por los denominados motores semánticos.

Algunas recomendaciones para la realización de transformaciones:
  1. No es recomendable realizar transformaciones XSLT desde Intalio BPM, de mucha envergadura, por lo general esta debe ser funcion de un bus de servicios, que utilice componentes especializados para la transformación de determinas equivalencias.
  2. Podemos utilizar esta función para transformaciones menores desde Intalio.
  3. Es importante, realizar pruebas de concepto con artefactos como XML Spy, para asegurar la conformidad con las instrucciones Xpath.
Saludos.

domingo, 16 de septiembre de 2007

Intalio BPMS 5: Que son las Correlaciones.


Un aspecto importante en Intalio BPMS, son las correlaciones. Para poder entender su significado es necesario ver un ejemplo simple.

Supongamos, que un proceso de negocio es iniciado por una aplicación cliente, y este llama a un sistema de compras para colocar un orden de compra, generando un numero de orden. Mas adelante, este numero de orden origina que se levante una factura y la envié al proceso BPEL. Como hace el motor BPEL para saber cual es el proceso que debe recibir la factura para procesarla? La solución son las correlaciones.

Las correlaciones se usan para identificar explícitamente una instancia de un proceso de negocio. Es un mecanismo a nivel de la aplicación que permite relacionar los mensajes y conversaciones con las instancias de los procesos de negocio a los cuales han sido enviados.

Cuando un proceso de negocio es iniciado, una instancia del mismo es creada, y esta tiene un tiempo de vida. Dentro del engine BPEL, pueden existir múltiples instancias de un procesos de negocio activas al mismo tiempo. Todos los mensajes que son enviados a el proceso tienen que ser entregados a la correcta instancia del proceso.

Como las múltiples instancias de procesos son activadas al mismo tiempo, los datos específicos de las aplicaciones son diferentes y los mensajes intercambiados son usados para mantener referencias a loas instancias especificas de negocios. La idea e asociar los datos específicos de las aplicaciones existente en los mensajes para mantener referencias a instancias de procesos es conocido como Correlación BPEL.

Una correlación es usada para asegurar que un mensaje va a una instancia apropiada basada en el contenido del mensaje. Típicamente, un elemento del mensaje coincide con un valor en la instancia del proceso, para asegurar que el mensaje es enrutado de forma correcta.

En conclusión, una correlación es un mecanismo para asociar un numero de mensajes con una instancia de proceso.

Saludos.

martes, 28 de agosto de 2007

Intalio BPMS 5: Mejores Practicas y lecciones aprendidas.

Para iniciar un proyecto BPM con Intalio BPMS 5, es necesario conocer, cuales son las practicas básicas que aseguren un buen inicio. Hace algunas semanas desarrolle un conjunto de pruebas de concepto con las siguientes tecnologías:
  1. Mule como bus de servicios empresarial.
  2. Axis como SOAP Engine para exponer los servicios. Esta implementación fue basada en Mule.
  3. y por su puesto Intalio BPMS version 5.
Las primeras pruebas que recomiendo para comenzar con intalio son:
  1. Como orquestar servicios web (Web Services).
  2. Como realizar un mapeo y composicion de servicios.
  3. Como manejar las excepciones de negocio.
Algunas practicas y lecciones aprendidas:
  1. Utilice las herramientas del WS-I para realizar pruebas de interoperabilidad a los servicios.
  2. Utilice SoapUI como herramienta para consumir, probar y realizar pruebas unitarias de web services (aserciones, expresiones xpath, etc.).
  3. Es una buena practica, separar los esquemas del archivo WSDL.
  4. Verifique los soap response de los servicios, evite los namespace vacios (evite xmlns="").
  5. Para capturar los mensajes faul de los web services, utilice sub.procesos.
  6. Maneje las excepciones de negocio con sub-procesos.
  7. Los problemas con las expresiones Xpath son comunes, por errores en los namespaces.
  8. Es mejor trabajar con un solo namespace, es decir un solo package en la implementación del servicios.
  9. La interface de un procesos debe ser "no ejecutable".
Saludos.

miércoles, 25 de julio de 2007

Mi primer proceso.

ok, mucha teoria!!
Vamos a tratar de crear un ejemplo sencillo, para el cual debemos manejar un conjunto de tecnologías para el desarrollo de servicios web (Web Services dummy).

Recomendaciones:
  • Antes de utilizar Intalio, es necesario crear un entorno de servicios (web services dummys). Las tecnologías mas conocidas para el desarrollo y despliegue de componentes como servicios son: Axis y Xfire.
  • Según mi experiencia, si comiezas con Xfire, podrás avanzar mucho mas rápido.
  • El producto final del despliegue es un archivo WSDL que representa el contrato para poder invocar el servicio vía http mediante el protocolo SOAP. En el se describen los mensajes y operaciones requeridas para su consumo.
  • Les recomiendo utilizar una herramienta Open Source llamada SoapUI para consumir los servicios y realizar pruebas unitarias del mismo.
  • Una vez desarrollado los servicios con la respectiva granularidad, es necesario diseñar el proceso de negocio con Intalio diseñador. El insumo principal para comenzar con el diseño, son los archivos wsdl generados anteriormente durante el despliegue de componentes como Web Services.
  • La lógica de negocio, condicionales, reglas, etc. son plasmadas en el diseñador, luego compilamos el proceso para generar los respectivos artefactos de software que serán desplegados en el servidor. Finalizada la compilacion, procedemos a realizar el deploy del Web Services que representa el proceso. Recuerden que en intalio todo proceso es desplegado como un servicio.
Caso de Prueba.

Vamos a crear dos servicios, un servicio de notificacion de eventos, y el otro un servicio para ingresar registros en una bandeja de solicitudes. En la próxima sesión habrá mas detalles.

Saludos.

miércoles, 9 de mayo de 2007

Primeros Pasos con Intalio BPM

Que es Intalio BPM
Primero que todo, intalio es un software Open Source basado en Java-J2EE, que implementa BPMS, y esta basado en un conjunto de frameworks y arquitecturas muy conocidas en la industria del software y con un madurez aceptable. Intalio utiliza la notación para diseñar procesos de negoci0 establecida por el BPMN http://www.bpmn.org/ que puede adaptarse a los requisitos de las arquitectura orientada servicio (SOA).

Básicamente, Intalio proporciona un esquema de adopción sencillo, con bajos costos de propiedad, un soporte bastante amplio de estándares de la industria, un base de comunidades y desarrolladores que contribuyen continuamente con mejoras, corrección y detección de bugs, además cuenta con grandes facilidades para agregar nuevas características (extensibilidad).

Componentes:
  1. Una herramienta para el diseño de los procesos de negocio, basada en Eclipse(ambientes grafico para el desarrollo java).
  2. Un engine que ejecuta los artefactos de software generados por el diseñador de procesos.
  3. Un Servidor de Aplicaciones donde residirán los servicios de procesos de negocio que despleguemos.

Modelo de Negocio

El modelo de negocio de Intalio, esta basado en una licencia dual. IntalioBPMS se distribuye en 3 ediciones: La edición abierta de IntalioBPMS, bajo una licencia pública de Mozilla (MPL) , una edición para la comunidad de IntalioBPMS, y la edición de IntalioBPMS Enteprise.
  1. La edición abierta incluye aproximadamente el 95% del código usado para la edición comunitaria y la de empresa. La edición abierta esta desplegada sobre el servidor de Apache Geronimo J2EE, y la base de datos de MySQL.
  2. La edición comunitaria se distribuye con el servidor de IBM WebSphere, junto con MySQL.
  3. La edición empresarial puede desplegarse en otros servidores y bases de datos, su mayor características es el manejo transaccional.
La implementación de BPM 2.0- BPMS se distribuye alrededor del ide(ambientes de desarrollo integrado) Open Source Eclipse, y esta basado en un conjunto de plugins. Esto nos permite contar con un diseñador sobre un ambiente extensible de utilitarios y componentes desarrollados por terceros. Por ejemplo intalio utiliza un rule engine llamado Corticon, Celequest PKI, y orbeon para XForms.

Intalio tiene una participación activa en los siguientes proyectos:

  1. Apache Geronimo.
  2. Base de datos de MySQL.
  3. Orbeon para XForms.
  4. Corticon para Reglas de Negocio.
  5. etc.

Links de Interes.

http://www.bpmn.org/
http://www.eclipse.org/gef/
http://www.eclipse.org/modeling/emf/?project=emf
http://www.orbeon.com/

miércoles, 28 de marzo de 2007

BPEL y BPMN

Los sistemas de soporte operacional en las empresas están basados en procesos que conforman su cadena operativa, soportando por ejemplo, los ciclos para la gestión de clientes, productos, servicios, recursos humanos, contabilidad, finanzas, administración, presupuesto, etc.

La agilidad operativa en la administración de estos procesos, es un diferenciador competitivo vital y una de las principales características que una organización necesita para poder adaptarse a los continuos cambios de negocio. El éxito dependerá de la rapidez con la cual las organizaciones puedan adaptarse a estos cambios.

Por lo general, las empresas tienen analistas de negocio, que definen y establecen los ciclos y los procesos de negocio. Su función es mejorar, optimizar los procesos, equilibrar los requerimientos con los objetivos de la organización, etc. Tradicionalmente los analistas han utilizado herramientas para modelar y representar los procesos. Luego estos procesos son desplegados en alguna tecnología que pueda ejecutarlos y crear una representación técnica basada en un lenguaje de programación.

Resumiendo, el proceso se modela en una herramienta grafica, creando una representación de los procesos de alto nivel, como el modelo no trae un ejecutable directamente, los programadores deben crear componentes que implementan los procesos sobre una tecnología específica y basada en su comprensión del proceso.

Los procesos desarrollados de esta manera son muy susceptibles a errores de comprensión, errores de codificación, debido a la desconexión existente entre el modelo de alto nivel y el proceso ejecutable. En este tipo de soluciones, un cambio implica un impacto significativo, es necesario por ejemplo, reescribir código, cambiar el modelo, etc., además es difícil obtener métricas para medir el estado actual y las condiciones de negocio vigentes.

Problemas con este modelo de implementación.

  1. Los procesos desarrollados de esta manera son muy susceptibles a errores de comprensión y errores de codificación.
  2. Existen grandes brechas entre el modelo y su implementación técnica.
  3. Un cambio implica un impacto significativo en la infraestructura TI de la organización, porque los procesos están cableados en el código.
  4. Las reglas de negocio, están altamente acopladas a los procesos.
  5. Mantenerlos es extremadamente engorroso, difícil y costoso.
  6. Debido a los continuos cambios, los procesos pierden vigencia continuamente y pueden llegar a convertirse en piezas incomprensibles, con un nivel de detalle que aprisiona la agilidad.
  7. No podemos automatizar los cambios de políticas.

Una Solución

Para solventar estos problemas, los gerente de IT utilizan una solución basada en modelos, con una alternativa de implementación mas abierta y estándar: BPM y BPEL.

BPEL es el estándar de la industria que representa y ejecuta procesos del negocio, bpel permite una abstracción lógica del proceso del modelo de implementación o tecnología. BPEL esta basado en una notación XML que permite representar los procesos de negocio.

Otro estándar, Business Process Modeling Notation (BPMN), es una especificación que proporciona una notación que todos los usuarios puedan entender, los analistas bosquejan inicialmente los procesos para que los desarrolladores lo ejecuten.

Con BPEL y BPMN, un analista puede utilizar una herramienta para modelar el proceso y construir el proceso usando BPMN. El modelo del proceso BPMN genera automáticamente un entorno para BPEL, donde se establecen metadatos, reglas de negocio, bifurcaciones, flujos de trabajo, participantes, punto de decisión, etc.

Beneficios

  1. Simplifica la comunicación y colaboración entre los arquitectos, analistas y desarrolladores.
  2. Habilita y disponibiliza el concepto de SOA en la organización.
  3. BPEL proporciona un modelo rico en operaciones como el manejo de excepciones, reglas de negocio, transaccionalidad, etc.
  4. La visión lógica no demuestra los detalles subyacentes de la puesta en práctica.
  5. Cambios no afectan la representación total del proceso.
Pronto, iniciaremos pruebas de concepto con Intalio BPM. Saludos.

viernes, 23 de marzo de 2007

SOA y BPM. Suenan bien!!!

Cada día, surgen eventos, ambientes de negocio, y tecnologías que exigen a las organizaciones, el desarrollo de estrategias más innovadoras y eficaces para protegerse del aumento en la diversidad de tecnologías y condiciones de negocio.

Dentro de este escenario, han surgido un conjunto de arquitecturas tecnológicas para disminuir los riesgos e incertidumbre que son generados continuamente .

Uno de estos marcos de arquitectura con mayor presencia es SOA (Arquitectura orientada en servicios), SOA propicia la disponibilidad de recursos computacionales, a través de servicios, SOA permite combinar aplicaciones y tecnologías diversas, eliminando la redundancia de información y acelerando la entrega de proyectos, basados en la consolidación de servicios reusables.

Otra marco es, BPM (Gestión de procesos de negocio), BPM proporciona la agilidad de gestionar los procesos de negocios y sus reglas mediante la actualización de un simple diagrama, que luego es desplegado, sin que esto repercuta en problemas de mantenibilidad. Todos los procesos puede ser medidos, monitoreados y gerenciados según los requerimientos de negocio.

SOA y BPM han surgido como estrategias de negocio, para proporcionar a la empresa mayores niveles de agilidad, protección tecnológica y retorno de inversión.

Algunos Beneficios:
  • La Agilidad para ajustar los procesos de negocio, proporciona a la organización mayores niveles de adaptabilidad y protección ante los cambios de políticas de negocio y tecnologías.
  • La utilizacion del concepto de servicio o contrato, desacopla las funciones de los sistemas de soporte operacional de las tecnologías (legados, etc.) que las implementan, proporcionando mayores niveles de adaptabilidad y disminuyendo el impacto ante el cambio.
  • Los procesos de negocio pueden ser cambiados y optimizados sin que esto impacte significativamente la infraestructura de TI de la organización. Esto crea las condiciones para adquirir una ventaja competitiva a corto plazo.
  • Las organizacion tendrá la capacidad de evolucionar y desarrollar estrategias que protejan su inversión en TI.
  • La organización podrá responder ante las exigencias del mercado con menos recursos, balanceando su capacidad y generado procesos innovadores y diferenciadores.
Intalio BPM y este contexto?

Intalio es una solución Open Source para el desarrollo de procesos de negocios basados en los estándares de la industria: BPMN, BPEL y BPEL4People.Con intalio, podemos diseñar, desplegar y optimizar procesos de negocio, con la promesa de es hacer estos sin escribir ni una línea de código.

Desde el punto de vista tecnológico, intalio BPM provee la tecnología para crear una capa que provee servicios (Web Services), que modelen los procesos de negocio de la organización y todas sus reglas de negocio. BPM debe descansar sobre una arquitectura orientada en servicios (SOA).

Intalio implementa BPM.

Algunas Recomendaciones para iniciar un proyecto BPM + SOA con Intalio.

  • El desarrollo de BPM, debe estar acompañado por metodologías, especificaciones, estándares y guidelines que aseguren un diseño óptimo y la disminución de los riesgos en su adopción.
  • Desarrollar un mapa de procesos actual, e identificar las brechas, y oportunidades de mejora.
  • Desarrollar un mapa de procesos de nueva generación. Donde se establezcan los procesos operativos y estratégicos con una amplia comprension y orientación a la visión de negocio.
Proximamente, entraremos en el mundo de Intalio.

miércoles, 14 de marzo de 2007

Bienvenidos!

Bienvenidos!

Este portal pretende ser la primera referencia en español en el mundo, sobre el proyecto Open Source: Intalio BPM. En este site, incluiremos una base de conocimiento para contribuir con la difusion de este tipo de arquitectura, y todos sus beneficios.

Saludos.