# Imixs-Workflow

Imixs Workflow is an open-source project, providing technologies for building Business Process Management solutions. The project focus on human based workflows used to execute and control workflows in organisations and enterprises. In difference to task-oriented workflow engines, which focus on automated program flow control (tasks), Imixs Workflow is a representative of an event-based workflow engine. Here, the engine controls the status of a process instance within a defined state-diagram. By entering an event, the state of a process instance can be abandoned or changed. In human-centric workflow engines, events usually occur by an interaction of the actor with the system, for example by approving or rejecting a business transaction. They can also be triggered by scheduled events. An example of this is an escalation of an unfinished task.
The goal of the open-source project is to reduce the complexity of business applications by providing a flexible framework to implement business logic based on the BPMN 2.0 standard.

## Naming

The name Imixs is derived from the word Imix. Imix means the first day in the so-called Tzolkin calendar from Aztecs and Mayas. In this respect the word Imix is also used for the terms Earth, abundance, water lily and alligator.

## Project Structure

The open-source project provides a framework for various aspects of workflow technology. It aims to provide a flexible architecture for the general requirements of workflow management systems. Overall the project is separated into the following areas:
* imixs-core – a java API to manage dataobjects and workflow models, supporting BPMN 2.0
* imixs-engine – a Workflow-Engine based on the Java-Enterprise-Technology JEE
* imixs-jax-rs – a WebService API for platform independent integration into external IT systems
* imixs-faces – a JSF component library for web applications
* imixs-bpmn - a BPMN modelling tool based on Eclipse
The project uses the configuration and build framework Apache Maven and publishes all artifacts into the Central Maven repository.

## Technology

The project is based on the Java Enterprise Architecture (JEE) and represents a scalable and transactional framework for workflow management solutions. A major goal of the technology is to simplify the software build process in modern business applications. The project takes advantage of the JEE component model, and allows to reuse all components without limiting the capabilities of the Java EE architecture.
The technologies used includes:
* EJB 3.1 – technology for a transactional business process management
* Java Persistence API vendor independent database access
* Java Authentication and Authorization Service for security
* BPMN 2.0 for modelling business workflows.
The reference implementation is based on the GlassFish application server. JBoss and WildFly application servers are supported. By Using the Java Persistence API (JPA), the workflow engine is database independent and can be used with any relational SQL database.

## Philosophy

The Imixs-Workflow project focuses on Human task-centric workflows. This means that a business process is typically controlled by the user (actor). Imixs-Workflow manages the state of business objects and provides the user with information during a business process. For Example:
* The current Status and Process Owner for each business object
* A Process History & Documentation for each business object
* Read- and Write Access (ACL) for each business object
A Human task-centric workflow system assists users in starting a new process, finding and processing open tasks and helps users to complete current jobs in the defined way. The Workflow Engine automatically routes processed tasks to the next actor and notifies users about new tasks depending on the current process definition. The following illustration demonstrates the typical flow of a document or datasheet from one user to another controlled by a Workflow Management System.

## Licence

Imixs-Workflow provides the results of the project under the GPL with a dual-license model, to meet the usage and distribution requirements of different types of users.

## History

The Imxis workflow project was founded in 2005 by Imixs software solutions GmbH. In the year 2016 the open-source BPM platform Imixs-Office-Workflow was published. The project sources are hosted on GitHub.