BPMN, XPDL y BPEL… cuál escoger?

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. Modela tanto la secuencia de actividades como los datos o mensajes intercambiados entre los distintos participantes. 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 leido por personas) a un formato leible por máquinas (y permitir el intercambio entre distintas herramientas).
En ausencia de BPML, nos encontramos con BPEL y XPDL como soluciones a esa traducción:

BPEL es un lenguaje ejecutable con sus variables y operaciones. Las operaciones permiten enviar y recibir mensajes SOAP y tiene un gran soporte para XML y transformaciones XML. Además, permite de manera fácil invocar múltiples servicios web al mismo tiempo y sincronizar los resultados.
BPEL no tiene soporte gráfico; es decir, no especifica como deben ser los diagramas interpretativos de los procesos que define.
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.

XPDL, por su lado, especifica un formato de diseño de los procesos. Permite una representación gráfica de los procesos incluyendo coordenadas X e Y para cada nodo implementado. Además, los nodos pueden especificar atributos tales como roles, descripción de actividades, timers, llamadas a servicios web, etc… Suele ser preferido cuando se trata de implementar procesos o workflows con interacciones humanas, ya que en esto supera a BPEL (para soportar interacciones humanas, BPEL necesita de añadidos a la especificación, lo cual dificulta su portabilidad ya que suelen ser implementaciones propietarias de cada proveedor).
El objetivo de XPDL es almacenar y permitir el intercambio de diagramas de procesos. Intenta ofrecer una manera estándar para representar procesos de tal manera que puedan ser importados/exportados por cualquier editor que implemente el estándar.
XPDL 2.0 tiene extensiones que permite representar todos los aspectos de BPMN.

A veces, el intercambio de procesos BPEL entre distintas herramientas no es todo lo satisfactorio que se desearía (ya que cada proveedor implemente BPEL “a su manera”; incluso cuando el objetivo inicial de la especificación era la unificación en la forma de implementarlo).
Por el contrario, XPDL en su representación de BPMN si es transportable de una herramienta a otra (ya que luego cada proveedor realiza su conversión de XPDL a BPEL según necesite; o incluso ejecuta XPDL de forma nativa). Por eso, XPDL se puede establecer como un formato ideal para intercambio de procesos entre distintos proveedores que transformarán los desarrollos al formato BPEL adecuado a sus necesidades.

BPEL y XPDL no son competidores entre sí, ya que pueden ser complementarios según el uso que se haga de ellos. De hecho, a partir de un modelo BPMN podemos pasar a un proceso BPEL ejecutable por un motor de una herramienta.
Igualmente a partir de un proceso BPMN podemos obtener una implementacion XPDL (de hecho, desde la versión XPDL 2.0 esto es inmediato en ambos sentidos) que puede ser ejecutada por algunos motores de forma nativa. La desventaja del paso de BPMN a BPEL es que no siempre se puede hacer el camino inverso (lo que dificulta la exportación/importación entre herramientas). Pero tampoco hay una necesidad imperiosa de ello: BPEL y XPDL están pensados para cosas distintas; pero pueden ser complementarias si se utilizan de esa manera.

Es interesante la aproximación a la cadena de valor BPMN-XPDL-BPEL que se detalla en el artículo “Understanding the BPMN-XPDL-BPEL Value Chain” de Nathaniel Palmer:

  1. El usuario genera un diagrama con notación BPMN del proceso que quiere construir.
  2. Se guardan los diagramas parciales como XPDL durante el desarrollo. En el caso de XPDL 2.0 esto es inmediato.
  3. Finalmente se traducen ciertas partes a BPEL (básicamente en lo que a intercambio de datos se refiere, no a interacciones humanas donde BPEL no es adecuado ya que necesita de modulos específicos que son diferentes en su implementación por los distintos fabricantes).

¿Qué creeis? ¿Habéis utilizado alguna vez alguno de estos estándares?

Espero que cuando menos se hallan disipado alguna de las dudas acerca de las tres implementaciones más conocidas de que disponemos para crear Procesos de Negocio.

Links interesantes:

The BPMN-XPDL-BPEL value chain (Go Flow)
Recursos XPDL (WFMC)
Recursos BPMN (OMG)
Recursos BPEL (OASIS)

4 Responses to “BPMN, XPDL y BPEL… cuál escoger?”

  1. Aqui en MX. creo que el único actor “presente” es BPEL, quizá se deba BEA y ORACLE con sus respectivos productos lo esten promoviendo abiertamente.

    Adicionalmente he probado la solución que da NetBeans sólo que aun no encuentro como agregar una “human-task”.

    Saludos…

  2. “…procesos que correrán dentro de dichas aplicaciones…”

    Vale que en este mundo haya que usar muchas siglas y palabras en inglés, pero hay usos de palabras que, por mucho que las vea, me siguen doliendo. Mi pobre español…

  3. Curiosamente yo no conozco ninguna herramienta que utilice para tiempo de ejecución ambos lenguajes (XPDL y BPEL) simultaneamente. Las únicas dos que conozco es la de Filenet (que usa XPDL) y la de IBM que usa BPEL.

    Por otro lado, ¿impacta la creación de BPEL4People y WS-HumanTask en la utilización de XPDL? Es decir, BPEL + estas extensiones da una funcionalidad tan rica como XPDL (en la parte humana)?

    Y un último comentario, entiendo que BPMN no es una herramienta para la ejecución de procesos de negocio, solo para su representación gráfica. ¿O acaso estoy equivocado?

  4. Quizás no sabría decirte con exactitud si es mejor BPEL4People o XPDL en el terreno de la parte humana. XPDL suple bien este terreno; por ello se plantea BPEL4People como alternativa seria a lo referente a las interacciones humanas y como complemento a BPEL que carece de ello. No obstante, expertos en el tema hablan de BPEL y XPDL como dos tecnologías complementarias y en ningún caso sustitutorias
    Hay que tener en cuenta que en la actualidad el binomio BPMN+BPEL es claramente el más usado; de hecho, es el que recomienda el BPMI (Business Process Management Initiative). Por ello creo que al final se impondrá éste por ser el más impulsado por la industria.

    En lo referente a BPMN, en efecto, se trata de un estándar de representación gráfica de procesos (lo que comúnmente suele utilizarse en el BPA (Business Process Analysis) de una herramienta BPM o en algo tan común como un documento Visio que ya ofrece las extensiones necesarias para su modelización). Posteriormente, será necesaria la traducción a un lenguaje capaz de ser ejecutado por un motor de procesos como BPEL o XPDL.

Leave a Reply