Using Camunda BPM in Java Development

Today, I want to share with you the application of Camunda BPM in Java Development. In this article, I will talk about the major components of Camunda Business Process Management System. Also, I will show the deployment, modeling and deployment of a simple process of the system.

Let us first understand the terminology and find out what are BPM, BPMS and BPMN.

BPM (Business Process Management)

The concept of organization management, which treats business processes as specialized resources of the enterprise, is constantly adapted to change and relies on principles such as clarity and visibility of business processes in the organization through its modeling using formal notation. The possibility of dynamic reconstruction of business process models by participants and software system tools, using software modeling, simulating, monitoring and analyzing business processes.

BPM answers the questions of where, when, why, how and what work is done and who handles its implementation.

BPMS (Business Process Management System)

Software that provides an applied implementation of the BPM concept. BPMN (Business Process Modeling Notation) – notation of a business process (a system of graphic designations and their description in XML format). There are several BPMS in the market, including the market leaders – Oracle and IBM. By name, these systems are powerful, robust, expensive, and do not suit every organization, and the cost of their implementation can start from 100,000 euros and more. Only large companies can afford to implement such a system.

Smaller companies should focus on implementing other systems that will cost less.

Among foreign sellers with democratic prices or free versions, I would single out JBPM.

Another free BPM system, Activity, was introduced in 2013, and from which Camunda BPM, better known as Too Much, 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 began 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 that use Camunda is quite extensive.

We all understand that a business process should be as clear as possible. Processes are modeled using notation (notation is 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 the BPMN (Business Process Model and Notation), DMN (Decision Model and Notation), and CMMN (Case Management Model and Notation) standards.

The Community Edition contains open-source code and the license Apache-2.0.

It is based on the technology stack of the popular Java programming language. It has integration with Spring/Spring Boot.

The DMN is a decision-making model, a table of input values ​​and the resulting output values. It is useful in tasks like decision making. This will help in deciding whether to issue credit or open an account. In this table DMN, you will find several input parameters and output parameters, i.e. Result – to issue credit or not.

Camunda BPM Components (Community)

Let’s inspect the components of Camunda’s Community Edition:

  • 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. It 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, view their assigned tasks and execute tasks.
  • Camunda Cockpit, a web application created for operators or business process owners to monitor and manage their business processes
  • Camunda Admin is a web application, a system administrator interface for managing roles, users, groups, etc.
  • The central part of the Camunda BPM system is the engine that controls the process, converts them into code, and then executes them according to the generated schema and notation CMMN etc.
  • Note that there is an overlay on top of the engine that implements the REST or Java API. The REST/Java API is the programming interface of the system, providing interaction with external (REST) ​​and internal (Java) components. The REST API is quite comprehensive and convenient and allows you to implement many custom applications.

Camunda BPM (Enterprise) Components

Camunda BPM (Enterprise) Component.

The Enterprise edition – paid, contract, 24/7 technical support – is technically better than the Community edition. For example, there is Enterprise Cockpit – an expanded version of Camunda Cockpit, which includes additional features: deployment of process details, restart of process instances, advanced discovery 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 to 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 outcome and decide which area is overfilled and with what resources/tasks it can be unloaded.

heat map

Deployment Methods for Camunda BPM

As I wrote earlier, Camunda BPM is written in the Java stack, so there are many ways to deploy it. The first and easiest application has a built-in library.

    The first and easiest application has a built-in library.

The second method is also suitable for Java applications – a service inside an application server or servlet container (a “shared service”) that can use other applications deployed in the container.

The second method is also suitable for Java applications.

The third way, if the application is not written in Java, is to deploy Camunda as a stand-alone server, and the application will interact with it remotely via the REST API.

Third, if the applications are not written in Java, deploy Camunda as a stand-alone server and the application will communicate with it remotely via the REST API.

The fourth way is cluster deployment for high-loaded systems when there are multiple nodes with a common database and Camunda.

The fourth way is cluster deployment for high-loaded systems when there are multiple nodes with a common database and Camunda.

Camunda does not position itself as a low-code or no-code system. Camunda positions itself as a system where there must be a fair combination, a kind of symbiosis, between trading, analysts, and development.

Leave a Comment