JBoss jBPM is a workflow and Business Process Management (BPM) engine that enables the creation of business processes that coordinate between people, applications and services. In this article, S.Satyamoorthy, Director of Operations – Asia Pacific, JBoss Inc. takes a close look at what JBoss jBPM has to offer.
Simplified BPM integration with JBoss jBPM
JBoss jBPM is a flexible, extensible workflow management system. Business processes, expressed in a simple and powerful language and packaged in process archives, serve as input for the JBoss jBPM runtime server. JBoss jBPM bridges the gap between managers and developers by giving them a common language : the JBoss jBPM Process definition language (jPdl). This gives software project managers much more control on their software development efforts. After loading the process archive, users or systems perform single steps of the process. JBoss jBPM maintains the state, logs and performs all automated actions. JBoss jBPM combines easy development of workflow-applications with excellent enterprise application integration (EAI) capabilities. JBoss jBPM includes a web-application and a scheduler. JBoss jBPM is a clusterable J2EE application.
Business Process Management
BPM (Business Process Management) offers a structure and approach for designing business actions/transactions and executing them preferably using automated processes, actions, tasks and flows.
For eg. an insurance company can use BPM to automate the steps involved in processing insurance claims, a finance company can use BPM for loan approval, an HR department for employee performance management etc.,.
There have been several attempts to provide enterprise application integration, unified view of the business, homogenous flow of information across islands in an enterprise, but wide scale BPM acceptance have been very slow. This is due to several reasons including: cost and complexity.
One obstacle however, is that BPM platform solutions typically require a major investment of time and training, without any guarantee of success. As a result, developers frequently choose to avoid the complications and risk of BPM and instead code state and business logic directly into enterprise applications as usual.
The BPM market is very fragmented with several standards and tens of vendors offering very costly but proprietary implementations. Most tools either cater to Managers / Business analysts and makes integration effort of developers a nightmare or are easy to develop, but extremely complicated to design real life application scenarios.
Many vendors of BPMS and Work Flow systems want you to believe that with their graphical process designer it only takes a business analyst to create process definitions. The reason for this is – programming is hard. The sales people tell you: “look, you don’t have to write a single line of code”. While not having to write code is a good thing, most vendors go overboard on this and don’t foresee a mechanism to integrate code into a process definition in cases where this is appropriate. This means that instead of programming, you fight the tool to perform custom processes. In real life when using a WFMS as an EAI-platform, integrating code into a process is a must. Developing process definitions requires input from and collaboration between business analysts and software developers.
JBoss jBPM bridges the gap between business managers and developers by giving them a common language : the JBoss jBPM Process definition language (jPDL). This gives software project managers much more control on their software development efforts. After loading the process archive, users or systems perform single steps of the process. JBoss jBPM maintains the state, logs and performs all automated actions. JBoss jBPM combines easy development of workflow-applications with excellent enterprise application integration (EAI) capabilities.
JBoss jBPM is a standard Java application and does not need an application server. Enterprises that are interested in automating business processes can use JBoss jBPM without more application server complexity. JBoss jBPM can also be deployed by ISVs in a Web application or a standalone Java application.
The primary focus of JBoss JBoss jBPM development has been the BPM core engine. Properly orchestrating business processes across multiple applications is a complicated task. To meet this challenge, a business process engine needs a solid technical basis. JBoss jBPM is based on a powerful and simple core engine with bottom up approach naturally combining a declarative model and java deployment freedom. Its easy programming model enables applications to be up and running in less then half a day.
JBoss jBPM is a workflow management system (WFMS). Figure1 shows the interfaces between JBoss jBPM and all actors involved in the form of a use case diagram.
1: Interfaces of a WFMS
JBoss jBPM takes process archives as input. A process archive is a formal description of a business process. After a process archive is deployed, JBoss jBPM can manage the executions of this process. ‘Managing the executions’ means keeping track of the state of a process (State layer), storing information associated with a process execution (Context layer), integrating custom programming logic like e.g. sending emails, interacting with an ERP, … (Programming logic layer) and optionally allow users to complete tasks by submitting forms (User interfaces layer).
The main responsibility of a WFMS is to maintain the state of process executions. The state model of JBoss jBPM is based on a graph with nodes and transitions. Nodes and transitions are the main ingredients of a process definition. A state is an example of a node. For a detailed description of the states refer to http://www.jbpm.org/state.of.workfow/
The 2 most important interactions with JBoss jBPM are: starting an instance of a process definition and signaling the end of a state. As a result of both these interactions JBoss jBPM will calculate the next state of the process instance.
The state graph provides the structure of the process. Actions are pieces of programming logic that can be executed upon events in the process. There are three types of events: entering a node, leaving a node and taking a transition. While JBoss jBPM is calculating the next state, a number of these events will fire.
The main file in a process archive is processdefinition.xml. This file contains the formal description of the processes. The act of parsing the processdefinition.xml and storing it in the database is called deploying a process. All other files in a process archive are stored as attachments with the process definition (either in the database or as files on the filesystem).
ABC Company is working on a model for Pay Rise management. The process is as follows:
2.The pay raise process
This process is expressed as an XML file.
How to Deploy?
JBoss jBPM stores its process definitions in the database. So deploying a process into JBoss jBPM actually means parsing the processdefinition.xml and store it in the JBoss jBPM database. This can be done by
The JBoss jBPM ant-tasks par and deploypar. par allows creation of a process archive from a set of files. deploypar deploys a process archive to the database. The deploypar takes a JBoss jBPM.properties file as an attribute. This file specifies the JBoss jBPM configurations including the database to which the process archive has to be deployed.
Programmatically parsing and storing the processdefinition.xml into a datastore.
Where can I Use this?
JBoss jBPM can be applied in several enterprise scenarios. A sample representation includes:
1. In an enterprise application as an application component: A company developing an HR system on a J2EE platform can incorporate JBoss JBoss jBPM functionality as easily as including a library.
2. To deliver process based applications: An ERP vendor can include JBoss JBoss jBPM in their product and implement their process-based software above it. The application can additionally expose the JBoss jBPM engine to power users of the ERP product. That allows the application to be easily extendible and customizable, a benefit not well-addressed by in current-generation ERP packages.
3. As a component in an enterprise architecture: An enterprise can deploy JBoss jBPM as a separate component in the enterprise IT infrastructure. JBoss jBPM provides standardized, reliable business process management that parallels the status of database software in managing corporate data.
Features & Benefits
JBoss jBPM 3.0 combines workflow, BPM and orchestration into a single product. New features include:
• Simplified Persistence – Increased flexibility of the API (Application Programming Interface) is achieved by decoupling persistence from the JBoss jBPM workflow operations. Simplified persistence enables easier business process and workflow development.
• Pluggable Architecture – JBoss jBPM is designed to run as a standalone solution or be seamlessly embedded within any Java application. JBoss jBPM’s pluggable architecture allows extensibility and customizability on every level; within the process engine, for each process definition and every corresponding process instance. JBoss jBPM’s pluggable architecture provides workflow, orchestration and BPM in one platform, simplifying business development. Traditional standalone BPM, orchestration and workflow products force users to deploy multiple platforms to offer a similar range of capability, thereby adding complexity to the development process.
• Improved Extensibility – The native JBoss jBPM process definition language (jPDL) now provides Java integration. For integration of web services and SOA, JBoss has implemented the BPEL specification as an extension to JBoss jBPM. Using these Java and BPEL extensions, enterprises can easily include their customization and use JBoss jBPM to orchestrate their business processes.
• Extended Task Management – JBoss jBPM offers extended task management features such as tracking all tasks assigned to individuals, systems and groups. This functionality enables greater flexibility to create workflows targeted to specific business process problems.
Differentiators of JBoss jBPM
- No unnecessary dependencies
- no web services required
- no message queues required
- no ejb container required
- enables TDD for workflow
- If you grow and you can integrate later!
- Powerful process language
- start simple, scale to enterprise
- Open source
Rapid deployment – Within a Day!
JBoss JBoss jBPM 3.0 is released under the open source LGPL license and includes a tutorial that lets developers build sample applications in half a day.
Not only is JBoss jBPM a core product of the JEMS suite, it is also available as a standalone product that runs on its own, or on any J2EE application server. JBoss jBPM combines easy development of workflow applications with a flexible and scalable process engine. It can be used in the simplest environment or scale to handle the most complex clustered J2EE application scenarios.
JBoss jBPM delivers the capability to develop new automated business processes and workflows with its business process management (BPM) foundation as well as orchestrate business processes using industry-standard Business Process Execution Language (BPEL).
How to get help?
JBoss provides a full fledged training on JBoss jBPM in India and all over the world – both public training and in-house custom training. This caters to both developers and Business Analysts. JBoss also provides 24X7 Support & Indemnification protection. JBoss has a robust Partner Network who can help you in implementing solutions using JBoss jBPM. For more information on JBoss jBPM and to download a copy, visit www.jboss.org.
1. Tom Baeyens – JBoss Architect and Project Lead for JBoss jBPM.
The author, S.Satyamoorthy is the Director of Operations – Asia Pacific, JBoss Inc. He can be reached at Satya dot satyamoorthy at jboss dot org
>> JBoss Expands Global Presence with New Office in India
>> JBoss’ Market Expansion and launch of the JBoss Open Source
>> JBossWorld Update: Drools, jBPM & JEMS
>> jboss vs geronimo
>> JBoss is light years ahead of other open source application servers
Latest posts by Content Team (see all)
- IndicThreads Pune 2016 To Equip Developers For A New Age Of Software Development - May 27, 2016
- Java Garbage Collectors – Moving to Garbage First (G1) Collector - May 25, 2016
- Using Lambdas and Streams in Java 8 - May 18, 2016