Eric D. Schabell

Tuesday, August 28, 2012

Best practices: JBoss Enterprise BRMS—the road to large-scale enterprise solutions

Last week I was in Boston and our Westford offices to meet with various JBoss Integration & BPM Product Managers. Along with these meetings I did two webinar broadcasts with Phil Simpson, the JBoss BRMS Product Marketing Manager.

The recording is available online where we talk about how to discover best practices for constructing both BRMS and BPMS applications that support large numbers of rules and processes operating on big data. We discuss the common use cases with real-world case studies and give you practical tips for scaling out your projects.

Check it out!

GOTO Aarhus: Building highly scalable process and rule apps with JBoss BRMS

I have been invited to talk at GOTO Aarhus in Oct 1-3, so thought I would share my abstract of the talk here which will be taking place on Monday, 1 Oct.

You can find this on lanyrd.com for tracking.

Building highly scalable process and rule-driven applications with JBoss Enterprise BRMS
Your enterprise can become truly intelligent. Get there with Red Hat’s JBoss® Enterprise BRMS—a key part of our vision for the intelligent, integrated enterprise. Its unique combination of open source technologies supports a broad range of decision-management and process-driven applications.

The power of business rules, complex event processing, and business process management is delivered in a single open source distribution and accessible from a common set of authoring tools, JBoss Enterprise BRMS is a robust fusion of:

  *   jBPM5 business process management
  *   Drools business rules
  *   Drools Fusion complex event processing

In this session we will discuss best practices for constructing both BRMS and BPMS applications that support large numbers of processes and rules operating on big data.  We'll illustrate common use cases, provide practical tips and you’ll learn how to confidently scale out your rule applications to meet demanding enterprise needs.

See you there!

Wednesday, August 15, 2012

JBoss BRMS Best Practices - tips for your BPM Process Initialization Layer


I have posted some articles in the past on migration strategies, taken closer looks at process layers and provided some best practices for jBPM, both touching on very specific parts of your BPM strategies. I wanted to revisit the topic of best practices but then on an Intelligent, Integrated Enterprise level where we talk about getting control over your business processes with JBoss BRMS.

Introduction
To start with we need to take a closer look at the landscape and then peel back the layers like an onion for a closer look at how we can provide BPM projects that scale well. Figure 1 shows that there are several component layers where we will want to focus our attention:

  • Process Initialization Layer
  • Process Implementation Layer
  • Process Repository
  • Tooling for business users & developers
  • Console, reporting & BAM dashboards
  • Process Interaction Layer

Figure 1: Enterprise BPM landscape.
The process initialization layer will be covered in this article, where I present some best practices around you, your customer and how processes are started.

The process implementation layer is where the processes are being maintained, with help from the process repository, tooling, business users and developers that design them. Here you will also find the various implementation details, such as domain specific extensions to cover specific node types within our projects. Best practices in this layer will be covered at a later time.

The console, reporting and BAM dashboard components are the extended tooling used in projects to provide business value or information that can be used to influence business decisions. Best practices in this area will be covered at a later time.


Finally, the process interaction layer is where you processes will connect to all manner of legacy systems, back office systems, service layers, rules systems even third party systems and services. Best practices in this area will be covered in a later article.
Figure 2: Getting started.

Process Initialization Layer
Taking a look at how to initialize your processes, I want to provide you with some of the best practices I have seen used by larger enterprises over the years.

There seems to be a main theme of gathering the customer, user or system data that is needed to start your process, then just injecting it by the startProcess call.  This can be embedded in your application via the BRMS jBPM API call, make use of the RESTful service or via a standard java web service call.  No matter how you gather the data to initialize your process instances, you might want to think about how you would want to scale out your initialization setup from the beginning. Often the initial projects are setup without much thought as to the future, so certain issues have not been taken into consideration.

Customers
The customer defined here can be a person, a system or some user that provides for the initial process starting data. In figure 2 we provide a high level look at how our customers provide process data that we then package up into a request to be dropped into one of the process queues. From the queues we can then prioritize and let different mechanisms fetch these process requests and start a process instance with the provided request data. We show here EJB's, MDB's and clouds that represent any manner of scheduling that might be used to empty the process queues.

Queues
These queues can be as simple as database tables or as refined as message queues. They can be setup any way your project desires, such as Last-In-First-Out (LIFO) or First-In-First-Out (FIFO). The benefits of using message queues is that you can prioritize these from your polling mechanism.

The reason for this setup is two fold. First, you have ensured that by not directly starting the process instance from the customer interface that you have persisted the customer request. It will never be lost in route to the process engine. Second, you have the ability to prioritize future processes that might not be able to meet project requirements like a new process request that has to start in 10 seconds after submission by the customer. If it gets put at the bottom of a queue that takes an hour to get to processing it, you have a problem. By prioritizing your queues you can adjust your polling mechanism to check the proper queues in the proper order each time.

Java / Cloud
The java icons in figure 2 are representing any JEE mechanism you might want to use to deal with the process queues. It can be EJB's, MDB's, a scheduler you write yourself or whatever you want to come up with to pick up process requests.

The cloud icons are meant to represent services that can be used by your software to actually call the final startProcess method to initialize the process instance being requested and pass it initial data. It is important to centralize this interaction with the jBPM API into a single service thereby ensuring minimal work if the API should change, for possible version migrations in the future and should you wish to expand it in future projects to extend the service interaction with jBPM.

Conclusion
This article briefly walks through the high level BPM architecture and lays out the various layers of interaction. The first layer of interaction in larger enterprise BPM architectures, the initialization layer is examined to provide some insights into best practices within this layer. It is not a discussion that attempts to push implementation details, but takes a step back and introduces some of the basic elements that are repeatedly encountered in large BPM architectures. It covers the initial customer submission of a processing request, the queueing of process requests and the processing of these queues in a consistent and scalable manner. There is still more to take a look at in future articles, in the Process Implementation Layer, the Process Interaction Layer, in the Process Repository, in the Tooling and in the reporting & BAM layers.

Chinese translation provided by Christina Lin.

Friday, August 10, 2012

JBoss BRMS 5.3 - Adding on JasperReports for Reporting

Before we start on the how to section of this article I wanted to welcome a new member of our team. We have an intern working with us in the BRMS team that I would like to introduce, Kumar Bijyendra. What better way to introduce him than to present some of his work, so without further delay, here is the guide to get you started adding on JasperReports for JBoss BRMS 5.3.


Introduction


Jasperreports is a free downloadable library that can be used for generating rich reports for Java EE applications. This guide also provides the steps to generate report templates using Jasper iReport designer.

Software requirements

Adding on JasperReports

Just follow these steps to get it up and running.
  1. install JBoss BRMS 5.3 standalone.
  2. create the following directories in in BRMS install
    • $JBOSS_HOME/server/default/data/Jasper
    • $JBOSS_HOME/server/default/data/Jasper/Output 
  3. Download (latest) Jasperreports 4.6.0 from the following location
  4. Extract the contents of the downloaded folder in a local directory.
  5. Goto jasperreports-4.6.0-project\jasperreports-4.6.0 directory where the build.xml file resides and do an ant build. This will create the distribution jars at the following location $path_to_jasper\jasperreports-4.6.0-project\jasperreports-4.6.0\dist
    • Jasperreports-applet-4.6.0
    • Jasperreports 4.6.0.jar
    • Jasperreports-fonts-4.6.0
    • Jasperreports-javaflow-4.6.0
  6. Copy the above jars to the following location
    • $JBOSS_HOME\server\default\deploy\gwt-console-server.war\WEB-INF\lib
  7. Get report server code from github repository from the following location
  8. Go to the root directory of the downloaded code and do a maven build: mvn clean install. This will generate the distribution jars; reports-core-1.3.0.jar, report-shared-1.3.0.jar 
  9. Copy the two previous jar folders from the dist directory to the $JBOSS_HOME\server\default\deploy\gwt-console-server.war\WEB-INF\lib 
  10. Delete the existing reports-core-final-1.4.0 and reports-shared-final-1.4.0 in the $JBOSS_HOME\server\default\deploy\gwt-console-server.war\WEB-INF\lib
  11. Download jasper report templates overall_activity.jasper and overall_activity.jrxml from the following link and copy into $JBOSS_HOME/server/default/data/Jasper
  12. Copy the following library jars from $path_to_jasper\jasperreports-4.6.0-project\jasperreports-4.6.0\lib to the following location $JBOSS_HOME\server\default\deploy\gwt-console- server.war\WEB-INF\lib
    • commons-digester-2.1
    • jfreechart-1.0.12
    • jcommon-1.0.15 

Customization and editing .jrxml file

  1. Follow the document JasperReports-Ultimate-Guide-3.0 in docs folder at $path_to_jasper/jasperreports-4.6.0-project\jasperreports-4.6.0\docs
  2. Download and install Jasper iReports designer from the following location
  3. Open the overall_activity.jrxml file in the iReports and edit. Save the .jrxml file and compile by clicking on the preview tab. Copy both the .jrxml (only for future reference) and .jasper file to the $JBOSS_HOME/server/default/data/Jasper 
Enjoy and don't forget to ping Kumar Bijyendra with a big thank you!

Chinese translation available from Christina Lin.

Friday, July 13, 2012

JBoss BRMS 5.3 - adding on Business Activity Monitoring (BAM) Reporting

One of the most often asked question since the release of the JBoss BRMS 5.3 product which has added the jBPM 5 BPM component is that of Business Activity Monitoring (BAM) and Reporting features. This article will walk you through the process of adding it, but be aware, this is not a supported feature of the product at the time of this writing.


Adding on BAM Reporting to JBoss BRMS 5.3
  1. Install JBoss BRMS 5.3, download from the Customer Portal.
  2. Create a birt directory at the following location JBOSS_HOME/server/default/data/birt/
  3. Create the ReportEngine and output directories in the birt directory from step 2 as follows:
    • JBOSS_HOME/server/default/data/birt/ReportEngine/
    • JBOSS_HOME/server/default/data/birt/ouput/
  4. Download birt-runtime-2_3_2_2 runtime jar from the following location:
  5. Unzip birt-runtime-2_3_2_2/ReportEngine into the JBOSS_HOME/server/default/data/birt/ReportEngine/ directory.
  6. Download overall_activity.rptdesign and process_summary.rptdesign report design files from the following location:
    • https://github.com/droolsjbpm/jbpm/tree/5.3.x/jbpm-installer/report/2_3_2_2
    • Copy the files to JBOSS_HOME/server/default/data/birt/
  7. Copy h2.jar from /jbpm/lib to the JBOSS_HOME/server/default/data/birt/ReportEngine/plugins/org.eclipse.birt.report.data.oda.jdbc_2.3.2.r232_v20090212/drivers/ directory.
  8. Delete report-core-1.4.0-SNAPSHOT.jar and report-shared-1.4.0-SNAPSHOT.jar from the JBOSS_HOME/server/default/deploy/business-central-server.war/WEB-INF/lib/ directory.
  9. Download the following jars and copy them to the JBOSS_HOME/server/default/deploy/business-central-server.war/WEB-INF/lib/ directory.
    • report-core-1.3.0.jar
      • https://repository.jboss.org/nexus/content/repositories/releases/org/jboss/bpm/report-core/1.3.0/report-core-1.3.0.jar
    • report-shared-1.3.0.jar
      • https://repository.jboss.org/nexus/content/repositories/releases/org/jboss/bpm/reportshared/1.3.0/report-shared-1.3.0.jar
    • engineapi-2.3.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/birt/engineapi/2.3.2/engineapi-2.3.2.jar
    • dteapi-2.3.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/birt/dteapi/2.3.2/dteapi-2.3.2.jar
    • chartengineapi-2.3.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/birt/chartengineapi/2.3.2/chartengineapi-2.3.2.jar
    • coreapi-2.3.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/birt/coreapi/2.3.2/coreapi-2.3.2.jar
    • dataadapterapi-2.3.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/birt/dataadapterapi/2.3.2/dataadapterapi-2.3.2.jar
    • modelapi-2.3.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/birt/modelapi/2.3.2/modelapi-2.3.2.jar
    • scriptapi-2.3.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/birt/scriptapi/2.3.2/scriptapi-2.3.2.jar
    • ecore-2.4.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/emf/ecore/2.4.2/ecore-2.4.2.jar
    • ecore-xmi-2.4.1.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/emf/ecore-xmi/2.4.1/ecorexmi-2.4.1.jar
    • common-2.4.0.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/eclipse/emf/common/2.4.0/common-2.4.0.jar
    • flute-1.2.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/w3c/flute/1.2/flute-1.2.jar
    • sac-1.3.jar
      • http://repository.jboss.org/nexus/content/groups/public/org/w3c/sac/1.3/sac-1.3.jar
    • commons-cli-1.0.jar
      • http://repo1.maven.org/maven2/commons-cli/commons-cli/1.0/commons-cli-1.0.jar
    • commons-discovery-0.2.jar
      • http://repo1.maven.org/maven2/commons-discovery/commons-discovery/0.2/commonsdiscovery-0.2.jar
    • itext-1.3.jar
      • http://repo1.maven.org/maven2/com/lowagie/itext/1.3/itext-1.3.jar
    • icu4j-3.8.1.jar
      • http://repository.jboss.org/nexus/content/groups/public/com/ibm/icu/icu4j/3.8.1/icu4j-3.8.1.jar
    • js-1.6R2.jar
      • http://repo1.maven.org/maven2/rhino/js/1.6R2/js-1.6R2.jar
To view the reports in the Business Central Console go to http://localhost:8080/business-central and
log on, see the JBoss BRMS Getting Started Guide for further details.

To collect the Business Activity Monitoring performance parameters for a task or process, first run
the task or process, and then click on the reports tab on the left pane. This will open the report
configuration tab in the right pane. Select ‘overall_activity’ from the drop down and click create to view
the report on the performance parameters of the executed process.

Install BIRT plugin into JBoss Developer Studio (JBDS)
  1. Open JBDS and select Help → Install New Software.
  2. In the Work with text box enter BIRT Update Site – http://download.eclipse.org/birt/updtae-site/3.7 and click ADD....
  3. The following packages should be listed for selection:
    • BIRT 3.7 Charting SDK
    • BIRT 3.7 Engine OSGI Runtime SDK
    • BIRT 3.7 Reporting SDK
    • BIRT 3.7 WTP Integration SDK
  4. Select all and click next. Follow the instructions on the installation screen.
  5. Restart JBDS
Enjoy!

Chinese translation post by Christina Lin.

The Intelligent, Integrated Shipping Company (JBoss BRMS)

There is nothing like a great video to start your day. Are you interested in pushing your business to new heights? Are you looking for ways to integrate business logic, process flows and handle complex events within your organization?

Get a cup of coffee, kick back, put your feet up and spend the next 3 minutes enjoying this story.

The Intelligent, Integrated Shipping Company

Friday, July 6, 2012

Devoxx 2012 CFP - Process your pants off with BPM Web-based tooling

I have been working and going to Devoxx for some years now. I have always had too much booth duty to want to submit a talk. This year I am not working it, so I wanted to submit a talk to Devoxx as a tooling talk.


Process your pants off with BPM Web-based tooling
In this session we will take a deep dive into the JBoss BPM Web-based tooling  (JBoss BRMS based Process Designer, Asset Manager, Business Central). We will go over a number of live demos which show how these tools can be utilized to increase the agility and dynamic nature of BPM efforts as well as provide subject-matter experts and technical experts a greater role in modelling, managing, and executing business processes.

Tuesday, July 3, 2012

JBoss BRMS 5.3 running in OpenShift Origin on JBoss EAP 6

After some polish and shine, we now have for you to demo, play with or just take with you to your next customer visit a fully running JBoss BRMS instance running on the brand new JBoss EAP 6!

Note: this is a running instance with no SLA, might be down, might be up, I will try to keep it running full time. Just let me know if it goes down after a new OpenShift release (they happen almost every two weeks) and I will reset it for you.

This includes the knowledge artifact repository, the BRM component and the BPMN2 web designer. There is also a demo repository zip file provided so you can import a complete demo package that is designed to evaluate customers as previously posted. The login is user 'admin' and password 'brms'.

You can replicate this in your very own instance of OpenShift (called a gear) by following the README found in the project repository.

PS. A word of thanks to kbhattac who created the initial brms53 repo in his project space.

Here's how you do it:


Running on OpenShift

Create a jbosseap-6.0 application
rhc app create -a brms53 -t jbosseap-6.0
Add this upstream openshift-brms53 repo.
cd brms53
git remote add upstream -m master https://github.com/eschabell/openshift-brms53.git
git pull -s recursive -X theirs upstream master
Then push the repo upstream
git push
That's it, you can now checkout your application at:
http://brms53-$your_domain.rhcloud.com
But you are not done... there is a configuration step needed right now until we sort out the OpenShift variable needed to identify this gears among a few other things. See the following Configuration Notes to get this finished. We hope to automate these steps soon.
CONFIGURATION NOTES:
This project was fully researched and created initially by Kaushik Bhattacharya, give him a shout of thanks over at his project headquarters:https://github.com/kbhattac/brms53
Some steps:
1) You need to specify the jackrabbit repo location in components.xml of jboss-brms.war. It should be configured to use Openshift environment variables, on TODO list. For now you can find it in the UUID displayed in this command:
rhc app show -a brms5.3

Application Info
================
brms53
Framework: jbossas-7
Creation: 2012-06-24T08:44:30-04:00
UUID: [some-big-number-here]
Git URL: ssh://[some-big-number-here]@brms53-onthe.rhcloud.com/~/git/brms53.git/
Public URL: http://brms53-$your_domain.rhcloud.com/
Embedded: None
So in this case, need to add in the UUID number to the componets.xml.
2) You need modify the host ip in profiles/jbpm.xml in designer.war It should have the value of $OPENSHIFT_INTERNAL_IP, which you can find by ssh'ing into the instance, then running cmd 'export' to find variable. Put that value in the host attribute:
<!-- update host, ssh into instance, run cmd 'export', locate variable OPENSHIFT_INTERNAL_IP, fill in for host.  -->
<externalloadurl protocol="http" host="127.8.133.1:8080" subdomain="jboss-brms/org.drools.guvnor.Guvnor/oryxeditor" usr="admin" pwd="brms"/ -->
3) Due to memory issues, deploying jboss-brms.war and designer.war at the same time doesn't work. So by default, we have configured only jboss-brms.war to deploy automatically. After jboss-brms.war is deployed, you need to rename the file 'designer.war.dodeploy.delayed' to 'designer.war.dodeploy' to trigger the deployment of the designer app.
$ ssh [UUID]@brms53-$your_domain.rhcloud.com
$ mv brms53/jbosseap-6.0/standalone/deployments/designer.war.dodeploy.delayed  /
     brms53/jbosseap-6.0/standalone/deployments/designer.war.dodeploy
You should see the web designer war deploy if you are watching the logs:
$ rhc-tail-files -a brms53
That is really it now, once it starts up your BRMS 5.3 product is available at:
http://brms53-$your_domain.rhcloud.com/jboss-brms
Finally, you can import the demo application by importing the file import_demo_to_brms.zip into the Administration -> Import Export tab from the console.

Chinese translation available by Christina Lin.

Devoxx 2012 CFP - OpenShift State of the Union

I have been working and going to Devoxx for some years now. I have always had too much booth duty to want to submit a talk. This year I am not working it, so I wanted to submit a talk to Devoxx as a conference talk.

As I am working on a book in this area, I wanted to run some of the material past an audience. Hope we get the chance to go through this talk together.

OpenShift State of the Union
There are plenty of clouds and platform-as-a-services to choose from, but where to start?


Join us for an action-packed hour of power where we'll show you how to deploy an application written in the language of your choice - Java, Ruby, PHP, Perl or Python, with the framework of your choice - EE6, CDI, Seam, Spring or Rails to the OpenShift PaaS in just minutes. All without having to rewrite your app to get it to work as the cloud provider thinks it should work.


We will focus on examples that highlight what OpenShift has to offer, how to get started, & provide example projects that you can access now. Bring your laptop & follow along as we help you get started with Aerogears, Drools Planner, BRMS, Switchyard & much more. Real world projects put on display for you with code you can access live during this session.


If you want to learn how the OpenShift PaaS & investing an hour of your time can change everything you thought you knew about developing apps in the cloud, this session is for you!

Monday, July 2, 2012

Telling an Integration & BPM story at GOTO Aarhus 2012

I will get to tell an Integration & BPM product story at the GOTO Aarhus 2012 Conference in Denmark this coming October 1-3. I will be there with Mark Little, so make sure you drop by and chat with us at the stand.

I will update this post with details as I find out. Abstract soon to follow but I hope to cover some of the new Integration & BPM products that we have been releasing in a furious tempo of late. Things like JBoss BRMS, SOA-P and EDS-P.

Stay tuned!

Monday, June 25, 2012

OpenShift State of the Union, brought to you by JBoss (slides)

My talk this year at JUDCon 2012 in Boston was on the State of the Union with OpenShift in regards to JBoss projects.

The talk was well received and was approached the rest of the week by various customers, partner and developers that stated they did not know that there were so many JBoss projects available on OpenShift! I had to tell them that this was not a comprehensive overview and that there were many more that just did not fit my talk... the looks I got! ;-)

Here are the slides.


Tuesday, June 19, 2012

From zero to testing: setting up the JBoss BRMS BPM Rewards Approval Demo project (IDE)

The previously posted Rewards Approval Demo project was a run through the installed project. This short video will take you from zero code installed to running the project in your IDE test environment. It walks you through getting the project code from github.com, points out installation directions for JBoss Dev Studio, configures the BRMS BPM project, walks you through importing the project and finally running the project in your test environment.

No more excuses, you have to get started right now with your very own JBoss BRMS BPM project!

Monday, June 18, 2012

JBoss Enterprise BRMS - BPM Human Tasks made simple in the Rewards Approval Demo

Looking at the newest release of JBoss Business Rules Management System (BRMS) 5.3 we will now have access to the newest member of the JBoss BRMS family, jBPM as a Business Process Management (BPM) component.

Introduction
We wanted to put together some demo that would showcase the BPM features that have been made available to Enterprise developers. When the community project jBPM published a Rewards Demo highlighting the Human Task features, we wanted to take this across to our  JBoss Enterprise BRMS product as an example application.

This project will provide a fully installed and configured JBoss BRMS environment so that you can demo the project in all the available BPM components. It will provide you with a JBoss Developer Studio project complete with unit tests to allow you to easily demo the project in the JBoss Developer Studio IDE. It will provide a repository that you can import into your new JBoss BRMS Business Rules Manager component and demo the BPMN2 Web Designer, web based Business Central admin console and knowledge asset manager BRM tooling.

The process is a simple example that shows how to integrate Human Tasks and Custom Work Items in your  processes in JBoss BRMS. This article will get you up and running in minutes with a fully operational Rewards Approval Demo project.

Getting the project
The project is available on Github at https://github.com/eschabell/brms-rewards-demo. You can retrieve this with a simple 'git clone git://github.com/eschabell/brms-rewards-demo.git' after which you can follow the step-by-step guide found in the Quick Start Guide. This is provided in both ODT and PDF formats. It is all kicked off by the init.sh script you will find in the project, which is quite verbose and points you to the various steps you might need to take should you have chosen to not to read the provided Quick Start Guide.

Rewards Approval Demo project overview
Once you have the demo project installed, you can follow along in the Quick Start Guide to see the various components in action. You can also watch the following video as I run through the various functionality that is provided by JBoss BRMS (available on YouTube and Vimeo):



Feedback welcome
Please feel free to provide feedback and suggestions for this demo. We will take any and all pull requests that can improve the demo experience. We hope you enjoy this demo experience.

Setup help (video) for running this project in a JBoss Developers Studio testing environment is available.