Eric D. Schabell: April 2015

Thursday, April 30, 2015

Processing with a Camel - How To Integrate JBoss BPM and JBoss Fuse

With the release of the newer versions of the products JBoss BPM Suite 6.1 and JBoss Fuse 6.1.1, we wanted to revisit the integration demo.

We have brought the JBoss BPM Suite and JBoss Fuse Integration Demo project up to date with these latest releases.

These products are used to get you started integrating your BPM projects with your Apache Camel architecture in minutes.

This project provides an automated installation (repeatable) in minutes where you get JBoss BPM Suite running on an instance of JBoss EAP and a separate instance of JBoss Fuse in its very own Karaf container.

There are plans to expand this demo project with various integration scenarios or use cases, but for now we start with just a single story around using a JBoss Fuse camel route to interact with a rules and process project deployed onto JBoss BPM Suite.

Background

External BPM customer evaluation process
This demo is brought to you in part by our very own Christina Lin who is the JBoss Technology Evangelist that focuses on JBoss Fuse & messaging products. There will be more expansion and if you have a use case you would like to see then just let us know.

The project can be found on github and has documentation to get you up and running in minutes.

Demo details

Upon starting the server you will find a JBoss BPM Suite setup with the Customer Evaluation project ready for you to inspect, build and deploy for use by the JBoss Fuse camel route we will deploy.

A new container in JBoss Fuse
The JBoss Fuse component of this demo consists of setting up a new container to deploy our camel route into, where we then watch messages get processed live in the management console as we push them into the waiting queue. Each message will trigger an external call out to the deployed BPM process to evaluate our customer.

Installing and running

The following steps will get you up and running in a matter of minutes with this fully automated and repeatable demo:
  1. Camel route with visual message count
    Download and unzip.
  2. Add products to installs directory.
  3. Run 'init.sh' or 'init.bat'.
  4. Start the JBoss BPM Suite server, login, build and deploy JBoss BPM Suite process project at http://localhost:8080/business-central (u:erics/p:bpmsuite1!).
  5. Add fabric server passwords for Maven Plugin to your ~/.m2/settings.xml file the fabric server's user and password so that the maven plugin can login to the fabric.
     <!-- Login for fabric repo -->
    <servers>
      <server>
        <id>fabric8.upload.repo</id>
        <username>admin</username>
        <password>admin</password>
      </server> 
    </servers> 
    
  6. Start Fuse Server and start up fabric in fuse console:
     fabric:create --wait-for-provisioning 
    
  7. Deploy simple route from projects/brms-fuse-integration/simpleRoute:
     mvn fabric8:deploy
    
  8. Login to Fuse management console at: http://localhost:8181 (u:admin/p:admin).
  9. Connect to root container with login presented by console (u:admin/p:admin)
  10. Create container name c1 and add BPMSuiteFuse profile (see screenshot below)
  11. Looking to Automate your business?
    Trigger camel route by placing support/data/message.xml files into target/jboss-fuse-6.1.1-redhat-412/instances/c1/src/data folder (rename this message on copy for multiple runs)
  12. Enjoy the demo!
This upgrade was made possible in part by the good work of Jeff Bride, a colleague at Red Hat that works wonders in his day job.

We hope you enjoy this updated demo showcasing JBoss Fuse integration with JBoss BPM Suite.

Wednesday, April 29, 2015

Slides from Online PEX Webinar - A Guide to Modern BPM Tools

As mentioned previously, today I presented a webinar Red Hat JBoss BPM Suite based webinar to show you everything you would want to know about our JBoss BPM Travel Agency solution.

This event was hosted by PEX Process Excellence Network and you should be able to view a recording here.

I hope you enjoyed the tour of our JBoss BPM Suite Travel Agency and that you are now able to understand the benefits of using JBoss Automate solutions.


A Guide to Modern BPM Tools

All across the Internet you will find references to solutions, offerings, and products that try to align with business process management (BPM) solutions.

Whether you’re a Business Analyst or in IT strategy, this webinar will illustrate how easy it is to model and automate business processes with modern BPM tools in the travel industry.

If you are talking to an airline, a baggage handler, a bookings agency or anyone in between, they all have one thing in common. They are dealing with complex business processes that often need to combine rules, events, resource planning, and processes.

You’ll take a deep look into a sample solution for this industry, simulating a travel agency booking system with:

  • Service integration
  • Multiple tasks
  • Complex BPM elements and
  • Rule-based fraud detection for payment processing
You will leave with an advanced overview of the capabilities of the Red Hat® JBoss® BPM Suite.

Feel free to reach out if you have questions or comments, I always make time to chat with interested users.

Monday, April 27, 2015

JBoss BPM Suite 6.1 welcomes Business Resource Planner to the family

We are happy to share that with the recent release of Red Hat JBoss BPM Suite 6.1 product, there is a new fully supported component available to you for optimizing your business resources.

Have a planning problem?

Have a complex resource issues?

JBoss BPM Suite includes powerful new tools for optimizing and scheduling business resources. Learn how the Business Resource Planner can tackle a wide range of planning problems, from delivery routing to shift scheduling and even managing compute resources in the cloud.

Look no further than the Business Resource Planner which is highlighted in the video below.

If you still don't believe this is great stuff, then see what the press is saying around this featured component Business Resource Planner.

Note that this component is also available in the Red Hat JBoss BRMS 6.1 product which is a sub-set of the JBoss BPM Suite product.

Solve optimization and scheduling problems with business resource planning




If you are looking to get started with this technology or any part of the JBoss BPM Suite, be sure to check out the free online workshop hosted in the OpenShift Online Cloud.




Stay tuned as more is added to the start we have made with the Business Resource Planner workshop.


Friday, April 24, 2015

Online Free PEX Webinar - A Guide to Modern BPM Tools

Next week on the 29th of April I will be giving a live online webinar around the virtues of Red Hat JBoss BPM Suite.

This event is being hosted by PEX Process Excellence Network and you should register here.

A Guide to Modern BPM Tools

All across the Internet you will find references to solutions, offerings, and products that try to align with business process management (BPM) solutions.

Whether you’re a Business Analyst or in IT strategy, this webinar will illustrate how easy it is to model and automate business processes with modern BPM tools in the travel industry.

If you are talking to an airline, a baggage handler, a bookings agency or anyone in between, they all have one thing in common. They are dealing with complex business processes that often need to combine rules, events, resource planning, and processes.

You’ll take a deep look into a sample solution for this industry, simulating a travel agency booking system with:

  • Service integration
  • Multiple tasks
  • Complex BPM elements and
  • Rule-based fraud detection for payment processing

You will leave with an advanced overview of the capabilities of the Red Hat® JBoss® BPM Suite. 

This FREE webinar will be on: Wednesday, April 29, 2015, 10:00 AM - 11:00 AM Eastern

See you there?

Thursday, April 23, 2015

Red Hat Taste of Training - Deploying to Red Hat JBoss Fuse

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 13 minute video, will teach you how to use Maven to build an application bundle that can be deployed easily to Red Hat JBoss Fuse using the OSGi system available there.

It is based on the course JB421, Camel Development with Red Hat JBoss Fuse.

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



Monday, April 20, 2015

3 Must See Sessions For Red Hat Summit 2015

This years Red Hat Summit conference and co-located DevNation event is being held in Boston, Massachusetts on June 23-26th.

I had previously listed the talks and workshops that I had submitted or co-submitted, but wanted to report back on the final status after acceptance (and rejection) letters were received.

The following are three must see sessions I will be presenting, hosting or joining at Red Hat Summit conference this year.

1. Planning not to fail with JBoss Business Resource Optimizer

The saying goes, failing to plan is planing to fail. We don't want to fail, but with the need to accelerate our integration and BPM projects we often have issues with complex resource planning. A roster needs to be planned, beds assigned to patients, a logistics route optimized, cloud instance resource planning to optimize usage of our workloads or even packing solutions for sub-optimal spaces. All these and more will be yours to solve with the help of the Business Resource Optimizer component included with Red Hat JBoss BRMS & BPM Suite products. 

Join us for a few hours, roll up your sleeves and get dirty as we create solutions that plan, organize and optimize.

(lab: to be hosted within the Choose Your Own Adventure series around JBoss labs with Jim Tyrrell, see agenda for location and times)

2. Racing Camel with BPM and JBoss Fuse

Do challenges have you wrestling with integration in your business? Are you aware that you can easily merge your enterprise Camel integration with your business processes? 

This lab will guide you through the creation of a customer care project containing several BPM processes that integrate seamlessly with JBoss Fuse, Camel routes, provide full BAM reporting abilities and manage it all wtih Fuse Fabric. Get ready for a few hours of fun and adventure as you kick the tires, because after all, a Camel has no purpose until there is a process.

(lab: co-submitted with Christina Lin to Red Hat Summit, see agenda for location and time this lab will be running)


3. Meet the Authors

This is a session where the various Red Hat and JBoss authors will be present for a chat, to sign your books or just to hang out with you. 

This is just a small list of some of the experts in the field that have written books around technologies your are passionate about:
  • Rob Davies     ActiveMQ in Action 
  • Eric D. Schabell     OpenShift Primer
  • Adam Miller    Implementing OpenShift 
  • Grant Shipley    Learning OpenShift 
  • Mike McGrath    Understanding PaaS 
  • Andrew Lee Rubinger    Continuous Enterprise Development in Java 
  • Claus Ibsen    Camel in Action 
  • Bill Burke    RESTful Java with JAX-RS 2.0
  • Pradeep Subramainan    Getting Started with Red Hat Enterprise Virtualization 
  • Russell Bryant    Asterisk: The Definitive Guide 
  • Ruth Suele / Tom Callaway    Raspberry Pie Hacks 
  • Jim Whitehurst    The Open Organization 
  • Jason Hibbets    The OpenSource City 
  • Shawn Wells / Keith Basil    OpenStack Security Guide 
  • Emmanuel Bernard    Hibernate Search in Action 
  • Neependra Khare    Docker Cookbook 
Some or all of these authors might be present in this session, so swing on by, I will be there with a few give away copies (codes to download) of my e-book, OpenShift Primer for free!

(see conference agenda for location and times)

See you in Boston in June 2015!

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.]