JBoss BRMS Best Practices – Tips for your BPM Process Interaction Layer

part Ipart II

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:

Figure 1: Enterprise BPM landscape.

The process initialization layer was covered in part I of this series, where I presented some best practices around you, your customer and how processes are started.

The process implementation layer I covered previously in part II of this series, where we talked about some of the aspects of the Stateful Knowledge Session and how to optimise your projects.

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 this article.

Process Interaction Layer

There is much to be gained by a good strategy for accessing business logic, back-end systems, back-office systems, user interfaces, other applications, third-party services or whatever your business processes need to use to get their jobs done. Many enterprises are isolating these interactions with a service layer within a Service Oriented Architecture (SOA) which provides for flexibility and scales nicely across all the various workloads that may be encountered. Taking a look at the BPM layer here we want to mention just a few of these backend systems as an example of how to optimize your process projects in your enterprise.

Human tasks

The JBoss BRMS BPM architecture includes a separate Human Task (HT) server that runs as a service that implements the WS-HT specification. Being pluggable there is nothing to prevent you from hosting another server in your enterprise by exposing the WS-HT task life-cycle in a service. This should then use a synchronous invocation model which vastly simplifies the standard product implementation that leverages a HornetQ messaging system by default.

Reporting

A second service that you can implement to provide great reporting scalability we call a Business Activity Monitoring (BAM) service. This service you would use to centralize the BAM events and use it to push these events to JMS queues which are both reliable and fast. A separate machine can then be used to host these JMS BAM queues, processing the messages without putting load on the BPM engine itself, write to a separate BAM database, optimise with batch writing and any clients that consume the BAM information will again not be putting any load on the BPM engine itself.

Conclusion

This article briefly walks through the high level BPM architecture and lays out the various layers of interaction. The interaction layer is examined to provide some insights into best practices within this layer. There are several services that you can create to centralize your activities around human task and reporting. By centralising your human task interaction you can provide a standard and scalable solution to your enterprise. With the BAM service you are able to off load the work to a separate entity in your architecture, guaranteeing both delivery of these events and consistent performance with regards to reporting activities from your processes. There is still more to take a look at in future articles, in the Process Interaction Layer, in the Process Repository, in the Tooling and in the reporting & BAM layers.

 

Chinese translation available by Christina Lin.

part Ipart II

, ,

About Eric D. Schabell

Eric D. Schabell is the JBoss technology evangelist for Integration and BPM products at Red Hat. He is responsible for various outbound technical aspects of promoting JBoss Enterprise Middleware integration products and services. He has been working within software development since 1998 for many different enterprises. He helps out in the JBoss jBPM project focusing as lead on the jBPM Migration project. He has authored the e-book 'OpenShift Primer - get your code into the Cloud' as found on Amazon, iTunes, etc. Follow this blog at http://www.schabell.org.

View all posts by Eric D. Schabell

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 105 other followers

%d bloggers like this: