Thursday, April 16, 2015

What's New in Red Hat JBoss BRMS & JBoss BPM Suite 6.1 Release

Today it has arrived!

The official release of JBoss BRMS and JBoss BPM Suite 6.1 has brought to you an array of interesting and new functionality.

You can find the products on the Customer Portal for downloading and using today.

Before you get started with all of the content and assets that we have available right from the launch, we wanted to provide an overview.

This article will cover some of the features to be launched in this new version and detail the various demo content that is ready for you to start exploring with the new products.

First off, a few of the interesting items that might catch your attention outside of the various visual usability features are presented here.

What's new

  • Support for Red Hat JBoss EAP 6.4.
  • Realtime Execution Server
    • a standalone, out-of-the-box component that can be used to instantiate and execute rules via interfaces available for REST, JMS or a Java client side application. Created as a web deployable WAR file, this engine can be deployed on any supported web container.
  • Extending Business Central
    • Business Central can now be configured to add new screens, menus, editors, splash screens and perspectives by the Administrator. These elements can extend the functionality of Business Central.
    • limited support is also provided for branding of Business Central, including logos, colors and backgrounds.
  • Task form improvements
    • additional functionality such as the ability to embed your designed forms into external applications.
  • Documents in processes
    • create your own strategy to handle uploaded documents attached to a form.
  • Business Resource Planner
    • a lightweight planning engine, is included with this release and is fully supported.
  • Social Aspects
    • some social feeds for keeping up with user activities across the organization, watch as users build up history and activities in information streams.
  • Certifications
    • JDK: Oracle Java 8 and OpenJDK 8.
    • Browsers: Firefox 31 and Internet Explorer 10.
    • Servers: Oracle WebLogic 12c and Red Hat JBoss Fuse 6.1 (Engine only).
    • Databases: Oracle 12c, PostgreSQL 9.2 Enterprise and DB2 10.5.
  • Technical Preview (not yet fully supported)
    • Guided Decision Trees Editor
      • a new editor has been added to support modeling of simple decision trees.
    • Asset Management
      • a new feature that allows you to create repository structures, including branches, for maintenance, versioning and distribution of your projects Assets can be moved between different branches and repositories can be managed or unmanaged.
Outside of the new and shiny features that are available, we have some exiting content to let you explore the new products without having to build a project yourself.

Demo overview

JBoss BPM Baggage process
The following demo projects can all be found in JBoss Demo Central, but are listed here for you to explore directly.

Note that this new product release uses an installer that no longer includes JBoss EAP, so you will need the JBoss EAP 6.1 installer and the JBoss BRMS or JBoss BPM Suite installers.
Do note that the various demo projects have the option to build a containerized version with docker, these will be updated to the new products over the coming days.

Moving forward there will be more demo project updated and included that are currently in progress to showcase some of the new features listed above.

Monday, April 13, 2015

Red Hat Taste of Training - Managing Virtual Databases with JDV

There are often questions asked of me around JBoss Integration & BPM products when people run into me at conferences, events or online.

I have taken many of these questions home with me and they get answered in the form of an article around Tips&Tricks label or maybe a demo project gets created.

I am a teacher, I have a story to tell and you out there are a big part of the path this story takes.

Sometimes a student is just looking for a learning experience that mirrors the classroom, so with that in mind Red Hat has provided a series of free videos that give you a Taste of Training.

This just under 5 minute video will teach you how to manage virtual databases using the Red Hat JBoss Enterprise Application Platform (EAP) console, a part of Red Hat JBoss Data Virtualization server.

It is based on the course JB450, Red Hat JBoss Data Virtualization Development.

Enjoy and be sure to check out the other offerings brought to you by Red Hat Training.



Thursday, April 9, 2015

JBoss BPM Suite Quick Guide: Automating Email User Task Notifications (part 2)

Previously we went through a project where there was a bit of trouble around the completion of user tasks in a timely manner.

We showed you how to setup automated task reassignment for any task that was claimed from the group and then not completed in a timely manner.

We had the task reassigned back into the group for others to work on.

Little did we know this would not be enough to make this process project run smoothly for our users, so read on in this first part one of two articles that will lead you through setting up email notifications for your processes.

The problem

After putting this into production we noticed that it was not enough to just assume that users from a group would claim and complete tasks in a timely manner.

The issue that arose was that these users had no idea when a task was waiting for them as there were no alerts.

Figure 1: task properties to add notification.
We need to setup an email alert to be sent to the group and/or users when a new user task is added to the group and sits unattended for a specified period of time.

The configuration

Before we can actually use the JBoss BPM Suite process designer to setup our desired email notifications, we need to make sure our server is configured to process email notifications, knows our users and knows our groups.

Figure 2: notifications will open the editor.
See part one of this series for the details around configuration of a JBoss BPM Suite server for sending e-mail through the provided sub-system.

The notifications

We are now ready to a an email notification to our user task, the Approve Reward task in our example project.*

In the process designer select the user task, open the Properties panel on the right as shown in figure 1. Then open the Editor for Notifications found under the Extra Properties section as shown in figure 2.

Figure 3: body message.
In the editor we can add a new notification and fill in the fields with the following data:

  • Type: not-started
  • Expires at: 2m
  • From: Administrator
  • To Users: erics
  • To Groups: manager
  • Reply to: (leave empty)
  • Subject: Task needs attention
  • Body: (enter body of message, for example see figure 3)

The results should have your editor looking something like figure 4, after which we can save and commit our adjustments to the process.
Figure 4: notification for task completed.

If you configured the project yourself as shown in part 1 of this series, or if you are using the provided workshop demo project*, then you can now build and deploy to test the e-mail notifications in your process.

Within the default JBoss BPM Suite notification configuration, we have chosen to use the default mail setup. This is a setup that expects a local SMTP server (mail server) to listen for messages on port 25.

Figure 5: capturing e-mail notifications.
The easiest way to test this without setting up your own mail sever, is to make use of the provided fakeSMTP server as found in the support directory from our example project.*

You can run this as admin user and start the server to catch JBoss BPM Suite server e-mail notifications when you run your process and let the Approve Reward task sit in the group unclaimed for longer than 2 minutes:

$ sudo java -jar support/fakeSMTP.jar

When e-mail notifications are sent you should see them appear in the fakeSMTP applications window as shown in figure 5.

This concludes the series on automating e-mail user task notifications, where we configured the server and then showed you how to setup a user task to generate e-mail notifications.


[*In this article we will use the HR Employee Rewards demo project as a baseline, which you can also build from scratch by following the JBoss BPM Suite online workshop. If you obtain this project, follow the install instructions you will find a completed solution of what is described here.]

Tuesday, April 7, 2015

Red Hat Taste of Training - Integration Java Applications with JBoss BRMS

There are often questions asked of me around JBoss BRMS & JBoss BPM Suite when people run into me at conferences, events or online.

I have taken many of these questions home with me and they get answered in the form of an article around Tips&Tricks label or maybe a demo project gets created.

I am a teacher, I have a story to tell and you out there are a big part of the path this story takes.

Sometimes a student is just looking for a learning experience that mirrors the classroom, so with that in mind Red Hat has provided a series of free videos that give you a Taste of Training.

This just over 8 minute video will take you through a JUnit Test that is designed to simulate integration between a Java application and Red Hat JBoss BRMS. It uses content taken directly from Implementing with Red Hat JBoss BRMS (JB465) course.

Enjoy and be sure to check out the other offerings brought to you by Red Hat Training.



Friday, April 3, 2015

Docker How To For JBoss Integration & BPM Projects

(This article was co-authored with Andrew Block, Senior MW Consultant in NA for Red Hat)

One of the fastest ways to get up to speed with JBoss Integration & BPM middleware is to check out the sample projects hosted on JBoss Demo Central.

There you can find example applications that can demonstrate the use of concepts such as business rules, business processes, integration and so much more.

These demo projects showcase an array of products ranging from JBoss Data Grid, JBoss Fuse, JBoss EAP, JBoss BRMS, JBoss BPM Suite and more.

In addition, each project can also be deployed in multiple ways and in different environments.

This amount of flexibility gives you a lot of choice in how you might want to explore the possibilities available to you with JBoss Integration & BPM solutions.

If we look at the JBoss BRMS & JBoss BPM Suite projects you have no less than three choices in how you can explore them:
  1. automated installation on your local environment
  2. 1-click deployment to the OpenShift xPaaS Cloud (bpmPaas)
  3. deployment to a Docker container

Docker background

While an automated installation to a local environment has been a constant in each of the example applications for some time, a recently implemented feature provided in most applications is the ability to build an entire demo environment into a Docker image and deploy to a Docker container.

This provides the developer the ability to tap into many of the benefits Docker provides such as rapid application deployment and portability across machines.

It is left to the reader to install Docker, but once it is installed and configured in your local environment, you are ready to build and run one of the projects from JBoss Demo Central in Docker.

A full walk through of these steps is featured in this video:



Quick guide

First, navigate to the JBoss Demo Central website and locate a project with a Docker installation option that you would like to try out.

After selecting the project, you are brought to the GitHub repository. Download and unzip or clone the repository to your to your local machine.

With the source code now available on your local machine, build the Docker image representing the demo environment. This environment typically includes a JBoss middleware product and an example application.

Each Docker image that is created utilizes a common parent image. This image contains many of the software development tools required such as Java, Git and Maven. Since they are created in Docker, the developer does not need to install and configure these tools on their machine.

Once the image has been built, a new container can be run from the newly created image initializing the demo project environment. The README file contained in each repository provides the next steps on how to complete the objectives of the demo along with additional information on preparing, building and running the application within Docker.

Creating a demo environment within Docker is quick and easy.

Be sure to check the JBoss Demo Central site frequently to experience the latest ways you can master JBoss Integration & BPM middleware.

Wednesday, April 1, 2015

JBoss BPM Suite Quick Guide: Customize Your Rules Maven Repository

There is a fantastic JBoss Business Rules Management System (BRMS)* demo project that ties together rules, events and most importantly shows you how to use the scanner from a web application to pickup rule changes as they are pushed into production.

The demo is called the JBoss Cool Store and it gives you a lovely online web shop to work with while showcasing some of the various rules and features of the product.

What has been a bit of an issue for many people to get their heads around has been the KieScanner, a component you put into your application that then scans a maven repository for knowledge artifact updates.

This means you have the externalized business knowledge that can be maintained by users outside the scope of development of the online web application, in our case the web shopping cart.

The issue

With our local setup it was a bit confusing to start up the product, which would then rely on your personal local maven settings (settings.xml), to see it deploy any knowledge artifacts into the repository it found there, usually the local repository ($M2_HOME/.m2/repository).

Dynamically scanning for rule updates
from web shopping cart, without
new deployment.
Then we would build our online shopping cart web application which uses repository settings in the projects configuration (pom.xml) to find any dependencies it needs at build time. If the web application project did not find the knowledge artifacts in the remote repositories listed in its configuration, it would search the local repository and find the knowledge artifacts just fine.

The issues came about runtime, when we want to update our shipping rules for example, build and deploy a new version, but do not see the web application picking up the new version. We do see the scanner we setup picking up the new version but this is the session, not the application that is applying the knowledge artifacts. The application remains on the same static built version of our rules.

How to change this you ask?

Easy enough, we just need to modify your personal maven settings so we can add in the repository where JBoss BRMS is deploying its knowledge artifacts.

Externalizing maven repository

I am not a fan of tweaking personal maven settings, so we have customized the JBoss BRMS settings to point to a custom configuration that points to a temporary maven repository, thereby externalizing it so that our scanner can then also keep an eye on it for new rule updates.

What has changed and where is it located?
  • a system property was added to standalone.xml pointing to custom settings for maven
  • a custom settings.xml was added to specific location with externalized repository for the scanner
First off we need to specify a new custom maven setting location for JBoss BRMS by adding a system property to file found at:

jboss-eap-6.1/standalone/configuration/standalone.xml

The system property can be added to existing or if there are not yet any added, just copy this:

<system-properties>
    <property name="kie.maven.settings.custom" value="${jboss.home.dir}/bin/.settings.xml"/>
</system-properties>

We are locking the maven settings location here:

jboss-eap-6.1/bin/.settings.xml

Now we can look at the actual settings that need to define our repository location which we want to tie down to /tmp/maven-repo so that we can be sure to have our scanner find it. Also note in the below maven settings that the repository has the updatePolicy set to always so that the scanner always has the latest version of our knowledge artifacts.

<localRepository>/tmp/maven-repo</localRepository>

<repositories>
 <repository>
  <id>jboss-bpm-suite-repo</id>
  <name>JBoss BPM Suite Maven Repository</name>
  <url>file:///tmp/maven-repo</url>
  <layout>default</layout>
  <releases>
   <enabled>true</enabled>
   <updatePolicy>always</updatePolicy>
  </releases>
  <snapshots>
   <enabled>true</enabled>
   <updatePolicy>always</updatePolicy>
  </snapshots>
 </repository>
</repositories>

<pluginRepositories>
 <pluginRepository>
  <id>jboss-bpm-suite-repo</id>
  <name>JBoss BPM Suite Maven Repository</name>
  <url>file:///tmp/maven-repo</url>
  <layout>default</layout>
  <releases>
   <enabled>true</enabled>
   <updatePolicy>always</updatePolicy>
  </releases>
  <snapshots>
   <enabled>true</enabled>
   <updatePolicy>always</updatePolicy>
  </snapshots>
 </pluginRepository>
</pluginRepositories>

Now when you install the project initially, it builds a web application to deploy once that scans for new builds from JBoss BRMS where it can then pick up new knowledge artifacts as they become available in the externalized repository.
Adjust shipping tier pricing, build & deploy
project, watch scanner pick up changes!

All this happens dynamically and without a new web application redeployment, the next user gets the new rules.

Try adjusting the decision table shipping prices and then deploy a new set of your rules, the very next user of the JBoss Cool Store shopping cart will see the new shipping prices on the very next run after the scanner picks them up (10 seconds after deployment, watch the server logs).

[* It should be noted that we are talking about JBoss BRMS in this article, but the solution offered is interchangeable with JBoss BPM Suite as this is a super set adding processes to the rules and events in JBoss BRMS.]