jBPM, Bonita, Intalio, ProcessMaker, Activiti. Qué BPM Suite uso?

Ultimamente, en los cursos que suelo impartir o durante la etapa de consultoría con algún cliente me preguntan ¿Qué BPM me recomendarías? o, he comprado un CMS y viene con un Workflow, podría crear un Sistema de Gestión de Expedientes?
Y mi respuesta siempre es, sabes qué es un BPM?, sabes lo que implicaría construir aplicaciones siguiendo BPM en tu organización?. Pues la respuesta es muchas veces “no”. En esta situación, siempre lo mejor es aclarar los conceptos e
iniciar algún proceso de evaluación de tecnologías, casos de éxitos, costes económicos y las consecuencias.

jBPM, Bonita, Intalio, ProcessMaker and Activiti

jBPM, Bonita, Intalio, ProcessMaker and Activiti

Este post es el primero de una serie de posts relacionados con BPM Free/Open Source. En este primero haremos una presentación rápida de las alternativas tecnológicas de los BPMs free/open source de mayor actividad y hacernos una idea
de cuál o cuáles son los más adecuado para cada escenario que nos encontremos en nuestras Organizaciones.
En los siguientes posts entraremos en detalle en cada uno de las herramientas BPM, inclusive haciendo alguna prueba de concepto con cada uno de ellos.

Antes de iniciar con la revisión, describiré qué elementos o componentes importantes existen en una Suite BPM y unas definiciones.

1. Definiciones y conceptos

BPM: Business Process Management.

Metodología que permite analizar el comportamiento de la organización a través de los procesos.
De Wikipedia (http://es.wikipedia.org/wiki/Gesti%C3%B3n_de_procesos_de_negocio)
“Se llama Gestión de procesos de negocio (Business Process Management o BPM en inglés) a la metodología corporativa cuyo objetivo es mejorar la eficiencia a través de la gestión de los procesos de negocio, que se deben modelar, organizar, documentar y optimizar de forma continua. Como su nombre sugiere, BPM se enfoca en la administración de los procesos dentro de una organización.”

BPMS: Buiness Process Management System or Suite.

Un conjunto de herramientas o componentes que busca automatizar la construcción de aplicaciones siguiendo la metodología BPM.

2. Componentes en una Suite BPM

1. Workflow:
Es el motor que ejecuta/orquesta los procesos de negocio definidos, lo hace siguiendo un lenguaje que el motor entiende, comunmente es BPEL.

2. Process Designer:
Es la herramienta que permite definir los procesos de negocio usando una simbología o lenguaje natural propio de BPM.
Este lenguaje puede ser BPMN o XPDL, algunos también suelen considerar BPEL.

3. Form Creator:
La herramienta que me permite definir los formularios de interacción humana, es decir, formularios donde el usuario/persona puede iniciar, rechazar, aprobar, etc, es decir, interactuar con una instancia de un proceso de negocio.

4. Business Activity Monitoring (BAM):
De la Wikipedia (http://en.wikipedia.org/wiki/Business_activity_monitoring):
“… is software that aids in monitoring of business activities, as those activities are implemented in computer systems.”

Los elementos de un BAM son: KPI’s (indicadores claves de rendimiento), Dashboard (consola que permite monitorizar en tiempo real el valor actual de los KPI’s para tomar decisiones).
En mi opinión, el concepto de BI (Business Intelligence) engloba a BAM. Mientras que BAM aplica a las Organizaciones, BI es una disciplina y conjunto de herramientas que aplica a diferentes escenarios.

5. Business Rules Engine (BRE):
De la Wikipedia (http://en.wikipedia.org/wiki/Business_rules_engine):
“… is a software system that executes one or more business rules in a runtime production environment. The rules might come from legal regulation (“An employee can be fired for any reason or no reason but not for an illegal reason”), company policy (“All customers that spend more than $100 at one time will receive a 10% discount”), or other sources. A business rule system enables these company policies and other operational decisions to be defined, tested, executed and maintained separately from application code.”

6. Connectors:
– Para ECM
– Para LDAP
– Para ESB, etc.

Son aquellos componentes que hacen que los BPMS tengan más sentido dentro de la Organización, por ejemplo, un sistema de gestión de expedientes donde su motor sea un workflow no tiene sentido sin un repositorio documental para alojar los documentos entrantes y salientes.

3. BPMS/Workflows Free/Open Source

Existen muchos Workflows engine, BPMs free/open source y comerciales, nos centraremos únicamente en los proyectos FOSS y que de alguna forma están formados por los componentes antes indicados.

Pero por si os de interés, la lista de BPMS/Workflows FOSS actualizada (basada en “Open Source Workflow Engines in Java” – http://java-source.net/open-source/workflow-engines) al 2009 es esta:

BPMS FOSS list - 2009

BPMS FOSS list - 2009

Download (XLS) Lista aquí.

4. BPMS Free/Open Source

Iniciaré una revisión con los BPMS siguientes, ya que en mi opinión, estos son los proyectos más activos en este momento:

  • 1. jBPMEs el BPMS más veterano, Red Hat está detrás de esta iniciativa y en el 2010 hubo un cambio en el equipo de proyecto, esto dio paso al uso de Drools como BPM engine dentro de la versión 5.
    También dió paso al nacimiento de otro proyecto BPMS llamado Activiti.
    Aunque es un proyecto relativamente de un uso muy intensivo, la versión 5, es muy joven.
  • 2. BonitaBPMS que sin mucho aspavientos, resuelve con creces los objetivos de cualquier BPMS de esta época: Social, Colaboración y Zero Code.
  • 3. IntalioOtro proyecto veterano y equiparable a los BPMS comerciales, aunque la fuerza de su comunidad es muy baja.
  • 4. ProcessMakerEs BPMS muy versátil y eficaz. Hace lo que la gran mayoría de las PYMES necesitan. Es el único en esta lista construída en PHP.
  • 5. ActivitiEs el proyecto más joven de los evaluados, a nivel técnico el proyecto es muy prometedor aunque le falta posicionarse en el sector de los BPMS.

Para tener una noción de qué BPMS es la más adecuada para nuestra organización, es necesario revisar y valorar cuantitativamente cada una de ellas.
La valoración cuantitativa la hago con una escala de 0 (no tiene o no existe) a 5 (cumple al 100%) para la existencia de ciertas características y funcionalidades de la tabla siguiente:

List of BPMS features to evaluate

List of BPMS features to evaluate

Entonces, la valoración quedaría así:

Evaluation of jBPM

Evaluation of jBPM

Evaluation of Bonita Open Solution

Evaluation of Bonita Open Solution

Evaluation of Intalio|BPMS Community Edition

Evaluation of Intalio|BPMS Community Edition

Evaluation of ProcessMaker

Evaluation of ProcessMaker

Evaluation of Activiti

Evaluation of Activiti

Conclusiones

Después de valorar cuantitativamente cada una de los BPMS, concluímos:

  1. Si el día de mañana tenemos que iniciar un proyecto siguiendo BPM que requiera el uso de los estándares, que sea posible integrarlo a las diferentes aplicaciones legadas y que el volumen de usuarios es muy alto, entonces Bonita Open Solution es nuestra alternativa.
    Partimos también que si iniciamos un proyecto nuevo dentro de la organización, es necesario contar con información técnica actualizada y abundantes ejemplos que puedan ayudar a cómo se construir rápidamente aplicaciones BPM.
  2. Si nuestra organización es una PYME, Bonita Open Solution y el resto de BPMS quedan algo grande excepto ProcessMaker. Al usarlo no se pierde nada valioso, todas las funcionalidades que BPMS comerciales y las otras analizadas, ProcessMaker las tiene.
    Si el volumen de usuarios se ve incrementado, no hay problema, ProcessMaker puede ser escalado sin ningún problema o si deseas puedes contratar la versión SaaS alojado en Amazon EC2.
  3. Para usar jBPM debemos esperar que la fuerza de su comunidad crezca, abundante y exacta información técnica exista, aunque si las organizaciones valoran la buena integración con Drools, entonces jBPM es la mejor alternativa.
  4. Activiti, al igual que jBPM, aunque inicien con versiones superiores o iguales a 5.1, los pocos o ninguno casos de éxitos, la poca documentación técnica del producto se traduce en poca confianza en el producto, pues Activiti no es una buena alternativa.
    Técnicamente, Activiti es de lo mejor, al ser parte del proyecto Alfresco ECM, es una cuestión de tiempo para que se convierta en el BPM de referencia.
  5. Intalio comparado a los 4 BPMS restantes es otra buena alternativa, aunque la incorporación de funcionalidades muy importantes en la versión Enteprise Edition disuade su uso.
    Por otro lado, al igual que la gran mayoría de productos con licenciamiento dual (Open Source y Comercial) no tiene documentación exacta, quedando únicamente los foros públicos como medio para solventar dudas.
jBPM vs. Bonita vs. Intalio vs. ProcessMaker vs. Activiti

jBPM vs. Bonita vs. Intalio vs. ProcessMaker vs. Activiti

Observaciones

Este artículo expresa mi personal opinión acerca de estos proyectos resultado de haber pasado por varios procesos de revisión y conocimiento de cada BPMS antes de iniciar un proyecto de desarrollo.

Entender que esta revisión pretende ser una forma rápida para identificar la solución BPMS que se ajusta a mis necesidades.

No pretender ser una referencia absoluta, ni nunca lo será.

El resultado de la evaluación está relacionado a mi conocimiento del producto, que es fruto de haber usado dichas suites en proyectos reales y pruebas de concepto.

En los siguientes artículos entraré en mayor detalle en cada uno de ellos, comparando características concretas como por ejemplo, el nivel de implementación de BPMN2 o la tecnología usada para generación automática de formularios, etc.

Entonces, espero que este os haya servido de algo.

End.

Referencias:

@Chilcano

Tagged with: , , , ,
Posted in BPM
24 comments on “jBPM, Bonita, Intalio, ProcessMaker, Activiti. Qué BPM Suite uso?
  1. wenchingchua says:

    english version? do you have more example why i need to use this tools for? and how does these tools fit well with portal or something like that? i am always curious about how to fit BPM into the existing applications i have. Any help?

  2. Kris Verlaenen says:

    Hi,

    I was wondering why you seem to have excluded parts of the jbpm-console functionality? You mention that it is a tool for system administrators, but this is not really the case. While this was definitely true for earlier versions of jBPM, the jbpm-console in jBPM5 should be high-level and user-friendly enough so that end users can also use it directly:

    * It offers task lists and task completion (using task forms), and thus acts as a WS-HumanTask client (feature 13)
    * It offers reporting capabilities where people can get an overview of the current state, and even allows you to define your own KPI using the Eclipse BIRT reporting, which seems to match quite nicely with the BAM requirements you described (feature 10). I would also like to refer to this chapter in the documentation regarding BAM capabilities:
    http://docs.jboss.org/jbpm/v5.1/userguide/ch16.html

    Thx,
    Kris

    • Dear Kris,
      first of all thanks for reading this blog.

      I totally agree with your comments on BAM, I forgot include BIRT in jBPM (IDE and Console), that is really useful!.

      On Task management from Console. Yes, It allows full task completion but no automatic creation of forms or templates for human interactions.

      I would like to create Forms/Templates but independently from the jBPM Console. Yes, It is possible technically, but any tool with auto-generation of forms and automatic mapping between workflow variables and form field will be awesome.

      In the end, We can see that jBPM 5.x is a good tool and is production-ready, always looking improving.

      Regards.

      Roger

  3. […] nice analysis of BOS by Roger Carthuatocto (in Spanish, but Google translate is very […]

  4. J Henderson says:

    Good article, I do not understand your scoring system though. For example, ProcessMaker scores 3 points in several areas where the feature is 100% present? (Business Rules Engine, Web form builder, document management)

  5. Sergio says:

    Hola,

    Me gustaría estar pendiente de todos los post que vas a ir agregando. Yo estoy especilizandome en estos momentos en SOA-BPM. La experiencia que tengo es con Progress y con Oracle. Tomé algunos cursos oficiales de JBoss y se me hace de muy bajo nivel comparado a los anteriores; pero muy probablemente existen otras formas de hacerlo mas sencillo de lo complicado que parece.

    Muchas gracias y mi correo de contacto es yys2312@hotmail.com

    Saludos

    Sergio

  6. Excelente reporte
    He estado investigando los proyectos Bonita y Processmaker entre otros que mencionan, muy de acuerdo con sus conclusiones.
    En el caso Intalio, dada la condición ambigüa de su licencia, creo que dudaría en incluirlo como opción open-source.

    Gracias

  7. Fernando says:

    Hola buenos dias! tengo que hacer un proyecto que consiste en:
    Desde una plataforma web monitorizar los procesos de negocio mediante gadgets. Dichos gadgets muestran el estado de los procesos de negocio. En pocas palabras tengo que simular una consola Jbpm que interactua con su motor workflow.
    Alguien sabe que lenguaje usa la consola jbpm para interactuar con el motor workflow.

    • Hola Farias,
      primero tendrías que definir “qué es monitorizar”, segundo identifica qué versión de jBPM usarás y si éste ofrece un API el cual consumir desde tu plataforma web que implementarás.

      Al ser un API tendrías que verificar el lenguaje de programación permitido, en el caso de jBPM versión 5.1 y en este blog post hablo de jBPM Console basado en GWT:

      Saludos.

      • fernando says:

        Monnitorizar, es mostrar el estado del proceso mediante graficos, diagramas…etc
        Uso la ultima version jBPM, necesito comunicar mi plataforma web con el motor de workflow, pero no se que lenguaje de programación tengo que usar.

      • Yo creo que tienes todo lo que necesitas, el lenguaje de programación desde Java, GWT o cualquiera que te sientas comod si usas WS.

        Y en la web pone lo sgte:

        http://www.jboss.org/jbpm/components/console.html

        jBPM console:

        Business processes can be managed through a web console. This includes features like managing your process instances (starting/stopping/inspecting), inspecting your (human) task list and executing those tasks, and generating reports.

        It can be used to:

        Manage process instances: start new process instances, inspect the state of currently running instances (annotated on the process diagram), etc.
        Manage tasks: tasks that are assigned to human actors can be looked up and completed using task lists, task forms, etc.
        Reporting: Reports can be generated based on the history information collected when executing processes.

        http://www.jboss.org/jbpm/components/other.html

        “The jBPM project consists of a lot of other, smaller components as well:

        Human task service: Independent, pluggable component to manage the life cycle of human tasks. It is based on the WS-HumanTask specfication and allows advanced features like task delegation, escalation, etc.
        Process repository: Guvnor is used as a process repository to store and manage your process definitions. It consists of a back-end to store the definitions and other types of data (like task forms, process images, etc.), including versioning. A web-based interface allows non-technical users to look up and even modify process definitions, manage deployment, etc.
        History log: Stores history information about the process instances that are being executed. This information can then be used to look up infromation, generate reports, etc.”

      • Fernando says:

        Gracias tirare con todo esto para ir empezando a ver que tal…si tenéis mas sugerencias mandarme vuestras opiniones.

  8. Actualmente JBPM es lo mejor en robustez, y bonita es lo mejor para novatos windosers..

    bonita sale beneficiado dada su condicion “windosera” ya que es amigable y muchos usuarios se van por alli..

    en el caso de JBPM es terrible de configurar y poner en marcha, especialmente ne un entorno con seguridad de multiusuario,

    sin embargo JBPM es mucho mas robusto que el engine de bonitasoft, tanto que bonitasoft emplea Jboss para su despliegue de produccion.. ironico? no, sino que es obvio..

    con JBPM5 la cosa se pone mas ruda para los demas dado que Jboss development Studio incluira en la version de pago JBPM a todo dar…

  9. Mikel Gonzalez says:

    Hola Roger,
    Estaría interesado en revisar el resultado de tus opiniones. He comprobado que los contenidos han sido eliminados de dropbox. Agradecería pudieras enviarmelos a esta dirección de correo: mikelgonzalez1973@gmail.com

    Gracias por adelantado. Mikel.

  10. Nipa Shah says:

    It is a a great blog. A lot of detailed information. I wonder, if you have comparison for the newest versions of the same.

  11. sanchita says:

    english version please

  12. Melissa says:

    Thanks for this article very interesting points of view. Your links to the docs on dropbox seem to have been removed any chance you can share them with me?
    I see this was written in 2011 do you have the same opinion on these offerings in 2014 as there have been numerous releases from each since 2011. Thanks in advance. Melissa

  13. Edgar says:

    Hello, any chances of an upgrade for this article?

  14. Ale says:

    Van a actualizar este articulo?
    Saludos muy interesante

  15. andrea says:

    Muy buen artículo. Yo también estoy interesada en conocer tu opinión acerca de las nuevas versiones de los productos analizados (en particular jbpm y activiti).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
%d bloggers like this: