Business Process Modeling: The Practice of Using Camunda BPM in Java Development
In this article, I’ll talk about the key components of the Camunda Business Process Management system.
Join the DZone community and get the full member experience.Join For Free
Today, I'd like to share with you the application of Camunda BPM in Java development. In this article, I’ll talk about the key components of the Camunda Business Process Management system. Also, I’ll show the system's deployment, modeling, and deployment of a simple process.
Let's first understand the terminology and find out what BPM, BPMS, and BPMN are.
BPM (Business Process Management)
The concept of organization management, which considers business processes as special resources of the enterprise, continuously adapted to constant change and relies on principles such as clarity and visibility of business processes in the organization through their modeling using formal notations, the use of software modeling, simulation, monitoring, and analysis of business processes, the possibility of dynamic rebuilding business process models by participants and software system tools.
BPM answers the questions of where, when, why, how, and what task is performed and who handles its implementation.
BPMS (Business Process Management System)
Software that provides the applied implementation of the BPM concept. BPMN (Business Process Modeling Notation) — notation (a system of graphic designations and their description in XML format) of a business process. There are many BPMS on the market, including the market leaders — Oracle and IBM. From the name, these systems are powerful, strong, expensive, and do not suit every organization, and the cost of their implementation can start from 100,000 euros and above. Only large companies can afford to implement such a system.
Small companies should pay attention to implementing other systems, which will cost less.
Of the foreign vendors with democratic prices or free versions, I would single out jBPM.
Another free BPM system, Activity, was forked in 2013, and from which Camunda BPM, known as too many, emerged.
Camunda Services, which is the vendor of Camunda BPM, had long been consulting for organizations on business process management but ended up creating its own product and started actively developing it. There are various comparisons of Activity and Camunda on the Web, and mostly they favor the latter, and the list of companies using Camunda is quite extensive.
We all understand that a business process must be as clear as possible. Processes are modeled using notations (notations are a system of graphical symbols and their description in XML format). There are quite a few notations.
What Is Camunda BPM?
Business process management platform that implements BPMN (Business Process Model and Notation), DMN (Decision Model and Notation), and CMMN (Case Management Model and Notation) standards.
The community version has open-source code and the license Apache-2.0.
It’s based on the technology stack of the popular Java programming language. It has integration with Spring/Spring Boot.
DMN is a decision-making model, a table of input values, and the resulting output value. It is useful in tasks such as decision-making. It would help to decide whether to issue a credit or open an account. In this table DMN, you will find many input parameters and output parameters, i.e., result — to issue a credit or not.
Camunda BPM Components (Community)
Let's inspect the components of the community version of Camunda:
- Camunda Modeler is a cross-platform GUI application in which a business analyst or process architect can model and edit process diagrams.
- Supports BPMN 2.0, DMN 1.1, and CMMN 1.1. This is a stand-alone cross-platform application with a graphical user interface in which a business analyst or process architect can draw and edit process flow diagrams.
- Camunda Tasklist is a web-based application where end users can log in, see their assigned tasks, and execute actions.
- Camunda Cockpit, a Web application that was built for operators or business process owners to monitor and manage their business processes
- Camunda Admin is a web application, a system administrator interface where managing roles, users, groups, etc., is handled.
- The central part of the Camunda BPM system is the engine that controls the process according to the drawn schemas and notations CMMN etc., converts them into code, and then executes them.
- Note that there is an overlay on top of the engine that implements a REST or Java API. The REST/Java API is the system's programming interface, providing interaction with external (REST) and internal (Java) components. Rest API is quite extensive and convenient and allows you to implement many custom applications.
Camunda BPM (Enterprise) Components
Enterprise version — paid, contract, 24/7 technical support- is technically better than the community version. For example, there is Enterprise Cockpit — an extended version of Camunda Cockpit, which contains additional features: deployment of process descriptions, the restart of process instances, advanced search by process instances, and migration of process instances between versions.
Camunda Optimize — Optimize and improve business processes, bottleneck detection, reports, and process heatmaps, all of which help improve, optimize, and modernize business processes.
An example of a Process Heat Map
A heat map shows the relative frequency of a task in a process. It helps to visualize the result and decide which area is more loaded and with what resources/actions it can be unloaded.
Deployment Methods for Camunda BPM
As I wrote earlier, Camunda BPM is written in the Java stack, so it has many ways to deploy. The first and easiest is the built-in library in the application.
The second method is also suitable for Java applications — a service inside an application server or servlet container (a “shared service”) that other applications deployed in the container can use.
A third way, if the applications are not written in Java, is to deploy Camunda as a stand-alone server, and the application will contact it remotely via Rest API.
The fourth way is cluster deployment for high-loaded systems when there is a common database and several nodes with Camunda.
Camunda doesn’t position itself as a low-code or no-code system. Camunda positions itself as a system where there should be a reasonable combination, a kind of symbiosis, between business, analysts, and development.
Opinions expressed by DZone contributors are their own.