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.
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.
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:
The project uses the configuration and build framework Apache Maven and publishes all artifacts into the Central Maven repository.
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:
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.
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:
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.
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.
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 [5] was published. The project sources are hosted on GitHub. [6]
Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.
Camunda provides a workflow and decision automation platform offering process orchestration capabilities to organizations of any size. Camunda Platform comes from years of research and development including open source initiatives.
WebObjects is a discontinued Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.
BEA Systems, Inc. was a company that specialized in enterprise infrastructure software products, which was wholly acquired by Oracle Corporation on April 29, 2008.
Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by The Apache Software Foundation, where it was formerly part of the Jakarta Project.
Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model.
The XML Process Definition Language (XPDL) is a format standardized by the Workflow Management Coalition (WfMC) to interchange business process definitions between different workflow products, i.e. between different modeling tools and management suites. XPDL defines an XML schema for specifying the declarative part of workflow / business process.
The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.
jBPM is an open-source workflow engine written in Java that can execute business processes described in BPMN 2.0. jBPM is a toolkit for building business applications to help automate business processes and decisions. It's sponsored by Red Hat, part of the JBoss community and closely related to the Drools and OptaPlanner projects in the KIE group. It is released under the ASL by the JBoss company.
JBoss Developer Studio (JBDS) is a development environment created and currently developed by JBoss and Exadel.
Business process management (BPM) is the discipline in which people use various methods to discover, model, analyze, measure, improve, optimize, and automate business processes. Any combination of methods used to manage a company's business processes is BPM. Processes can be structured and repeatable or unstructured and variable. Though not required, enabling technologies are often used with BPM.
Spring Roo is an open-source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Thymeleaf, Apache Maven and AspectJ. Spring Roo is a member of the Spring portfolio of projects.
This article provides a comparison of Business Process Model and Notation (BPMN) tools.
Bonita is an open-source business process management and low-code development platform created in 2001. Bonita technology was developed originally in 2001 by Miguel Valdés Faura, at the French Institute for Research in Computer Science and Automation, and subsequently transferred to Groupe Bull. In 2009, the Director of the BPM division, Miguel Valdes Faura, founded Bonitasoft, which is a French open-source software vendor.
Activiti is an open-source workflow engine written in Java that can execute business processes described in BPMN 2.0. Activiti is the foundation for Alfresco's Alfresco Process Services (APS) and Alfresco is the Activiti project's leading sponsor.
Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains. It is used by businesses and organizations to not only model the architecture of their systems, but to process the implementation of these models across the full application development life-cycle.