jBPM Interview Questions
A list of top frequently asked jBPM interview questions and answers are given below:
1) What is BPM?
BPM stands for Business Process Management. It is a set of activities which follows the number of steps in a specific order to fulfill the organizational goals. The order of these goals is depicted using a flowchart.
- Understanding the values which the organization delivers.
- How those are achieved by analyzing, documenting and improving the way that people and systems work together.
2) What is jBPM?
jBPM stands for Java Business Process Management. It is a flexible Business Process Management (BPM) Suite which is written in the Java language. It filled the gap between the business analysts and the developers. It is light-weight and fully open-source in nature. It allows us to create, deploy, execute and monitor business processes throughout their life cycle. It is distributed under the Apache license and was released under the ASL by the JBoss Company.
Traditional BPM process engines focused only non-technical people who had insufficient functionality.
For more detail:jBPM Introduction
3) What does jBPM do?
JBPM is a business management suite which is used to model our business goals. It describes the number of steps that need to be executed to achieve the business goal and the order, using a flowchart. It improves the visibility and agility of our business logic. It can be understood by the business users and the developers both. It is easier to monitor the business processes.
The core of jBPM is a light-weight, extensible workflow engine written in pure Java. It allows us to execute business processes using the latest BPMN 2.0 specification. It can be run in any Java environment and can be easily embedded in our application or as a service.
4) What are the advantages of jBPM?
jBPM allows us to use different computational model for business process and rule. This model is based on a knowledge-oriented approach. jBPM application is not process-oriented or rules-oriented, but the end users can use different strategies to represent their business logic.
the advantages of jBPM are:
- jBPM is lightweight, fully open-source and written in Java language.
- jBPM makes possible to model complex workflows using a graphical designer. The graphical designer helps non-developers to design business processes and provides a much better view of the state of a process at runtime.
- jBPM Workflows can also create tasks for human users. For example- manual testing or signing off on releases.
- jBPM Workflow definitions contain the workflow graph along with the Java code which performs the actions triggered by the workflow. New workflows definitions do not affect the existing processes.
5) What are the features of jBPM?
The core features of jBPM are:
To know more: jBPM Features
6) What is the difference between traditional BPM and jBPM?
A list of differences between traditional BPM and jBPM:
- Traditional BPM process engines focus only non-technical people while jBPM process engines focus technical and non-technical people both.
- jBPM is easily embeddable into a Java project while traditional BPM systems require a separate server to be installed which makes it difficult to integrate into the Java software development cycle.
- jBPM supports for multiple process languages while the view of BPM is not yet stabilized. There are currently many different interpretations of BPM, which result in big fragmentation in the market.
- jBPM has very flexible transaction management. If the application uses a JDBC connection in the Java environment, then jBPM uses that JDBC connection to perform its task. If our application uses hibernate then, jBPM can use the same hibernate session factory. If our application runs in an enterprise environment, then jBPM can bind with the surrounding JTA transaction while BPM doesn’t support these things.
7) What is Drools?
Drools is a Business Rules Management System (BRMS) solution. It provides an Eclipse IDE plugin for core development. Using these frameworks, users define rules which specify what action needs to be done when a particular condition is met. In projects, it’s usually used to determine Business Rules which are composed of facts and conditional statements. It also provides a web authoring and rules management application (Drools Workbench) and full runtime support for Decision Model and Notation (DMN) models.
8) Drools Vs. jBPM (What is the difference between Drools and jBPM?)
- jBPM is a type of workflow engine whereas Drools is a rule engine.
- We can use Drools for local decisions that only require a handful of rules.
- jBPM is a business management suite which makes the interaction between humans and services into a machine that fulfills a well-defined, complex business process goal.
Drools and jBPM, both are companion projects which can be integrated when we need workflows with rules.
9) What is a Rule Engine?
- jBPM provides a Rule Engine which has a declarative language that is used to evaluate the available information.
- A rule engine may be viewed as an if/then statement interpreter. These if/then statements interpreter are called rules.
10) What are the advantages of Rule engine?
Advantages of Rule Engines are:
Greater Flexibility: Keeping our rules into a Knowledgebase helps to adapt our decisions when they are changing quickly.
Easier to Grasp: Rules can be understood easily as compared to procedural code so, they can be effectively used to fills the gap between business analysts and developers.
Reduced Complexity: The rules engine can handle much better increasing complexity because they use a consistent representation of business rules.
Reusability: By keeping rules in one place leads to greater reusability of our business rules.
11) What do you mean by KIE?
KIE stands for Knowledge Is Everything. KIE approach is used to create a Knowledge Base and a Knowledge Session. A Knowledge Base is a repository of all the relevant process definitions. It is an interface that manages a set of rules and processes. Its primary task is to help us always to look up the processes definition whenever necessary. Rules are contained inside the package org.drools.KnowledgeBase.
12) Differentiate between Stateless and Stateful knowledge session.
|In Stateless, a new session is created for each request. Therefore, it does not maintain any state.
|In Stateful, it will continue from whatever the session was when the previous command ended.
|In stateless, the session is eliminated automatically.
|In stateful, the session is not removed automatically.
|In stateless sessions, once all the rules have been fired, we cannot further modify the facts and reinsert them into the session.
|In stateful sessions, we can change the facts and reinsert them even after having the rules fired before.
|Any changes in the facts while executing rules, For Example, insert(XYZ) or modify(XYZ), is not made aware to the rule engine.
|Any changes in the facts while executing rules, For Example, insert(XYZ) or modify(XYZ), is made aware to the rule engine.
13) What is JPA?
- The Java Persistence API (JPA) is a specification of Java. It is used to persist data between Java object and relational database.
- Java Persistence API (JPA) contains the collection of classes and methods to store a large amount of data into a database. It is provided by the Oracle Corporation.
- JPA doesn’t perform any operation by itself. It requires an implementation. So, ORM tools like Hibernate, TopLink, and iBatis implements JPA specifications for data persistence.
For more detail: JPA API
14) What is JTA?
- Java Transaction API (JTA) is an API which is used to manage the transactions in Java. It provides us to start, commit and rollback transactions in a resource neutral way.
- Java Transaction API (JTA) specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system: the resource manager, the application server, and the transactional applications.
- The Java Transaction API (JTA) allows applications to perform distributed transactions, i.e., transactions that access and update data on two or more networked computer resources.
- The Java Transaction API (JTA) consists of three elements:
- A high-level application transaction demarcation interface
- A high-level transaction manager interface designed for an application server
- A standard Java mapping of the X/Open XA protocol intended for a transactional resource manager.
For more detail visit JTA API.
15) What are the components of jBPM?
The list of the jBPM components are:
- Core Engine
- Human Task Services
- Process Designer
- Data Modeler
- Form Modeler
- Rules Authoring
- Guvnor Repository
- Process Management
- Eclipse Developer Tools
For more detail go to jBPM Component
16) Define Services in jBPM.
The core Services of jBPM are:
For more detail go to jBPM Services
17) What is RuntimeManager?
Runtime Manager manages Runtime Engines. It is built with Kie Session and Task Service to deliver executable environments for processes and user’s tasks. It will always be closed whenever it is not needed anymore to free up resources it allocated. Each Runtime Managers has a unique id so there cannot be used two Runtime Managers with the same id active at the same time in the same system.
Runtime Managers includes:
- Timer service
- Task service
- Finds and initializes timer start events based processes
18) Explain Human Task Services in jBPM.
Human tasks are similar to any other external service. jBPM supports different types of human task nodes inside processes for modeling this interaction with human users. Human task node allows process designers to define the task properties which the human actors need to execute.
Human task service implementation is based on the WS-HumanTask specification. It manages the life cycle of the tasks and stores the state of all the tasks, task lists, etc.
We need three components to use human tasks inside the processes. They are-
For more detail go to Human Task
19) Explain Remote API Services?
The jBPM platform provides many remote API services. It provides developers with an improved level of flexibility in designing solutions that require jBPM integration. This remote API opens up some possibilities with a flexible, open architecture, to satisfy and to quickly react to changing application requirements.
JBPM works with the following remote service APIs –
For more detail go to: Remote Services
20) Differentiate embedded sub process and reusable sub process.
Embedded Sub Process
Embedded SubProcess is also known as Inline Subprocess. It is a subprocess within a Process and cannot be reused outside of the process.
Embedded Subprocess can access all the process variables where it is defined & also we can add some additional variables to be accessible within that Embedded Subprocess container.
Embedded SubProcess can also access the group flow elements together to make the business process more readable. Subprocesses are contained as part of the parent subprocess.
Reusable Sub Process
Reusable Subprocess is an independent process. It cannot access the parent process variables directly. We need to map the in & out values through Subprocess properties whenever we want to use it. Reusable Subprocesses create business processes that can be called from other business processes.
Reusable processes have the following characteristics:
- It must start with one none start event.
- It can contain multiple end events.
- It can only be called by other business processes.