The Imixs-Workflow Engine
The Imixs-Workflow engine provides a set of Java EE services to access the workflow model and to create and manage process instances of a process definition, called workitems. The Imixs-Workflow engine can be embedded into a Java Enterprise application or can be accessed through the RESTfull service API.
The Imixs-Workflow Engine is based on the Imixs-Workflow Core-API and implements a set of Java EE service interfaces. These services are divided into the typical building blocks of a workflow management system:
- The Database Layer -> DocumentService
- The Workflow Kernel -> WorkflowService
- The Model -> ModelService
- The Analysis -> ReportService
The DocumentService is the general persistence layer of the Imixs-Worklfow engine and provides an interface to store, load and query data objects (Documents) within a database. The DocumentService is independent from the workflow engine and can not only be used to persist a process instance (workitem), but also any other kind of business data, not necessarily associated with the workflow engine (e.g configuration data). Each document managed by the DocumentService is assigned to a access control list (ACL). The ACL protects the document from unauthorized access.
The DocumentService creates a Lucene Search Index over all documents and provides methods to query documents by a search term. This is a power full feature to navigate easily through the workitems managed by the Imixs-Workflow engine.
The WorkflowService provides the interface to the Imixs-Workflow kernel. This component provides methods to create, process and access workitems. A workitem managed by the WorkflowService must be assigned to a valid workflow model definition managed by the ModelService.
The ModelService manages the models and provides methods to store a new model definition. A model can be created with the Eclipse based modeling tool Imixs-BPMN. The ModelService is used internally by the WorkflowService but can also be used by the business application to navigate through a model definition.
The ReportService component supports methods to create, find and execute business reports created with the Eclipse based Imixs-Workflow Modeller. A report is used to generate aggregated information from data objects managed by the DocumentService.