An Evaluation of BPMN Solutions

The Business Process Model and Notation (BPMN) is the standard used to represent in a graphical way business processes that take place in every kind of organization and business. This paper analyzes three suites, jBPM, Bonita and BPM.NET, which are used to model business processes and that are compliant with BPMN 2.0. Lastly, a practical case is presented using jBPM to design a business process, and an assessment is given of its possibilities and drawbacks.


Introduction
In the last few years, there has been an increasing need for a language to model business process which could be expressive and formal enough and at the same time be understood by anyone, not only by domain experts. BPMN (Business Process Model and Notation) [1] is the lead standard in business processes and modeling languages for workflows. BPMN aims to be easy to read and understandable by anyone, also being semantically rich enough to contain in its graphical diagrams the meaning, properties and information regarding the execution of a business process [2].
Nevertheless, BPMN in practice, ends up being obscure and too complicated to be understood for non-technical users, this is due to the excess of symbols in BPMN, which are only needed to specify detailed rules and logic that would be executed by a program, and only end up distracting the user from expressing the main ideas of a business process in a workflow [3]. Therefore, tools are required to manage business process following BPMN 2.0. Some suites that support BPMN 2.0 are j BPM [4], Bonita [5] BPM and BPM.NET [6]. We will discuss some of the most relevant features of these solutions. jBPM (Java Business Process Model) is an open source Business Process Management (BPM) suite, written in Java, that can execute business processes defined in BPMN 2.0. It offers features for both business users and developers. Some of these features are: (1) Eclipse-based and web-based editor to support the graphical creation of business processes, using drag & drop. (2) Persistence management using JPA (Java Persistence API) and transaction management using JTA (Java Transaction API), (3) human task service based on web services, (4) Management console for process instance management, task lists, task form management, and reporting, (5) tools for logging, querying, and 18 analysis of the processes. Furthermore, it supports the creation of complex business processes by the addition of simpler and smaller business processes with its business rules and events.
Bonita BPM contains a set of open source applications that allow to automatize the business processes surrounding an organization. Bonita offers a working environment called Open Studio which is composed by three components: (1) Bonita BPM Studio, used to model business processes, (2) Bonita BPM Portal, which serves as an interface for users to access and work with their processes,

Tool Comparison
In this section, we have established a set of criteria to evaluate the different suites identified in the last section. A total of 16 criteria have been identified, and a brief explanation and the numeric value of each one is shown below:  In Figure 1 is represented the final evaluation of the tools:

Practical Case
In this section we have presented a representative example created with one of the previously mentioned solutions.
We have selected jBPM, as it is a product in constant improvement and evolution, it uses the Java programming language, which is a familiar language for us, and it offers many BPMN symbols, which will allow us to precisely define any process. We decided to diminish the importance of the non-technical user's experience, given that jBPM uses an Integrated Development Environment (IDE) based on Eclipse, and that it contains a great amount of BPMN elements, which will lead the user to confusion when modeling a process.
The process that have been modeled is the one that concerns the steps followed in a business when one of its employees asks for a raise, in this case, the human resources department and the project manager in charge of the employee would perform an evaluation, then, a decision could be taken, using both evaluations. Finally, the human resources department and the employee that asked for a raise would be notified of the decision.
This process modelled in jBPM is shown in Figure 2. In the model created, we had to include "Decision" as a data object, to contain the information regarding the message that would be send.
jBPM stores the diagram in a file with the BPMN extension, this file contains all the information needed to reconstruct the diagram, and the information relative to each element of the process. A fragment of how jBPM stores the information of a node, in this case, the ending node that sends a message to the employee is shown in Figure 3. jBPM also generates Java code associated to the process modelled, in Figure 4 is shown some of the code generated for our process: The code generated by the suite needs to be understood by the developers, this is in part because this code needs to be extended in order to add and modify the existing behavior. The code generated is a great help for developers, but needs to be tampered with in order to add functionality, such as exception handling and variable definitions.
jBPM also generates forms to be used with human tasks in web services. Besides, jBPM fully supports BPMN 2.0, so it can be used to define with great granularity any business process.
To sum up, jBPM is a powerful tool that has to be used by developers, as it's too complex for the average user.

Conclusion
We have presented the last standard for business process modeling, BPMN 2.0, explaining its objectives and the drawbacks of its practical use. We have performed a comparative analysis of different tools that support BPMN, with special emphasis in aspects that give ease of use for nontechnical users. jBPM is a powerful tool, but its recommend use is for developers, as it results being obscure and too complex for the average user that simply wants to define a business process.