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:
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.
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.
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.
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:
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.
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).
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).
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?
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.
Por último, para diseñar formularios y aplicaciones completas, y que luego se ejecuten, necesitaremos licencia OpenShift.
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.
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.
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í.
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.)
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.
Aquí compartimos un tutorial para dar los primeros pasos en KOGITO y poder ejecutar el Tutorial del KIE.