Activiti Cycle explained

August 27 2010 by Bernd Rücker · 12 Comments

Screenshot of the Cycle GUI

Screenshot of the Cycle GUI

As I blogged earlier this day the first preview version of Activiti Cycle is on its way. I want to take this opportunity to give you some technical insights into Cycle and to explain some basic ideas behind it. If you are interested in the vision, I recommend to visit the Activiti Cycle Homepage, my infoQ article about camunda fox, or the camunda fox Homepage.

On the left you see a first screenshot of the Activiti Cycle web application. There you have a tree view of repositories. The basic idea is, that you can access different types of repositories here in one unified tree. For the first release we concentrated on file system, Activiti Modeler and Signavio Modeler Repository. But actually our main goal was to create a good API for repositories, so that we can add other repositories later on easily, e.g. SVN. And you could even do that on your own for whatever you need. In the screenshot you can see that I included multiple SaaS-Signavio-Accounts, possible as well :-) For the next iteration we plan some thinking on tags and virtual folders, to structure that tree more easily even if the amount of repositories and folders is growing.

When clicking on one item – we call it artifact – you can see details on the right. These details differ depending on the type of artifact. A BPMN model maybe wants to show the diagram, for Powerpoint slides you may want to see a preview, XML code may need some highlighting and so on. We call these kind of detail views content representation, and an artifact can have multiple ones, in the example to the left you can see, that a BPMN model currently has 4 representations: The image, the Signavio JSON sourcecode, the BPMN 2.0 XML and some BPM 2.0 XML made more readable for the developer.

Action with form to create technical model in other repository

Action with form to create technical model in other repository

For every artifact you have some actions you can execute, some links you may use or some downloads. Again, these things can be easily extended or added, our first goal was to provide a good infrastructure to get that working. The example I added as screenshot on the left is to copy the developer friendly BPMN XML from the Modeler repository to the file system. In the background, a link between the two models is created and saved (okay, actually persisting that link is not yet finished due to some bigger refactoring of persistence in Activiti, but it is scheduled for the next released). This supports a development approach, where business process model and technical process model could be kept in sync (something we already stressed a couple of times in this blog).

Comparision between raw and developer friendly BPMN

Comparision between raw and developer friendly BPMN

When creating the technical model, we can influence the mapping easily. The optimal case would be, that the BPMN 2.0 XML from Signavio is executed as is. I actually don’t really believe this is a good idea and blogged about why a couple of months ago. In the current beta1 of Activiti Cycle I have a very easy example. Even if this could have been solved by Signavio directly as well, it is a nice showcase, what you can easily hook in in cycle. Signavio is a tool for business process modeling, so the primary focus is not XML source code. That’s why they don’t have to care that element id’s are random unique ids (like “4DD85C61-62D1-401D-88B9-2B9D8BC93D83″). But for the developer now really working with the XML source file it is a hazzle to have these id’s instead of human readable names. Well, no problem for a quick transformation in cycle :-) On the left you see the both versions compared. Not that cycle currently replaces all names nicely, but it shows that this can be easily hooked in. And you could do that yourself by writing a simple class and use the Plug-in mechanism!

The camunda fox jBPM 3 plugin is automatically integrated

The camunda fox jBPM 3 plugin is automatically integrated

Speaking of which, the Plug-in mechanism is something I really like very much. Even if that was the first try and needs some refactoring, it allows you to drop a jar in your classpath and Cycle can add whole repository types, artifact types, actions or content representations. Everything is controlled by simple annotations. The example I want to stress is our camunda fox jBPM 3 mapping we use at different customers. This can create a jBPM 3 process model out of BPMN models. The customers even add own patterns in this transformations (like “in our application User Task means calling EJB XY to create a case for the help desk”). And this can be dropped into Cycle and appears magically at the right places. I love it :-)

Process Models can be validated for executability

Process Models can be validated for executability

And last but not least we added an action to validate the BPMN 2.0 XML with the Activiti Engine, exactly like it is done during deployment. It took me just 5 minutes to write! So you always can check directly within the GUI if the current model is deployable.

Okay, overall the current features may not seem overwhelming, but as I already mentioned now we have a good, extensible foundation. Even if we scheduled some bigger refactorings for the next iteration, I think we are on the right track. And once we have this basis stable, we can do the really fancy and cool stuff. And we will :-) The release of Activiti 5.0.beta1 is on Wednesday September 1st, so I can just recommend to download it and try it out yourself! And don’t forget to give us feedback… But maybe don’t dig too deep into the code yet, as some stuff is still subject to change.

Bernd Rücker, CEO

Bernd Rücker is co-founder and CEO of camunda. But he is also software developer, trainer and consultant who was activley contributing to the Open Source Workflow engines jBPM 3 and Activiti before starting camunda BPM. He has profound experience in BPM projects and Java Enterprise. He worked with Process Engines and BPM for over 10 years in countless real-life projects. He is author of several books, numerous articles and regular speaker on conferences.

12 Kommentare zu Activiti Cycle explained

  1. Hi Bernd,

    I strongly believe in the need for a technical process expert that takes a business model and refines it by adding all these nasty technical details like ioSpecifications, mappings to type systems and service models to make it executable. What I however don’t think that this poor guys should do that by twiddling the XML, she should instead use a BPMN 2.0 tool that provides a technical perspective to the process model. So I’d love to see such a tool and doubt that replacing an element’s ID by a name is worth the effort, no?


  2. Hi Tammo.

    It depends on the perspective and the specific project. In a lot of situations I think the Process Engineer is happier with the plain XML. If you are used to it, you can read that as well in source code, edit it with a good XML editor, cutting out pieces for Unit-Tests, using SVN DIFF and so on… I believe, that this is often much more handy than the zero coding GUI you describe.

    But actually what I wanted to describe in the blog is not that special transformation. It was just an example how easy it is to plug in stuff in the generic infrastructure we build with cycle. And it took me at most 5 minutes to write, really. So I think it is definitely worth that 5 minutes, since the readable names were already requested in the Activiti Forums ;-) But at the end, the idea is that YOU can choose if and how you want to use it.

    Another related example – maybe a better one – I may blog the next days is to copy only the Process Engine pool from a bigger model during creation of the technical model to support the methodology we described in our book (or summarized here:


  3. Hi Bernd,

    You show how you could use Acitviti Cycle to create developer friendly BPMN out of the ‘raw’ modeled xml. Are you currently working further in this direction with Activiti Cycle? I mean will Cycle be in your view, the ‘middle-man’ in the export from Activiti Modeler towards an import to for example the eclipse environment Activiti Designer? And vice versa? In other words is Cycle going to tackle the merging problem between a modeled process existing in both these environments, making round tripping possible?



  4. Hi Ron,

    I will try to answer your question (and if I am wrong, Bernd will correct me ;) ):

    Yes, with Cycle we aim at the glue between Business and IT, which means (besides other things) the management of process models that are created by and for the Business and therefore handled in the Activiti Modeler, and those that are part of the technical development and therefore in the Eclipse IDE and handled by IT people like a software developer.

    And there is a whole bunch of problems we have to solve when supporting that idea ;-) One thing is the rather simple Forward Engineering, but what is (and this is just ONE example!), if both developers and business analysts edit “their” process models in the Modeler and Eclipse? Will there be a merge feature or at least a tool support for manual merges, or will there be a locking strategy, etc. etc.

    As I said, this is just one example for quite a lot of questions we are currently discussing and answering by concrete features in Cycle.

    Are you somehow involved in Activiti?



  5. Hi Jakob,

    Thanks for your reply and good to hear that you are working on this!

    I agree with Cycle’s vision that in the bpm space different roles work in their own world with their own tools and that round tripping is optional. I am just curious about how you are going to tackle the merging issue. I can imagine that is quite a challenge.

    I am involved in Activiti indeed. Together with Tijs Rademakers the two of us are writing a book ‘BPMN 2.0 with Activiti’. Next to that, with Tijs and two other guys we are working on the Activiti Designer eclipse environment. So, we are very interested in what Cycle’s plans are to help the tools on the Modeler and Designer side collaborate.


  6. Hey Ron. Nice to “meet” you! Yeah, there are some challenges in that area :-) And I am happy to see someone took the challenging task to write an Eclipse Designer!
    Maybe we should get in touch to discuss some of the ideas, I send you a private mail for that (maybe after the Activiti code freeze today which could keep me busy a bit ;-) )


  7. [...] you in your BPM, process and/or software implementation project. I already gave a first preview in Activiti Cycle explained, for which we got quite some positive feedback. Today I want to sketch the planned roadmap of [...]

  8. Since either or both the Activiti Modeler and Eclipse IDE will be working from version controlled sources, I would think that a failed merge/round-trip would be a basis for a bug report at the very least, and maybe even a failing pre-commit hook one way or the other. Given the multiplicity of optionalities a plugin structure seams the way to go.

    I think ITIL would want this kind of event to be a lock on any system changes – right?

  9. Hey Ed! Sorry for the late reply ;-) But let me give a quick answer.

    I agree with you, the scenario that you describe could be one option! An interesting one indeed. But since it is one out of x options, it could be realized as a Plugin :-)

    I think ITIL processes could be a good hook to define what cycle does for you. But actually at the moment we still try to make the basics stable. These kind of thoughts will be the very next in the beginning of 2011 :-)

  10. Hey Guys,

    Why can I not find the activiti-cycle WAR download?
    The link on your download page downloads a Camunda fox cycle zip file which looks nothing like the screen caps above. Also, the zip (unzipped to tomcat dir embedded in part of Activiti 5.7 download) does not seem to work. After logging in as kermit/kermit. I get a mostly blank page with only a logout link and an Actions button to create a new Process solution.

    I am working through the Activiti in Action exercises in the Manning Early Access version of the book, and am stuck at the point where Activiti-cycle is covered because I can’t find a downloadable war file of activiti-cycle.

    Can you help?

    Thanks in advance,
    -David J. Keith

  11. Hi David.

    Thanks for you message. Actually we have moved cycle to be a part of camunda fox (since the Activiti Scope was reduced to the core engine). In that step we re-implemented a lot technically, since we switched from Spring Surf to JSF (as the Activiti Webapps switched away from Spring Surf as well). We adjusted the features to the feedback we got from pilot projects as well, this is why it indeed looks different.

    So I think it works on your side, we just don’t have a tutorial online yet explaining how to work with it. We are working on this, but it will still take a bit. Maybe this screencast does help in the meanwhile?


  12. Hi,

    Activiti is indeed a very efficient tool. But why does it restrict to Alfresco UI only. Why not developer be able to integrate it with other presentation technologies like Struts or JSF.


Schreiben Sie einen Kommentar

Powered by WP Hashcash