The Imixs Workflow Engine is based on the Imxis Workfow API. The general concepts of Imixs Workflow API are also valid to the Imixs Workflow Engine.
The Imixs Workflow Engine provides a set of components which can be used to implement enterprise workflow management solutions. The components are divided by the different building blocks of a workflow management system. You always use only these components which are helpful for your desired functionality.
The EntityService component is used to save and load an instance of an ItemCollection into a Database. An ItemCollection is a value object containing all informations about a process instance. For example all workitems processed by the Imixs Workflow Engine are stored by the EntityService into the database. But also Model entities or other business objects can be managed by the EntityService. The EnityService provides an access control list (ACL) for each entity to avoid unauthorized access to the values of an ItemCollection. When the CallerPrincipal is not allowed to save or read a specific ItemCollection from the database the EntityService throws an AccessDeniedException. The EntityService can be used to save business objects into a database with individual read- or writeAccess restrictions. The EntityService is the core service component used by the Imixs JEE Workflow.
The WorkflowService component is the JEE implementation of the Imixs Workflow API. This component acts as a service facade and supports general methods to create, process and access workitems. The component is easy to use and all the business logic can be controlled fully by a workflow model. The WorkflowService component provides also a set of methods to find and fetch collections of workitems processed by the WorkflowManager. The WorkflowService is the main component used by an application to manage business logic.
The ModelService component is the JEE Implementation of the Model interface from the Imixs Workflow API used by the WorkflowService. The Interface acts as a Service Facade and extends the standard interface with useful methods to load and store workflow models. The ModelService component can be used by an application to provide the user with informations about the workflow model for a specific business process. Models can be managed by the Imixs Eclipse Workflow Plugin.
The ReportService component supports methods to create, find and execute Imixs Workflow Reports. A report can be used to generate aggregated informations from workitems and process informations managed by the WorkflowService. Reports are a very flexible technology and provide an easy to use interface based on the Imixs REST Service API. Reports can be created by the Imixs Eclipse Workflow Plugin.