by Duncan Doyle
With the growing popularity of cloud environments and cloud-like architectures, the Service Oriented Architecture (SOA) paradigm has become increasingly important. Having been the previous big buzzword in IT, the term SOA has often been used as a means to sell software products instead of a term to refer to architectural style. However, in order to benefit most from the new possibilities in virtualization, just-in-time provisioning and on-demand scalability it has become a must for businesses to partition their enterprise logic and functionality into individual components which can independently be deployed in heterogeneous environments.
One of the goals of an SOA is to provide the enterprise with a set of re-usable, readily available business services, and as such reduce cost and provide greater operational agility. The autonomous nature of well-defined services make these components the perfect candidate for deployment in cloud environments. These individual services can then be combined, or composed into business applications which provide the actual business value. The specific compositions of these services in fact defines the actual business process.
So how does Business Process Management (BPM) fit in here? BPM provides us with the ability to explicitly combine, or compose, these individual services into business processes through modeling technology. The JBoss BRMS 5.3 platform, which includes the jBPM5 BPM engine, utilizes the BPMN2 standard to allow you explicitly define the execution flow of business logic, usually provided by services. Together with the engine’s included functionality to manage human tasks through its Human Task Service, based on the WS-HumanTask standard, this provides the ability to automate full end-to-end business processes.
Explicitly defining and modeling these business processes using BPM technology has a number of advantages over implicit definition of (partial) business processes within applications, or not automating processes at all. We will look at some these advantages and how these can be achieved with the Red Hat JBoss BRMS 5.3 solution, which includes the jBPM5 Business Process Management engine
Optimization through collaboration
Introducing a BPM solution forces one to rethink these processes. As the process will be driven by an automated process engine, the process design should be freed from any ambiguity. This forces business architects and IT architects to re-analyse the current implementation of the business process and remove any possible deficiencies. Secondly, by being able to explicitly model a business process in a standardized graphical notation, one can get more insight in the actual business process. This can drive improvements in the business process implementation, both from a business as well as technical point of view.
The JBoss jBPM5 platform provides a sophisticated web-based designer to design and implement business processes in the BPMN2 format. This allows both business architects and IT architects to discuss, analyze and design business processes from a standard web-browser in the same language. Using a common notation for both process design and process execution can dramatically reduce development effort and time and prevent ambiguity. More information on the jBPM5 Designer can be found here: http://www.jboss.org/jbpm/components/designer
As the BPM runtime automates the execution of business process instances, performance of processes can be more easily measured and managed. By gathering runtime metrics of process instances, one is able to locate potential bottlenecks within the process definition and take appropriate action.
The jBPM5 runtime is build on top of the JBoss Drools rules engine, which heavily utilizes events in its core design. This implies that the process engine emits events for a large number of actions that are being performed in the engine. By listening to these events we get access to a large amount of information with regards to the state and performance of our business processes.
jBPM5 provides support to log this business activity via the provided WorkingMemoryDbLogger (or the JPAWorkingMemoryDbLogger), which, combined with the BIRT reporting engine will provide out-of-the-box support for Business Activity Monitoring. But, as with every JBoss product, we allow you to easily extent from these provided features to build and customize this functionality to your own liking. As the source code is readily available, the JPAWorkingMemoryDbLogger can be used as a base to build the BAM features tailored and customized to your company’s specific requirements.
In the ideal case, the process layer should not contain any business logic other than the logic required to drive the process flow, execute the business services and interact with the human task server. A thin process layer makes it easier to change, adapt and/or expand the business processes when required.
The JBoss product portfolio provides sophisticated tools and technologies to build, run and manage a Service Oriented Environment, through products like the JBoss SOA-Platform. By providing the integration technology between JBoss SOA-P services and the jBPM5 engine, this allows one to quickly compose new business processes out-of existing business services hosted on the JBoss SOA-P runtime, thus increasing the ability to quickly adapt to changing requirements and increasing business agility.
Integration between JBoss jBPM5 and JBoss SOA-P is available from JBoss SOA-P 5.3.
The goal of introducing a BPM solution should not only be to automate the current business processes, but also to continuously manage and improve these processes where possible. Better insight in process metrics enables the identification of possible bottleneck and thereby gives us the possibility to address problems within the business process model and continuously improve process performance. Combined with the flexibility and agility that BPM solutions provide with regards to changing, adapting and improving business process definitions, this can greatly improve an enterprise’s performance and gives the enterprise the tools to quickly adapt to possible changes in the market.
JBoss jBPM5, included in the JBoss BRMS 5.3 platform, provides a lightweight, sophisticated Business Process Management runtime, which can be integrated with various other JBoss products and technologies. As with all JBoss products, it is build on open standards (i.e., BPMN2, WS-HumanTask) and is easily customizable and extensible in order to meet the specific requirements and needs of your enterprise. More information on jBPM5 and JBoss BRMS can be found here.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.