IX Workflow API

Imixs IX Workflow API provides the platform for an open and standardized workflow technology. IX Workflow API provides various components in a Java framework that allow to create, control and monitor process-oriented business tasks. The results of the imixs.org project are subject to the GPL licensing model.

The following documentation describes the most important concepts and fundamentals of the IX Workflow API. The documentation does not cover each detail of the implementation. Please refer to the Java documentation as well as to the source code. 

Architecture

The framework consists of a small set of components that perform individual functions within a enterprise workflow system. The modules can be implemented and extended as desired, creating a highly flexible and open workflow platform based on Java. As shown in Fig. 1, the framework consists of only a few interfaces and classes. So the concept is very easy to understand and may be implemented in different ways. Below, you find a short description of the individual modules and their concepts.


Fig. 1

WorkflowManager

The WorkflowManager is the uppermost layer of a workflow system. It is used as the interface between a database system and the so-called WorkflowKernel. For this purpose, the WorkflowManager provides methods to generate and find WorkItems. Furthermore, it provides a WorkflowModel and registers concrete plugins for processing with the WorkflowKernel. The WorkflowManager works as a controller that loads and stores the WorkItems to be processed, and registers the functions required for process handling as plugins with the WorkflowKernel. The WorkflowManager is not responsible for process control (WorkflowKernel) or processing (plugins). The WorkflowManager just provides the infrastructure that allows an user or a software system to process WorkItems within a business process.

WorkflowKernel

The WorkflowKernel maps the basic functionality of a workflow system. This includes the analysis of the WorkflowModels, process control and the maintenance of the process functions (plugins). The WorkflowKernel is always instantiated and called by a WorkflowManager. When a WorkItem is processed, the WorkflowKernel instantiates the plugins previously registered by the WorkflowManager and forwards the WorkItem to be processed to the plugins that perform actual process handling. This allows isolating the process control from process handling. In other words: Process extensions or modifications are achieved quickly and without many efforts by modifying or adding small plugins. The actual WorkflowEngine remains unchanged.

Model

The model is used to encapsulate the individual process-handling statements. For this purpose, the model provides functions for finding process stages and activities. A process stage contains accurate information about a process stage within the WorkflowModel such as name or status designation. A process is typically represented as a Node inside a graphical workflow model. On the contrary, an activity contains all information required for process control and process handling. An activity is typical represented as an edge inside a graphical workflow model. The WorkflowKernel uses the WorkItem to determine the associated ActivityEntity and forwards the activity together with the WorkItem to the registered plugins. The plugins then perform process handling. After finishing process handling, the WorkflowKernel will update the status of the WorkItem using the information in the activity and the associated process stage. The WorkflowKernel controls the process as defined by the model while the plugins perform process handling. The model is always instantiated by the specific WorkflowManager and forwarded to the WorkflowKernel as an interface.

WorkflowContext

The WorkflowContext is an abstract interface that describes the environment of a workflow system. The WorkflowContext is used to establish a connection between the WorkflowManager and the plugins called by the WorkflowKernel.

Plugin

Plugins are registered by the WorkflowManager with the WorkflowKernel and perform actual process handling. A plugin can access and execute special functions of the underlying software system without requiring control by the WorkflowKernel. This concept allows flexible design and use of the plugins. A plugin should only handle a certain detail process and not perform the functions of a persistence mechanism (WorkflowManager) or control functions (WorkflowKernel). The plugin concept separates the WorkflowEngine from the technical implementation.

read additional informations:

TopLinks