Thursday 20 October 2011

Activiti 5.8 Adds Asynchronous Continuations

Activiti is the Apache licensed BPMN process engine. We've just released version 5.8 which has following highlights:
  • Asynchronous continations (tech preview)
  • Added BPMN inclusive gateway
  • Improved Spring support
  • CDI integration improvements
  • Bug fixes
Get an opinion of your own! Go download and try it out.

Monday 10 October 2011

BPM In The Cloud

Recently the Activiti team started exploring which parts of BPM could be brought to the cloud effectively. The first thing we realized is that on the cloud, a requirement is self-service by professional consumers. This means that end users should be able to manage the apps they use. Up to now, BPM systems were managed by in-house IT departments.


Immediately it became clear that hosting traditional BPM engine on the cloud is a big technical challenge with a relative low value for professional consumers. We have to look for new ways to deliver BPM on the cloud.

BPM is about combining automatic steps with human task forms. Building task forms on the cloud is a valid concept. Look for example at Formstack. Combining such task forms in a process is a great idea I think. But the generic automatic steps in BPM processes are more problematic on the cloud.

What are those automatic steps that people want to do on the cloud? Well there is plenty of choice. Read data from a google spreadsheet, or salesforce account, then build a document that is uploaded to google docs or dropbox. It could be doable to let professional consumers build process descriptions in a web browser.

But what is often overlooked is that the data used in processes is too complex for end users. For example, from a human perspective, the data read from the spreadsheet is the same as the data that has to be put in a PDF in some subsequent step in the process. But the building blocks that are used to compose workflow processes have to rely on concrete technical datatypes. There is almost always data conversion and projection necessary between those steps in a process. Specifying technical data type-conversions in a workflow is too complex for professional consumers.

We have to make it simpler.

On the other hand, the trend to Advanced Case Management (ACM) really fits well into the cloud. Dynamic management of tasks without a predefined flow matches perfect with the professional consumer needs and capabilities. The ability to associate documents and other forms of content makes it a great match. An extra dimension is added by the fact that a cloud solution for ACM enables seamless B2B collaboration.

This already gives an initial insight in the direction that the Activiti team is currently looking forward towards bringing BPM to the cloud.

Friday 7 October 2011

Energy Distributors In Germany Using Activiti

On October first, Next Level Integration upgraded their product which now includes Activiti for dealing with the business process. Already 50 German energy distribution companies are now using this in production.

This presentation (in German) introduces their product and shows how they leverage Activiti processes: Prozesse im Messwesen (pdf) This is another great example of how Activiti is embedded into a product for a vertical market making it a lot more flexible and powerful.

Tuesday 16 August 2011

Alfresco Activiti 5.7 Revamps Explorer

We're released Activiti 5.7 today, the embeddable workflow and BPM engine. This release includes a revamped Activiti Explorer. The new app merges the task management functionality of the previous Activiti Explorer with the admin functionality in Activiti Probe.



We're proud on this result. A celebration is in place here: Kudo's to all contributors! And special thanks to the Vaadin team for supporting us with the new Explorer.

Download it from the Activiti website.

And participate in the forums.

Tuesday 26 July 2011

Recycling BPM

Peter Evans-Greenwood has written a post called BPM over promised and under delivered that is a clear description of a historic shift in the BPM space.

Peter refers to Taylor to indicate we've been looking at automation and BPM in basically an old school way.
The [Taylor] idea is that by driving our workers to follow optimal business processes we can ensure that we minimise costs while improving quality.
The early software applications and later BPM has been centered around that approach.
Departmental applications were first deployed to automate small repudiative tasks, such as tracking stock levels or calculating payrolls. Then we looked at the interactions between these tasks, giving birth to enterprise software in the process. Business Process Management (BPM) is the pinnacle of our efforts...
The Taylor historic context is great to get the picture. In the past, there were just a few people had the knowledge to break down goals into tasks for workers. Workers were little informed and just had to do as they were told. BPM systems took the same approach. BPM systems orchestrate and dump workers just have to perform small, simple, repetitive tasks.
That is indeed an aspect of BPM that I've always found problematic. In practice, it turns out to be very hard to find business processes in which the orchestration part can be totally automated. Human judgement is very hard to capture in predefined paths in a process flow.

With previously jBPM and now Activiti, we always took a very pragmatic approach. Over time it has become clear that embeddable BPM is a sweet spot. Enriching applications with the capability to combine human task forms with automatic steps has turned out to be a very valid proposition. Only in big banks we've seen usage that comes close to the traditional orchestration automation promise of BPM.

I also agree with Peter that
There has been some half steps in the right direction, with the emergence of Adaptive Case Management (ACM)
I think this trend is becoming clear by now, but it's Peter's post that made me think of an important potential reason for this: The democratization of information. Where in the past (read more then 10 years ago) only managers are informed and needed to break goals into tasks, now a lot more information has become freely accessible in organisations so that average workers become better informed and can make better decisions.

Also I've seen in most practical situations that processes grow organically. When people get asked a similar task multiple times, they tend to organise themselves better for dealing with these repetitive tasks. That way a business process grows bottom-up. There is not always a central, complete view of the process. It's often a very big challenge to establishing this central view of a business process. It usually takes a lot of interviews and conflict resolution to get to that central view. And you know what... this bottoms-up approach actually works well in most cases. Most often the optimizations that can be found in the central view of a process do not outweigh the effort to build the centralized process view.

In conclusion I think the top down aspect that aims at top down business process modeling the orchestration is ready for the scrapyard. Let's get rid of the BPM promise that business agility can be obtained by purchasing a BPM system. And let's recycle those bits and enhance case management with that expertise. By default people should be able to collaborate in an ad-hoc fashion. And when people spot repetitive patterns, everyone should be able to create their own small process flows for simplifying their own work. That form of process automation as an add-on to case management matches a lot better with the common needs of todays web and knowledge workers.

Wednesday 1 June 2011

Alfresco's Activiti 5.6 Improves Mule and Camel Support

Highlights for the 5.6 release:
  • Added direct Mule and Camel integration
  • Easier way to retrieve businessKey from task listeners
  • Improved support for Alfresco processes
  • Added support for delegateExpressions in tasklistener
  • Added support for BPMN multi instance in the eclipse designer
  • Extended length of all user defined text columns to 4000
  • See the full release notes
Get Activiti 5.6 now before it gets you!

Monday 2 May 2011

Alfresco's Activiti 5.5 Released

Activiti is a superdelux BPMN 2.0 based process engine. 5.5 is again packed with a lot of new goodies:
  • Added CDI support (Congrats to Camunda for this contribution!)
  • Added dynamic sub task capabilities
  • Added support for event/activity streams
  • Tiese Barrell added support for default value for CustomServiceTask fields in the eclipse process designer
  • Simplified persistence
  • Performance improvements
  • Bug fixes
Download Activiti 5.5 and find out how much more you can do with BPM power.

Saturday 30 April 2011

Mobile, Web Client Storage And Offline

Desktops and laptops will be mostly connected to the internet. So almost all software written today targeted for desktops and laptops is web based. For mobile apps, that is much more tricky. Mobile devices are used when people are on the move. While general connectivity coverage is increasing, it will still take quite a couple of years before all planes, trains and stations give you decent broadband required by today's apps.

For mobile apps it's a tough choice between HTML 5 and native apps. Native apps don't require to be connected, but you need to develop one for every platform (at least Android and iOS).

Martin Fowler's blog CrossPlatformMobile makes the valid point that cross platform toolkits are no attractive alternative. But then there is this section that really confuses me
The biggest issue here is offline use. If you can live with online all the time, then this won't be a problem, but you need offline you'll need to explore the various local storage options.
This seems to suggest that the local storage options to some extend would be able to reduce the need for connectivity. That would decide the mobile platform battle in favour of HTML 5 easily. But I still don't see how storage on the client side helps to remove the need for connectivity. If you load a webapp before you go offline, then it is possible to keep it running on local storage when connectivity is down. That is a nice extension to webapps.

But afaict it doesn't give the ability to work offline because loading the app still requires connectivity and a refresh gives a 404 page not found without the possibility to get the app back in the browser. Also the linked article doesn't really provide a solution for this.

Given that the respected Martin Fowler seems to indicate that web storage has to be looked at as a solution for offline usage of webapps, I assume I must be missing something. But what ?

I'm in general puzzled why browsers are so bad at using caches when working offline. Yet it seems like a solvable solution for browsers to use their cache to overcome these 2 obstacles of loading the app and refresh and make HTML 5 the ultimate mobile platform.

Do you see a solution so that HTML 5 becomes a valid mobile technology option that also covers offline usage?

Tuesday 5 April 2011

Tijs Rademakers Joins Activiti

Tijs Rademakers joins Alfresco to supercharge Activiti. We are very proud to attract a top talented engineer like Tijs! Tijs brings a rich experience from consulting on various BPM related projects. Tijs is co-authoring his second Manning book. The first was Open Source ESB's in Action and he's is now working hard to complete Activiti in Action.
Tijs will continue to lead the Activiti Designer, an Eclipse plugin for authoring BPMN 2.0 processes. He will also be involved in architecting and building out the process capabilities to make Activiti the #1 platform for case and process management on the cloud.

Welcome to the team, Tijs. Looking forward to working with you!

Friday 1 April 2011

Activiti 5.4 Released

Here's the next Activiti shipment
  • Added first version of BPM-roundtrip with Activiti Cycle (see this Screencast)
  • Started building case management features in the engine: Added dynamic comments, attachments and due dates to tasks in Activiti Engine
  • IMAP folder scanning for new tasks
  • Added accounts to users in Activiti Engine
  • Provided support to specify form properties in Activiti Designer Eclipse plugin
  • Many bug fixes
Download Activiti 5.4 here
Discuss on the forums

Activiti Switches To BPEL

[Update to avoid confusion: please check the date on which this article was posted]

Today we are announcing a drastic change in the project that we've been working on for quite a while: Starting from the 5.4 release later today, Activiti will upgrade the file format of all processes from BPMN 2.0 to BPEL.
Rather then considering business processes as a combination of manual and automatic steps, we came to the conclusion that XML, WSDL and XPath is the way of the future and a much more natural fit for large corporations. The things you can do in XPath are simply amazing.

We are proud to ship with this release with full automatic and seamless conversion of existing processes. Just replace the jar files and reboot your app. What's more, our eclipse plugin will automatically refactor your Java beans and add WS-I compliant web services adapters. But we recommend take a back up of your project before activating that refactoring.

With the conversion to BPEL fully completed, we now will start working on the mobile client. To improve usability by business people and at the same time simplify the implementation of our forms component, we'll build a mobile tree browser for XML documents. It will be available next month for iOS and Android. It's a really cool app that allows you to compose SOAP requests in a structured tree view. Those requests can then be sent directly into the new BPEL based Activiti engine. Also the app will allow you to browse your task list XML messages in a graphical tree with collapse and expand features.

We've upgraded our Amazon account to handle all the download traffic that we expect later today. But in case Amazon's download servers would not be able to handle the load, please keep trying and let us know.

Wednesday 16 March 2011

Unveiling Next Steps Of Alfresco's Activiti Future

There's a very interesting discussion going on at ebizQ: Will case management soon take over BPM? Instead of trying to position all the overloaded acronyms, I'm going to give a concrete picture of where Activiti is now and where we are heading.

Activiti now is a native BPMN process engine with nice web based and other tooling around it. We have a strong adoption already in the developer communities. This has pushed us to support very complex processes with a lot of features for easily including automated steps into the process. We also include strong capabilities to include manual steps into an automated process. Things like specifying a BPMN userTask and associating a form to it. People assigned to the task can then complete tasks by submitting a form.

The limitation with workflows and BPM processes is that they are fixed. That's good for complex processes that are well understood and have a high frequency. Typical examples are handling insurance claims and expense notes. Of course, not all work done in organizations is of this nature.

Even in organizations that manage their business processes well, a lot of work is done ad-hoc. For instance, imagine that you have to organize a 1 year anniversary party for a project that you started almost a year ago (any resemblance to Activiti upcoming 1st anniversary is pure coincidence ;-) Most likely there will be no predefined process for organizing such a party.

It will take someone to analyze this particular problem and to break this complex task in subtasks that can be delegated and combined to achieve the desired results. So a first aspect is that people will get involved. Sub tasks might be created. People will discuss these tasks and refer to existing content like websites, content stored in Alfresco or Google docs. While the organization of the party is in progress, new ideas kick in, making some tasks in the strategy obsolete and other new tasks have to be performed.

People today will tackle this with a bunch of email traffic. And lots of time is spent on writing customized emails to bring different people up to speed. For each new person that gets involved in the party task, it takes a lot of time writing emails for the party organizer to share the bigger context of the request.

The first step that we're adding now to Activiti is a snappy environment in which that kind of collaboration is supported. Apart from the tasks that are created by process instances, you'll be able to create tasks dynamically on the fly. It will be possible to involve people with these tasks, have discussions and associate any kind of content like plain URL's, Alfresco docs, Google docs etc to the task (aka case). Furthermore, it will be possible to create sub tasks dynamically. Here's one of our early mockups:
While building this environment, we include as a criterium that it may not be harder to work with this tool then to write an email.

Imagine that people can be involved in tasks and they automatically get the full background of a particular request they receive. That will drastically reduce email and make the group far more effective.

In a couple of years, the organizer of the anniversaries might start to think: "I've done this before a couple of times. It might be worth documenting or automating the process of organizing anniversary parties". That's when the organizer will be able to open the last party task and start building a process based on the subtasks that were created. We envision a very simple process editor to orchestrate those process steps. Activiti KickStart shows the direction we're thinking in.

At that point it might start to get interesting to include automatic steps. Activiti focusses on simplifying the component model for plugging in new automatic steps in the graphical process authoring tools and in the runtime engine. Extending Activiti Designer shows the direction. This means that in big organizations that have an IT department, the developers can create create custom serviceTask types that can then be used as automatic steps in these processes by non technical people.

In some cases, this might grow to become pretty complex processes. At that point, Activiti KickStart modeling might be too limited as that is targeted at non technical people. Because Activiti is based on BPMN 2.0, it will be possible to move these organically grown processes into full BPMN 2.0 based modeling tools.

This shows how Activiti's strategy to support the organic nature in which business processes are conceived. It reduces email traffic and overhead for ad-hoc work and provides an environment in which managing business processes becomes so easy that you don't really have to think about it.

We plan to have a first version of dynamic case management in our 5.5 release, which is planned for the 1st of May. Then by September we aim to have the full vision of dynamic case management organically rolling into automated business processes completed.

Now imagine all of this would be free, distributed under a very liberal license like Apache and closely integrated into Alfresco's enterprise content management. Wouldn't that be great?!

I think we're heading for some very exciting times at Activiti ;-)

Tuesday 1 March 2011

Activiti 5.3 Adds Multi Instance And Rules Integration

Activiti 5.3 was released today and adds following highlights:
  • Added BPMN multi instance (==foreach) support
  • Added BPMN intermediate timer catch event
  • Added business rule task with Drools integration
  • Improved Spring integrations: added possibility to limit visibility of beans and also exposed spring beans in scripts
  • Added administrator console to manage users and groups
  • Added automatic DB type discovery
  • Various bug fixes


Thursday 3 February 2011

Why IT Should Select A BPMS Instead Of Business

Farshid Ketabchi's Introductory note on BPM is very remarkable. It starts with a good overview of the Business Process Management (BPM) benefits, the market and the vendor landscape very well. The piece that stands out of the crowd is the clear distinction he makes between "BPM as a business management discipline" and "BPM technology".

I believe that distinction is crucial and not yet properly understood. Traditional BPM vendors have everything to gain by keeping that separation blurry. In this post, I'll show that this separation is vital for understanding that IT people should drive the selection of BPM Systems, not business people.

The distinction between BPM as a management discipline and BPM Systems (BPMS) is an observation rarely pointed out by BPM vendors and therefor worth while highlighting. BPM vendors too often try to blur the distinction between the software product they offer and BPM as a business management discipline. Next they talk at length about the benefits of that combination to show that their software product brings all these benefits as a package that you can just buy off the shelf.

It's basically any manager's job to make an organization run more efficient. So basically any manager is managing business processes. BPM vendors are happy to offer this skill in a box. But that is a false promise. BPM software cannot replace the management skills necessary to manage business processes. Which are the important business processes in this organization? What are the steps that we should automate and what should be done by people? Which people should get involved when? What is essential for this organization and what is detail? It requires a manager with vision and analytical skills to perform the business process management discipline well.

A BPM software solution cannot replace that vision and analytical skills to optimize the performance of an organization. That remains the key responsibility of the business people. BPM software can never claim to take over that innovation and change management aspect.

But a BPM System can help in 2 key areas:
  • Produce software to support business processes
  • Facilitate collaboration

Business people should control and drive the optimization of business processes. BPM systems too often try to put non technical business people also in control of the software automation. That is I believe a common pitfall for BPM systems. Instead, IT should have a BPM System at their disposal to help them automate software support for those business processes faster.

Non technical business people should not focus on producing software. Instead they typically focus on requirements documents and process analysis diagrams. And the collaboration aspect of BPM Systems should allow for discussions between business and IT people about all the artifacts that matter in the collaboration. Generic social features around the artifacts that matter to both the business people and IT people is what the BPM System should offer for the collaboration aspect. That's not rocket science. It does not take special management skills to evaluate collaboration features.

The point here is that BPM Systems have a pure software development aspect and a social collaboration aspect. The pure software development aspects can only be properly evaluated by IT people. And while the social collaboration aspect matters to both the business and IT people, it doesn't take special management skills to evaluate those collaboration features. Hence the conclusion is that IT departments should drive the selection of BPM Systems, not the business managers.

Tuesday 1 February 2011

Activiti 5.2 Released

Activiti 5.2, the rock solid BPM platform, was just released. This release adds following highlights:
  • First sneak preview version of the jBPM-Activiti migration
  • Visualization of the current activity in Activiti Probe
  • Added support for BPMN error event in Activiti Engine
  • Added support for BPMN 2.0 import in Activiti Designer
  • Improved form datatypes
  • Automated in container testing
  • Various bug fixes
Special thanks goes to Maciej Prochniak for contributing the visualization of the current activity in Activiti Probe.


Also I wish to thank Christian Muelder for being available on a saturday to fix our hudson coninuous integration box hosted by Next Level Integration.

Camunda has received excellent feedback on their Activiti training. We recommend it!

And the special recognition in the order of Activiti for patience and perseverance goes to Tiese Barell on this 284 post forum thread! ;-)

Wednesday 12 January 2011

Coding While Asleep Can Be A Good Thing

With high hopes I started reading Sleepcoding's Activiti ‘Hello world’ on play!. Almost through the post and no mention of his impressions about Activiti. But then, at the end, my patience was finally rewarded:
I said all i can about play’s plugin system in the previous post, it is great. But since it was about initializing activiti i didn’t say anything about it. AFAICT, it is one of the few libraries/frameworks that delivers what it advertises. It is light-weight, fast and simple. They say a BPM engine should be working in every Java environment, and this ‘helloworld’ is one example. API is clean, well documented and easy to work with. As a developer who correlates BPM engines to application servers that cannot start in under a minute, i am really pleased with what i was able to achieve. Overall experience with activiti is simply great.
*That* is the fuel that keeps us open source developers going! Thanks, Mr Sleepcoder!

Tuesday 11 January 2011

Activiti Announces jBPM To Activiti Migration

Since Activiti went GA on December 1st last year, we've been getting a lot of requests from people that want to migrate from jBPM to Activiti. [piece removed, see (*) in the comments]

When we started Activiti, we didn't plan any of those migrations as that would take a big chunk of our development resources. Converting jBPM's jPDL process xml files is only one piece of the puzzle. Migrating the runtime database data to a newer version of jBPM or to Activiti is the biggest challenge.

But Activiti progress has been faster then expected due to the overwhelming contributions by the community. Those were far beyond our expectations and hence we've been able to execute our roadmap faster then expected. As a result of our good progress and the demand expressed by our community, we are now able to revisit the choice of building migration from jBPM to Activiti.

This iteration, we'll start building jBPM 3 to Activiti migration in the community project including runtime database, history database and process definition migration. In the Activiti 5.2 release, planned for February 1st --less then 3 weeks from now--, you can expect the first drop of migration functionality. Though it will be hard to achieve 100% coverage, we hope that in subsequent releases of the migration, we'll be able to convert most jBPM 3 installations automatically. And for those aspects that we can't cover in a generic way, we'll provide good reports and hooks so that developers can customize the migration to deal with their specific situation.

Tuesday 4 January 2011

Activiti 5.1 Release Adds Activiti KickStart

The highlights for the 5.1 Activiti release:
  • Added Activiti KickStart (more about this new component below)
  • Added automatic upgrade of the DB schema from 5.0 to 5.1
  • Added generation and display of process definition diagram based on DI information.
  • Added historic task instances
  • Added Comments to artifacts in Cycle
  • Improved Cycle Plug-In Infrastructure (now using Annotations)
  • Fixed various bugs
Activiti KickStart is a new component for which I want to share this quick introduction. It makes building process solutions as easy as 1, 2, 3 for non technical business people. In essence, Activiti KickStart allows you to enter the steps as a list of text fields and Activiti

KickStart will create a BPMN process for you based on your input.
In addition, the same simple paradigm also lets you create forms with each step in the process.
This form, then looks like this in Activiti Explorer
This way non technical business users can create fully functional process models. And if later more advanced process authoring needs to be done, we allow for seamless migration from Activiti KickStart to the more advanced, fully fledged Activiti Modeler, which is our web based BPMN process authoring tool.


Download Activiti & share your experiences!