Chapter 2. Red Hat JBoss BRMS and Red Hat JBoss BPM Suite Architecture

2.1. Red Hat JBoss Business Rules Management System

Red Hat JBoss BRMS is an open source business rule management system that provides rules development, access, change, and management capabilities. In today’s world, when IT organizations consistently face changes in terms of policies, new products, government imposed regulations, a system like JBoss BRMS makes it easy by separating business logic from the underlying code. It includes a rule engine, a rules development environment, a management system, and a repository. It allows both developers and business analysts to view, manage, and verify business rules as they are executed within an IT application infrastructure.

Red Hat JBoss BRMS can be executed in any Java EE-compliant container. It supports an open choice of authoring and management consoles and language and decision table inputs.

2.1.1. Red Hat JBoss BRMS Key Components

Red Hat JBoss BRMS comprises the following components:

  • Drools Expert

    Drools Expert is a pattern matching based rule engine that runs on Java EE application servers, Red Hat JBoss BRMS platform, or bundled with Java applications. It comprises an inference engine, a production memory, and a working memory. Rules are stored in the production memory and the facts that the inference engine matches the rules against, are stored in the working memory.

  • Business Central

    Business Central is a web-based application intended for business analysts for creation and maintenance of business rules and rule artifacts. It is designed to ease creation, testing, and packaging of rules for business users.

  • Drools Flow

    Drools flow provides business process capabilities to the Red Hat JBoss BRMS platform. This framework can be embedded into any Java application or can even run standalone on a server. A business process provides stepwise tasks using a flow chart, for the Rule Engine to execute.

  • Drools Fusion

    Drools Fusion provides event processing capabilities to the Red Hat JBoss BRMS platform. Drools Fusion defines a set of goals to be achieved such as:

    • Support events as first class citizens.
    • Support detection, correlation, aggregation and composition of events.
    • Support processing streams of events.
    • Support temporal constraints in order to model the temporal relationships between events.
  • Drools Integrated Development Environment (IDE)

    We encourage you to use Red Hat JBoss Developer Studio (JBDS) with Red Hat JBoss BRMS plug-ins to develop and test business rules. The Red Hat JBoss Developer Studio builds upon an extensible, open source Java-based IDE Eclipse providing platform and framework capabilities, making it ideal for Red Hat JBoss BRMS rules development.

2.1.2. Red Hat JBoss BRMS Features

The Red Hat JBoss BRMS provides the following key features:

  • Centralized repository of business assets (JBoss BRMS artifacts).
  • IDE tools to define and govern decision logic.
  • Building, deploying, and testing the decision logic.
  • Packages of business assets.
  • Categorization of business assets.
  • Integration with development tools.
  • Business logic and data separation.
  • Business logic open to reuse and changes.
  • Easy to maintain business logic.
  • Enables several stakeholders (business analysts, developer, administrators) to contribute in defining the business logic.

2.2. Red Hat JBoss Business Process Management Suite

Red Hat JBoss BPM Suite is an open source business process management system that combines business process management and business rules management. Red Hat JBoss BRMS offers tools to author rules and business processes, but does not provide tools to start or manage the business processes. Red Hat JBoss BPM Suite includes all the Red Hat JBoss BRMS functionality, with additional capabilities of business activity monitoring, starting business processes, and managing tasks using Business Central. Red Hat JBoss BPM Suite also provides a central repository to store rules and processes.

2.2.1. Red Hat JBoss BPM Suite Key Components

The Red Hat JBoss BPM Suite comprises the following components:

  • JBoss BPM Central (Business Central)

    Business Central is a web-based application for creating, editing, building, managing, and monitoring Red Hat JBoss BPM Suite business assets. It also allows execution of business processes and management of tasks created by those processes.

  • Business Activity Monitoring Dashboards

    The Business Activity Monitor (BAM) dashboard provides report generation capabilities. It enables you to use a pre-defined dashboard and even create your own customized dashboard.

  • Maven Artifact Repository

    Red Hat JBoss BPM Suite projects are built as Apache Maven projects and the default location of the Maven repository is WORKING_DIRECTORY/repositories/kie. You can specify an alternate repository location by changing the org.guvnor.m2repo.dir property.

    Each project builds a JAR artifact file called a KJAR. You can store your project artifacts and dependent JAR files in this repository.

  • Execution Engine

    The Red Hat JBoss BPM Suite execution engine is responsible for executing business processes and managing the tasks, which result from these processes. Business Central provides a user interface for executing processes and managing tasks.

    Note

    To execute your business processes, you can use Business Central web application that bundles the execution engine, enabling a ready-to-use process execution environment. Alternatively, you can create your own execution server and embed the Red Hat JBoss BPM Suite and Red Hat JBoss BRMS libraries with your application using Java EE.

    For example, if you are developing a web application, include the Red Hat JBoss BPM Suite or Red Hat JBoss BRMS libraries in the WEB-INF/lib folder of your application.

  • Business Central Repository

    The business artifacts of a Red Hat JBoss BPM Suite project, such as process models, rules, and forms, are stored in Git repositories managed through the Business Central. You can also access these repositories outside of Business Central through the Git or SSH protocols.

2.2.2. Red Hat JBoss BPM Suite Features

Red Hat JBoss BPM Suite provides the following features:

  • Pluggable human task service for including tasks that need to be performed by human actors (based on the WS-HumanTask specification).
  • Pluggable persistence and transactions (based on JPA/JTA).
  • Web-based process designer to support the graphical creation and simulation of your business processes (drag and drop).
  • Web-based data modeler and form modeler to support the creation of data models and process and task forms.
  • Web-based, customizable dashboards and reporting.
  • A web-based workbench called Business Central, supporting the complete BPM life cycle:

    • Modeling and deployment: to author your processes, rules, data models, forms and other assets.
    • Execution: to execute processes, tasks, rules and events on the core runtime engine.
    • Runtime Management: to work on assigned task, manage process instances.
    • Reporting: to monitor the execution using Business Activity Monitoring capabilities.
  • Eclipse-based developer tools to support the modeling, testing and debugging of processes.
  • Remote API to process engine as a service (REST, JMS, Remote Java API).
  • Integration with Maven, Spring, and OSGi.

2.3. Supported Platforms and APIs

For a list of supported containers and configurations, see section Supported Platforms of Red Hat JBoss BPM Suite Installation Guide.

The kie-api is a fully supported API and it is the recommended way to interact with your project. For further information about API supportability, see Knowledgebase article What Are the Public and Internal APIs for BPM Suite and BRMS 6?.

2.4. Use Cases

2.4.1. Use Case: Business Decision Management in Insurance Industry with Red Hat JBoss BRMS

Red Hat JBoss BRMS comprises a high performance rule engine, a rule repository, easy to use rule authoring tools, and complex event processing rule engine extensions. The following use case describes how these features of Red Hat JBoss BRMS are implemented in insurance industry.

The consumer insurance market is extremely competitive, and it is imperative that customers receive efficient, competitive, and comprehensive services when visiting an online insurance quotation solution. An insurance provider increased revenue from their online quotation solution by upselling relevant, additional products during the quotation process to the visitors of the solution.

The diagram below shows integration of Red Hat JBoss BRMS with the insurance provider’s infrastructure. This integration is fruitful in such a way that when a request for insurance is processed, Red Hat JBoss BRMS is consulted and appropriate additional products are presented with the insurance quotation.

Figure 2.1. JBoss BRMS Use Case: Insurance Industry Decision Making

3628

Red Hat JBoss BRMS provides the decision management functionality, that automatically determines the products to present to the applicant based on the rules defined by the business analysts. The rules are implemented as decision tables, so they can be easily understood and modified without requiring additional support from IT.

2.4.2. Use Case: Process­-Based Solution in Loan Industry

This section describes a use case of deploying Red Hat JBoss BPM Suite to automate business processes (such as loan approval process) at a retail bank. This use case is a typical process-based specific deployment that might be the first step in a wider adoption of Red Hat JBoss BPM Suite throughout an enterprise. It leverages features of both business rules and processes of Red Hat JBoss BPM Suite.

A retail bank offers several types of loan products each with varying terms and eligibility requirements. Customers requiring a loan must file a loan application with the bank. The bank then processes the application in several steps, such as verifying eligibility, determining terms, checking for fraudulent activity, and determining the most appropriate loan product. Once approved, the bank creates and funds a loan account for the applicant, who can then access funds. The bank must be sure to comply with all relevant banking regulations at each step of the process, and has to manage its loan portfolio to maximize profitability. Policies are in place to aid in decision making at each step, and those policies are actively managed to optimize outcomes for the bank.

Business analysts at the bank model the loan application processes using the BPMN2 authoring tools (Process Designer) in Red Hat JBoss BPM Suite. Here is the process flow:

High-Level Loan Application Process Flow

3444

Business rules are developed with the rule authoring tools in Red Hat JBoss BPM Suite to enforce policies and make decisions. Rules are linked with the process models to enforce the correct policies at each process step.

The bank’s IT organization deploys the Red Hat JBoss BPM Suite so that the entire loan application process can be automated.

Figure 2.2. Loan Application Process Automation

3443

The entire loan process and rules can be modified at any time by the bank’s business analysts. The bank is able to maintain constant compliance with changing regulations, and is able to quickly introduce new loan products and improve loan policies in order to compete effectively and drive profitability.