Spring Boot-enabled business process automation with Red Hat Process Automation Manager

With the release of version 7.1 of Red Hat Process Automation Manager (RHPAM), the platform now supports the deployment of the process automation manager runtime as a “capability” within Spring Boot applications. As Maciej Swiderski, the project lead for jBPM.org (the upstream community project for RHPAM) explained earlier this year, the KIE (Knowledge Is Everything) platform on which RHPAM is built provides Spring Boot Starters to quickly build a business application or microservice with process and case execution capabilities using a minimal amount of code.

Spring Boot Starters comprise a set of dependency descriptors that can be added to your application to easily set up the right dependencies for your project. RHPAM now provides support for the following five starters. This gives you the flexibility to choose exactly the process automation functionality you need in your Spring Boot application:

jbpm-spring-boot-starter-basic : Adds jBPM capabilities to your application. It provides the jBPM/RHPAM-embedded runtime and services to run the process execution engine within your application.

: Adds jBPM capabilities to your application. It provides the jBPM/RHPAM-embedded runtime and services to run the process execution engine within your application. kie-server-spring-boot-starter : Adds KIE Server capabilities to your application. This allows you to run the KIE Server services and RESTful APIs within your application. This starter provides all the business automation features that Process Automation Manager has to offer. This includes process and case execution (jBPM), (business) rules and DMN (Decision Model & Notation) execution (Drools), and business resource optimization (OptaPlanner).

: Adds KIE Server capabilities to your application. This allows you to run the KIE Server services and RESTful APIs within your application. This starter provides all the business automation features that Process Automation Manager has to offer. This includes process and case execution (jBPM), (business) rules and DMN (Decision Model & Notation) execution (Drools), and business resource optimization (OptaPlanner). kie-server-spring-boot-starter-drools : Same as kie-server-spring-boot-starter , but has only rules and DMN execution (Drools) capabilities.

: Same as , but has only rules and DMN execution (Drools) capabilities. kie-server-spring-boot-starter-jbpm : Same as kie-server-spring-boot-starter , but has only rules and process and case execution (jBPM) capabilities.

: Same as , but has only rules and process and case execution (jBPM) capabilities. kie-server-spring-boot-starter-optaplanner : Same as the kie-server-spring-boot-starter , but has only business resource optimization (OptaPlanner) capabilities.

Cloud-native process automation capabilities

The KIE Spring Boot Starters enable new and interesting ways to deploy business automation capabilities in IT architectures. In the cloud and container world of today, business process execution is starting to shift from the traditional, centralized deployments of process execution engines (from the SOA era) to a more agile, de-centralized deployment of smaller process definitions. These smaller process deployments fit extremely well in a microservices architecture. In these architectures, they can either orchestrate microservices, be part of a microservices choreography, or be a mix of both.

The diagram below shows a high-level overview of how the jBPM process execution engine can be deployed as a capability within a microservices architecture. In this example, both the Order Service and Shipping Service use the process execution capability of jBPM, while the Pricing Service and Promotion Service use the rules execution capability of Drools.

Lightweight runtimes and deployment models are needed that can run these process instances in a cloud-native way on modern container platforms such as Red Hat OpenShift. Version 7.0 of Process Automation Manager already provides full support for OpenShift deployments with OpenShift KIE Server images. Version 7.1 provides the developer community even more flexibility by allowing developers to integrate advanced business automation capabilities in their Spring Boot applications and microservices and deploy them on modern Kubernetes clusters. This enables the development of even smaller, lighter services with more-advanced capabilities to automate business process execution, business rules execution and evaluation, and business resource optimization.

Everything you need to grow your career. With your free Red Hat Developer program membership, unlock our library of cheat sheets and ebooks on next-generation application development. SIGN UP

Enterprise process management

With the introduction of more lightweight options for automating business process management and execution, enterprise-class management capabilities and insights into these automated processes still need to be provided. After all, these processes implement the value chain of the organization and, therefore, need to be effectively managed. As such, KIE Server enabled Spring Boot runtimes integrate with the KIE Server Controller and KIE Server SmartRouter, enabling easy integration with the Process Automation Manager Business Central workbench. This enables end users to monitor and manage their distributed, containerized, business automation topology from a centralized (or distributed!) admin console.

As can be seen in the screenshot above, KIE Server capability deployed in a Spring Boot application is registered as a “managed” KIE Server runtime within the Business Central management console. This allows system administrators and operators to efficiently and effectively manage the enterprise process runtime, even in a distributed, cloud-native and containerized runtime topology.

Demo

A demo of this new functionality is provided with the new Order IT Hardware demo in the JBoss Demo Central GitHub repository. The application demonstrates an IT hardware order system, built on the case management capabilities of Process Automation Manager 7. The process engine and KIE Server run embedded in a Spring Boot application and are managed by the RHPAM Business Central workbench. Furthermore, RESTful integration with a Vert.x microservice is demonstrated, as well as an implementation of the Saga Pattern in BPMN2.

The code of the Spring Boot application can be found here. This dependency in the project’s Maven POM file shows the configuration of the KIE Server Spring Boot Starter. By simply marking the application as a Spring Boot application through the @SpringBootApplication annotation, the KIE Server capabilities are bootstrapped inside the application.

The demo includes a complete walkthrough guide that provides full instructions on how to set up the demo on OpenShift and run through a full end-to-end use-case.

Conclusion

With the release of Red Hat Process Automation Manager 7.1, developers of modern, light-weight applications on Spring Boot now have the ability to enhance and augment their applications with business process and business rules execution capabilities through the new KIE Spring Boot Starters. With the support of these business applications and services on OpenShift, Red Hat Process Automation Manager enables the implementation of distributed process and rules management on modern container platforms. At the same time, the integration with the Business Central workbench provides enterprise-wide capabilities to effectively and efficiently monitor and manage these business processes and rules in a distributed production environment.

About the author: Duncan Doyle is the Technical Marketing Manager for the Red Hat Business Automation platforms at Red Hat. With a background in Red Hat Consulting and Services, Duncan has worked extensively with large Red Hat customers to build advanced, open-source, business-rules and business process management solutions. He has a strong background in technologies and concepts like Service Oriented Architecture, Continuous Integration & Delivery, rules engines and BPM platforms and is a subject matter expert (SME) on multiple JBoss Middleware technologies, including, but not limited to, JBoss EAP, HornetQ, Fuse, DataGrid, BRMS and BPMSuite. When he’s not working on open-source solutions and technology, he is building Lego with his son and daughter or jamming along some 90’s rock-music on his Fender Stratocaster.