Duncan Doyle

Duncan Doyle is the Technical Marketing Manager for the Decision Manager and Process Automation Manager 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, decision management 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, Decision Manager and Process Automation Manager. 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.

Recent Posts

Domain-specific Prometheus metrics with Red Hat Process Automation Manager and Decision Manager

Domain-specific Prometheus metrics with Red Hat Process Automation Manager and Decision Manager

Since version 7.4, Red Hat Process Automation Manager (RHPAM) and Red Hat Decision Manager (RHDM) provide support for monitoring various metrics through Prometheus. The platform’s Execution Server (also known as KIE-Server) provides a Prometheus extension which, if enabled, exposes metrics like the number of containers deployed, the response time of rule and decision evaluations, etc.

In this example, we will use the RHDM 7 Insurance Pricing Demo as our base project. This demo contains a simple Decision Model and Notation (DMN) model that calculates the insurance price based on the age of the customer and whether the customer had previous incidents. The GitHub repository for this demo can be found here and contains detailed instructions on how to set up and run the demo.

Continue reading “Domain-specific Prometheus metrics with Red Hat Process Automation Manager and Decision Manager”

Share
Using sidecars to analyze and debug network traffic in OpenShift and Kubernetes pods

Using sidecars to analyze and debug network traffic in OpenShift and Kubernetes pods

In the world of distributed computing, containers, and microservices, a lot of the interactions and communication between services is done via RESTful APIs. While developing these APIs and interactions between services, I often have the need to debug the communication between services, especially when things don’t seem to work as expected.

Before the world of containers, I would simply deploy my services on my local machine, start up Wireshark, execute my tests, and analyze the HTTP communication between my services. This for me has always been an easy and effective way to quickly analyze communication problems in my software. However, this method of debugging does not work well in a containerized world.

First of all, the containers most likely run on an internal container platform network that is not directly accessible by your machine. A second problem is that, in compliance with container design best practices, containers contain only the minimal set of applications and libraries needed to execute their task. This means that a tool like tcpdump is usually not available in a container. This makes debugging and analyzing network traffic between containers and, thus, debugging of inter-microservice communication a bit harder than in the non-containerized world. This article shows one solution.

Continue reading “Using sidecars to analyze and debug network traffic in OpenShift and Kubernetes pods”

Share
Demystifying the Red Hat Decision Manager and Process Automation Manager Remote Client

Demystifying the Red Hat Decision Manager and Process Automation Manager Remote Client

KIE-Server is the light-weight, cloud-native, rules and process execution runtime of the Red Hat Decision Manager (RHDM) and Red Hat Process Automation Manager (RHPAM) platforms. Lately, I’ve gotten more and more questions on how to use the KIE-Server Client Java API to interact with the KIE-Server execution runtime of RHDM (formerly called Red Hat JBoss BRMS) and RHPAM (RHPAM). To answers these questions, and to create a future reference, I decided to write a number of code examples, accompanied by this article.

The KIE-Server Client Java API provides an easy way for Java applications to communicate with the KIE-Server execution engine of RHDM and RHPAM. The API abstracts the application from the underlying REST and/or JMS communication protocol and transport, making integrations with the server easier to build, test, and maintain.

Continue reading “Demystifying the Red Hat Decision Manager and Process Automation Manager Remote Client”

Share

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.

Continue reading “Spring Boot-enabled business process automation with Red Hat Process Automation Manager”

Share
Detecting credit card fraud with Red Hat Decision Manager 7

Detecting credit card fraud with Red Hat Decision Manager 7

Red Hat Decision Manager provides a vast array of decision management functionality. From the Decision Tables feature in the new Decision Model and Notation (DMN) v1.1, which implements the full FEEL Compliance Level 3 of the DMN specification, to Predictive Model Markup Language (PMML).

Another powerful feature is the Complex Event Processing (CEP) engine. This engine provides the ability to detect, correlate, abstract, aggregate or compose and react to events. In other words, the technology provides techniques to infer complex events from simple events, react to the events of interest, and take actions. The main difference between CEP and normal rules execution is the notion of time. Where standard rules execution in Decision Manager deals with facts and reasoning over these facts, the CEP engine focusses on events. An event represents a significant change of state at a particular point in time or interval.

Recently, I was asked to demonstrate how Decision Manager CEP can be used in a real-time credit card fraud detection system. One of the requirements I was presented with ended up in an interesting rule implementation that forms the basis of this article. The requirement was defined as follows:

Continue reading “Detecting credit card fraud with Red Hat Decision Manager 7”

Share
Getting Started with Red Hat Decision Manager 7

Getting Started with Red Hat Decision Manager 7

The all new and shiny Red Hat Decision Manager 7 has been recently released. Decision Manager 7 is the successor to Red Hat JBoss BRMS, our business rules and decision management platform. In this post we will have a look at the primary new features and provide instructions on how to get started with the new platform, either on your local machine or in an OpenShift Container Platform.

Red Hat Decision Manager 7 focuses on four main themes: Fit & Finish, Cloud-Native, Decision Model and Notation (DMN), and Business Optimizer.

Continue reading “Getting Started with Red Hat Decision Manager 7”

Share
Your first Business Rules application on OpenShift: from Zero to Hero in 30 minutes

Your first Business Rules application on OpenShift: from Zero to Hero in 30 minutes

In a previous blog post, we explained how to deploy an existing JBoss BRMS/Drools rules project onto an OpenShift DecisionServer. We created a decision/business-rules microservice on OpenShift Container Platform that was implemented by a BRMS application. The polyglot nature of a microservice architecture allowed us to use the best implementation (a rules engine) for this given functionality (business rules execution) in our architecture.

The project we used was an existing rules project that was available on GitHub. We did however not explain how one can create a project from scratch in the JBoss BRMS Business Central environment and deploy it on OpenShift Container Platform. That is what we will explore in this article.

Continue reading “Your first Business Rules application on OpenShift: from Zero to Hero in 30 minutes”

Share

What’s New in Red Hat JBoss BRMS and BPM Suite 6.4

Red Hat has just released new versions of its popular business automation products: Red Hat JBoss BRMS &  Red Hat JBoss BPM Suite 6.4. In this post we will highlight the improvements and new features these releases brings. Apart from stability and performance improvements, version 6.4 brings new, highly requested, features that improve the platform experience in larger enterprises.

The new versions of the platforms are available both from the Red Hat Customer Portal (BPM Suite and BRMS) and the Red Hat Developers website. Installation instructions can be found in the “Getting Started Guide” for BPM Suite and BRMS and on the Red Hat Developers “Get Started” pages for BPM Suite and BRMS. Finally, the installation demo’s have been updated to target the latest versions:

  • https://github.com/jbossdemocentral/bpms-install-demo
  • https://github.com/jbossdemocentral/brms-install-demo

Continue reading “What’s New in Red Hat JBoss BRMS and BPM Suite 6.4”

Share
Micro-rules on OpenShift: The CoolStore just became even cooler!

Micro-rules on OpenShift: The CoolStore just became even cooler!

One of our  most popular Red Hat JBoss BRMS demo’s, and one that has been available for quite some time, is the CoolStore demo. The CoolStore demo shows how business rules can be used to calculate values like promotional and shipping discounts in a shopping-cart. It furthermore illustrates concepts like ruleflow-groups and dynamic rule updates using KieScanner.

Continue reading “Micro-rules on OpenShift: The CoolStore just became even cooler!”

Share
A simple guide to provisioning Vagrant boxes with Ansible

A simple guide to provisioning Vagrant boxes with Ansible

Over the last couple of weeks, I’ve been working on some Red Hat JBoss BPM Suite workshop material. One part of the workshop is a four-hour lab that guides the attendees through the development of JBoss BPM Suite 6.x processes, rules and applications (note that this workshop is available to our customers, please contact your Red Hat account manager or local Red Hat sales representative for more information), but I’m going to be sharing part of the story with you today.

The lab-sessions require a pre-installed and pre-provisioned virtual machine, which contains all the material required to run the lab. This means that I need to create, install, provision and deploy a virtual machine that contains all the required tools and code to successfully run the lab sessions. Obviously this can done by hand, but what’s the fun in that?!

Manual work is error prone, hard to reproduce and definitely hard to version control. Hence, we want to have an automated solution in which we can (declaratively) define the layout and configuration of our virtual machine. Say hello to Vagrant and Ansible!

Continue reading “A simple guide to provisioning Vagrant boxes with Ansible”

Share