Question

I begin to learn Activiti, and it seems I don't grasp the main purpose of it. And after googling it doesn't become clearer for me.

  1. Is it the program state tracking?
  2. Is it the performance monitoring?
  3. May be another reasons?
  4. Does it reasonably for small projects?

My main question is:

What is the main purpose of using BPM frameworks like Activiti, jBPM, BonitaSoft?

Was it helpful?

Solution

The main purpose of using Business Process Management (BPM) frameworks is to enable an organization to integrate business process applications into their existing frameworks.

All organizations use processes to do the work they do, even if they don't formally write down those processes. As an organization grows larger, it will find it harder and harder to manage its processes. By 'manage' I mean to modify, grow and evaluate processes. BPM is a way to formally document and manage those processes.

Organizations can use BPM tools (i.e. Frameworks and other software tools) to get a better understanding of the work they do (i.e. their processes), how they do it and how to do it better. Since all organizations use multiple software applications to do their work, it is essential that BPM tools integrate with these applications. Having this integration makes it easier for people to use BPM and it makes the most of what an organization has already invested in its existing application stack.

BPM tools and frameworks are what enables BPM developers to integrate BPM into an organization's existing applications. BPM tools and frameworks let you easily build applications that automate an organization's processes and let those process applications share data with the other applications an organization uses.

These tools and frameworks provide essential BPM services such as:

  1. Task routing - Making sure the right task is made available to the right person
  2. Process monitoring - Discovering which process are running, which are stalled, how long a process is taking to run, etc.
  3. Process administration - Installing/Removing new process applications, re-assigning process tasks to other users, etc.

I hope this helps.

Full disclosure: I am an engineer at Bonitasoft.

OTHER TIPS

Full disclosure: I am the chief architect of Intalio.

I think you are confused by the low-level nature of those frameworks. They are meant for orchestration of complex services and help you weave through asynchronous messages and threads. They add on top of this BPMN, which helps you graphically render and somewhat get a map of the solution you are looking at.

BPM started with a bigger purpose, which was to provide a visual notation to code transactional applications involving human workflows and orchestration of services.

BPM evolved rapidly towards becoming a meeting place between IT and business, where business analysts would be able to draw processes that would enforce regulations and critical service level agreements.

Still there ?

The traditional mission of BPM is disrupted by a wave of new players. One is spearheaded by outsourcing through BPO (Business Process Outsourcing). One is just competition with higher level frameworks and coding practices. It is becoming easier to write apps with powerful web frameworks, and they fit better the consumer model. As a result, you might hear of the consumerization of IT. Finally, SaaS is playing a disruptive role by taking key point-to-point functions away. It creates problems and tensions with SLAs, data retention, but it provides ultimate convenience for the business.

BPM though is changing rapidly. There is still a strong trend for the enterprise to adopt BPM for its internal, critical operations. BPM is still active and trying to adapt itself to customer needs. First, it started talking about adaptive case management, where the process instance would change as the user goes through it to fit better the need, with business rules and some level of adhoc processing.

We launched a year ago at Intalio a revolutionary platform which we think help solve the equation differently, by leveling the field for users. We deliver smart process applications mixing people, data, and processes, which help people engage at a higher level. You don't input data in the system, you drive processes yourself by manipulating data and performing actions.

The frameworks you looked at are workflow libraries that deliver a very narrow functionality scope for Java developers to mix in workflow functionality in their code. BPM is more than that.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top