Yesterday evening we met at our Partner Ancud IT in Nuremberg (Germany). Ancud presented their experiences using Portals (namely the Open Source Portal Liferay) in combination with Process Engines (namely Camunda :-)). That was already a topic in a recent webinar, you can check out the recording online: English or German. Afterwards we had interesting discussions about DMN use cases and a “social collaboration hub” research project. But let’s start from the beginning.
Camunda + Liferay
A process application needs a user interface. According to Ancud experiences this is most often a portal – or at least some home grown portal like thing. Personally I am not yet convinced as we still do a lot of non-portal projects – but I see the use case anyway.
For combining Liferay and Camunda you have a couple of options. The problems you need to solve are:
- Having a Tasklist as portlet in the portal. That normally means you can not leverage the existing Camunda Tasklist.
- Showing forms for User Task in the portal (what we call task forms). Ancud showed a generic way to use the form fields defined in the process model (what we call generated forms). Having custom developed forms is also possible, but you have to clarify how to do the packaging and deployment of a process application and how to communicate between portals in this case.
- Having an operating tool like Camunda Cockpit. We discussed that it might be better to use the existing cockpit and add SSO capabilities – as it would be a lot of effort to do a complete rewrite of Cockpit as portlet.
Ancud also explained architecture options, which basically are:
- Deploy the Camunda engine as “embedded engine” within your Portlet or
- Deploy the Camunda engine as “shared engine” on the same container as Liferay or
- Deploy the Camunda engine as “remote engine“.
We discussed if it make sense to exchange the internal “Kaleo” engine in Liferay to react on events in Liferay (e.g. approval process when a new blog post is written). My personal opinion: Depends on the use case. If you use Liferay as “UI” for process applications this is not necessary. It is only interesting if you really want to use BPMN for the internal Liferay processes.
By the way: If you think “Why should I use a portal?” – the answers were:
- User Managements / Authorization is already solved.
- Cooperate Identity is solved.
- Frame / Reusable Features are nice.
Last but not least we quickly discussed graphical form editors, like the Bootstrap Form Builder or the Liferay Web Forms. Both were successfully applied in real-life projects in the past.
I will add a link to the slides as soon as they are set online from Ancud.
Social Collaboration Hub: Camunda + Liferay + Nuxeo + OpenExchange
Christian from iisys was present who explained their current research project, which is actually quite interesting. It is called the Social Collaboration Hub. They build a “sharepoint alternative” using Open Source Tools – namely Camunda, Liferay, Nuxeo (a Content Management System = CMS), OpenExchange (a Groupware), Elasticsearch and Apache Shindig (an Open Social Implementation). Interesting! They just recently started and have some way to go – but they are planning to make a Cloud product out of it.
The most interesting detail for me: They want to provide the possibility to start working “document driven” and record all activities you do related to a document (the document serves as common “correlation id”). Then some mining algorithms will be applied to extract CMMN case definitions from the history (as you know which activities were executed). This helps to get to a semi-structured Case Definition – maybe even automatically – or at least recommended. Something I will keep an eye on!
DMN Use Cases
Finally we discussed potential use cases for using DMN (Decision Model and Notation) – the standard we will include in Camunda BPM to provide Business Rule Management capabilities. To be precise we will be able to model and execute decision tables.
There was one real-life use case from the audience, which I never thought of before: “How is a decision made if some theatre performance is booked for a city/town. It depends on the current city/town if this is decided by the mayor, some round table, some complicated process or something completely different. What if important people are on vacation?”. This is funny as you have to make decisions about how to make the decision 🙂 I would like trying to sketch this in DMN as soon as the requirements got more clear.
Another example was from automotive: If your car breaks down you might have a lot of information available already (or at least you will have them in the near future). Not only about insurance coverage, mileage, driver, age of the car and so on – but maybe also real-time status information from the car computers. So decisions have to be made what to do (towing the car to a garage, try to repair it on the street, get a rental as this is a major problem, order spare parts, …).
Thanks for reading
If you want to join community meetings go to Camunda Network, you can register for the newsletter easily to stay informed. If you want to host some or even offer a presentation / experience report let us know!