Tag Archives: Activiti

[repost ]jBPM, Bonita, Intalio, ProcessMaker, Activiti. Qué BPM Suite uso?

original:http://holisticsecurity.wordpress.com/2011/07/21/jbpm-bonita-intalio-processmaker-activiti-que-bpm-suite-uso/

Ultimamente, en los cursos que suelo impartir o durante la etapa de consultoría con algún cliente me preguntan ¿Qué BPM me recomendarías? o, he comprado un CMS y viene con un Workflow, podría crear un Sistema de Gestión de Expedientes?
Y mi respuesta siempre es, sabes qué es un BPM?, sabes lo que implicaría construir aplicaciones siguiendo BPM en tu organización?. Pues la respuesta es muchas veces “no”. En esta situación, siempre lo mejor es aclarar los conceptos e
iniciar algún proceso de evaluación de tecnologías, casos de éxitos, costes económicos y las consecuencias.

jBPM, Bonita, Intalio, ProcessMaker and ActivitijBPM, Bonita, Intalio, ProcessMaker and Activiti

Este post es el primero de una serie de posts relacionados con BPM Free/Open Source. En este primero haremos una presentación rápida de las alternativas tecnológicas de los BPMs free/open source de mayor actividad y hacernos una idea
de cuál o cuáles son los más adecuado para cada escenario que nos encontremos en nuestras Organizaciones.
En los siguientes posts entraremos en detalle en cada uno de las herramientas BPM, inclusive haciendo alguna prueba de concepto con cada uno de ellos.

Antes de iniciar con la revisión, describiré qué elementos o componentes importantes existen en una Suite BPM y unas definiciones.

1. Definiciones y conceptos

BPM: Business Process Management.

Metodología que permite analizar el comportamiento de la organización a través de los procesos.
De Wikipedia (http://es.wikipedia.org/wiki/Gesti%C3%B3n_de_procesos_de_negocio)
“Se llama Gestión de procesos de negocio (Business Process Management o BPM en inglés) a la metodología corporativa cuyo objetivo es mejorar la eficiencia a través de la gestión de los procesos de negocio, que se deben modelar, organizar, documentar y optimizar de forma continua. Como su nombre sugiere, BPM se enfoca en la administración de los procesos dentro de una organización.”

BPMS: Buiness Process Management System or Suite.

Un conjunto de herramientas o componentes que busca automatizar la construcción de aplicaciones siguiendo la metodología BPM.

2. Componentes en una Suite BPM

1. Workflow:
Es el motor que ejecuta/orquesta los procesos de negocio definidos, lo hace siguiendo un lenguaje que el motor entiende, comunmente es BPEL.

2. Process Designer:
Es la herramienta que permite definir los procesos de negocio usando una simbología o lenguaje natural propio de BPM.
Este lenguaje puede ser BPMN o XPDL, algunos también suelen considerar BPEL.

3. Form Creator: 
La herramienta que me permite definir los formularios de interacción humana, es decir, formularios donde el usuario/persona puede iniciar, rechazar, aprobar, etc, es decir, interactuar con una instancia de un proceso de negocio.

4. Business Activity Monitoring (BAM): 
De la Wikipedia (http://en.wikipedia.org/wiki/Business_activity_monitoring):
“… is software that aids in monitoring of business activities, as those activities are implemented in computer systems.”

Los elementos de un BAM son: KPI’s (indicadores claves de rendimiento), Dashboard (consola que permite monitorizar en tiempo real el valor actual de los KPI’s para tomar decisiones).
En mi opinión, el concepto de BI (Business Intelligence) engloba a BAM. Mientras que BAM aplica a las Organizaciones, BI es una disciplina y conjunto de herramientas que aplica a diferentes escenarios.

5. Business Rules Engine (BRE): 
De la Wikipedia (http://en.wikipedia.org/wiki/Business_rules_engine):
“… is a software system that executes one or more business rules in a runtime production environment. The rules might come from legal regulation (“An employee can be fired for any reason or no reason but not for an illegal reason”), company policy (“All customers that spend more than $100 at one time will receive a 10% discount”), or other sources. A business rule system enables these company policies and other operational decisions to be defined, tested, executed and maintained separately from application code.”

6. Connectors: 
– Para ECM
– Para LDAP
– Para ESB, etc.

Son aquellos componentes que hacen que los BPMS tengan más sentido dentro de la Organización, por ejemplo, un sistema de gestión de expedientes donde su motor sea un workflow no tiene sentido sin un repositorio documental para alojar los documentos entrantes y salientes.

3. BPMS/Workflows Free/Open Source

Existen muchos Workflows engine, BPMs free/open source y comerciales, nos centraremos únicamente en los proyectos FOSS y que de alguna forma están formados por los componentes antes indicados.

Pero por si os de interés, la lista de BPMS/Workflows FOSS actualizada (basada en “Open Source Workflow Engines in Java” – http://java-source.net/open-source/workflow-engines) al 2009 es esta:

BPMS FOSS list - 2009BPMS FOSS list – 2009

Download (XLS) Lista aquí.

4. BPMS Free/Open Source

Iniciaré una revisión con los BPMS siguientes, ya que en mi opinión, estos son los proyectos más activos en este momento:

  • 1. jBPMEs el BPMS más veterano, Red Hat está detrás de esta iniciativa y en el 2010 hubo un cambio en el equipo de proyecto, esto dio paso al uso de Drools como BPM engine dentro de la versión 5.
    También dió paso al nacimiento de otro proyecto BPMS llamado Activiti.
    Aunque es un proyecto relativamente de un uso muy intensivo, la versión 5, es muy joven.
  • 2. BonitaBPMS que sin mucho aspavientos, resuelve con creces los objetivos de cualquier BPMS de esta época: Social, Colaboración y Zero Code.
  • 3. IntalioOtro proyecto veterano y equiparable a los BPMS comerciales, aunque la fuerza de su comunidad es muy baja.
  • 4. ProcessMakerEs BPMS muy versátil y eficaz. Hace lo que la gran mayoría de las PYMES necesitan. Es el único en esta lista construída en PHP.
  • 5. ActivitiEs el proyecto más joven de los evaluados, a nivel técnico el proyecto es muy prometedor aunque le falta posicionarse en el sector de los BPMS.

Para tener una noción de qué BPMS es la más adecuada para nuestra organización, es necesario revisar y valorar cuantitativamente cada una de ellas.
La valoración cuantitativa la hago con una escala de 0 (no tiene o no existe) a 5 (cumple al 100%) para la existencia de ciertas características y funcionalidades de la tabla siguiente:

List of BPMS features to evaluateList of BPMS features to evaluate

Entonces, la valoración quedaría así:

Evaluation of jBPMEvaluation of jBPM
Evaluation of Bonita Open SolutionEvaluation of Bonita Open Solution
Evaluation of Intalio|BPMS Community EditionEvaluation of Intalio|BPMS Community Edition
Evaluation of ProcessMakerEvaluation of ProcessMaker
Evaluation of ActivitiEvaluation of Activiti

Conclusiones

Después de valorar cuantitativamente cada una de los BPMS, concluímos:

  1. Si el día de mañana tenemos que iniciar un proyecto siguiendo BPM que requiera el uso de los estándares, que sea posible integrarlo a las diferentes aplicaciones legadas y que el volumen de usuarios es muy alto, entonces Bonita Open Solution es nuestra alternativa.
    Partimos también que si iniciamos un proyecto nuevo dentro de la organización, es necesario contar con información técnica actualizada y abundantes ejemplos que puedan ayudar a cómo se construir rápidamente aplicaciones BPM.
  2. Si nuestra organización es una PYME, Bonita Open Solution y el resto de BPMS quedan algo grande excepto ProcessMaker. Al usarlo no se pierde nada valioso, todas las funcionalidades que BPMS comerciales y las otras analizadas, ProcessMaker las tiene.
    Si el volumen de usuarios se ve incrementado, no hay problema, ProcessMaker puede ser escalado sin ningún problema o si deseas puedes contratar la versión SaaS alojado en Amazon EC2.
  3. Para usar jBPM debemos esperar que la fuerza de su comunidad crezca, abundante y exacta información técnica exista, aunque si las organizaciones valoran la buena integración con Drools, entonces jBPM es la mejor alternativa.
  4. Activiti, al igual que jBPM, aunque inicien con versiones superiores o iguales a 5.1, los pocos o ninguno casos de éxitos, la poca documentación técnica del producto se traduce en poca confianza en el producto, pues Activiti no es una buena alternativa.
    Técnicamente, Activiti es de lo mejor, al ser parte del proyecto Alfresco ECM, es una cuestión de tiempo para que se convierta en el BPM de referencia.
  5. Intalio comparado a los 4 BPMS restantes es otra buena alternativa, aunque la incorporación de funcionalidades muy importantes en la versión Enteprise Edition disuade su uso.
    Por otro lado, al igual que la gran mayoría de productos con licenciamiento dual (Open Source y Comercial) no tiene documentación exacta, quedando únicamente los foros públicos como medio para solventar dudas.
jBPM vs. Bonita vs. Intalio vs. ProcessMaker vs. ActivitijBPM vs. Bonita vs. Intalio vs. ProcessMaker vs. Activiti

Observaciones

Este artículo expresa mi personal opinión acerca de estos proyectos resultado de haber pasado por varios procesos de revisión y conocimiento de cada BPMS antes de iniciar un proyecto de desarrollo.

Entender que esta revisión pretende ser una forma rápida para identificar la solución BPMS que se ajusta a mis necesidades.

No pretender ser una referencia absoluta, ni nunca lo será.

El resultado de la evaluación está relacionado a mi conocimiento del producto, que es fruto de haber usado dichas suites en proyectos reales y pruebas de concepto.

En los siguientes artículos entraré en mayor detalle en cada uno de ellos, comparando características concretas como por ejemplo, el nivel de implementación de BPMN2 o la tecnología usada para generación automática de formularios, etc.

Entonces, espero que este os haya servido de algo.

End.

Referencias:

[repost ]jBPM vs Activiti: which to choose?

original:http://www.mastertheboss.com/activiti-bpmn/jbpm-vs-activiti-which-to-choose

This is an update to my earlier article which was written in 2011 when jBPM 5 was still not available in its final release. We will try to compare the two process engines showing, besides the similarities, also the key differences between them.

jBPM—is an open source process engine that initially (release 3.x) supported a custom language (named jPDL) to describe business processes. In the next release (4.x) jBPM offered both support for jPDL and the standard BPMN 2.0 which is the standard for business process modelling. The release 4.x of jBPM was never included into RedHat list of supported products and so was not clearly the choice for mission critical project.

The next version  5.x  of jBPM supports  BPMN   2.0, and the project  has  merged  with  the  JBoss  Drools  project  (an  open  source  business-rule  management  framework)  and  replaced  Drools  Flow  as  the  rule  flowlanguage for the Drools framework.

The key features of jBPM 5 are:

  • Native BPMN2 execution
  • Highly configurable, embeddable, lightweight process engine using a generic process engine (PVM) underneath
  • Domain-specific processes and rule / event integration via the Drools Rule engine and Drools Flow workflow
  • Independent, human tasks service (using WS-HT)
  • Web tooling for things like BPMN2 process creation, deployment, management, reporting (with BIRT) and human tasks
  • Migration capabilities from jBPM 3 and 4 (jPDL 3, 4 to BPMN2)

Activiti, like jBPM, is a business process framework designed around the concept of a state machine. Backed by Alfresco company, Activiti has also the collaboration of many talented people from SpringSource as well.

Some differences do exist, in particular:

  • Activiti has native Spring support which allows using Spring Beans in your process and in data persistence (JPA) as well.
  • Activiti has no native rule engine support but supports a basic integration with Drools to support the business Rule Task
  • Activiti is a bit more friendly for Java developers providing a rich set of BPMN extensions to decorate the process
  • Provides an advanced Web interface (Activiti Explorer) which can be used to start/manage processes and ad hoc task and forms support.

So, in terms of comparison, we can argue that Activiti looks like the logical continuation of jBPM 3(and in fact was developer by the same jBPM 3 guys T. Baeyens, J. Barrez). It has a lower learning curve also due to a very well done documentation, including a quick start tutorial. Activiti platform is completely dedicated to process and workflow management and has some integration support with Rules systems (Drools Expert) and enterprise integration capabilities (Apache Camel and Mule ESB modules).

On the other hand, jBPM 5 has a native built-in business Rules engine therefore, the process and workflow management and rule management capabilities are tightly integrated. In the latest (5.3) release the Eclipse editor has improved a lot its BPMN 2.0 process designer capabilities and a first release of the form editor has been released.<

[repost ]bonitasoft bpm vs jBPM vs Activiti

original:http://stackoverflow.com/questions/7279329/bonitasoft-bpm-vs-jbpm-vs-activiti

 question:

I am evaluating BPM offerings to be used within our application. I wanted to find out

a) the differences between Bonitasoft / jBPM and Activiti b) Some of these products provide forms generation capabilities – are they any good? Would you use it in place of custom web forms or in addition to custom web forms

 

Answer:

take a look at the activiti in action book from manning publication. This is still in MEAP edition so you can download the sample chapter.

Start reading from the section that reads “ACTIVITI AND JBPM”. It also compares Activiti and Bonitasoft.

http://www.manning.com/rademakers2/ActivitiMEAPch01.pdf

 

Answer:

the good thing about jBPM5 is that is completely integrated with Drools and Drools fusion, allowing you to model and execute complex business scenarios. At least in my experience once you get the process engine the next step is to integrate it with a Rule Engine and probably with complex event processing features. jBPM provides all of this out of the box and the good thing is that you don’t need to learn different APIs to use all the features.

You also need to evaluate the tooling that in jBPM5 supports the complete lifecycle providing you tools for authoring your processes and rules and a repository to manage and store your processes.

Another good thing is the jBPM5 community, there are a lot of people adopting the project and a book will go out before the end of the year.

 

[repost ]Activiti 5.12 User Guide

original:http://www.activiti.org/userguide/index.html

Table of Contents

1. Introduction
License
Download
Sources
Required software
JDK 6+
Eclipse Indigo and Juno
Reporting problems
Experimental features
Internal implementation classes
2. Getting Started
One minute version
Activiti setup
Activiti database setup
Include the Activiti jar and its dependencies
Next steps
3. Configuration
Creating a ProcessEngine
ProcessEngineConfiguration bean
Database configuration
Supported databases
Creating the database tables
Database table names explained
Database upgrade
Job executor activation
Mail server configuration
History configuration
Exposing configuration beans in expressions and scripts
Deployment cache configuration
Logging
4. The Activiti API
The Process Engine API and services
Exception strategy
Working with the Activiti services
Deploying the process
Starting a process instance
Completing tasks
Suspending and activating a process
Further reading
Query API
Expressions
Unit testing
Debugging unit tests
The process engine in a web application
5. Spring integration
ProcessEngineFactoryBean
Transactions
Expressions
Automatic resource deployment
Unit testing
6. Deployment
Business archives
Deploying programmatically
Deploying with Activiti Explorer
External resources
Java classes
Using Spring beans from a process
Creating a single app
Versioning of process definitions
Providing a process diagram
Generating a process diagram
Category
7. BPMN 2.0 Introduction
What is BPMN?
Defining a process
Getting started: 10 minute tutorial
Prerequisites
Goal
Use case
Process diagram
XML representation
Starting a process instance
Task lists
Claiming the task
Completing the task
Ending the process
Code overview
Future enhancements
8. BPMN 2.0 Constructs
Custom extensions
Events
Event Definitions
Timer Event Definitions
Error Event Definitions
Signal Event Definitions
Message Event Definitions
Start Events
None Start Event
Timer Start Event
Message Start Event
Error Start Event
End Events
None End Event
Error End Event
Cancel End Event
Boundary Events
Timer Boundary Event
Error Boundary Event
Signal Boundary Event
Message Boundary Event
Cancel Boundary Event
Compensation Boundary Event
Intermediate Catching Events
Timer Intermediate Catching Event
Signal Intermediate Catching Event
Message Intermediate Catching Event
Intermediate Throwing Event
Intermediate Throwing None Event
Signal Intermediate Throwing Event
Compensation Intermediate Throwing Event
Sequence Flow
Description
Graphical notation
XML representation
Conditional sequence flow
Default sequence flow
Gateways
Exclusive Gateway
Parallel Gateway
Inclusive Gateway
Event-based Gateway
Tasks
User Task
Script Task
Java Service Task
Web Service Task
Business Rule Task
Email Task
Mule Task
Camel Task
Manual Task
Java Receive Task
Shell Task
Execution listener
Task listener
Multi-instance (for each)
Compensation Handlers
Sub-Processes and Call Activities
Sub-Process
Event Sub-Process
Transaction subprocess
Call activity (subprocess)
Transactions and Concurrency
Asynchronous Continuations
Exclusive Jobs
Process Initiation Authorization
9. Forms
Form properties
External form rendering
10. JPA
Requirements
Configuration
Usage
Simple Example
Query JPA process variables
Advanced example using Spring beans and JPA
11. History
Querying history
HistoricProcessInstanceQuery
HistoricVariableInstanceQuery
HistoricActivityInstanceQuery
HistoricDetailQuery
HistoricTaskInstanceQuery
History configuration
History for audit purposes
12. Eclipse Designer
Installation
Activiti Designer editor features
Activiti Designer BPMN features
Activiti Designer deployment features
Extending Activiti Designer
Customizing the palette
Validating diagrams and exporting to custom output formats
13. Activiti Explorer
Process diagram
Tasks
Start process instances
My instances
Administration
Reporting
Report data JSON
Example process
Report start forms
Example processes
Changing the database
14. Activiti Modeler
Model editing
Importing existing models
Convert deployed definitions to a editeable model
Export model to BPMN XML
Deploy model to the Activiti Engine
15. REST API
General Usage
Repository
Upload Deployment
Get Deployments
Get Deployment Resources
Get Deployment Resource
Delete Deployment
Delete Deployments
Engine
Get Process Engine
Processes
List Process Definitions
Get Process Definition Form Properties
Get Process Definition Form Resource
Get Process Definition Diagram
Start Process Instance
List Process Instances
Get Process Instance Details
Get Process Instance Diagram
Get open tasks for a process instance
Signal an activity (receive task) for a specific process instance
Tasks
Get Task Summary
List Tasks
Get Task
Get Task Form
Perform Task Operation
List Form Properties
Add attachment to a task
Get task attachment
Add url to a task
Identity
Login
Get User
List User’s Groups
Search users
Create user
Add user to groups
Remove user from group
Get user picture
Get Group
List Group Users
Search groups
Create group
Add users to a group
Remove user from group
Management
List Jobs
Get Job
Execute Job
Execute Jobs
List Database Tables
Get Table Meta Data
Get Table Data
16. CDI integration
Setting up activiti-cdi
Looking up a Process Engine
Configuring the Process Engine
Deploying Processes
Contextual Process Execution with CDI
Associating a Conversation with a Process Instance
Declaratively controlling the Process
Referencing Beans from the Process
Working with @BusinessProcessScoped beans
Injecting Process Variables
Receiving Process Events
Additional Features
Known Limitations
17. Advanced
Hooking into process parsing
Enable safe BPMN 2.0 xml

[repost ]Activiti Components

original:http://www.activiti.org/components.html

Overview

The Activiti Engine will have a clear focus on being light weight and easy to use for Java developers. In that respect, Activiti will continue on the successful path that we started at jBPM. The big difference between Activiti and jBPM will not be in the engine, but in the more sophisticated tools that we’ll be able to build on top.

Here we explain in a bit more detail how the different Activiti components combine to form a complete solution for BPM in the full context of software development.

Activiti Components

Activiti Engine

To see concrete how this works concrete with processes and API, check out our 10 minute tutorial

Features

This is the heart of the Activiti project.  It’s a Java process engine that runs BPMN 2 processes natively.  It will have the following key properties:

  • Allows user updates to be combined with process updates in a single transaction
  • Runs on any Java environment like Spring, JTA, standalone with any form of transaction demarcation.
  • Easy to get up and running with the setup utility
  • Built to support the cloud scalability from the ground up
  • Very simple to add new custom activity types and complete dedicated process languages
  • Rock solid
  • Extremely fast
  • Transactional timers
  • Asynchronous continuations
  • Hidden event listeners for decoupling software technical details from business level diagram
  • Ability to test process executions in isolation in a plain unit test

A couple of features deserve extra highlighting because they improve the collaboration between non technical business users and technical developers.

First of all event listeners.  That features allows to execute an out-of-the-box action, a piece of custom Java code or a script upon certain events in the diagram.  This means that developers can decorate a process with extra technical details that don’t show up in the diagram.  This improves the collaboration between business people and technical people as the business people will not be confronted with technical aspects in the diagram.

Secondly custom activities.  Activiti Engine comes with BPMN support and a lot of activity types out-of-the-box.  But non technical business people might still create an extensive description with a certain activity that doesn’t match any of the activity types.  In that case, the developer has 2 options.  One option is to iterate back to the business person and propose a different model based on existing activity types.  Or –and this is unique for Activiti–, the developer can write a custom activity in Java code that implements the complex behaviour described by the business person.  In that case the diagram will remain as given by the business person, simplifying communication between business and IT.

Another innovation that you can expect from us are BPMN shortcuts.  When we previous developed jPDL, we got great feedback from the community about the compactness and readability of that language.   BPMN is very readable, but in some areas a bit too verbose.  But we also realize that standards support is vital for open source so we are very committed to BPMN 2.0.  For those specific areas where BPMN 2.0 is too verbose, we’ll introduce shortcuts.   For example a simple activiti attribute might be introduced that is equivalent for a more verbose BPMN 2.0 XML section.  Note that these are not proprietary extensions as it is always translatable to valid (but longer) BPMN XML.  It’s only a mechanism to allow for more compact XML descriptions.  And we’ll be collecting the feedback form the community and feed that information back into the specification.

The Process Virtual Machine

The Process Virtual Machine is the architectural base layer of the Activiti Engine. It allows for easy pluggability of activity types, features and complete process languages. The core Activiti team is dedicated to building out the native BPMN 2.0 process language. BPMN 2.0 will be the predominant language used on the business side of BPM. And hence we want to simplify the bridge between business modeling and making those processes executable.

But there are many developer oriented process languages that are very easy to build on the Process Virtual Machine. One candidate language for which we call out to the community to help us is jPDL 4. We will support and encourage the community to build out jPDL 4 and other domain specific process languages. There are numerous other languages that could be build on top of the Process Virtual Machine. We even envision companies building their own variants of domain specific process languages.

Activiti Explorer

Activiti Explorer is a web application that provides access to the Activiti Engine runtime for all users of the system.   It includes task management, process instance inspection, management features and viewing reports based on statistical history data.

Task management

Primary use cases:

  • View personal task list
  • View task list for which the current user is a candidate
  • Create a new task (unrelated to a process)
  • Complete a task by submitting data in a task form
  • Reassign a task to a different user
  • See which other people are involved in the process related to this task
  • Create subtasks and assign them to people

Manager use cases:

  • View task list of subordinates

Process owner use cases:

  • Inspect process instance details related to a task

Management

  • Show if the Activiti Engine up and running or is there a problem somewhere?
  • Management of the deployments
  • View deployment resources
  • Management of the process definitions
  • Inspect the database tables
  • View the activiti logs
  • How long does an average transaction take
  • Are there jobs that have failed multiple times?  What is the cause?  Group jobs with similar failures.  Retry job.

Reports

All events related to process instance executions are stored in a process history database.  Since the steps/activities in the original process definitions are meaningful to business people, the statistics on these activities can contain very interesting information for business people.  For example, the average time spend in each activity or the average deal size per country.

Process instance inspection

Process owners and admins should be able to inspect the runtime details of process instances.

Table based process design

A simple process-designer is included in Explorer, formerly known “Kickstart”. This allows you to build simple processes with a table-based view and allow adding form’s to the created process. This is an example of how you can leverage the BPMN 2.0 pojo model to create processes on the fly, without the need for an advanced editor or XML-editing.

Activiti Modeler

The Activiti Modeler is an open source version of the KIS BPM process solution. It can be used to author BPMN 2.0 compliant processes graphically. The process files are stored by the server in a database model repository.

Activiti ModelerKIS BPM provides a solution to manage your Activiti projects in a web-only environment. You can manage your different Activiti servers and deployments. In addition, the web modeler palette can be fully customized using a palette editor. The KIS BPM solution also includes a web form editor.

Activiti Designer

The Activiti Designer is an Eclipse plugin which allows you to model BPMN 2.0 processes from within your IDE-environment. It also has built-in support for the activiti-specific extentions to enable you to use the full potential of both the processes and the engine.

There are various plugability-points to allow for additional building-blocks to be added to the process on top of the regular BPMN 2.0, tailored for your specific use-cases and business-domain.

[repost ]Activiti Vision

original:http://www.activiti.org/vision.html

Make
Business Process Management (BPM) ubiquitous
by offering solutions
that both business people and developers love.

It’s relatively easy for managers and business people to see the benefits of BPM. There are plenty of BPM Suites that target solely business people. Activiti is unique because it takes developers seriously. The BPM engine needs to fit right inside any Java application architecture.

Activiti supports all aspects of Business Process Management (BPM) in the full context of software development.  This includes non technical aspects like analysis, modeling and optimizing business processes as well as technical aspects of creating software support for business processes. Activiti recognizes that BPM as a management discipline is a completely different aspect then BPM as software engineering. See also the FAQ: What is BPM?

Traditional BPM Systems (BPMS) are monolithic and are considered isolated from the rest of software development activities.  But only in rare cases, business processes are implemented in isolation.  Usually processes are part of a larger application that is being developed.  Activiti acknowledges that executable business processes must be applicable as a component in everyday software development.  That’s why Activiti spends a lot of effort in making sure that it can be used very easily in *every* Java environment. This includes the cloud as soon many applications will be written for the cloud.

There are numerous forms of BPM and workflow.  Activiti’s primary purpose and focus is to implement the general purpose process language BPMN 2.0. And there is no single process language that can cover all the use cases well.   In many cases a custom dedicated process language makes sense.  So at the core, Activiti has the Process Virtual Machine architecture.  That means that any custom process language can be build on top of it.

Furthermore the collaboration between non technical business people and technical people needs to be redefined in BPM.  The tooling around Activiti facilitates an innovative and practical collaboration between business people and developers.  Activiti is easy to introduce into an organization because it doesn’t replace all the tools, but instead it allows people to use the dedicated tools that they’re comfortable with and are used to.  For example, business people will be familiar with creating word documents, spreadsheets and browser based applications.  These documents could be stored on a shared network drive or in a fully fledged document management system.  On the other hand developers like to work in IDE’s like Eclipse.  A BPM System should not require an organization to drop all tools that they’re comfortable with and replace everything with a single system.  Instead, organizations must use the best tool for each job and the BPM System must be able to deal with that diversity.

In Activiti Components we show the concrete tools that we offer to achieve this vision.