Keep informed?
Subscribe for our newsletter now!

Activiti Cycle on the home stretch!

The first official release Activiti 5.0 GA was released in time on Wednesday, high time to have a look on the current status and near-term roadmap of Activiti Cycle, which is still beta in that release (read why and how long further down in this post).

Tags as starting point for development process

Cycle now can use Tags

Cycle Screenshot using Tags

Actually there are a lot of really impressive features the Cycle Team (all camunda employees by the way ;-)) has implemented since my last blog post about the Cycle roadmap. So where to start?

I decided to show you something highly visible first: Tagging. On the right you see a screenshot of Cycle showing the Tag for our “Twitter QA” mini project we used for our Webinar (it was recorded, so you can watch it in English or German as well). You can see that the folder for that Tag contains a reference to PowerPoint slides on a file system (we are working on Sharepoint-Integration as well), a process model in the Activiti Modeler (or the commercial big brother Signavio) and two JIRA-Issues. I already love that I now can easily switch to a new context (“project xy”) without the hazzle of remembering where the files are stored or clicking through a long way in the Signavio tree.

A possible approach supported by Cycle

A possible approach supported by Cycle

On the left you can see an example how the Analyst (or architect) could now use Cycle to bring different worlds together, the tool chain sketched there was shown in the webinar I linked in this blog, so you can see it live in action there.

By the way: With every connector we add, you can immidiately tag contents of these other systems as well. I think, this already gives a pretty good example of the Cycle philosophy: Don’t enforce one tool or vendor but connect existing (and proven) tools in a smart way to allow you working in the process you like, with the tools you have in place in a collaborativ way.

Cycle and Plugins

Said this, I want to add a small remark on Cycle itself: Basically you can think of it like a container for Plugins. The Plugins could be one of the following three types:

  • Connectors for accessing data existing in certain systems (e.g. File System, JIRA, Signavio, Sharepoint, SVN, GIT, …). We already implemented connectors for File System, Activiti and Signavio Modeler, SVN and SFTP.
  • Views (Tabs) for presenting content via the web interface to the user (we call that Representions). Examples are the image of a process model, the BPMN 2.0 XML, the content of a text file and so on.
  • Actions are like menu items, they can be hooked into the web interface to offer functionality to the user like opening the Activiti Modeler or copying a file. These actions may present a input form to the user to query parameters.

Screenshot showing the JIRA Connector

Screenshot showing the JIRA Connector

All concrete features you see are normally implemented as Plugins. I want to give you two concrete examples here: the jBPM3 Integration and the Maven Wizard. A third very interesting Plugin is the JIRA integration, but this is worth an own blog entry which I plan in the next week, there I can write a bit about the background and ideas as well. For the moment just remember we have a cool JIRA integration, one Screenshot can be seen on the right.

jBPM3 Plugin

Cycle Plugin with jBPM 3 transformation

Cycle Plugin with jBPM 3 transformation

A lot of people out there are still using jBPM 3 as a process engine (Which doesn’t use BPMN 2.0 but the proprietary process language jPDL). And a lot of them are happy with the engine, but think about how to use BPMN for process modeling and still get a smooth development cycle. With Cycle, obviously 🙂 Together with two pilot customers we created a transformation, which needs a Signavio/Activiti Modeler BPMN 2.0 process model as input and creates the whole jBPM 3 process definition. In that transformation we have support for a lot of BPMN elements and allow for project specific extensions, so it is quite powerful. And as I already wrote some time ago in this blog, you can add a lot of magic to that mapping if you want, so I am a big fan of that approach. With that mapping we leveraged the Cycle infrastructure to hook it into the development process easily and created graphical tooling for it.
Cycle jBPM 3 Plugin showing convention violations or warnings

Cycle jBPM 3 Plugin showing convention violations or warnings

On the left you see how a BPMN process model got mapped into a jBPM process definition. As you may recognize in the BPMN model exist sub processes linked with other models (as it is easily possible in the commercial Signavio Modeler). The Transformation follow that links and embed the content in the jBPM process definition as jBPM 3 super states (if you know jBPM 3, you know what I am talking about). Cool, isn’t it? The next screenshot on the right shows how transformation errors and/or warnings are shown graphically to user, which makes it very easy to validate models for executability. By the way: This is an approach you could even use without jBPM 3 and validate BPMN models for your own modeling conventions.

Maven Wizard to create development projects

Cycle Plugin: Maven Wizard

Cycle Plugin: Maven Wizard

In the 5.0 GA we added a simple Maven Wizard which is already improved a lot 🙂 On the right you see a screenshot of the form you get when you call that wizard, which is possible for every BPMN 2.0 process model. You can use an archetype to influence what project will be created. The action takes care of copying the technical process model (meaning the BPMN 2.0 XML or the jPDL 3 XML in the case I described earlier) in the right location (which is controlled by a marker file which will be replaced). At the customer which already uses this in production even Java-Subs for all related services are created by that action on the fly 🙂 What we still have to improve is that the configuration of that Plugin gets easier, currently for the first version we used hard coded extension to customize the actions. To get the idea behind the project wizard you can have a look into my W-JAX-Presentation (German) or an English speaking screencast.

And some generic basics…

Login to repositories can be done on the fly

Login to repositories can be done on the fly

Some other feature in the latest release is the login on the fly for all repositories (which will be improved in the next released). This allows you to create a configuration, where you don’t store username and passwords. Cycle then asks the user when he tries to access a repository (see the screenshot on the right). This not only avoids storing any passwords in the database, it allows you to set up a demo installation of cycle with one demo user pretty quick, since everybody using it still has to log on all included repositories. I used that at one customer with success 🙂

Link-Editing as iFrame is embeddable in other applications

Link-Editing as iFrame is embeddable in other applications

Another small feature we added shortly after the 5.0 is the ability to use certain cycle components as iFrame outside of cycle. On the right you see the link component, which is the first component we provide in that way. Boring you think? Again: This shows where our journey will lead us: We use this iFrame to show and edit Cycle links within JIRA. It could be included in the Signavio-Modeler as Plugin as well, or in whatever application you need it. So we try as hard as possible to allow maximal flexibility with Cycle to be adapted in the tool chain you really want to have…

Next steps, roadmap and timeline

Pretty expressive for just around 3-4 months of development? Yeah, I think so as well (kudos to our wonderful team!). But we already had tested a lot of ideas with prototypes within camunda fox, so we were prepared. But as you can see, we still have work to do. And you may have noticed that small “beta” Logo in Cycle? This logo is there not because Cycle is total instable or unusable but for one good reason: Since in contrary to the core engine we don’t write version 5 of cycle, it is version 1. It is a new kind of software. Hence we still learn a lot with every new Plugin we write, so the Plugin-API as well as the database tables aren’t yet stable. So we want you to know, that these may change. When we have stabilized API and database layout, we will remove the beta logo, which is currently planned for the 5.2 release (on February 2nd 2011).

So this is our most important goal: Stabilize the Plugin-API and the database structure. Therefor we currently do some major re factorings as well. Our second goal is to make Plugins more easy installable and configurable, because we do not want to install all possible Plugins out of the box (which would create too much dependencies in Cycle and create a too big Activiti installation) and allow you to easily write your own Plugins.

The best is to stay tuned by subscribing to our newsletter (or the German version). I hope I could give you some quick insides into the latest Cycle developments and got you more impatient to wait for 5.2, a version we internally call “Cycle GA” 🙂

Last but not least: Recent talks about Activiti and Cycle

Just as a quick summary you find the talks I mentioned throughout this post here.

Activiti Webinar on December 2nd

Screencast of Activiti and the Cycle Maven Wizard in Action

Activiti 5 Introduction @ W-JAX 2010 (German)

Directly go to the slides

Already read?

Scientific performance benchmark of open source BPMN engines

Why BPMN is not enough

Decision Model and Notation (DMN) – the new Business Rules Standard. An introduction by example.

New Whitepaper: The Zero-Code BPM Myth

3 Responses

Leave a reply