jBPM: Corralo en cualquier parte!

En este post discutiremos un poco sobre el Suite de BPM de JBoss, el KIE Workbench, y su API de acceso remoto. Esta API permite a la gente acceder al runtime preconfigurado y manejable por el usuario en el workbench desde aplicaciones externas, a través de APIs REST y JMS. Provee un exelente punto de conección para cualquier tipo de aplicación. Pero antes de entrar en detalles acerca de cómo se expone, discutamos un poco acerca del KIE Workbench como herramienta.

Manejando BPM (y más) desde el KIE Workbench 

El KIE Workbench toma su nombre de la frase “Knowledge Is Everything” (“El conocimiento es todo”). Esto siginifica que el suite no se enfoca solamente en proveer un runtime y editores BPM para un usuario final, sino ademas para cualquier representacion de conocimiento que ayude a un usuario y a la compañía a hacer crecer su base de inteligencia. Esto incluye reglas de negocio, procesos, conectores para BPM a distintas interfaces, tablas de decision, modelado de datos, casos de prueba, tablas de scoring, y seguirá creciendo para incluir aún más representaciones de conocimiento en el futuro.

Esto siginifica que cualquier tipo de experto de negocio no estará limitado a solo una herramienta, como suele ocurrir con otras Suite de BPM, sino que ademas tendrá acceso a todo un set de herramientas dependiendo de cuál se adapte mejor a la decisión del momento.

Estos tipos de conocimiento estan agrupados en estructuras de proyectos basados en Maven, y versionados usando un sistema virtual de ficheros basado en Git SCM. Estas herramientas permiten que los proyectos se expongan de una manera facil de integrar en el ciclo de Continuous Delivery de la compañía, permitiendo cambios y testeos tan detalladamente como sea posible siempre que un cambio se haga a la base de conocimiento.

Y definir conocimiento hasta el punto de tenerlo listo para producción no es el ultimo punto de esta herramiento, sino que ademas provee un ambiente de runtime donde se pueden usar procesos, tareas, reglas, todo corriendo junto:

Pero el propósito de este documento no es una introducción al Suite de BPM, sino concentrarse en las diferentes formas que esta herramienta se expone a otros tipos de aplicaciones. Por lo tanto, vayamos al grano 🙂

Not sólamente una herramienta Java

Gracias a la API de acceso remoto que mencionamos al principio de este post, todos los componentes del runtime se exponen a aplicaciones externas. Hay varias aplicaciones clientes que pueden mostrar cómo se accede a este runtime usando aplicaciones Java, pero no había un ejemplo donde se mostrara cómo hacerlo desde otro tipo de aplicación. Eso es lo que encontrarán a continuación

Corriendo fuera de Java

En esta URL, podrá encontrar un set de scripts PHP que trabajan basados en un KIE Workbench externo. Para instalar uno, pueden utilizar el ejemplo publicado en “jBPM6 Developer Guide” para instalaciones rápidas. Pueden correrla ejecutando el siguiente script:

git clone https://github.com/marianbuenosayres/jBPM6-Developer-Guide.git
cd jBPM6-Developer-Guide/chapter-04/kie-wb-installer
mvn clean install exec:exec

Configuracion

Si desean cambiar el acceso a la instalación del KIE WOrkbench, simplemente editen los comandos define en el archivo connect.php:

define ('jbpm_host', 'localhost:8080');
define ('jbpm_rest_url', 'http://'.jbpm_host.'/kie-wb/rest');
define ('login_user', 'mariano');
define ('login_pass', 'mypass');

Saludos!

jBPM: Run it anywhere!

In this post we will discuss a bit of the BPM Suite from JBoss, the KIE Workbench, and its Remote API. This API allows for people to access the preconfigured, user managed runtime in the workbench to outside applications, through REST and JMS based APIs. It provides a great point of connection for any kind of application. But before we go into detail about how it is exposed, let’s discuss a bit about the KIE Workbench tool and what it provides to us

Managing BPM (and beyond) with the KIE Workbench 

The KIE Workbench gets its name from the phrase “Knowledge Is Everything”. This means that the suite is not just focused on providing BPM editors and runtimes to the end user, but any kind of knowledge representation that helps the user and the company grow its knowledge base. This includes busines rules, business processes, BPM connector interfaces, decision tables, data models, test cases, scorerards, and it will continue growing to include even more knowledge representations in the future.

This means that any form of business expert won’t be limited to just one tool, like other BPM tools, but it will have a whole toolbox to work with.

These types of knowledge are grouped together in project structures based on Maven, and versioned using a Virtual File System based on Git SCM. These tools allow for the projects exposed in this project to be easily integrated in the Continuous Delivery Cycle of any company, allowing for changes to be tested as thoroughly as possible whenever a change is done to the knowledge base.

And defining knowledge up to the point of being production ready is not the end of this tool, but it also provides a runtime environment where we can use those processes, it’s internal tasks, and run everything together:

But the purspose of this post is not to give an introduction of the tool, but to concentrate on the different ways this tool is exposed to other types of application. So let’s get on with that 🙂

Not just a Java tool

Thanks to the Remote API we mentioned at the beggining of this post, all these runtime tools are exposed to external applications. There are a lot of client applications to show how to access this remote api using Java tools, but there wasn’t one to show how to do it from a plain application. That’s where we come in

Running outside of Java

In this URL, you can find a small set of PHP scripts that work based on the jBPM6 Developer Guide runtime configuration, but outside its runtime completely. You can easily install yourself a KIE Workench by running the following script:

git clone https://github.com/marianbuenosayres/jBPM6-Developer-Guide.git
cd jBPM6-Developer-Guide/chapter-04/kie-wb-installer
mvn clean install exec:exec

Configuration

If you wish to access another instalation of the KIE Workbench, simply edit the define commands in the connect.php file:

define ('jbpm_host', 'localhost:8080');
define ('jbpm_rest_url', 'http://'.jbpm_host.'/kie-wb/rest');
define ('login_user', 'mariano');
define ('login_pass', 'mypass');

Cheers!