The business logic integration platform
It is also important to understand that jBPM is a part of a package provided by JBoss, the Business Logic Integration Platform (BLIP) that consists of the following:
- Drools Guvnor (Business rules manager)
- Drools Expert (Rule engine)
- jBPM (Process Management)
- Drools Fusion (Event processing/Temporal reasoning)
Together they form a complete solution for knowledge-based application development and management for enterprise solutions.
BILP can be visualized as a rapid enterprise application development platform from which applications can be solely built by modeling rules, business process flows, events, data models, and forms with very little help from the technical users. The technology and its tools have dual focus: they explicitly serve business users, enable these users to express requirements directly by modeling, and help to engage them in the application development process, guided by technical users who make the models fully functional and realize the software application with all its qualities (nonfunctional requirements).
BLIP integrates the following three paradigms in business language-driven applications:
- Business Rule: This represents knowledge in the business domain
- Business Processes: This represents activities performed in the business domain
- Event Stream Processing: This adds temporal reasoning as part of the knowledge
These paradigms, although developed as three different streams, as obvious from the definitions itself, are interrelated in a business solution context. No wonder in most of the solution architectures, these three form the cornerstones of business modeling.
These paradigms are integrated into a unified platform, where all features of one module are leveraged by the other modules. The decision-making (from the knowledge base) capabilities in Drools Expert are used by Drools Fusion; the event processing capabilities of Drools Fusion can be used by the BPM suite jBPM; and jBPM uses Drools Expert internally for executing business rule tasks.
The following figure depicts this integration and the interactions between the modules in the platform. Drools Guvnor is used for designing processes, events, rules, and related artifacts; storing them; and providing integrated testing facilities. As an integrated platform, BLIP allows interactions between rules, processes, and events.
As depicted in the preceding diagram:
- Drools Expert can start a business process or create events based on its rule inference
- Drools Fusion can trigger rules or signal processes based on its temporal reasoning capacity based on the incoming pattern of events; and jBPM can trigger rules as one of its activities or generate events based on the business activity
We have already discussed the overview of jBPM; now, let us briefly discuss the other component in the platform in subsequent sections.
Drools Guvnor
We have already discussed the knowledge repository in the core concepts section of jBPM, and you guessed correct, jBPM uses Drools Guvnor as its knowledge repository.
Drools Guvnor provides the following features:
- Assistive authoring for knowledge artifacts such as process definition, rule definition, events, and related artifacts
- Access control and security for using these artifacts
- Version management
- Assisted deployment and distribution of the artifacts to the runtime environment
- Integrated testing
Drools Expert
Drools Expert is a rule engine. The knowledge is stored in the knowledge base as rules, which are defined in a declarative language, Drools Rule Language (DRL). The engine matches the incoming data or facts against these rules to reach a decision and execute actions attached to the inferences/decisions.
Drools Fusion
Drools Fusion is an event processing engine used to detect and select the events of interest (business interest) from multiple streams or an event cloud. Fusion works in tight integration with Drools Expert.
Drools Fusion provides the following features:
- Temporal reasoning, which allows the definition and inference of business rules based on time factor of events
- Scheduling and delaying of actions to be taken on inferences
Working together
Now that we have discussed the tools, we can now move on to visualize how these tools work together to make a business solution that is completely rule-driven. The following figure provides a bird's eye view of a possible solution architecture where we use these tools together.
Together, they enable business analysts to write and manage applications by mapping business scenarios to process definitions, rule definitions for decisions, and rules including temporal logic.
- The designer tools enable business analysts to map the business scenarios required for a solution to rules, processes, events, or related artifacts.
- The applications/users can interact with the solution by using the operation management tooling provided by jBPM, or they can use the RESTful web service interface to access the same from their proprietary applications.
- The runtime integrates the business processing, rule inference, and temporal reasoning capabilities to infer decisions and take actions for a business scenario.
- The knowledge repository module provides storage, version management, deployment, and testing of the applications developed.
Another important thing I want to highlight from the preceding figure is the technology platforms used by the individual tools. The web-based user interface for process designing and operation management is developed using the UberFire framework; the Eclipse-based tooling is based on eclipse RCP; the runtime is based on the Kie framework; and Guvnor is based on virtual file system-based storage and by default uses Git. The details of these technology platforms so as to customize and extend jBPM will be discussed in Chapter 7, Customizing and Extending jBPM.
Red Hat also provides a commercially supported flavor of this package and is called Red Hat JBoss BPM Suite.