The Imixs-Workflow Core-API
The Imixs-Workflow Core-API provides a platform independent open source workflow API. This API is the basic library for all other components provided by the Imixs-Workflow project. The Imixs-Workflow Core-API defines a set of java classes and interfaces to develop a workflow management solution. The Core-API is used by the Imixs-Workflow Engine and also the Imixs-Workflow REST API. The following section gives a brief overview about the architecture and general concepts.
The Imixs-Workflow Core-API consists of a set of interfaces and classes providing the general functionality of a workflow management solution. The following section describes these components and their basic concepts. The Imixs-Workflow Core-API is independent from a specific platform or technology and can be used in all kinds of java applications.
The WorkflowManager is the uppermost layer of each workflow system based on the Imixs-Workflow API. The interface org.imixs.workflow.WorkflowManager provides basic methods to create and control a process instance.
A process model describes the process flow of the business process. The interface org.imixs.workflow.Model provides methods to access a process model and navigate through the model. Each model consists of a set of process entities (Tasks) and activity entities (Events). A process entity defines the status of a process instance. In a graphical workflow model a process entity is typical represented by a node. An activity entity defines an action which can be performed on a workitem and also the transition to the new status. Each process entity and activity entity stores process information as also processing introductions. There are different ways a Model can be implemented by a Workflow Management System. The Imixs-BPMN Modeler provides an eclipse based graphical editor to define workflow models based on the BPMN 2.0 specification.
The Imixs-Workflow Core API provides a Plug-In concept to provide components implementing a concrete behavior inside a workflow management system. A Plug-in is called by the WorkflowManager when a process instance is processed. Plug-ins can implement application specific functionality and business logic. Plug-ins are reusable components in the Workflow Management System and typical used by the application developer to design the behavior of a business application. See the section Plug-Ins for more information.
The WorkflowKernel implements the core functionality of the Imixs-Workflow API. The WorkflowKernel can start a new process instance and process a running instance based on the definition of the process model. The WorkflowKernel validates the processing phase and coordinates the interaction between the model and the plug-ins. See the section WorkflowKernel for more information.
All data objects in the Imixs-Workflow API are encapsulated in a generic value object called ‘ItemCollection’. The ItemColleciton is a very flexible kind of document oriented data structure which can consist of a variable number of attributes (Items). Each Item in an ItemCollection is defined by the Item-Name and a Item-Value. The value of an Item can be any java based data object which is serializeable. See the section ItemCollection for further information and examples.