KIE Execution Server :: Basic Concepts


The Kie Server (6.5.0.Final) is a standalone server that can be used to instantiate and execute rules and processes. It exposes this functionality via REST, JMS and Java interfaces to client application. The Kie Server is a web application packaged as a WAR file. Distributions are available for servers like Tomcat and for jee6 and jee7 containers.
The difference between Kie Server and jBPM Console is that Kie Server is focused in remote execution, while jBPM console offers a complete authoring environment, including process execution features and a remote API.
The KIE Server works by accessing kjars from a Maven repository and exposing its rules and process throught HTTP or JMS.
The Kie Server is configurable, and based on the concepts of extensions. Each extension can be enabled/disabled independently, allowing the user to configure the server to its need.
The Server is enabled by default extension:
  • BRM – provides support for the execution of Business Rules using the Drools rules engine.
  • BPM – provides support for the execution of Business Processes using the jBPM process engine. It supports:
    • process execution
    • task execution
    • assynchronous job execution
  • Kie Server Extensions:

    are plugins for the Kie Server that adds capabilities to the server. The capabilities are provided by Kie Server Extensions

  • Kie Server instance:

    A Kie Server instance is a standalone Kie Server executing on a given application server/web container.

  • Kie Container:

    A Kie Server instantiates and provides support for multiple Kie Containers. The Container is an in-memory instantiation of a kjar, allowing for the instantiation and usage of its assets (domain models, processes, rules, etc). A Kie Server exposes Kie Containers through a standard API over transport protocols like REST and JMS.

  • Controller:

    is responsible for managing KIE Server instances, implemented by a server REST end point. Such controller must:
    • respond to connect request
    • sync all registered containers on the corresponding Kie Server ID
    • respond to disconnect requests

  • Kie Server ID:

    At boot, each Kie Server Instance is assigned an ID, and that ID is matched to a configuration on the controller.

Remote Repository (kjar modules) Setup

The settings.xml file can be located in 3 locations, the actual settings used is a merge of those 3 locations:

  • The Maven install: $M2_HOME/conf/settings.xml
  • A user’s install: ${user.home}/.m2/settings.xml
  • Folder location specified by the system property kie.maven.settings.custom

The settings.xml is used to specify the location of remote repositories. It is important that you activate the profile that specifies the remote repository, typically this can be done using “activeByDefault”:


Leave a Reply