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 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.
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.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.