Building Optaplanner Applications using the BRMS Business Central GUI: The Missing Guide

1 Introduction

A potential customer is interested in seeing how BRMS Business Central can help him build an Optaplanner (also known as Business Resource Planner) application using the GUI alone after I demonstrated to him the Optometrist rostering app based on the Nurse Rostering sample application.

Optometrist Rostering App
Optometrist Rostering App

I wanted to create a simple Optaplanner app so I picked cloud balancing. The problem statement for cloud balancing can be found here:

A sample implementation can be downloaded here:

However, the rules in the sample implementation are in native .DRL syntax. The customer wants to see everything created using Business Central GUI tools, if possible. This is the reason why I wanted to re-create this example using Business Central.

Please note that you have to add the “plannermgmt” and “kie-server” roles to you user login to Business Central in order to see the Optaplaner-specific GUI and manage the execution server. Continue reading Building Optaplanner Applications using the BRMS Business Central GUI: The Missing Guide

Making JBoss Fuse, Data Virtualisation and BPMS Work Together – Part 1

Introduction

Red Hat has been using the phrase “Accelerate, Integrate and Automate”, for sometime now, to explain its comprehensive middleware portfolio to its customers. Red Hat middleware does not work in isolation. It is imperative that these different middleware products can work together to achieve a business outcome.

In this article, I am going to show you how to make the 2 “Integrate” products: JBoss Fuse (Fuse), JBoss Data Virtualisation (JDV) and the “Automate” products: JBoss Business Process Management Suite (BPMS)/JBoss Business Rules Management System (BRMS) work together. Since BPMS/BRMS and JDV run on JBoss Application Server (EAP), I can even claim that this example involves middleware products of all 3 categories ie, Accelerate, Integrate and Automate. Continue reading Making JBoss Fuse, Data Virtualisation and BPMS Work Together – Part 1

BPMS/BRMS 6.3: An Intelligent Process Server Odyssey

The Journey Begins

With the release of BPMS/BRMS 6.3 back in May, I think it is time for me to embark on a journey to explore its new features. What better to do than migrate an existing business rules application which I deployed on the Realtime Decision Server in BPMS 6.1 to 6.3’s new Intelligent Process Server. A piece of cake, so I thought… Continue reading BPMS/BRMS 6.3: An Intelligent Process Server Odyssey

A Load Generation Framework for CEP Application Testing and Demos

 

1 Introduction

Have you ever lamented over how difficult it is to test a CEP application, let alone doing a demo? Common challenges include:

  • How to generate events for testing a CEP application?
  • How to demo a CEP application?
  • Cannot be real-time, it takes too long
  • Lack of infrastructure during demo
  • Need repeatable outcome

In this article, I am going to show you a framework that I developed which allows you to define external events in a CSV file, play them back to your CEP application in demonstrations in accelerated time. This framework can also be used to generate a large volume of events based on event arrival distribution either in realtime or accelerated time to load test your CEP application. It is such a versatile tool that you can even use it to perform discrete event simulation (not described in this article).

The framework solves all the problems listed earlier by allowing you to:

  • Configure load to drive your CEP application
  • Run your CEP application in accelerated time
  • See the results quickly
  • Use it as a reusable infrastructure for CEP application testing and demos
  • Achieve repeatable outcome

Examples will be provided to showcase the capabilities of the framework including playing back configured events for a CEP application and realtime load generation using JBoss Fuse/A-MQ and event arrival patterns (distributions).

This article is divided into the following main sections:

  • The Optometrist CEP Application – this CEP application shows how to configure individual events to drive the CEP application in a CSV file.
  • The Stock Price CEP Application – this is a simple CEP Application which illustrates the event generation capability based on event arrival distribution.
  • Realtime Load Generation via Fuse and A-MQ integration – this section illustrates how realtime load generation can be achieved running multiple instances of the load generator to feed the Stock Price application via Fuse and A-MQ by applying software design patterns to loosely couple the load generator and the CEP application.
  • How it works – shows the UML class diagram containing the load testing framework classes, their attributes, operations and relationships. It also describes how the framework works including how the load generator is loosely coupled to your CEP application using the Observer design pattern.

The first few sections give you an overview of the capabilities of the framework. The “How it works” section outlines how the framework works. Continue reading A Load Generation Framework for CEP Application Testing and Demos

Building a BPMS Web Application Part 2: Remote Java API

(This article assumes some basic knowledge of the JBoss BPM Suite including using Business Central.)

In Part 1, I described how to make use of the BPMS form metadata, run it through a code generator to produce JSPs for the UI and Java ActionBeans to handle these JSPs (for process instantiation and manual task interaction). Although the code to integrate with BPMS eg, to kick off a process instance and interact with the human tasks can be found partially in the generated ActionBeans, how exactly it works is still shrouded in mystery. This article will solve the mystery. Continue reading Building a BPMS Web Application Part 2: Remote Java API

Building a BPMS Web Application Part 1: Code Generation

(This article assumes some basic knowledge of the JBoss BPM Suite including using Business Central.)

In a previous article, I described how to use the new jBPM Form API to build a BPMS web application. I also outlined a different approach in which code generation can be used to replicate the forms to the web application using the form metadata on the BPMS Execution Server. Although I provided a link to my OpenShift implementation of such a BPMS web application, the technical details on how this is achieved is still scarce. This article remedies that. Here is a recap on why we want to build a web front end to a business process. BPMS forms are generated and customised by business analysts when they create business processes. Few customers use the forms on the BPMS Execution Servers. They prefer to build a web application that interacts with the business process remotely running on a BPMS Execution Server so that fine-grained access control, consistent look-and-feel and better client interaction can be achieved. One way to do this is by using the new jBPM Form API and the other way is to use code generation to replicate the forms using the form metadata. Continue reading Building a BPMS Web Application Part 1: Code Generation

Building a JBoss BPMS Web Application using jBPM Form API

(This article assumes some basic knowledge of the JBoss BPM Suite including using Business Central.)

JBoss BPMS forms are generated and customised by business analysts when they create business processes. The forms are usually used for kicking off a business process instance and interacting with the user when the process reaches a user task eg, for a manager to manually approve a loan. Few customers use the forms on the BPMS Execution Servers. They prefer to build a web application that interacts with a business process remotely running on a BPMS Execution Server to gain fine-grained access control, consistent look-and-feel and better client interaction. The main issue is how to use the forms generated on the BPMS server from the web application. There was no easy way to do that until the recent release of JBoss BPMS 6.1. Continue reading Building a JBoss BPMS Web Application using jBPM Form API

Robot Programming using JBoss BRMS

One of my hobbies is building robots. After programming several robots, I say to myself: there’s got to be a better way of doing this. You program the behaviour of a robot using a micro-controller. Every time you want to make a change, you have to re-flash the on-board non-volatile flash memory. If you compare this practice with enterprise applications, it is similar to that of many older enterprise applications which embed business logic in code. The solution is to move the embedded business logic (in our case, the robot behaviours programmed on micro-controller) out to be managed and executed by a business rules engine. This is exactly what I did. And I call my robot CepBot. Continue reading Robot Programming using JBoss BRMS

Building a JBoss BPMS Rules Application without Writing Code

This article assumes some basic knowledge of the JBoss BPM Suite including using Business Central.

JBoss BPM Suite (BPMS) and JBoss Business Rule Management System (BRMS) 6.1 introduced a new component called the Real-time Decision Server (RTDS). Rule projects built using BPMS can be deployed directly onto the Real-time Decision Server via Business Central. Applications can instantiate and execute rules on the RTDS using either a REST or JMS interface.

In this article, I am going to show you how you can build a rule-based application without writing even a single line of Java code. The application aims to rate locations for placement of mobile speed cameras. It is an example application I made up and is not being used by any Police Departments. My simplified speed camera placement rating criteria are based on: Continue reading Building a JBoss BPMS Rules Application without Writing Code