Drools Flow is a workflow or process engine that allows
advanced integration of processes and rules. A process or a
workflow describes the order in which a series of steps need
to be executed, using a flow chart. For example, the following
figure shows a process where first Task1 and Task2 need to be
executed in parallel. After completion of both, Task3 needs to
be executed.
The following chapters will learn you everything you need
to know about Drools Flow. It's distinguishing characteristics
are:
- Advanced integration of processes
and rules: Processes and rules are usually considered as
two different paradigms when it comes to defining business logic.
While loose coupling between a processes and rules is possible by
integrating both a process and a rules engine, we provide advanced
integration of processes and rules out-of-the-box. This allows
users to use rules to define part of their business logic when
defining their business processes and vice versa.
- Unification of processes and
rules: We consider rules, processes and event processing
all as different types of knowledge. Not only do we allow the advanced
integration of these three types, we also offer a unified API and
unified tooling so that users should not learn three different products
but can easily combine these three types using our knowledge-based API.
The tooling also allows seamless integration of these different kinds of
knowledge, including things like a unified knowledge repository, audit
logs, debugging, etc.
- Declarative modelling:
Drools Flow tries to keep processes as declarative as possible, i.e.
focussing on what should happen instead of how. As a result, we try
to avoid having to hardcode details into your process but offer ways
to describe your work in an abstract way (e.g. using pluggable work
items, a business scripting language, etc.). We also allows users
to easily create domain-specific extension, making it much easier to
read, update or create these processes as they are using
domain-specific concepts that are closely related to the problem you
are trying to solve and can be understood by domain experts.
- Generic process engine supporting
multiple process languages: We do not believe that there
is one process language that fits all purposes. Therefore, the Drools
Flow engine is based on a generic process engine that allows the
definition and execution of different types of process languages, like
for example our RuleFlow language, WS-BPEL (a standard targeted towards
web service orchestration), OSWorkflow (another existing workflow
language), jPDL (the process language defined by the jBPM project), etc.
All these languages are based on the same set of core building blocks,
making it easier to implement your own process language by reusing and
combining these low-level building blocks the way you want to.
All these features (and many more) will be explained in the following
chapters.