Google News
logo
jBPM Interview Questions
BPM is an acronym that represents Business Process Management. There are two distinct parts of BPM :
 
* BPM as the board order
* BPM as programming building

The BPM merchants have a long time attempted to make deliberation of these two particular angles. However, such variations only lead to more disarray than solving the issue. BPM as an administration discipline is the duty of each strategic executive supervisor. It has to guarantee that the association performs well in its central business forms. This includes understanding what esteems the association conveys and how those are accomplished. This also implies breaking down, reporting and enhancing the manner in which individuals and frameworks cooperate.
jBPM is a flexible Business Process Management (BPM) Suite. It makes the bridge between business analysts and developers. Traditional BPM engines have a focus that is limited to non-technical people only. JBPM has a dual focus: it offers process management features in a way that both business users and developers like it.
* Start Event
* End Event
* Rule Task
* Gateway (diverge)
* Gateway (converge)
* Reusable Sub-Process
* Message Event
* User Task
* Embedded Sub-Process
* Multiple Instances
This business process allows you to model your business goals by describing the steps that need to be executed to achieve that goal and the order, using a flow chart. This greatly improves the visibility and agility of your business logic, results in higher-level and domain-specific representations that can be understood by business users and is easier to monitor.The core of jBPM is a light-weight, extensible workflow engine written in pure Java that allows you to execute business processes using the latest BPMN 2.0 specification. It can run in any Java environment, embedded in your application or as a service.
Visual user friendly editor : Users can choose between a web based editor (Oryx) or an Eclipse based one. You can choose depending on the end user and if you are going to use the project’s BRMS (Guvnor) where you can store all your business assets such as processes, rules and documentation in a central location.

BPMN2 standard support : This allows you to choose a different editor to generate your business processes and run them in JBPM5. There’s no 100% support for the standard yet, but progress is being made on this matter.

Human Task features : JBPM5 has a native notion of a Human task, an activity that needs to be completed by an actual person and has a lifecycle: it can be started, suspended, completed, etc. It is also a standard spec.

Process Console : You can interact with the engine through this console where you can start processes, complete human tasks, fill forms, etc. This console is GWT based.

JPA persistence method : it enables you to choose any database and persistence schema to store the processes variables and history log.

Designed for domain specific workflows : this means that you can create your own business domain specific tasks such as (Receive Claim, Approve loan , Check Blood Pressure, etc) and build a palette for end users that is very natural to their environment. This is combination with a visual modeler is a pretty explosive combination, allowing a very productive as-is process knowledge gathering and to-be process design across a whole line of business.

Business Activity Monitoring built in : what’s a BPM’s worth if you can’t monitor your processes? JBPM5 allows you to make reports (including tables and charts) over the process instance data and history log. This is useful for higher level users that as C-level executive who need process information to make decisions. It also enables you to use BIRT to generate your reports, so your imagination is the limit when it comes to the amount of information you can present.

Console Custom forms integration : By using a template framework, JBPM5 allows your users to interact with their processes using  the same console to start the process and make actions to it within a custom form for each activity. For example you can have a client’s data gathering activity in your process and a custom form can be built to fill that information into the workflow.

Powerful rules language : To make decisions within the process you can use Drools rule syntax to for example change a path according to a business condition, such as a credit score.
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.
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.
The jBPM GPD is an eclipse plugin that targets usage by multiple roles. Both the business analyst and developer are able to use the same tool in different ways. The main reason why we think it is important to integrate those two in one single environment is because in many teams, these two roles are done by one person.  Then it becomes very important that the tool can support both roles and gradually shift from being a diagramming tool to an implementation tool.
A rule engine may be viewed as a sophisticated if/then statement interpreter. The if/then statements that are interpreted are called rules.
Advantages of Rule Engines :
 
Greater flexibility : keeping your rules into a Knowledge base let you adapt easily your decisions when they are changing.
 
Easier to grasp : Rules are easier to understand than procedural code so they can be effectively used to bridge the gap between business analyst and developers.
 
Reduced complexity : When embedding lots of decision points to your procedural codes it can easily turn your application into a nightmare. On the other hand rules can handle much better increasing complexity because they use a consistent representation of business rules.
 
Reusability : By keeping rules are kept in one place leads to a greater reusability of your business rules. Also, traditional procedural code often impose unnecessary variations of base rules which are therefore more difficult to reuse in other contexts.
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.
* Global is the keyword used in drools to define a global variable. Global variable is the one which will be visible to all the rules inside a DRL file.

* Globals must be used very carefully in a DRL file, since the changes in a global variable are not notified to the working memory. For example, you are using a list variable as a global and in any rule you are adding a value in a list and in one particular rule, you are checking if list size() > 0, then in this case rule may not fire. Global variable can be used for any type of object.
Consider a scenario, where in the rules there is a requirement for database connection object. In this case, the DB Connection object can be inserted as a global variable in the working memory and the connection object will be visible to all the rules in that DRL file.
* 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.
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.
16 .
* 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.
17 .
* 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.
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.
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.
* Different segments of the application are to be estimated. This progression is to discover where degradation occurs. Regardless of whether it is outside or inside and where the application is investing all its energy. Utilizing Joss JMX specialists and checking the sent segments to the application server includes in the initial step.

* After finding the most time explicit parts or libraries or the greater part of the assets, one can utilize Jprobe as a specific apparatus for inspecting the single item or the articles stacked in the memory.
The three main components of the JBPM are execution component, runtime component, and modeling & deployment component.
 
The Execution component :
 
* Core engine : it is a workflow engine that is used to execute the business process.
* Human Task Services : it provides the human task lifecycle for executing the task with the interaction of human actors.
* Persistence : It persists all instances and log audit information states.
* CDI/REST/JMS : it is used to connect the application with a core engine by using Java API.


The runtime Componen :
 
* Process Management : It has features to manage process instances like staring, stopping, and inspecting instance.


The modeling and deployment component :
 
* Process Designer : it provides the graphic editor for viewing and editing the business process.
* Data modeler : it is used for viewing, editing, and creating data models by non-technical users.
* Form modeler : it is used to create, generate, and edit forms during task execution.
* Rules authoring : it is used to specify different business rules for the business process.
* Guvnor repository : it has all types of assets to be used in the business repository.
To integrate LDAP with JBPM, first, install and configure the LDAP server. OpenLDAP is a good LDAP server that can be freely installed and configured. After configuring the server, it is time to configure the application server where the JBPM console is hosted to authenticate the users using LDAP.
 
The JBoss AS7 configuration needs to be changed and the standalone.xml file should be replaced to support the LDAP in JBPM.
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.