Principales estándares BPM y Suite Open Source
Alejandro Roldán - Consultor Principal
Históricamente las soluciones de gestión de procesos de negocio (conocidas como BPMS - Business Process Management Suite) han utilizado sus propios lenguajes, herramientas de diseño y mecanismos de comunicación para la modelización y ejecución de procesos de negocio.
Afortunadamente, en los últimos años, se ha logrado alcanzar el consenso de los grandes fabricantes de la industria (Sun, IBM, Microsoft, BEA, Oracle, SAP, Software AG, Apache, IONA, etc) llegando a acuerdos para crear estándares que permitan la utilización de un notación común así como lenguajes de modelado y ejecución de procesos de negocio independientemente de la solución software donde se ejecuten.
Entre los estándares creados destacan los siguientes:
XPDL
XPDL (XML Process Definition Language) se corresponde al primer intento de definición de un estándar para la definición y ejecución de procesos de negocio en el año 2001. La WfMC continuó trabajando en XPDL y publicó la especificación XPDL 2.0 en octubre de 2005, versión que no ha sufrido cambios hasta la liberada en abril del 2008 (v2.1).
XPDL, especifica una notación para el diseño de los procesos ofreciendo una manera estándar de representar procesos de tal manera que puedan ser importados/exportados por cualquier editor que lo soporte.
Este estándar ha sido el preferido cuando se trataba de implementar flujos de negocio (workflows en ingles) con intervención humana.
BPMN
BPMN implementa una notación de modelo para procesos, concretamente el conjunto original de especificaciones propuestas por BPMI (Business Process Managment Iniciative) ahora parte del OMG (Object Management Group).
Se trata de una notación gráfica de los pasos y actividades de un proceso de negocio. BPMN no está pensado para modelar aplicaciones, sino procesos que correrán dentro de dichas aplicaciones. Por ello, la salida de BPMN necesita ser expresado en "algo" que no sea un lenguaje programático.
Es aquí donde entra en juego BPML (metalenguaje desarrollado por BPMI). Así, a través de BPML disponemos de la traducción de un formato gráfico (para ser leído por personas) a un formato leíble por máquinas. En ausencia de BPML, nos encontramos con BPEL y BPEL4People como soluciones a esa traducción.
BPEL
BPEL es un lenguaje "ejecutable" que permite especificar variables y operaciones. Las operaciones permiten enviar y recibir mensajes SOAP y tiene un gran soporte para XML y transformaciones. El objetivo de BPEL es ofrecer una forma de orquestar servicios web, la secuencia de interacciones subyacente y el flujo de datos punto a punto. BPEL no tiene soporte gráfico estandar; es decir, no especifica como deben ser los diagramas interpretativos de los procesos que define.
BPEL4People
La desventaja de BPEL es que se trata de un lenguaje que no tiene en consideración las tareas que requieren intervención humana. A falta de un estándar, cada fabricante de herramientas BPM que soportan BPEL, han incorporado desarrollos propios para soportar las interacciones humanas. De todos ellos destaca la extensión denominada BPEL for People (BPEL4People) creada por diversos fabricantes (IBM, SAP, etc) que incorporan roles de usuario mediante la introducción de una nueva actividad ("actividad de persona"). Es el estándar más aceptado actualmente por la industria.
JPDL
No obstante, además de XPDL, existe un lenguaje específico definidos por Jboss para los procesos definidos en Java. Se trata del lenguaje JPDL (Java Process Definition Language), el cual permite la descripción de procesos de negocio mediante la definición de tareas y actividades humanas a traves de un lenguaje orientado a grafos. Se trata de un lenguaje maduro y estable y que es utilizado por el motor jBPM (aunque a partir del 2007 también incorpora una extensión de BPEL).
PVM
Una iniciativa interesante es la formada por diversos fabricantes Open Source (Jboss, Bonita) que se han unido para la creación de una máquina virtual de procesos (PVM - Process Virtual Machine) que nos permita ejecutar multiples lenguajes de ejecución. Puede ser la base para la creación de un nuevo estándar.
Una vez revisados los estándares es necesario elegir qué Suite Open Source es la que mas se ajusta a nuestras necesidades.
En Novayre hemos evaluado diversas Suites, revisando sus características (por ejemplo tipos de licencia), estándares asociados (BPMN, XPDL, jPDL, BPEL, BPEL4People), grado de estabilidad, documentación asociada, tipos de editor y otras características como pueden ser referencias en España, foros de consulta, etc.
La conclusión a la que hemos llegado es que todos las suite Open Source tienen "pequeños" problemas y matices y no hay una solución única para todos los proyectos.
Por grado de madurez, estabilidad y documentación nos decantamos por jBoss JPDL, el cual incorpora tareas humanas dentro del flujo. El diseño se realiza utilizando un plugin de Eclipse por lo que no es necesario utilizar una herramienta adicional. La documentación es excelente y aporta una ventaja adicional que es la posibilidad de automatizar casos de prueba con Junit asociados a cada una de las tareas del flujo definido.
El único "inconveniente" es que la definición del proceso desde el punto de vista del analista no es tan "intuitiva" como puede ser si se utilizara una notación BPMN, ya que su representación gráfica no se parece tanto a un diagrama de actividad o diagrama de flujo sino a un diagrama de grafos. No obstante, no consideramos esto como un problema para no seleccionarlo, creemos que es algo que una buena formación puede arreglar. Incluso se puede definir que el analista de negocio define el proceso en BPMN y luego un analista TIC convierte ese diagrama a JPDL. Digamos que el diagrama BPMN serían los "requisitos funcionales" y JPDL sería el "diseño técnico". Jboss BPEL, que lo hemos evaluado, no ha resultado ser muy estable y sobre todo no incorpora la variante humana (BPEL4People).
Otra opción Open Source muy interesante es Bonita, ya que el analista puede definir el proceso en BPMN utilizando un editor muy intuitivo y fácil de usar (ProEd), y al salvarlo, se convierte en una definición en XPDL.
Esta "conversión" es posible ya que tanto BPMN como XPDL si incorporan intervención humana. Según las pruebas que hemos realizado, la versión 3.1 si es estable, el problema es que desde hace un año se está definiendo una nueva versión, Nova Bonita 4.0, por lo que la 3.1 será obsoleta en breve. Se trata de proyecto a tener en cuenta en el futuro, sobre todo con su integración con Nova Orchestra (BPEL) y la utilización de PVM (Máquina Virtual de Procesos).
La tercera suite Open Source evaluada ha sido Intalio CE el cual utiliza como editor una instalación completa de Eclipse configurada (es decir, no se instala como un plugin sino como una instalación independiente de Eclipse).

Podemos decir que hemos visto muchos inconvenientes entre los que destacamos el acceso al código fuente (realmente no es ni siquiera un proyecto Open Source ya que el código no está disponible y la licencia CE te impide tener acceso al mismo), y la falta de documentación del proyecto. Su mayor virtud es implementar los estándares BPMN, BPEL y BPEL4People. Incluso esa "virtud" se puede poner en duda ya que es dificil seguir el estándar al 100% por lo que no se tiene garantía que el proceso definido con Intalio se pueda ejecutar en cualquier motor.
Esperemos que esta introducción a BPM os sirva para entender los conceptos básicos y elegir la suite Open Source BPM adecuada.
Edificio Marie Curie | c/Leonardo Da Vinci 18, 5ª Planta | Parque Tecnológico Cartuja 93 - 41092 Sevilla | Términos y Condiciones