<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BPM-Guide.de</title>
	<atom:link href="http://www.bpm-guide.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bpm-guide.de</link>
	<description>It's Business Process Management</description>
	<lastBuildDate>Sat, 28 Apr 2012 08:47:24 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Webinar on the 30-May: camunda fox &#8211; Enterprise BPM for Java based on Activiti</title>
		<link>http://www.bpm-guide.de/2012/04/24/webinar-camunda-fox-enterprise-bpm-for-java-based-on-activiti/</link>
		<comments>http://www.bpm-guide.de/2012/04/24/webinar-camunda-fox-enterprise-bpm-for-java-based-on-activiti/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 08:50:41 +0000</pubDate>
		<dc:creator>Bernd Rücker</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3701</guid>
		<description><![CDATA[On the 30-May-2012 from 2 pm to 3 pm (timezone UK) we (camunda) run the webinar &#8220;camunda fox: Enterprise BPM for Java based on Activiti&#8220;, interesting for everybody wanting to use Activiti oder camunda fox in real life BPM projects. If you prefer a German version, this will run at 10 am (timezone Germany), a [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_3708" class="wp-caption alignleft" style="width: 160px"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/04/iStock_000018133970XSmall-150x128.jpg" alt=" " title=" " width="150" height="128" class="size-thumbnail wp-image-3708 colorbox-3701" /><p class="wp-caption-text"> </p></div> On the 30-May-2012 from 2 pm to 3 pm (timezone UK) we (camunda) run the webinar &#8220;<strong>camunda fox: Enterprise BPM for Java based on Activiti</strong>&#8220;, interesting for everybody wanting to use Activiti oder camunda fox in real life BPM projects. If you prefer a German version, this will run at 10 am (timezone Germany), <a href="http://www.bpm-guide.de/2012/04/24/webinar-camunda-fox-enterprise-bpm-for-java-based-on-activiti/?lang_pref=de">a German version of this post</a> is available as well to send it to your German speaking colleagues.</p>
<p>Here the abstract for this webinar:</p>
<p><span id="more-3701"></span></p>
<blockquote><p>
<a href="http://www.camunda.com/fox/">camunda fox</a> is a light-weight BPM Platform based on the successful open source – project <a href="http://www.activiti.org/">Activiti</a>. It is based on our extensive experiences in BPM and extends Activiti with important components, tools and services that will increase your productivity and allow its application in mission critical standalone BPM scenarios.</p>
<p>In this webinar you will get an overview about camunda fox that allows you to evaluate the platform for your own BPM project.
</p></blockquote>
<p>Register via the Alfresco homepage for free:</p>
<ul>
<li><a href="http://www.alfresco.com/de/about/events/2012/05/activiti-alfresco-de/">German webinar</a>, 30-May-2012, 10am-11am (Timezone Berlin)</li>
<li><a href="http://www.alfresco.com/about/events/2012/05/activiti-alfresco/">English webinar</a>, 30-May-2012, 2pm-3pm (Timezone London)</li>
</ul>
<p>We are looking forward to it <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3701' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/04/24/webinar-camunda-fox-enterprise-bpm-for-java-based-on-activiti/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Page-Flow vs. Process-Flow &#8211; how a UI Mediator might help</title>
		<link>http://www.bpm-guide.de/2012/04/04/pageflow-vs-process-flow-and-ui-mediator-pattern/</link>
		<comments>http://www.bpm-guide.de/2012/04/04/pageflow-vs-process-flow-and-ui-mediator-pattern/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 06:53:19 +0000</pubDate>
		<dc:creator>Bernd Rücker</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Activiti]]></category>
		<category><![CDATA[BPMN]]></category>
		<category><![CDATA[fox]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3645</guid>
		<description><![CDATA[Imagine you have a customer registration process. For the user it feels like having 5 forms in a row to enter some data (we call that page-flow). In the background you want to query some scoring-service. Hmm, this should not be done in the UI layer, right? Isn&#8217;t that business logic? And what if the [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_3660" class="wp-caption alignleft" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/03/iStock_000004944174XSmall.jpg"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/03/iStock_000004944174XSmall-150x99.jpg" alt=" " title=" " width="150" height="99" class="size-thumbnail wp-image-3660 colorbox-3645" /></a><p class="wp-caption-text"> </p></div> Imagine you have a customer registration process. For the user it feels like having 5 forms in a row to enter some data (we call that page-flow). In the background you want to query some scoring-service. Hmm, this should not be done in the UI layer, right? Isn&#8217;t that business logic? And what if the scoring service may not deliver an immediate score but just tells you that the result is delivery asynchronously later on (which is a real life example)? This imposes some serious requirements for a persistent process state, maybe even with some escalation if the result doesn&#8217;t arrive in the agreed SLA. In this situation process-flow and page-flow somehow intervene, but still must be separated wisely. Today I want to shed some light on this on a conceptional level with BPMN 2.0 and the <a href="http://www.soapatterns.org/ui_mediator.php">UI Mediator Pattern</a> but as well present a working prototype using <a href="http://www.camunda.com/fox/">camunda fox</a>, <a href="http://www.activiti.org/">Activiti</a> and Java EE 6 (especially JSF and CDI). So for non-technical people: Hopefully you can still understand the first part. For the technical folks: Be patient, we get down to code in the second part <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3645' /><br />
<span id="more-3645"></span></p>
<p><strong>How the user perceives it</strong></p>
<p>The following BPMN shows how the user takes part in the process. Please note, that the whole blog uses the BPMN methodology we explain in our book on BPMN (unfortunately only <a href="http://www.amazon.de/Praxishandbuch-BPMN-2-0-Jakob-Freund/dp/3446429867/">German</a> or <a href="http://www.amazon.com/Manual-Referencia-Pr%C3%A1ctica-Spanish-Edition/dp/1460903935">Spanish</a> at the moment) or in <a href="http://www.bpm-guide.de/2010/07/15/bpmn-2-0-am-beispiel-incident-management/">this blog post</a>.</p>
<p><div id="attachment_3648" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/03/bpmnProcessParticipant.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/03/bpmnProcessParticipant-300x83.png" alt="The process from the perspective of the user" title="The process from the perspective of the user" width="300" height="83" class="size-medium wp-image-3648 colorbox-3645" /></a><p class="wp-caption-text">The process from the perspective of the user</p></div>
<p>Note that there are basically two different possible flows for the user, either a score is provided immediately and he can do the whole work at once or the score is provided later and he has to come back later, query his task list and do the last step in the process model from there. To make this more clear, I visualized the flows by adding screen-shots of the application I developed as a prototype:</p>
<div id="attachment_3650" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/03/foxFlowAsynchronous.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/03/foxFlowAsynchronous-300x216.png" alt="The user has to come back via the task list when the score is received asynchronously" title="The user has to come back via the task list when the score is received asynchronously" width="300" height="216" class="size-medium wp-image-3650 colorbox-3645" /></a><p class="wp-caption-text">The user has to come back via the task list when the score is received asynchronously</p></div>
<div id="attachment_3651" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/03/foxFlowSynchronous.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/03/foxFlowSynchronous-300x183.png" alt="The user experiences one page-flow when the score is retrieved immediately" title="The user experiences one page-flow when the score is retrieved immediately" width="300" height="183" class="size-medium wp-image-3651 colorbox-3645" /></a><p class="wp-caption-text">The user experiences one page-flow when the score is retrieved immediately</p></div>
<p><strong>The automated process for the engine</strong></p>
<p>As I said earlier, we have an automated business process for implementing this application. Using a process engine for this task comes handy for two features we can leverage in this case: First we need some persistence if the score is not returned immediately and second we want to add some escalation if the answer is not in time. With an BPMN 2.0 Engine like Activiti, we just have to add an <a href="http://www.activiti.org/userguide/index.html#bpmnTimerBoundaryEvent">attached boundary timer event</a> to really implement an escalation, awesome.</p>
<p>The following image shows the process model as I deploy it later to Activiti, basically three things are remarkable:</p>
<ul>
<li>The number of UserTasks does not match the number of forms the user sees. This is not uncommon since the granularity of the user forms is basically dependent on the technology, on your smartphone you might have more forms than in a normal browser on your wide screen at work.</li>
<li>The form we use to enter the customer data in the beginning does not correspond to an user task. This form is filled before the process instance is started at all (if the user cancels here, no process instance will be started at all).</li>
<li>We do user validation within the process engine and have a first user task for entering additional data. This means, that if the users stops here and closes his browser, the process instance will remain in the Activiti database and he can continue later from the task list. I decided to model it like this in the demo, it is not the only possibility, agreed, there would be alternatives, but I consider it not to be unrealistic to first have a &#8220;safe point&#8221; after validation in this case.</li>
</ul>
<div id="attachment_3653" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/04/bpmnProcessEngine.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/04/bpmnProcessEngine-300x61.png" alt="Process automated in Activiti" title="Process automated in Activiti" width="300" height="61" class="size-medium wp-image-3653 colorbox-3645" /></a><p class="wp-caption-text">Process automated in Activiti</p></div>
<p><strong>How do we get this together?</strong></p>
<p>In order to understand the big picture we need to have a look at the JSF user interface I developed for our small use case, which is included in the following process model. You can see that for example the customer details are &#8220;just&#8221; two forms which are implemented by a simple page-flow in JSF (page-flows are built-in). But for the other &#8220;flow logic&#8221; we need to call the process engine.</p>
<div id="attachment_3655" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/03/bpmnWithJSF.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/03/bpmnWithJSF-300x196.png" alt="User, Activiti and the JSF Layer in between" title="User, Activiti and the JSF Layer in between" width="300" height="196" class="size-medium wp-image-3655 colorbox-3645" /></a><p class="wp-caption-text">User, Activiti and the JSF Layer in between</p></div>
<p>But how do we get the synchronous one page-flow feeling for the user for this? </p>
<p><strong>UI-Mediator-Pattern</strong></p>
<p><div id="attachment_3646" class="wp-caption alignright" style="width: 148px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/03/uiMediator.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/03/uiMediator-138x150.png" alt="UI Mediator" title="UI Mediator" width="138" height="150" class="size-thumbnail wp-image-3646 colorbox-3645" /></a><p class="wp-caption-text">UI Mediator Pattern</p></div>   The UI-Mediator-Pattern basically described for a asynchronous SOA world how to map an asynchronous behavior under the hoods to a synchronous feeling on the user interface. That&#8217;s exactly what we want. And since Activiti normally behaves synchronously in terms of threading anyway (for details see the <a href="http://www.activiti.org/userguide/index.html#asyncContinuations">Activiti user guide</a>) it is easy to implement in this environment. This mediator is a generic component we add to our application, which checks after a user interacts with the process engine if some task exists for the same process instance for the current user, depending on the configuration you might even wait a couple of seconds if a task will be created. If yes, the task form it is shown immediately to the user simulating a synchronous page-flow. This can now be easily mixed with real page-flow in JSF.</p>
<p>Done <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3645' /> </p>
<p><strong>The demo application</strong></p>
<p>Cool, but how to implement it? Actually it doesn&#8217;t take more than the <a href="http://www.camunda.com/fox/community/download/">camunda fox platform community edition</a>, which includes a JBoss AS 7, and an evening of time. The whole application can be checked out from our public SVN: <a href="https://svn.camunda.com/fox/demo/fox/customer-registration-ui-mediator/trunk/">https://svn.camunda.com/fox/demo/fox/customer-registration-ui-mediator/trunk/</a>. You just have to build it using Maven and deploy the resulting war on the fox platform and it should work.</p>
<blockquote><p>
<strong>Important addition (2012-April-28): I adjusted the code in the showcase to use JMS for the asynchronous response.</strong> That works pretty well and shows how to correlate an incoming JMS message to the right process instance. In order to get this running you have to enable the JBoss full profile to get it working! Here you find the <a href="https://svn.camunda.com/fox/demo/fox/customer-registration-ui-mediator/trunk/standalone.xml">standalone.xml</a> you need, just replace the existing one in your JBoss 7 (or you build that yourself, in our <a href="https://app.camunda.com/confluence/display/foxUserGuide/Install+fox-platform+on+JBoss+AS+7">fox user guide</a> we have documentation for this, unfortunately this is currently not open for public but only for our enterprise customers).
</p></blockquote>
<p><strong>Implementation details</strong></p>
<p>I don&#8217;t want to repeat how to build process application with the <a href="http://www.camunda.com/fox/features/development-stack/">camunda fox stack</a> here, we showed that for example in <a href="http://www.bpm-guide.de/2011/09/28/less-code-bpm-with-camunda-fox-server-activiti-and-jboss-as-7/">this blog post</a> and recently wrote a JavaMagazin article which is published soon. I want to concentrate on the UI mediation parts of it, where I used some CDI magic. At least it felt like magic <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley colorbox-3645' /> </p>
<p>First I specialize the existing BusinessProcess bean from the <a href="http://www.activiti.org/userguide/index.html#cdiintegration">Activiti CDI</a> module. Now my own bean is used instead of the original one and I can add additional code which is always executed (a bit like Interceptors). In this bean I only hook in the UiMediator, which is described next.</p>
<pre>
/**
 * Specializes {@link BusinessProcess} bean to add generic code needed for UiMediator
 */
@Specializes
public class UiMediatedBusinessProcessBean extends BusinessProcess {

  //we do not have a logged in user in the demo app
  private String currentUser = "kermit";

  @Inject
  private UIMediator uiMediator;

  @Override
  public void completeTask() {
    Task task = getTask();
    super.completeTask();

    if (task != null) {
      uiMediator.checkProcessInstanceStatus(task.getAssignee(), task.getProcessInstanceId());
    }
  }

  @Override
  public ProcessInstance startProcessByKey(String key, Map&lt;String, Object&gt; variables) {
    ProcessInstance processInstance = super.startProcessByKey(key, variables);
    uiMediator.checkProcessInstanceStatus(currentUser, processInstance.getProcessInstanceId());
    return processInstance;
  }
}
</pre>
<p>The UiMediator just does the work I described above: it checks if a task is created for the same user in the same process instance immediately. If yes, it just saves it to some properties, which we can use in the JSF page-flow to route to the correct pages.</p>
<pre>
@RequestScoped
@Named("uiMediator")
public class UIMediator implements Serializable {

  @Inject
  private TaskService taskService;

  @Inject
  private FormService formService;

  private String nextTaskId;

  private String nextTaskForm;

  /**
   * check for new task in same process for same user
   */
  public void checkProcessInstanceStatus(String assignee, String processInstanceId) {
    nextTaskId = null;
    nextTaskForm = null;
    if (processInstanceId != null &#038;&#038; assignee != null) {
      List&lt;Task&gt; tasks = taskService.createTaskQuery().taskAssignee(assignee).processInstanceId(processInstanceId).list();
      if (tasks.size() == 1) {
        nextTaskId = tasks.get(0).getId();
        nextTaskForm = formService.getTaskFormData(nextTaskId).getFormKey();
      }
    }
    // possible extension here: wait a couple of (milli)seconds to check if that task is reached asynchronously if you have this requirement
  }
  public String getNextTaskId() {
    return nextTaskId;
  }
  public String getNextTaskForm() {
    return nextTaskForm;
  }
}
</pre>
<p>For the page-flow we now add navigation rules, that every time a process instance is started or a task is completed (the later is shown in the code below), we check the UiMediator for a next form. If this is provided we go on this page, otherwise we go back to the task list. The nice thing about this implementation is, that our application does not need any specific code, the whole solution is pretty generic, you only need the correct navigation rule to form a proper page-flow in JSF (maybe if I have another evening of time I will come up with a workaround for this <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley colorbox-3645' /> ). </p>
<pre>
&lt;navigation-rule&gt;
  &lt;navigation-case&gt;
    &lt;from-action&gt;#{businessProcess.completeTask()}&lt;/from-action&gt;
    &lt;if&gt;#{uiMediator.nextTaskId==null}&lt;/if&gt;
    &lt;to-view-id&gt;/app/taskList.jsf&lt;/to-view-id&gt;
    &lt;redirect/&gt;
  &lt;/navigation-case&gt;
  &lt;navigation-case&gt;
    &lt;from-action&gt;#{businessProcess.completeTask()}&lt;/from-action&gt;
    &lt;if&gt;#{uiMediator.nextTaskId!=null}&lt;/if&gt;
    &lt;to-view-id&gt;/app/#{uiMediator.nextTaskForm}.jsf&lt;/to-view-id&gt;
    &lt;redirect&gt;
        &lt;view-param&gt;
            &lt;name&gt;taskId&lt;/name&gt;
            &lt;value&gt;#{uiMediator.nextTaskId}&lt;/value&gt;
        &lt;/view-param&gt;
    &lt;/redirect&gt;
  &lt;/navigation-case&gt;
&lt;/navigation-rule&gt;
</pre>
<p>That&#8217;s it. Not so hard actually, right? A good example of the power of using Java EE 6 together with camunda fox (including BPMN 2.0 and Activiti) for Process Applications <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3645' />  Feedback welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/04/04/pageflow-vs-process-flow-and-ui-mediator-pattern/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Activiti 5.9 introduces BPMN Compensation and Transactions</title>
		<link>http://www.bpm-guide.de/2012/03/02/activiti-5-9-introduces-bpmn-compensation-and-transactions/</link>
		<comments>http://www.bpm-guide.de/2012/03/02/activiti-5-9-introduces-bpmn-compensation-and-transactions/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 08:53:15 +0000</pubDate>
		<dc:creator>Daniel Meyer</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Activiti]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3575</guid>
		<description><![CDATA[In activiti 5.9 we introduce experimental support for transactions and compensation. Both are interesting features, mainly if you are working in the domain of application integration and B2B processes. Compensation Compensation is a means for &#8220;undoing&#8221; the effects of an action. For example, say you charge the amount of 500€ to a credit card. If [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_3620" class="wp-caption alignleft" style="width: 160px"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59-150x56.png" alt=" " title=" " width="150" height="56" class="size-thumbnail wp-image-3620 colorbox-3575" /><p class="wp-caption-text"> </p></div>In activiti 5.9 we introduce experimental support for transactions and compensation. Both are interesting features, mainly if you are working in the domain of application integration and B2B processes.</p>
<p><span id="more-3575"></span></p>
<h2>Compensation</h2>
<p>Compensation is a means for &#8220;undoing&#8221; the effects of an action. For example, say you charge the amount of 500€ to a credit card. If you later detect that this was an error, you may want to undo this. One way of doing that is crediting the same account 500€.</p>
<p>Now wait, isn&#8217;t that what transactions are for? Can I not just rollback the transaction in which I charged the 500€ and I am done?  &#8211; Well yes, but there are two problems:</p>
<ul>
<li>The service you are using might not support transactions.</li>
<li>You might notice that it was wrong to charge the 500€ too late, at a time where the transaction is already committed.</li>
</ul>
<p>In both cases we cannot simply &#8220;go back in time&#8221; and do as if nothing happened. On the contrary, we need to make something else happen, in order to compensate the effects of an action we erroneously committed.</p>
<p>(As we know from real life experience, this is not always that simple and therefore, in general, compensation is not always a strict &#8220;undo&#8221; action. Consider the case where you send a letter to a customer and then later notice that you need to compensate the sending of the letter. At that point, the customer might have already read the letter. You cannot simply &#8220;undo&#8221; that fact. What you might do in that situation is send a second letter, asking the customer to forget about the first one.)</p>
<h2>Compensation in BPMN 2.0</h2>
<p>In BPMN, the concept of compensation is introduced, using compensation events and compensation handlers. For example, the following excerpt of a process shows how we can declare that the &#8220;book hotel&#8221; activity can be compensated using the &#8220;cancel hotel reservation&#8221; activity. If a task has multiple instance characteristics (like the &#8220;book hotel&#8221; task in this example), the compensation handler is invoked for each instance that completed successfully.</p>
<p><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.boundary.compensation.event_.png"><img class="aligncenter size-full wp-image-3580 colorbox-3575" title="bpmn.boundary.compensation.event" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.boundary.compensation.event_.png" alt="" width="247" height="198" /></a></p>
<p><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.boundary.compensation.event_.png"></a>The intermediate throwing compensation event allows us to trigger the compensation of the scope it is hosted in or of a specific activity from that scope:</p>
<p><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.compensation.png"><img class="aligncenter size-medium wp-image-3582 colorbox-3575" title="bpmn.compensation" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.compensation-300x124.png" alt="" width="300" height="124" /></a></p>
<p><strong> </strong>When compensating a subprocess, the execution used for  executing the compensation handlers has access 				to the local process variables of the subprocess in the state they  were in when the subprocess completed execution. 				To achieve this, a snapshot of the process variables associated with  the scope execution (execution created for executing the  				subprocess) is taken. Form this, a couple of implications follow:</p>
<div>
<ul type="disc">
<li>The compensation handler does not have access to variables added to concurrent executions created  							inside the subprocess scope.</li>
<li>Process variables associated with executions higher up in the hierarchy, (for instance process variables 							associated with the process instance execution are not contained in the snapshot: the compensation handler 							has access to these process variables in the state they are in when compensation is thrown.</li>
<li>A variable snapshot is only taken for subprocesses, not for other activities.</li>
</ul>
</div>
<h2>Compensation in activiti 5.9</h2>
<p>Activiti supports compensation boundary events and intermediate throwing compensation events.</p>
<p>The following limitations apply:</p>
<div>
<ul type="disc">
<li><code>waitForCompletion="false"</code> is currently unsupported. When compensation is triggered 							using the intermediate throwing compensation event, the event is only left, after compensation completed  							successfully.</li>
<li>Compensation itself is currently performed by concurrent executions. The concurrent executions are started  							in reverse order in which the compensated activities completed. Future versions of activity might include  							an option to perform compensation sequentially.</li>
<li>Compensation is not propagated to sub process instances spawned by call activities.</li>
</ul>
</div>
<p><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.compensation.png"></a>The concept of compensation is also used in transaction subprocesses.</p>
<h2>Transaction subprocesses in BPMN 2.0</h2>
<p>A transaction subprocess can be used to group multiple activities to a logical unit of work with a consistent outcome. Since BPMN transactions are long running transactions, they make use of compensation for ensuring consistency in case a transaction fails.</p>
<p>A transaction can have three different outcomes:</p>
<ul>
<li> A transaction is successful, if it is neither cancelled nor terminated by a hazard. If a transaction subprocess is successful, it is left using it&#8217;s outgoing sequenceflow(s). A successful transaction might be compensated if a compensation event is thrown later in the process.<br />
Note: just as &#8220;ordinary&#8221; subprocesses, a transaction may be compensated after successful completion using an intermediary throwing compensation event.</li>
<li>A transaction is cancelled, if an execution reaches the cancel end event. In that case, all executions are terminated and removed. A single remaining execution is then set to the cancel boundary event, which triggers compensation. After compensation is completed, the transaction subprocess is left using the outgoing sequence flow(s) of the cancel boundary event.</li>
<li>A transaction is ended by a hazard, if an error event is thrown, that is not caught within the scope of the transaction subprocess. (This also applies if the error is caught on the boundary of the transaction subprocess.) In this case, compensation is not performed.</li>
</ul>
<p>The following diagram illustrates the three different outcomes of a transaction:</p>
<p style="text-align: center;"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.transaction.subprocess.example.1.png"><img class="aligncenter size-full wp-image-3576 colorbox-3575" title="bpmn.transaction.subprocess.example.1" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.transaction.subprocess.example.1.png" alt="" width="433" height="219" /></a></p>
<p><strong>Relation to ACID transactions:</strong> it is important not to confuse the bpmn transaction subprocess with  				technical (ACID) transactions. The bpmn transaction subprocess is not a way to scope technical transactions.  				A bpmn transaction is different from a technical transaction in the following ways:</p>
<div>
<ul type="disc">
<li>While an ACID transaction is typically short lived, a bpmn  transaction may take hours, days or even months  		   					to complete. (Consider the case where one of the activities  grouped by a transaction is a usertask,  		   					typically people have longer response times than applications.  Or, in another situation, a bpmn transaction might wait  		   					for some business event to occur, like the fact that a  particular order has been fulfilled.) Such operations 		   					usually take considerably longer to complete than updating a  record in a database, or storing a message using  		   					a transactional queue.</li>
<li>Because it is impossible to scope a technical transaction to  the duration of a business activity, a bpmn transaction typically  		   					spans multiple ACID transactions.</li>
<li>Since a bpmn transaction spans multiple ACID transactions, we  loose ACID properties. For example, consider the example given above. 		   					Let&#8217;s assume the &#8220;book hotel&#8221; and the &#8220;charge credit card&#8221;  operations are performed in separate ACID transactions. Let&#8217;s also  assume that  		   					the &#8220;book hotel&#8221; activity is successful. Now we have an  intermediary inconsistent state, because we have performed an hotel  booking but have  		   					not yet charged the credit card. Now, in an ACID transaction,  we would also perform different operations sequentially and thus also  have an  		   					intermediary inconsistent state. What is different here, is  that the inconsistent state is visible outside of the scope of the  transaction.  		   					For example, if the reservations are made using an external  booking service, other parties using the same booking service might  already see that  		   					the hotel is booked. This means, that when implementing  business transactions, we completely loose the isolation property  (Granted: we usually also  		   					relax isolation when working with ACID transactions to allow  for higher levels of concurrency, but there we have fine grained control  and intermediary  		   					inconsistencies are only present for very short periods of  times).</li>
<li>A bpmn business transaction can also not be rolled back in the  traditional sense. Since it spans multiple ACID transactions, some of  these ACID  		   					transactions might already be committed at the time the bpmn  transaction is cancelled. At this point, they cannot be rolled back  anymore.</li>
</ul>
</div>
<p>Since bpmn transactions are long-running by nature, the lack of  isolation and a rollback mechanism need to be dealt with differently. In  practice, there is usually  		   		no better solution than to deal with these problems in a domain  specific way:</p>
<div>
<ul type="disc">
<li>The rollback is performed using compensation. If a cancel  event is thrown in the scope of a transaction, the effects of all  activities that executed  		   					successfully and have a compensation handler are compensated.</li>
<li>The lack of isolation is also often dealt with using domain  specific solutions. For instance, in the example above, an hotel room  might appear to be 		   					booked to a second customer, before we have actually made sure  that the first customer can pay for it. Since this might be undesirable  from a business  		   					perspective, a booking service might choose to allow for a  certain amount of overbooking.</li>
<li>In addition, since the transaction can be aborted in case of a  hazard, the booking service has to deal with the situation where a  hotel room is booked  		   					but payment is never attempted (since the transaction was  aborted). In that case the booking service might choose a strategy where  a hotel room is 		   					reserved for a maximum period of time and if payment is not  received until then, the booking is cancelled.</li>
</ul>
</div>
<p>To sum it up: while ACID transactions offer a generic solution to  such problems (rollback, isolation levels and heuristic outcomes),  		   		we need to find domain specific solutions to these problems when  implementing business transactions.</p>
<h2>Transaction Subprocesses in Activiti 5.9</h2>
<p>The BPMN specification requires that the process engine reacts  to events issued by the underlying transaction protocol  		   					and for instance that a transaction is cancelled, if a cancel  event occurs in the underlying protocol. 		   					As an embeddable engine, activiti does currently not support  this.</p>
<p><strong> </strong>A bpmn transaction guarantees consistency in the sense that  either all activities compete successfully, or if some activity  		   		cannot be performed, the effects of all other successful  activities are compensated. So either way we end up in a consistent  		   		state. However, it is important to recognize that in activiti,  the consistency model for bpmn transactions is superposed  		   		on top of the consistency model for process execution.  		   		Activiti executes processes in a transactional way. Concurrency  is addressed using optimistic 		   		locking. In activiti, bpmn error, cancel and compensation events  		   		are built on top of the same acid transactions and optimistic  locking. For example, a cancel end event can only trigger compensation  		   		if it is actually reached. It is not reached if some undeclared  exception is thrown by a service task before. Or, the  		   		effects of a compensation handler can not be committed if some  other participant in the underlying ACID transaction  		   		sets the transaction to the state rollback-only. Or, when two  concurrent executions reach a cancel end event, compensation  		   		might be triggered twice and fail with an optimistic locking  exception. All of this is to say that when implementing  		   		bpmn transactions in activiti, the same set of rules apply as  when implementing &#8220;ordinary&#8221; processes and subprocesses. 		   		So to effectively guarantee consistency, it is important to  implement processes in a way that does take the optimistic,  transactional  		   		execution model into consideration.</p>
<p>The following is a larger example of a transction subprocess which can be executed by activiti:</p>
<p style="text-align: center;"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.transaction.subprocess.example.2.png"><img class="aligncenter size-full wp-image-3577 colorbox-3575" title="bpmn.transaction.subprocess.example.2" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/bpmn.transaction.subprocess.example.2.png" alt="" width="627" height="310" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/03/02/activiti-5-9-introduces-bpmn-compensation-and-transactions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Activiti 5.9 introduces more BPMN 2.0 support</title>
		<link>http://www.bpm-guide.de/2012/03/01/activiti-5-9-introduces-more-bpmn-2-0-support/</link>
		<comments>http://www.bpm-guide.de/2012/03/01/activiti-5-9-introduces-more-bpmn-2-0-support/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 11:07:28 +0000</pubDate>
		<dc:creator>Bernd Rücker</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Activiti]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3592</guid>
		<description><![CDATA[We released Activiti 5.9 today! My colleagues have done an outstanding job to extend the BPMN 2.0 support in the engine, basically driven by our camunda fox customers, hence we got a lot of cool new features in this release. I want to give some examples today in this post, you find more in the [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_3620" class="wp-caption alignleft" style="width: 160px"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59-150x56.png" alt=" " title=" " width="150" height="56" class="size-thumbnail wp-image-3620 colorbox-3592" /><p class="wp-caption-text"> </p></div>We <a href="http://processdevelopments.blogspot.com/2012/03/activiti-59-is-big-leap-forward.html">released Activiti 5.9</a> today! My colleagues have done an outstanding job to extend the BPMN 2.0 support in the engine, basically driven by our <a href="http://www.camunda.com/fox/">camunda fox</a> customers, hence we got a lot of cool new features in this release. I want to give some examples today in this post, you find more in the <a href="http://www.activiti.org/userguide/index.html">Activiti userguide</a>. Feel free to drop by our <a href="http://www.bpm-guide.de/2012/02/08/bpmn-2-0-activiti-und-camunda-fox-auf-der-cebit/">cebit booth next week</a> then we can show you the stuff in action.</p>
<p><span id="more-3592"></span><br />
<strong>Message Start Event</strong></p>
<p><div id="attachment_3593" class="wp-caption alignleft" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_message_start_event.png"><img class="size-thumbnail wp-image-3593 colorbox-3592" title="Example with multiple message start events" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_message_start_event-150x62.png" alt="Example with multiple message start events" width="150" height="62" /></a><p class="wp-caption-text">Example with multiple message start events</p></div>
<p>We now support the message start event, not only the none start event. The difference is basically the API method you have to call and the big advantage is, that this allows multiple start events in one process model, as you can see in the example. The API is pretty straightforward and allows to name the incoming message:</p>
<p><code></code><br />
<code>RuntimeService.startProcessInstanceByMessage(String messageName);</code></p>
<p>To handle the message start events we added infrastructure to Activiti 5.9 to handle messages overall. So we are currently only one step away from supporting intermediate message events, message events on event based gateways and boundary message events. We currently expect this to appear with Activiti 5.10 (<a href="http://docs.codehaus.org/display/ACT/Calendar">scheduled for first of august</a>).</p>
<p><strong>Signal Event</strong></p>
<div id="attachment_3594" class="wp-caption alignleft" style="width: 85px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_signal_boundary_event.png"><img class="size-thumbnail wp-image-3594 colorbox-3592" title="Example for boundary signal event" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_signal_boundary_event-145x150.png" alt="Example for boundary signal event" width="75" /></a><p class="wp-caption-text"> </p></div>
<p>We added the BPMN 2.0 Signal as you can see in the example on the left. A Signal can be either triggered by some throwing event from within the engine itself or you can trigger it from the outside of Activiti with a new API call:</p>
<p><code><br />
RuntimeService.signalEventReceived(String signalName);<br />
</code></p>
<p><code></code><br />
<code></code></p>
<p><strong>Intermediate Throwing None Event used for KPI&#8217;s</strong></p>
<div id="attachment_3595" class="wp-caption alignleft" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_intermediate_none_event.png"><img class="size-thumbnail wp-image-3595 colorbox-3592" title="Example of intermediate none event" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_intermediate_none_event-150x27.png" alt="Example of intermediate none event" width="150" height="27" /></a><p class="wp-caption-text">Example of intermediate none event</p></div>
<p>A small change in the code but a huge step for Business-IT-Alignment: We added the intermediate throwing non event, which basically does nothing. The spec says this should be used to mark an intermediate state (or milestone) in a process. This makes is a perfect place to record some KPI&#8217;s and it is more natural to read than some service tasks doing this (the workaround before Activiti 5.9). To the intermediate event you can attach some logic which is executed when a process instances passes by, this is done in the normal Activiti way by using a configurable execution listener. Here you can pass information to your BAM or BI solution for monitoring purposes. This is how the XML looks like:</p>
<pre>&lt;intermediateThrowEvent id="noneEvent"&gt;
  &lt;extensionElements&gt;
    &lt;activiti:executionListener event="start"
        class="com.camunda.SampleKpiListener" /&gt;
  &lt;/extensionElements&gt;
&lt;/intermediateThrowEvent&gt;</pre>
<p><strong>Event Subprocesses</strong></p>
<div id="attachment_3602" class="wp-caption alignright" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_event_subprocess.png"><img class="size-thumbnail wp-image-3602 colorbox-3592" title="Event Sub Process" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_event_subprocess-150x115.png" alt="Event Sub Process" width="150" height="115" /></a><p class="wp-caption-text">Event Sub Process</p></div>
<p>Event sub processes can be triggered by an event (like message events, error events, signal events, timer events, or compensation events) and are either interrupting the normal process flow or they create a new token and work in parallel (non-interrupting). This is quite powerful to handle interruptions in the normal flow or to handle e.g. inquiries for a process instance which should not disturb the normal flow.  In Activiti 5.9 we added only the interrupting behavior for error events, the non-interrupting one and all other event types are still open issues and good candidates to be included in 5.10 (especially the message event).</p>
<p><code></code><br />
<code></code></p>
<p><strong>Event based gateway</strong></p>
<div id="attachment_3603" class="wp-caption alignright" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_event_based_gateway.png"><img class="size-thumbnail wp-image-3603 colorbox-3592" title="Event Based Gateway example" src="http://www.bpm-guide.de/wp-content/uploads/2012/02/activiti59_bpmn_event_based_gateway-150x51.png" alt="Event Based Gateway example" width="150" height="51" /></a><p class="wp-caption-text">Event Based Gateway example</p></div>
<p>The event based gateway allows to wait for the occurrence of one of multiple events, you can already use timers and signal events here, message shall follow in Activiti 5.10.</p>
<p><code></code></p>
<p><strong>BPMN Compensation and Transactions</strong></p>
<p>Another great thing we started is to support BPMN 2.0 transactions, cancellation and compensations. This is in an early experimental phase (so please go ahead, try it out and tell us your feedback!), but some basics area already included in Activiti 5.9. Daniel has an own blog post ready especially for that topic, so stay tuned, that will be published shortly on this blog. </p>
<p><strong>Limitations</strong></p>
<p>We basically concentrated on the engine and the camunda fox tool chain with the fox-modeler (OEM based on Signavio) and the fox-designer (based on the Eclipse BPMN2 Modeler). Since these tools know the full range of BPMN 2.0 they are already capable to handle the new features. If you work with your own BPMN 2.0 compliant modeler, it should work as well. </p>
<p>In the Activiti Open Source project please note that the Activiti Designer (Eclipse) does not yet support all the new elements and the graphical visualization of processes in the Activiti Explorer (Web-GUI) cannot render some of them new elements, leaving &#8220;white holes&#8221; or some wrong renderings in parts of the process. </p>
<p>We have a new story about process visualization and the &#8220;where am I in the process&#8221; pics on the near roadmap, then we should be able to be full BPMN 2.0 compliant here as well and bypass limitations with the current rendering on IBM Server machines. Stay tuned for this!</p>
<p>Please note, that we marked some of the constructs as &#8220;experimental&#8221; in the Activiti user guide, because they are pretty fresh. We work on stabilizing them for camunda fox and Activiti 5.10.</p>
<p><strong>Other new features worth mentioning</strong></p>
<ul>
<li><strong>Error boundary Event now can handle faults on service tasks</strong>: By this you can catch and handle exceptions from Java code executed from a service task. Before 5.9 you could only catch errors from an error end event within a subprocess.</li>
<li><strong>Suspending and Resuming Process Definitions and Instances</strong>: We now have support in the API to &#8220;pause&#8221; instances or whole process definitions. Then the process instance cannot move on and no timers or the like fire (until you reactivate the instance). I see a couple of use cases for this, starting from a temporary problem in a single process instance to an emergency stop to whole process definitions. The API looks like this:<br />
<code><br />
RuntimeService.suspendProcessInstanceById(String processInstanceId);<br />
RuntimeService.activateProcessInstanceById(String processInstanceId);<br />
RepositoryService.suspendProcessDefinitionByKey(String processDefinitionKey);<br />
RepositoryService.activateProcessDefinitionByKey(String processDefinitionKey);</p>
<p></code>
       </li>
<li><strong>Exclusive jobs and plugability of the job executor infrastructure</strong>: We can now exchange the job executor easily, which we needed for our camunda fox platform, especially for support of WebSphere, WebLogic and the like, where we use the application server capabilities instead of starting an own thread pool (as Activiti does it out-of-the-box). Exclusive jobs now add more &#8220;safety&#8221; by default but allow for more configuration for the advanced. This will be explained in more depth by a later blog post of Daniel.</li>
</ul>
<p>For all the details have a look into the <a href="http://activiti.org/readme.html">release notes</a>.</p>
<p><strong>Special thanks to&#8230;</strong></p>
<p>I really want to thank my <a href="http://www.camunda.com/consulting/">camunda team</a> for their excellent work on the Activiti 5.9 and the camunda fox 6.0.0 release. The BPMN language additions would not be possible without you guys! Namely that is our fox scrum team (with Andreas, Christian, Roman and partly Nico), Daniel who really did an outstanding job in implementing new infrastructure in the Activiti core engine almost <em>besides</em> his other work and Falko, who basically is Mr. BPMN 2.0 Specification <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3592' />  Great job! Thanks as well for the Alfresco guys for a lot of housekeeping, community and coding work. Special thanks go to Tijs, who seems to never sleep.</p>
<p><strong>Download it now</strong></p>
<p>Download Activiti 5.9 from the <a href="http://www.activiti.org/download.html">Activiti Website</a> today. By the way: We work on a community release of camunda fox as well, which basically includes a community version of our JBoss 7.1 integration (some of you may know that as the &#8220;fox-server-preview&#8221;). We plan to finish that end of march, so the next milestone is already in sight!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/03/01/activiti-5-9-introduces-more-bpmn-2-0-support/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BPM Day und camunda auf der JAX 2012</title>
		<link>http://www.bpm-guide.de/2012/02/20/bpm-day-und-camunda-auf-der-jax-2012/</link>
		<comments>http://www.bpm-guide.de/2012/02/20/bpm-day-und-camunda-auf-der-jax-2012/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 16:25:41 +0000</pubDate>
		<dc:creator>Bernd Rücker</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[JAX]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3562</guid>
		<description><![CDATA[Alte Hasen kennen es bereits: Wie jedes Jahr gibt es einen BPM Day auf der JAX, dies mal am Mittwoch den 18.04.2012. Dieses Jahr haben wir ihn aber inhaltlich noch mal etwas mehr aligned und ganz grob dem Thema &#8220;BPM und Java&#8221; unterstellt, also wie man BPM auch erfolgreich im Java Ökosystem nutzen kann. Das [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_3566" class="wp-caption alignleft" style="width: 157px"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/jax2012.png" alt=" " title=" " width="147" height="78" class="size-full wp-image-3566 colorbox-3562" /><p class="wp-caption-text"> </p></div> Alte Hasen kennen es bereits: Wie jedes Jahr gibt es einen BPM Day auf der JAX, dies mal am Mittwoch den 18.04.2012. Dieses Jahr haben wir ihn aber inhaltlich noch mal etwas mehr aligned und ganz grob dem Thema &#8220;BPM und Java&#8221; unterstellt, also wie man BPM auch erfolgreich im Java Ökosystem nutzen kann. Das ganze soll möglichst konkret und praxisnah passieren. Mit dieser inhaltlich richtig coolen Ausrichtung haben wir uns dann auch überreden lassen, den Tag zu sponsorn und sind dann also auch mit einem Stand bei der JAX vertreten. Des Weiteren sind wir mit Vorträgen zu Activiti und Java EE und Integration mit Activiti und Camel vertreten&#8230;<br />
<span id="more-3562"></span><br />
<strong>BPM Day</strong><br />
Zum Inhalt (die ganze Agenda auch <a href="http://jax.de/2012/sessions/?tid=2342">hier im Überblick</a>): Der BPM Day startet mit Volker Stiehl von SAP, der über &#8220;<a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=jax2012&#038;id=21461">BPMN als Programmiersprache für Integrationsprozesse</a>&#8221; spricht. Wer Volker kennt weiß, dass er guten Inhalt bietet, das hat er ja auch schon in einigen JavaMagazin Artikeln beweisen. </p>
<p>Weiter geht es mit Jakob, der den aktuellen Stand zu &#8220;<a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=jax2012&#038;id=20759">BPMN &#8211; Best Practices &#038; Roundtrip</a>&#8221; darstellt, klingt wie immer, ist aber auch wie immer ganz neuer Content, da sich in einem halben Jahr doch immer viel verändert. </p>
<p>Nach dem Mittagessen geht es weiter mit Michael Paulsen, besser bekannt als Pul, vom Versandhaus Bader, der aus Kundensicht einmal Ihr BPM Vorgehen beschreibt, das Ganze unter dem Titel &#8220;<a href="http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=jax2012&#038;id=21460">Geschäftsideen auf die Straße bringen &#8211; Was die IT für eine agile, prozessorientierte Unternehmensarchitektur leisten kann</a>&#8220;. </p>
<p>Dann kommt Anne Rozinat von Fluxicon und beleuchtet einmal das zugegeben noch futuristische, aber meiner Meinung nach sehr interessante Thema &#8220;<a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=jax2012&#038;id=21597">Process Mining: BPM auf den Kopf gestellt</a>&#8220;. Ich habe sie gebeten, das auch konkret an Hand von Praxisbeispielen zu illustrieren. </p>
<p>Last but auf jeden Fall not least kommen noch Gernot Starke und Daniel Lübke und erzählen über den &#8220;<a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=jax2012&#038;id=20799">Einsatz von arc42 zur Architekturdokumentation in Prozessautomatisierungsprojekten</a>&#8220;. Auch wenn sie sich etwas gesträubt haben auf den BPM Day zu kommen, finde ich persönlich das Thema genau in der Kombination super spannend und bin sehr gespannt auf den Vortrag.</p>
<p><strong>Activiti Vorträge</strong><br />
Zu Activiti gibt es dann wie versprochen auch 2 Vorträge, allerdings nicht auf dem BPM Day sondern</p>
<ul>
<li>Auf dem Finance Day (am Dienstag 17.04.2012) erzählt mein Kollege Nils Preusker mit mir über &#8220;<a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=jax2012&#038;id=20764">eine leichtgewichtige BPM-/SOA-Infrastruktur mit Activiti und Camel</a>&#8220;, wobei wir aktuelle Erfahrungen aus einem Kundenprojekt im Bankenbereich &#8220;verarbeiten&#8221;.</li>
<li> Auf dem Java EE Experts Day (am Freitag 20.04.2012) habe ich dann mit meinem Kollegen Daniel Meyer sogar 1,5 Stunden Zeit mit &#8220;<a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=jax2012&#038;id=21469">BPM und Java EE : Das perfekte Team für Prozessanwendungen?</a>&#8221; richtig in die Tiefe einzusteigen und die Verbindung von Java EE 6 mit einer leichtgewichtigen Process Engine (zufällig Activiti <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley colorbox-3562' /> ) darzustellen und gerne auch zu diskutieren.</li>
</ul>
<p>Die JAX wird also richtig spannend, ein Besuch lohnt sich!</p>
<p><strong> SOA, BPM &#038; Integration Days 29.02-01.03.2012 in München</strong><br />
<div id="attachment_3569" class="wp-caption alignleft" style="width: 135px"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/SOA_BPM_IntDays_125x125.gif" alt=" " title=" " width="125" height="125" class="size-full wp-image-3569 colorbox-3562" /><p class="wp-caption-text"> </p></div> Wer es zeitlich nicht schafft dem kann ich auch noch folgenden Event ans Herz legen: Die SOA, BPM &#038; Integration Days 2012 in München:</p>
<p><em>Vom 29. Februar bis 1. März 2012 präsentiert das Business Technology Magazin die nächsten SOA, BPM &#038; Integration Days. Die hochkarätige Konferenz richtet sich an Softwarearchitekten, IT- und Projektleiter, die ohne jeglichen Marketingfilter und ohne langatmige Einführungen, praktisches Kow-how für ihre geschäftskritischen Projekte erhalten möchten. Insgesamt 24 Sprecher, 12 interaktive Sessions, ein Speaker Panel, 2 Keynotes und 6 Workshops stehen zur Auswahl. Teilnehmer profitieren vor Ort von der Autorenrunde des SOA Spezial Magazins (Publikation von Software &#038; Support Media), von bekannten Buchautoren und langjährigen Sprecher der JAX-Konferenzen. Im Mittelpunkt der SOA, BPM &#038; Integration Days 2012 stehen diesmal vor allem drei Schwerpunkte: Adaptive Prozesse, SOA-Security und Systemintegration. Weitere Informationen zur Konferenz finden Sie auf <a href="http://www.soa-bpm-days.de">www.soa-bpm-days.de</a>.</em></p>
<p>Dort gebe ich pünktlich zum Activiti 5.9 Release am Donnerstag den 01.03. einen &#8220;Power-Workshop&#8221; zu Activiti: <a href="http://soa-bpm-days.de/2012spring/workshops/">Activiti – Die „Less-Code“-BPM-Plattform für Softwareentwickler</a>. Kommen lohnt sich! Ich freue mich auch hier auf Diskussionen und Feedback zu Activiti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/02/20/bpm-day-und-camunda-auf-der-jax-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>camunda fox open source strategy</title>
		<link>http://www.bpm-guide.de/2012/02/17/camunda-fox-open-source-strategy/</link>
		<comments>http://www.bpm-guide.de/2012/02/17/camunda-fox-open-source-strategy/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 08:18:54 +0000</pubDate>
		<dc:creator>Bernd Rücker</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[fox]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3537</guid>
		<description><![CDATA[In my last post I wrote about the activity in the open source project Activiti, and the influence of productization as well as the impact on the health of an open source project in the long run. Now I want to shed some light on the open source strategy we do within camunda fox, since [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_3542" class="wp-caption alignleft" style="width: 122px"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/iStock_000007240678XSmall-112x150.jpg" alt="Get ready for your free lunch" title="Get ready for your free lunch" width="112" height="150" class="size-thumbnail wp-image-3542 colorbox-3537" /><p class="wp-caption-text">Get ready for your free lunch</p></div> In <a href="http://www.bpm-guide.de/2012/02/17/activiti-project-alive-and-kicking/">my last post</a> I wrote about the activity in the open source project Activiti, and the influence of productization as well as the impact on the health of an open source project in the long run. Now I want to shed some light on the open source strategy we do within camunda fox, since I lately get asked quite some times: Activiti Cycle now is camunda fox cycle, is it still open source? You have a stabilized version of the Activiti Engine (called fox-engine), is that a fork? Do you develop new features only in this version? Read on to get some answers to this.<br />
<span id="more-3537"></span></p>
<p><strong>The true value of Open Source</strong></p>
<p>Let me start with a very short story I experienced myself: We use Zimbra, an Open Source Exchange alternative. They have an API. I wanted to develop a small tool helping in resource allocation for consulting, basically by accessing the calendars. The documentation was lousy. But I could get it running pretty quickly, because I used Maven, which accesses the sources, downloaded them and I could look into the project sources in a minute without any hazzle. I never wanted to write a single line in Zimbra, but I could understand how it was meant to be and could debug into it, so I could finish my project right away.</p>
<p>Believing that the true (and only) benefit of Open Source is getting something for free is wrong! But having the source code available helps in your projects and fastens development. And by the way this is a great possibility to improve your development skills, by looking into a lot of other code, see what is understandable for somebody new to the project, experience good interface design and so on. I really think there is no other good way of coding the future, than to have the source available. </p>
<p>And it brings you another very important advantage: less risk. You can always understand the code, maybe even fix a bug yourself in an emergency and find a lot of Java consultants out there, who are able to help.</p>
<p><strong>camunda fox Open Source Strategy</strong></p>
<p>So source code is vital, that is something we believe. That is why we ship the source code for all components of our platform to the client (with the exception of the fox modeler, since it is an OEM deal with Signavio, not our code). But we do not open source all of it. Why this?</p>
<p>Because we want to protect some of our investments in camunda fox, the pain and learning we did the last year, the code we wrote. In short: We want to keep our business case healthy. Even open source enthusiasts should understand this, because the open source projects (like Activiti) benefit from it as well (as described above). But we want to be fair and honest (truly!) and that&#8217;s why we stick to a clear rule: <strong>If we collaborate in open source projects, what we do there is open source as well</strong>. </p>
<p>Currently that means we leverage, collaborate with and contribute to two open source projects: </p>
<ul>
<li>The embeddable <a href="http://www.activiti.org">Activiti Engine</a>.</li>
<li>The <a href="http://www.eclipse.org/projects/project.php?id=soa.bpmn2-modeler">Eclipse BPMN2 Modeler project</a>.</li>
</ul>
<p>To draw a clear line it means, that nothing else of what we do on top of these projects in camunda fox is open source (at least not at the moment, but not planned as well to be honest). This includes <a href="http://www.bpm-guide.de/2012/01/22/run-activiti-on-ibm-websphere-application-server-with-camunda-fox/">the application server integration (e.g. <a href="http://www.bpm-guide.de/2012/01/22/run-activiti-on-ibm-websphere-application-server-with-camunda-fox/">WebSphere</a>)</a>, the <a href="http://www.camunda.com/fox/enterprise/components/camunda-fox-cockpit/">monitoring tool fox-cockpit</a>,  the <a href="http://www.camunda.com/fox/enterprise/components/cycle/">Business-IT-Alignment tool fox-cycle</a> and the camunda fox extensions for the Eclipse Designer (then called fox-designer). </p>
<p>There are two things in this statement maybe confusing Activiti old hands: </p>
<p>1.) Cycle is not Open Source? </p>
<p>True, cycle &#8211; <a href="http://www.bpm-guide.de/2010/07/22/camunda-fox-approach-on-infoq/">kicked of as camunda fox in the beginning</a> &#8211; was soon merged into the Activiti project and got Activiti Cycle under open source license. That was a time when there was a Activiti Modeler and the Open Source project aimed for a full BPM platform. This was actually a too big scope, so the Activiti Open Source project focused on the embeddable engine and removed components not in scope of that (this was a longer discussion to be honest). That&#8217;s why we moved cycle to camunda fox. Since maintaining the Activiti Modeler (an outdated older, but open source version of the commercial <a href="http://www.signavio.com/">Signavio</a> tool) was not on our road-map, we focused on getting this to work with the commercial Signavio. We always only open sourced connectors for cycle suitable for open source tools. So with JIRA and Signavio we basically didn&#8217;t had much left to open source, so we decided to better make a clear communication and no half-baked open source and removed Cycle as an open source project, where we currently do not have the time and energy to make a proper open source project out of it. That&#8217;s why it vanished from the open source space, and I am sorry that this was not clear from the beginning. On the other hand we have not yet seen adoption in the open source world anyway.</p>
<p>2.) Is the camunda fox Eclipse Designer different than the Activiti Designer?</p>
<p>Yes, indeed. Alfresco has a very different goal with Activiti, which is document management workflows within their ECM. We go for BPM. That means, we have much more requirements on the completeness of BPMN elements, but as well on the robustness and usability of the graphical tooling, where the Activiti Designer has some limitations. That&#8217;s why we joined the <a href="http://www.eclipse.org/projects/project.php?id=soa.bpmn2-modeler">Eclipse BPMN2 Modeler project</a> and use that as a basis to add our own extensions to maintain everything needed for camunda fox/Activiti. Everything we do in the Eclipse Plug-In is Open Source, only the extensions are part of the commercial camunda fox platform, since the open source effort is currently bundled in the Activiti Designer. </p>
<p><strong>Thanks for reading</strong></p>
<p>Actually the posts from today were long. But I felt some urge to write it because of various feedback I got, and to express the value &#8220;transparency and clear communication&#8221;, which is really important to me as individual and camunda as a company. And I thought I should explain basically the Java developers out there, what we are doing and why, because I am sure that Activiti is the best thing since sliced bread (or maybe even better), and it will never die as long as at least some of you consider buying camunda fox <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley colorbox-3537' />  Let me know what you think&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/02/17/camunda-fox-open-source-strategy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is the Activiti project dead?</title>
		<link>http://www.bpm-guide.de/2012/02/17/activiti-project-alive-and-kicking/</link>
		<comments>http://www.bpm-guide.de/2012/02/17/activiti-project-alive-and-kicking/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 08:18:14 +0000</pubDate>
		<dc:creator>Bernd Rücker</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Activiti]]></category>
		<category><![CDATA[fox]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3496</guid>
		<description><![CDATA[Lately we heard critics like these a couple of times: Is the Activiti project dead? There is so less activity in Activiti (nice worldplay), what happened to you guys? Did you turn your backs on Activiti and do something else? You haven&#8217;t solved the JIRA issues we filed for weeks, when do you plan to [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_3503" class="wp-caption alignleft" style="width: 160px"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/iStock_000010801111XSmall-150x128.jpg" alt="For a dead horse this is moving too fast..." title="For a dead horse this is moving too fast..." width="150" height="128" class="size-thumbnail wp-image-3503 colorbox-3496" /><p class="wp-caption-text">For a dead horse this is moving too fast...</p></div> Lately we heard critics like these a couple of times: Is the Activiti project dead? There is so less activity in Activiti (nice worldplay), what happened to you guys? Did you turn your backs on Activiti and do something else? You haven&#8217;t solved the JIRA issues we filed for weeks, when do you plan to work on this? The last release of Activiti 5.8 was in October, when will Activiti 5.9 be released? BPMN element support lacks element x, when will this be included? And so on and on. Today I want to give some answer on this, since the Activiti project is more alive and kicking than ever, there &#8220;just&#8221; was a lot of productization effort and happened some things &#8220;under the hood&#8221; which couldn&#8217;t be easily seen. </p>
<p><span id="more-3496"></span></p>
<p><strong>Productization of camunda fox and Alfresco ECM</strong></p>
<p><div id="attachment_3500" class="wp-caption alignleft" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/commit-progress-activiti.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/commit-progress-activiti-150x85.png" alt="commit progress activiti svn" title="commit progress activiti svn" width="150" height="85" class="size-thumbnail wp-image-3500 colorbox-3496" /></a><p class="wp-caption-text">commit progress activiti svn</p></div> First of all I want to have a quick objective view on project activity. Lacking a better source I use the commit activity, as you can see on the left side. True, the curve does go less steep around the second half of last year, but we had some progress all the time. But why was it less steep? Let&#8217;s have a look at the main drivers behind Activiti, that is <a href="http://www.alfresco.com/">Alfresco</a> on the one hand and we, <a href="http://www.camunda.com/">camunda</a>, on the other hand. Both of us were quite busy working on our commercial offerings. Alfresco included Activiti in their version 4 of the <a href="http://alfresco.com/products/editions/enterprise/4-0/">Alfresco ECM</a> stack, and we built <a href="http://www.camunda.com/fox/">camunda fox</a> as full blown BPM Platform for BPM with Java which has Activiti included. Productization shifts priorities from gaining cool new features to make them complete and get a product with a consistent vision out of it. For camunda fox this has a much wider focus than &#8220;just&#8221; the BPMN 2.0 Engine, even if that is the heart of it. It means a couple of additional components:</p>
<ul>
<li>integration: We integrated Activiti in various Java EE 6 application servers.</li>
<li>cockpit: a web-tool for process controlling, monitoring and administration.</li>
<li>designer: an eclipse plug-in for the developer to model BPMN 2.0 (not based on the Activiti Designer, see next blog post of today).</li>
<li>modeler: a web-based BPMN 2.0 editor targeting business users (based on Signavio).</li>
<li>cycle: a business-it alignment tooling capable e.g. of the round-trip with BPMN 2.0 between designer and modeler.</li>
</ul>
<p><div id="attachment_3501" class="wp-caption alignright" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/commit-progress-fox-all-repos.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/commit-progress-fox-all-repos-150x112.png" alt="commit progress all fox repos" title="commit progress all fox repos" width="150" height="112" class="size-thumbnail wp-image-3501 colorbox-3496" /></a><p class="wp-caption-text">commit progress all fox repos</p></div> Producization includes a lot of tasks: requirements management, product management, alignment of the different tools or components, proper release management not only of components but of whole platform, automated QA on defined platforms and databases, performance and load tests and much more. So that is actually were there is a lot of activity in the moment: <strong>Making Activiti usable in enterprise real-world BPM scenarios!</strong>. A lot of these activities doesn&#8217;t result in concrete code but to a healthier project in the long run! But anyway, I attached the commit history of our internal camunda fox development on the right, where there is a lot of activity lately, we currently even have a dedicated Scrum team working on it.  </p>
<p>Why do I tell you that? Because that matters a lot for the future of the Activiti project in the long run. Since we make sure that we have an aligned tooling and a business case, where we can earn money. We build a stable business on top of Activiti, as does Alfresco. We both worked on our product in the last months, so there was less time to invest in the Open Source Engine and the Community. I am sorry for this, but actually I think it was a good decision for the longer future.</p>
<p>But wait, shouldn&#8217;t investment in the community pay off by itself? That is one of the drivers of open source, give-and-take, right? I think yes, but first a process engine is not Linux, it is a niche product, and second the core of the engine is quite critical, where you should not mess around. Typically contributers come when they work on a customer project, but go when this project went live. We always have ramp-up and project management overhead with every contribution, that is why there are not just a present. Every patch or feature provided must be reviewed, properly tested, maybe discussed and maintained in the long run. Just because it is open source don&#8217;t ease these requirements of professional software engineering. </p>
<p>And even then it is sometimes hard to channel these contributions into proper product management. And product management is something a lot of open source projects are missing. Done right this leads to a better product. Unfortunately I forgot who told me this quote, but it goes: &#8220;<em>The problem of Open Source projects is, that they don&#8217;t have a customer</em>&#8220;. I think it is true, you have to have customers driving your product and priorities, then you get in the right direction, but you need to invest time and energy to listen to your customers and process their feedback. </p>
<p>This adds another possible stumbling block: If you have passionate individuals in your open source project, coding new features in their free time at night, they easily become frustrated if business priorities does not match personal preferences. Let&#8217;s face it: This is why professional software development is not a hobby, it is a job (even if it involves much more fun and passion than a lot of other jobs, puh, lucky us). Another way of thinking about it is expressed in the book &#8220;<a href="http://en.wikipedia.org/wiki/Crossing_the_Chasm">crossing the chasm</a>&#8220;: We try to make Activiti/camunda fox ready to enter a market, where you don&#8217;t have to be a Java crack in order to get a process engine running and where you have to set up your tool chain yourself. It is about providing some &#8220;peace of mind&#8221; (which should NOT be confused with zero code bpm suites, but that is something I think I don&#8217;t have to mention again in this post). It shall bring the right tooling even to people which now have to use some proprietary but technically inferior tooling because of lacking productization in open source technology.</p>
<p>So this is my thinking on commercial open source. This is why I think that productization is the more important thing in the current phase for Activiti even if that means that we have less time for the community. It will be good in the long run.</p>
<p><strong>But: Amazing new features in Activiti 5.9</strong></p>
<p>That&#8217;s said, there are some really good news about Activiti 5.9, which will be released on first of march (as <a href="http://docs.codehaus.org/display/ACT/Calendar">documented in our Wiki</a> by the way). We did develop quite some new features, most of them for our customer to be honest, but available for everybody, e.g.:</p>
<ul>
<li>Intermediate signal event (throw / catch),</li>
<li>Intermediate none event (usable for KPI&#8217;s),</li>
<li>Event based gateway,</li>
<li>Interrupting error event subprocesses,</li>
<li>(Multiple) message start events,</li>
<li>BPMN 2.0 transaction sub process, cancel end event &#038; cancel boundary event,</li>
<li>BPMN 2.0 compensation activities and throwing compensation event.</li>
</ul>
<p>Wait for the final list when we will release 5.9, some of the features mentioned will be marked experimental until they have stabilized, we expect Activiti 5.10 to contain everything rock-solid! Regarding transparency, you can see the detailed issues in the <a href="http://jira.codehaus.org/browse/ACT/fixforversion/17655">Activiti JIRA</a>. That&#8217;s quite some work we did at camunda for our open source community, isn&#8217;t it? So Activiti is far from being dead. Believe me <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3496' /> </p>
<p>Since this post started to get a bit more philosophical anyway, I want to add a second blog post immediately about the camunda fox open source strategy, since this is a question we get as well, especially since Activiti Cycle became camunda fox cycle, feel free to read as well: <a href="http://www.bpm-guide.de/2012/02/17/camunda-fox-open-source-strategy/">camunda fox open source strategy</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/02/17/activiti-project-alive-and-kicking/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Praxishandbuch BPMN 2.0 in der 3. Auflage</title>
		<link>http://www.bpm-guide.de/2012/02/16/praxishandbuch-bpmn-2-0-in-der-3-auflage/</link>
		<comments>http://www.bpm-guide.de/2012/02/16/praxishandbuch-bpmn-2-0-in-der-3-auflage/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 17:39:05 +0000</pubDate>
		<dc:creator>Jakob Freund</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[BPMN]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3513</guid>
		<description><![CDATA[Anfang März erscheint unser kleiner &#8220;Bestseller&#8221; (ja wirklich, wir sind auf der Computerbuch-Bestsellerliste beim Hanser Verlag, 6. Platz oder so ) in der 3. Auflage. Diesmal gibt es ein neues Kapitel, das sich auf ca. 30 Seiten der Einführung von BPMN in einem komplexeren Umfeld widmet (einem ganzen Unternehmen zum Beispiel). Das ist viel schwieriger, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hanser.de/buch.asp?isbn=978-3-446-42986-4&#038;area=Computer"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/3-auflage.png" alt="" title="3 auflage" width="200" height="252" class="alignleft size-full wp-image-3522 colorbox-3513" /></a>Anfang März erscheint unser kleiner &#8220;Bestseller&#8221; (ja wirklich, wir sind auf der Computerbuch-Bestsellerliste beim Hanser Verlag, 6. Platz oder so <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3513' /> ) in der 3. Auflage. Diesmal gibt es ein neues Kapitel, das sich auf ca. 30 Seiten der Einführung von BPMN in einem komplexeren Umfeld widmet (einem ganzen Unternehmen zum Beispiel). Das ist viel schwieriger, als wenn man nur mit ein paar wenigen Leuten modelliert. Schließlich muss entschieden werden, welche Personen überhaupt modellieren, in welcher Genauigkeit modelliert werden soll und mit welchen Symbolen, für welche Zwecke, welches Tool (oder besser gesagt, welche Toolkette) eingesetzt werden soll, und und und. Da wir das inzwischen doch recht häufig durchexerziert haben, gibt es also jetzt dieses neue Kapitel.</p>
<p>Als kleiner Vorgeschmack kommen jetzt schon mal zwei Auszüge: Das Vorwort zur 3. Auflage, und ein Interview mit John-Uwe Scherberich von Energie Südbayern, die BPMN für die Prozessdokumentation in 2011 eingeführt haben (siehe auch unser <a href="http://www.camunda.com/wp-content/uploads/stories/camunda_ESB.pdf">Praxisbericht</a>). Viel Spaß beim Lesen <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3513' /><br />
<span id="more-3513"></span></p>
<h2>Vorwort zur 3. Auflage</h2>
<p>Kürzlich, beim abendlichen Bier am Rande einer Konferenz, fragte uns eine gar nicht so unbekannte Persönlichkeit der deutschen IT-Szene: &#8220;Ihr bei camunda, ihr seid doch so ein junges, unkonventionelles Team. Warum beschäftigt ihr euch eigentlich mit so einem Alte-Männer-Thema wie BPM?&#8221;. </p>
<p>Das hat uns zu denken gegeben.</p>
<p>Business Process Management ist also ein Thema für alte Männer? Zugegeben, es weckt gewisse Assoziationen an dunkle Anzüge und diskrete Krawatten, also an die typische, das Selbstbewusstsein unterstützende Berufsbekleidung von Leuten, die sich nicht sicher sind, ob ihre Arbeit eigentlich einen Nutzen stiftet. Das ist nicht gerade jung und unkonventionell, und zu unserem Selbstverständnis passt das auch nicht. Aber, fragten wir uns, warum macht uns BPM dann so viel Spaß?</p>
<p>Weil wir mit BPM dafür sorgen, dass ein Unternehmen <strong>besser funktioniert</strong>! Das gilt auch und gerade für den Einsatz neuer Technologien, weshalb BPM-Projekte häufig einen sehr innovativen Charakter besitzen. Es ist einfach unglaublich spannend, völlig neue Möglichkeiten der Wertschöpfung nicht nur grundsätzlich zu erforschen, sondern auch ganz konkret umzusetzen. Und das nicht &#8220;nur&#8221; auf der konzeptionellen Ebene, in strategischen Papieren oder PowerPoint-Präsentationen, aber eben auch nicht &#8220;nur&#8221; in den Tiefen der technischen Implementierung, in denen man gar nicht mehr weiß, warum eigentlich dieses oder jenes programmiert werden soll. Sondern eben ganzheitlich, sowohl betriebswirtschaftlich als auch softwaretechnisch, von Anfang bis Ende und A bis Z. </p>
<p>Wir kennen keine Disziplin, die einem so umfassenden Anspruch mit derart konkreten Methoden und Technologien gerecht wird wie BPM. </p>
<p>Außerdem glauben wir, dass das ganze Thema &#8220;BPM&#8221; in eine neue Phase eingetreten ist, die mit dem traditionellen Verständnis von Prozessmanagement im Sinne verstaubter Organisationshandbücher, abgehobener &#8220;Performance-Analysen&#8221; und wohlklingender, aber völlig unverbindlicher Management-Empfehlungen nichts mehr zu tun hat. </p>
<p>Wir treffen mehr und mehr Menschen, die sich um derartiges Geplänkel nicht scheren, die einfach nur wollen, dass etwas <strong>besser funktioniert</strong>. Das sind die &#8220;neuen BPM-Cracks&#8221;, und sie sind ungeduldig.  Sie interessieren sich nicht für politische Ränkespiele und akzeptieren keine scheinbaren Sachzwänge. Sie beherrschen neue Methoden und Tools, und diese nutzen sie, um denjenigen zu helfen, die bereit sind, neue Wege zu gehen und damit diejenigen zu überholen, die lieber im Status quo verharren. </p>
<p>Diese neuen BPM-Cracks nutzen BPMN. Sie haben verstanden, dass BPMN anspruchsvoll ist und wenig zu tun hat mit dem Malen von Ablaufdiagrammen, die für die bereits erwähnten Organisationshandbücher verwendet wurden. Sie gehören einer weltweiten Community an, die einen gemeinsamen Standard nutzt und weiterentwickelt. In dieser Community gibt es nicht mehr &#8220;die IT&#8221;, der man einen Auftrag übergibt und die diesen gefälligst umzusetzen hat. Die IT ist kein Bestandteil, sondern eine Facette dieser Community, so wie sie eine Facette eines modern aufgestellten Unternehmens ist, in dem Business und IT völlig losgelöst von der Abteilungszugehörigkeit eine vertrauensvolle, kontinuierliche und sehr intensive Zusammenarbeit praktizieren.</p>
<p>BPMN wurde im Februar 2011 in der Version 2.0 verabschiedet, und in der Praxis ist sie mittlerweile etabliert. Der Standard wird zur Prozessdokumentation genutzt, für die Analyse und Verbesserung von Prozessen und natürlich für die Prozessautomatisierung. Wir haben inzwischen über 500 unterschiedliche Menschen in unseren Projekten und Seminaren an BPMN herangeführt und die unterschiedlichsten Abläufe modelliert. Wir haben auch ihre Grenzen kennengelernt, beispielsweise bei der Modellierung von Prozessen, die von Fall zu Fall höchst unterschiedlich ausfallen und daher schwer vorherzusehen sind.</p>
<p>Unter <a href="http://www.bpmn.info/anwender">www.bpmn.info/anwender</a> finden Sie eine Auflistung von Organisationen, die BPMN einsetzen. Bei vielen wird BPMN in der Breite genutzt, also mit zahlreichen Modellierern. Daraus ergeben sich besondere Herausforderungen, weshalb wir diesem Thema in der 3. Auflage ein neues Kapitel gewidmet haben. </p>
<p>Wir wünschen Ihnen Erfolg bei der Arbeit mit BPMN und hoffen, auch Sie in den Reihen der unkonventionellen Menschen begrüßen zu dürfen, die eine Menge Spaß an einem scheinbaren &#8220;Alte-Männer-Thema&#8221; haben.</p>
<h2>Einführung von BPMN: Ein Interview</h2>
<p><div id="attachment_3527" class="wp-caption alignright" style="width: 160px"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/Bild-Scherberich.jpg" alt="John-Uwe Scherberich" title="John-Uwe Scherberich, Leiter Organisationsentwicklung" width="150" height="181" class="size-full wp-image-3527 colorbox-3513" style="margin-left:15px;" /><p class="wp-caption-text">John-Uwe Scherberich, Leiter Organisationsentwicklung</p></div>John-Uwe Scherberich ist Leiter der Organisationsentwicklung bei Energie Südbayern und war in dieser Funktion auch für die Einführung von BPMN verantwortlich. Wir haben John-Uwe einige typische Fragen gestellt, wie wir sie auch in anderen Kundenprojekten immer wieder hören:</p>
<p><strong>Jakob</strong>: Hallo John-Uwe, Du hast in 2011 mit Deinem Team bei der Energie Südbayern eine erfolgreiche BPM-Initiative gestartet. Was wurde bislang erreicht und was möchtet Ihr noch erreichen?</p>
<p><strong>John-Uwe</strong>: Für unser Team der Organisationsentwicklung und der damit verbundenen Rolle &#8220;Zentraler Prozessmanager&#8221; stellte sich die Aufgabe, wie wir eine möglichst einfache und leicht zu handhabende Prozessdokumentation im Unternehmen vorhalten.</p>
<p>Hier sind dann im Laufe der Jahre die verschiedensten Prozessmodelle und deren Dokumentation entstanden. Es wurden Prozesse in den unterschiedlichsten Anwendungen und Dateiformaten erstellt. Von Excel-Diagrammen über PowerPoint-Präsentationen bis hin zu Visio-Prozessmodellen, die teilweise sogar in Word-Dokumente eingefügt wurden &#8211; alles das hat sich in den letzten Jahren so angesammelt. Von einem Standard war da wirklich nicht zu sprechen, obwohl wir natürlich hinsichtlich der Prozessmodellierung unsere Empfehlung hatten.<br />
Begleitet hat uns in all den Jahren eine übersichtliche Prozesslandkarte, die alle unternehmensrelevanten Prozesse darstellt. Damit die Dimension deutlich wird: Wir reden hier von über 200 Einzelprozessen in verschiedensten Detailierungsstufen und auch unterschiedlichsten Komplexitätsgraden.</p>
<p>Unsere Herausforderung und Motivation in 2011 bestand einerseits darin, ein verbindliches Regelwerk und einen Standard für die zukünftige Prozessdokumentation, für die Verwaltung und Versionierung und für die Aufgabenstellung der am GPM Beteiligten zu schaffen. Andererseits war es das Ziel, die Prozessarbeit auch weiterhin in den jeweiligen Fachbereichen dezentral aufzustellen, und ein auf unsere Bedürfnisse abgestimmtes internes GPM-Netzwerk zu schaffen. Transparenz über die Prozessarbeit für das ganze Unternehmen ist uns dabei sehr wichtig. Und das haben wir erst mal geschafft!</p>
<p>So sehen wir unsere künftigen Schritte: Wir wollen unsere Prozessmodelle optimieren und hinsichtlich ihres Reifegrades weiterentwickeln, was besonders für unsere Massenprozesse gelten wird. Hier werden wir verstärkt eine neue und erweiterte IT-Sichtweise in die Prozessmodellierung einbringen.</p>
<p><strong>Jakob</strong>: Warum habt Ihr Euch zu Beginn des Projektes für BPMN entschieden und nicht für eine andere Prozessnotation?</p>
<p><strong>John-Uwe</strong>: Wir haben Erfahrungen mit unterschiedlichen Notationsformen gesammelt, unter anderem auch mit  EPK-Modellierungen. BPMN 2.0 erschien uns von Anfang an sehr attraktiv, da sie eine klare und eindeutige Logik hervorbringt. Sie ist einfach zu modellieren und liefert hinsichtlich ihrer Skalierung in der Anwendung hervorragende Optionen.</p>
<p><strong>Jakob</strong>: Ihr setzt die BPMN bislang vor allem für die organisatorische Prozessdokumentation ein. Kritiker behaupten gerne, die BPMN sei gerade für diesen Zweck zu kompliziert. Wie siehst Du das?</p>
<p><strong>John-Uwe</strong>: Diese Aussage kann ich nicht unterstützen. Die eindeutige Logik der Notationssprache macht es am Ende doch einfacher, oder?<br />
Unserer Erfahrung nach ist es hilfreich, am Anfang eine Vorauswahl der zu verwendenden BPMN-Symbole zu treffen. Nach gewachsenem Grundverständnis und entsprechender praktischer Übung bei den Modellierern kann das Angebot der Symbolpallette sukzessive erweitert werden.<br />
Des Weiteren bin ich der Meinung, dass es eher die Softwaretools sind, die das ganze kompliziert machen. Umso wichtiger war es uns, ein Tool zu finden, das zu unseren Bedürfnissen passt. Dafür haben wir einen erheblichen Teil unserer Zeit investiert. </p>
<p><strong>Jakob</strong>: Was sind aus Deiner Sicht die wesentlichen Erfolgsfaktoren und Best Practices, wenn man mit BPMN arbeiten möchte?</p>
<p><strong>John-Uwe</strong>: Erst einmal sollte man aus der Veränderungsmotivation heraus das große Bild entwickeln. Ganz am Anfang ist die Frage zu beantworten:&#8221;Was wollen wir erreichen?&#8221;. Die Ziele dann SMART zu definieren, versteht sich von selbst. Ich warne eindringlich vor zu hoch gesteckten Zielen, die sich am Ende als unrealistisch herausstellen. Im nächsten Schritt geht es darum zu hinterfragen, wer dabei unterstützen kann und bei wem Widerstände welcher Art zu erwarten sind. Als geeignete Methode bietet sich hier die Erarbeitung einer Stakeholder-Matrix an. Und damit ist man dann schon mitten im Change-Management-Prozess. Dieser ist m.E. schon zu Beginn zwingend zu berücksichtigen und einer der wesentlichen Erfolgsfaktoren für die Implementierung.<br />
Erst dann ist die Frage des Tools und dessen Funktionsumfangs zu erarbeiten. Die Anforderungen müssen in einem Lastenheft konkret formuliert werden. Das unterstützt die spätere Toolauswahl. Ab diesem Prozessschritt geht nichts mehr ohne die zukünftigen Anwender. Da sie diejenigen sind, die mit dem Tool arbeiten müssen und hoffentlich auch wollen, ist ihre Meinung und ihre Anforderungsdefinition so wichtig. Der Rest orientiert sich an dem klassischen Prozess des Software-Auswahlverfahrens, der Implementierung der Anwendung, den Tests und dem Roll-Out. Ich empfehle, bei der Auswahl des Tools auf jeden Fall den sogenannten Beauty Contest durchzuführen. Man sollte sich die Software vom Hersteller direkt vorstellen lassen und selber im Team auf einer Testumgebung eigene Erfahrungen sammeln und dokumentieren. Oft kommt es in dieser Phase noch zu Veränderungen der Anforderungen und ihrer Priorisierung.<br />
Im Rahmen des Change-Managements haben wir auch die Erfahrung gemacht, dass die Einführung eines neuen Verfahrens für die Prozessmodellierung und -dokumentation schon frühzeitig in der Einführungsphase zu kommunizieren ist. Wir haben dazu in unserem Intranet ein Wiki installiert und regelmäßig über den Stand der Einführung und die tägliche Prozessarbeit kommuniziert. Auch die entsprechenden Regelwerke sind hier erfasst und stehen allen Prozessverantwortlichen zur Verfügung.</p>
<p><strong>Jakob</strong>: Und was würdest Du aus heutiger Sicht anders machen?</p>
<p><strong>John-Uwe</strong>: Aus heutiger Sicht würde ich noch früher einen konkreten und klar umrissenen Rahmen für die Prozessarbeit, deren Anforderungen und Regelungen verbindlich vereinbaren und im Rahmen der Betrieblichen Dokumentation publizieren. Das bringt dann ein klares Commitment aller Beteiligten zu dem Vorhaben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/02/16/praxishandbuch-bpmn-2-0-in-der-3-auflage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BPMN 2.0, Activiti and camunda fox at the CeBIT</title>
		<link>http://www.bpm-guide.de/2012/02/08/bpmn-2-0-activiti-und-camunda-fox-auf-der-cebit/</link>
		<comments>http://www.bpm-guide.de/2012/02/08/bpmn-2-0-activiti-und-camunda-fox-auf-der-cebit/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 20:07:47 +0000</pubDate>
		<dc:creator>Jakob Freund</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Activiti]]></category>
		<category><![CDATA[BPMN]]></category>
		<category><![CDATA[fox]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3480</guid>
		<description><![CDATA[If you are visiting CeBIT 2012 and you are interested in the topics above, you shoud also pay a visit to camunda&#8217;s booth in Hall 2, Booth B68. We will share our extensive project experiences in BPMN 2.0 and Activiti with you, and will explain and demonstrate, why camunda fox is the best Enterprise Solution, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_3481" class="wp-caption alignleft" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/02/camunda-cebit.png"><img src="http://www.bpm-guide.de/wp-content/uploads/2012/02/camunda-cebit-150x112.png" alt="camunda auf der CeBIT" title="camunda @CeBIT" width="150" height="112" class="size-thumbnail wp-image-3481 colorbox-3480" /></a><p class="wp-caption-text">camunda @CeBIT</p></div>
<p>If you are visiting CeBIT 2012 and you are interested in the topics above, you shoud also pay a visit to camunda&#8217;s booth in <strong>Hall 2, Booth B68</strong>. We will share our extensive project experiences in BPMN 2.0 and Activiti with you, and will explain and demonstrate, why <a href="http://www.camunda.com/fox">camunda fox</a> is the best Enterprise Solution, if you plan to automate your business processes in a Java-environment. </p>
<p>Have we peaked your interest? Then we look forward to meeting you there <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3480' /> </p>
<p>By the way: If necessary, you can also get a free CeBIT Ticket from us. Please contact <a href="mailto:maria.courmont@camunda.com">Maria Courmont</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/02/08/bpmn-2-0-activiti-und-camunda-fox-auf-der-cebit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>camunda in 2011&#8230; und 2012</title>
		<link>http://www.bpm-guide.de/2012/01/24/camunda-in-2011-und-2012/</link>
		<comments>http://www.bpm-guide.de/2012/01/24/camunda-in-2011-und-2012/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 19:53:48 +0000</pubDate>
		<dc:creator>Jakob Freund</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.bpm-guide.de/?p=3431</guid>
		<description><![CDATA[2012 ist schon nicht mehr ganz so jung &#8211; aber für alle, die sich für camunda generell interessieren, kommen jetzt ein paar Status-Infos zum Stand unserer Unternehmensentwicklung: In 2011 haben wir erstmalig mehr als eine Million EUR Umsatz erzielt (sogar deutlich mehr). Das macht uns natürlich stolz, zumal wir nicht einfach &#8220;irgendeine Unternehmensberatung&#8221; oder &#8220;irgendein [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_3451" class="wp-caption alignleft" style="width: 160px"><a href="http://www.bpm-guide.de/wp-content/uploads/2012/01/camunda-2012.jpg"><img class="size-thumbnail wp-image-3451 colorbox-3431" title="camunda bei der Neujahrsfeier 2012" src="http://www.bpm-guide.de/wp-content/uploads/2012/01/camunda-2012-150x84.jpg" alt="camunda bei der Neujahrsfeier 2012" width="150" height="84" /></a><p class="wp-caption-text">camunda bei der Neujahrsfeier 2012</p></div>
<p>2012 ist schon nicht mehr ganz so jung &#8211; aber für alle, die sich für camunda generell interessieren, kommen jetzt ein paar Status-Infos zum Stand unserer Unternehmensentwicklung:</p>
<p><span id="more-3431"></span></p>
<p>In 2011 haben wir erstmalig mehr als eine Million EUR Umsatz erzielt (sogar deutlich mehr). Das macht uns natürlich stolz, zumal wir nicht einfach &#8220;irgendeine Unternehmensberatung&#8221; oder &#8220;irgendein IT-Dienstleister&#8221; sind, und ständig &#8220;irgendwelche Consultants&#8221; in Projekte stecken, nur um kräftig Tage zu fakturieren. Stattdessen fokussieren wir uns nach wie vor zu 100% auf BPM, und treten viel mehr als &#8220;Enabler&#8221;, also &#8220;Befähiger&#8221; unserer Kunden auf, denn wir geben konzentriertes Know-how zu einem abgrenzbaren Themenkomplex weiter. Dementsprechend kurz sind in der Regel auch unsere Einsätze, und dementsprechend breit ist unsere Kundenbasis: Insgesamt haben 254 unterschiedliche Unternehmen und Behörden in 2011 unsere Leistungen in Anspruch genommen, wovon 48 Neukunden waren.</p>
<p>Aber natürlich gab es auch Projekteinsätze, die wir vor allem deshalb durchführten, weil wir bei spannenden und innovativen BPM-Projekten gerne am Ball bleiben und daraus wiederum Know-how für unser &#8220;Premium Consulting&#8221; ziehen. Zugenommen haben in 2011 auch die &#8220;begleitenden Coachings&#8221; auf Basis eines punktuell abrufbaren Kontingentes, wie es zum Beispiel Energie Südbayern für die Einführung von BPMN in Anspruch genommen hat (siehe <a href="http://www.camunda.com/wp-content/uploads/stories/camunda_ESB.pdf">Praxisbericht</a>).</p>
<p>Neben den Themen BPM im Allgemeinen und BPMN im Besonderen hat in 2011 auch ganz klar das Thema <a href="http://www.Activiti.org">Activiti</a> zugenommen: Deutlich mehr als die Hälfte unserer Einsätze im Premium Consulting und der Projektarbeit bezogen sich auf diese ja noch vergleichsweise junge Open Source BPM-Lösung. Wir merken also sehr deutlich, dass Activiti in der Praxis angekommen ist und im Grunde einen ähnlichen &#8220;Siegeszug&#8221; erlebt wie die BPMN &#8211; wenn auch im kleineren Maßstab. Besonders spannend ist für unsere Consultants auch der Einsatz im Ausland, der dank Activiti in 2011 bereits spürbar zugenommen hat (innerhalb Europas, aber auch weltweit).</p>
<p>Da der Einsatz von Open Source beim Kunden natürlich einige Fragen aufwirft (Support, Stabilisierung, aber auch fehlende Features) ist es kein Wunder, dass wir diese Fragen zunächst punktuell, inzwischen aber auch in einer vollständigen Lösung beantwortet haben: <a href="http://www.camunda.com/fox">camunda fox</a> wurde geboren. Wer sich für die Aktivitäten von camunda in 2012 interessiert, findet hier auch bereits die primäre Antwort <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley colorbox-3431' /> .</p>
<p>Mit dem Auftragseingang ist natürlich auch unsere Mannschaft gewachsen, die inzwischen 16 Köpfe zählt und Anfang Januar ihre traditionelle Neujahrsfeier zelebrierte (siehe Foto, wenngleich vier Kollegen leider nicht dabei sein konnten). Wir sind also &#8211; ganz bewusst &#8211; nach wie vor ein überschaubares Team, und ich denke in mancherlei Hinsicht auch ein einzigartiges: Hervorragend in unserer Kernkompetenz BPM, sind wir gleichzeitig unseren Werten verbunden. Viele der scheinbaren Sachzwänge der traditionellen Geschäftswelt werden von uns schlicht und egreifend ignoriert, und wir sind nicht trotzdem, sondern gerade deshalb erfolgreich.</p>
<p>Wer also BPM liebt und gleichzeitig den Mut hat, neue Wege zu gehen, damit eine Organisation besser funktioniert, den laden wir herzlich ein, uns auch in 2012 zu begleiten: Als Kunde, Partner oder Mitarbeiter. Gemeinsam werden wir eine Menge bewegen <img src='http://www.bpm-guide.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-3431' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpm-guide.de/2012/01/24/camunda-in-2011-und-2012/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

