Consultoría & Consultores

Hoy hablamos con Adriano D’Ambra (Consultor Senior BPM) sobre una nueva herramienta con la que ha estado trabajando llamada Kogito, basada en tecnología RedHat. Hemos realizado algunas preguntas que nos parecen primordiales para conocer la plataforma y empezar a utilizarla, como:

  • Question 1: ¿Qué es Kogito?
  • Q2: ¿Es equivalente o comparable a un BPMS (Business Process Management Suite)? ¿Qué diferencias existen con PAM (Process Automation Manager) que también pertenece a RedHat?
  • Q3: ¿Se diseñan los procesos y las reglas como en los entornos BPM o se debe programar código fuente?
  • Q4: ¿Para qué tipos de procesos de negocio entiendes que Kogito es apropiado para su implementación? ¿Qué ventajas tiene?
  • Q5: ¿Para quién está orientado?
  • Q6: ¿Qué desventajas tiene?
  • Q7: ¿Qué competidores serían comparables?

Al final del artículo dejamos algunas referencias y artículos interesantes sobre Kogito, y un tutorial para su instalación y uso.

Además, el próximo 19 de noviembre Adriano D’Ambra impartirá junto con Francisco Manso (Arquitecto y consultor BRMS) el webinar «Modelado de Servicios de Decisión utilizando DMN en una herramienta novedosa, Kogito«. Si estás interesado, puedes registrarte de manera gratuita en este enlace.

Q1: ¿Qué es Kogito?

Kogito es una plataforma emergente y novedosa para construir flujos de procesos de trabajo nativos en la nube, integrados con un motor de reglas y un motor de optimización. Se origina a partir de algunos de los proyectos de código abierto más conocidos, como Quarkus, Drools, jBPM, y OptaPlanner, entre otros.

Lyle Wang - Principal Technical Support Engineer | Team Lead - Red Hat | LinkedIn

Aprovecha Quarkus para proporcionar tiempos de arranque supersónicos, subatómicos, súper rápidos y escalado instantáneo en plataformas de orquestación en contenedores Kubernetes OpenShift.

Imagen que contiene Gráfico Descripción generada automáticamente

Los procesos y decisiones ejecutados forman parte de los servicios corriendo en la nube, con una distribución y escalabilidad horizontal automática sin la necesidad de un servicio de orquestación centralizado.

Los servicios desarrollados en Kogito están diseñados para correr y ser escalados dentro de una infraestructura Cloud. Es compatible con las siguientes tecnologías:

Imagen que contiene Interfaz de usuario gráfica Descripción generada automáticamente
  • OpenShift, basado en Kubernetes, es la plataforma de destino para la construcción y la gestión de aplicaciones en contenedores.
  • Quarkus es la nueva pila nativa de Java para Kubernetes que se puede utilizar cuando se construyen aplicaciones con los servicios de Kogito.
  • Spring Boot permite compilar aplicaciones Web como un archivo .jar que podemos ejecutar como una aplicación Java normal (como alternativa a un archivo .war, que desplegaríamos en un servidor de aplicaciones como Tomcat).
  • GraalVM con Quarkus permite utilizar la compilación nativa con Kogito, lo que resulta en tiempos de inicio rápidos y un footprint mínimo. El inicio rápido es casi una necesidad en los ecosistemas en la nube, especialmente si se necesitan pequeñas aplicaciones server-less.
  • Prometheus & Grafana son compatibles con los servicios de Kogito para el monitoreo y análisis de los resultados de los procesos, con extensiones opcionales para construir tableros.
  • Kafka, Infinispan & Keycloak son también algunas de las tecnologías de middleware que Kogito soporta para la mensajería, la persistencia y la seguridad.

Q2: ¿Es equivalente o comparable a un BPMS (Business Process Management Suite)? ¿Qué diferencias existen con PAM (Process Automation Manager) que también pertenece a RedHat?

Kogito no es una suite de BPM tal cual la conocemos los expertos en BPM. Tiene capacidades de ejecución de procesos y un motor de reglas, pero no consiste en una plataforma donde estén todas las aplicaciones de workflow e hiperautomatización integradas en un mismo entorno como en el propio PAM de RedHat, o el de otros fabricantes de iBPMS (intelligent BPMS) como PEGASystem, IBM DBA, APPIAN, etc.

Los iBPMS integran los motores de Workflow (BPM); RPA (Robotic Process Automation); ECM (Enterprise Content Management); ACM (Adaptive Case Management); Data Capture (Captura y Análisis de Documentos digitales); BAI (Inteligencia Artificial para predicción de Mejor Actividad a ser Ejecutada); etc., dentro de un mismo entorno, con mayor facilidad de implementación e integración para usuarios técnicos BPM, pero con no tantos conocimientos de TI como requiere Kogito.

Q3: ¿Pero se diseñan los procesos y las reglas como en los entornos BPM o se debe programar código fuente?

Sí, se pueden modelar los procesos en BPMN y los servicios de decisión en DMN y/o código DRL (Drools). Para ello hay cuatro opciones: Web, Kogito GitHub Chrome extension, Visual Studio Code extension o Desktop (donde su total funcionalidad requiere de licencia OpenShift).

Aquí dejamos el link a los dos modeladores disponibles en la Web que podemos utilizar gratuitamente para modelar cualquier proceso (BPMN) y servicio de decisión (DMN o DRL).

Interfaz de usuario gráfica, Sitio web Descripción generada automáticamente

Muy interesante esta opción para todo usuario BPM, ya que no necesariamente su implementación deberá ser realizada en OpenShift.

En mis primeras impresiones, el modelador BPMN es demasiado elemental, rústico y aún en pañales desde el punto de vista de practicidad. Pero tiene funcionalidad plena y posee todos los artefactos necesarios para poder mapear cualquier proceso de negocio sin limitaciones.

Sin embargo, son particularmente destacables las capacidades del modelador DMN. Sorprenden las capacidades de completitud de modelos que se pueden realizar, comparables a herramientas líderes en el mercado cuyas licencias pueden resultar muy costosas sobre todo para trabajos en consultoría (como Trisotech y Signavio).

Diagrama Descripción generada automáticamente
El próximo 19 de noviembre impartiremos un webinar para aquellos curiosos e interesados en esta tecnología y en la utilidad de la notación, llamado: Modelado de Servicios de Decisión utilizando DMN en una herramienta novedosa «Kogito».

¿Interesado en asistir al webinar gratuito sobre DMN en Kogito?

Regístrate aquí

También es factible utilizar la extensión de VSCode (recomendada) o Eclipse como se muestra en el ejemplo de las figuras siguientes. Donde ya puede existir la interacción e invocación a un servicio de decisión como parte de un proceso determinado.

Diagrama Descripción generada automáticamente
Una captura de pantalla de una computadora Descripción generada automáticamente
Interfaz de usuario gráfica, Texto, Aplicación, Correo electrónico Descripción generada automáticamente

Por último, para diseñar formularios y aplicaciones completas, y que luego se ejecuten, necesitaremos licencia OpenShift.

Diagrama Descripción generada automáticamente
Kogito Documentation

Q4: ¿Entonces para qué tipos de procesos de negocio entiendes que Kogito es apropiado para su implementación? ¿Qué ventajas tiene?

Además de la ventaja ya mencionada en escalabilidad automática horizontal por trabajar en entorno nativo cloud, lo veo totalmente aplicable a procesos donde se requieran muy altas capacidades de respuesta en tiempo real, de máxima performance.

Permite pasar de ejecuciones de procesos tradicionales que rondan en torno a los milisegundos utilizando JavaVM, al orden de los nanosegundos utilizando GraalVM sobre QUARKUS. En la siguiente figura podemos observar los mínimos requerimientos también de memoria comparado a tecnologías anteriores.

Imagen que contiene monitor, captura de pantalla, pantalla, reloj Descripción generada automáticamente

No es apropiado ni está pensado para Gestionar Procesos de Negocio con complejidad de muchas dependencias de procesos y subprocesos en diagramas de colaboración, con capas de múltiples equipos de personas, donde los iBPMS también gestionan los portales de trabajo, distribución de la carga, etc.

Kogito es un gestor de microservicios con procesos más lineales, cortos y simples desde el punto de vista de cantidad de actividades y pasos, y se hace muy fuerte donde dentro de esos microprocesos hay necesidad de tomar decisiones complejas con una performance también muy alta y excluyente.

Q5: ¿Para quién está orientado?

Totalmente orientado a Equipos de Arquitectos IT (Cloud OpenShift) y Desarrolladores Java. Con conocimientos también de desarrollo BPM y/o Decisioning (generalmente hay dos grupos de desarrollo trabajando en colaboración).

Kogito es la extensión de Quarkus de código abierto que permite a los desarrolladores implementar la lógica central de una manera más orientada a los negocios con BPM y no codificando. Aporta conceptos y madurez de más de 15 años de experiencia en proyectos probados en producción como jBPM.

Kogito es la extensión adecuada para las aplicaciones inteligentes de Quarkus. Kogito precompila los ficheros de negocio (como un archivo BPMN o una tabla de decisión de reglas, por ejemplo). Genera automáticamente el ejecutable nativo con su propio endpoint REST que permite la interacción con sus respectivos procesos, tareas y reglas. De esta manera, los desarrolladores sólo tienen que preocuparse de la implementación de la lógica en sí.

Imagen que contiene Interfaz de usuario gráfica Descripción generada automáticamente

Q6: ¿Qué desventajas tiene?

Veo altos requerimientos de conocimiento de infraestructura y desarrollo Cloud, con instalaciones varias necesarias “a mano” a través de líneas de comando CLI; pero principalmente la falta de una plataforma integrada propia en lugar de un cúmulo de herramientas aisladas con múltiples instalaciones y requerimientos separados (MAVEN, Quarkus, VSCode, GraalVM, etc.)

Q7: ¿Qué competidores serían comparables?

Nombro tres fabricantes líderes y reconocidos, donde para la orquestación de microservicios poseen capacidades BPM con filosofía: FAST WORKFLOW AUTOMATION.

MULESOFT, NINTEX e IBM donde en su DBA (Digital Business Automation) CloudPak posee Automation Workstream Services.