Home >> Technical Notes >> FlowMind - WorkFlow / BPM Engine
FlowMind - WorkFlow / BPM Engine Print E-mail

All the components of the architecture run on a single Java Virtual Machine (JVM).


The core of the WorkFlow / BPM Engine is a 100% Java component.
This component executes processes (Process FlowBean), designed with FlowPoint and FlowComposer.
During the execution of processes, Processor interacts with :
  • The technical environment through integration FlowBean, who connect to other components of the information system
  • The human environment through the FlowBox module
The Java environment (object modelling, persistence) coupled with a state of the art development guarantee the reliability of the Processor engine.
The Processor component stores the following data in any database :
  • The process definition (step sequence graph)
  • All actions in progress
  • History data for completed actions
The dataset of the actions (active and completed) is stored using the standard Java serialisation mechanisms. This method of storage offers a high level of performance and security whilst also guaranteeing ascending compatibility of data.
The history is stored in a special table containing one line for each trace of event (the list of traced events is configurable). One line contains the type of event, the date and time, the ID of the actions and the ID of the task involved in the action. Th ID gives access to the dataset for the task or for the entire action. Thanks to the standard Java serialisation mechanisms, the dataset can only be accessed through the API history (no risk of data corruption).
The Processor component uses a Java class called TraceLogger. TraceLogger has access to all events and data processed by the core of the WorkFlow / BPM Engine. Because the interface for this class is published, it is possible to develop a custom TraceLogger. The TraceLogger is a simple and efficient means of interfacing with an operating console. Samples TraceLogger are supplied for SMTP or SNMP protocols.


FlowBox is 100% Java component. This component manages the process participants task list.

The Processor component sends an event to the FlowBox component when tasks are pending. The FlowBox component sends it back when the tasks are completed.

The FlowBox component stores the following data in any database :

  • Tasks pending for users
  • Tasks completed by users and awaiting processing by Processor
  • Completed tasks for history

User Manager:

This is the link between the WorkFlow / BPM Engine and the corporate user directory (LDAP directory, JDBC database, text file, etc.).

Thanks to this component, the process definition remains independent from the corporate user directory.

The advantage of the User Manager component is that it adapts perfectly to the information system in place, whether it contains one or many user directories.

The implementation of a User Manager is called a User Manager Driver.

Document Manager:

This is the link between the WorkFlow / BPM Engine and the corporate DMS.

The physical implementation of the DMS is masked by the Document Manager component.

The advantage of the Document Manager component is that processes remain independent from the DMS in place.

The implementation of a Document Manager is called a Document Manager Driver.

Application Programming Interface (API):

The two APIs come with their respective JavaDoc.

The Integration API defines the integration between the WorkFlow / BPM Engine (FlowBox, Processor, User Manager, Document Manager) and the existing information system.

The Interaction API defines the interactions between the WorkFlow / BPM Engine and the end users.