<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: BPMN and Business Rules</title>
	<atom:link href="http://www.brsilver.com/wordpress/2006/09/11/bpmn-and-business-rules/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brsilver.com/wordpress/2006/09/11/bpmn-and-business-rules/</link>
	<description>Bruce Silver's blog on business process management</description>
	<lastBuildDate>Sat, 27 Feb 2010 10:22:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: VernonS</title>
		<link>http://www.brsilver.com/wordpress/2006/09/11/bpmn-and-business-rules/comment-page-1/#comment-283</link>
		<dc:creator>VernonS</dc:creator>
		<pubDate>Sun, 22 Oct 2006 11:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/11/bpmn-and-business-rules/#comment-283</guid>
		<description>Agreed that the first case (reminder) is a timer event, however while the second event can be implemented as a timer event expressing it as a rule event seems more consistent. Escalation occurs if the reminder has triggered some number of times. Implementing as a rule allows the time event to be changed without having to worry about making any change to the escalation rule: the escalation logic is independent of the timer value. Personally I think this is a better approach. Easier to communication with a client, and clear in purpose. Decoupling unique requirements is a good thing.

I also still see both of these cases, timeout and escalation (based on a rule) as good examples of intermediate events, and BPMN supports modeling them quite well. I was focusing on this more from the modeling/BPMN perspective instead of a BPMS perspective. 

From the BPMS perspective, BEPL of course supports timer events but doesn&#039;t provide direct support for rule events (as I understand the specification). Of course you can implement these using service invocation constructs, but personally I prefer the conceptual approach provided by BPMN and see the lack of support for rule events more as a weakness of BPEL, but that&#039;s just my opinion.</description>
		<content:encoded><![CDATA[<p>Agreed that the first case (reminder) is a timer event, however while the second event can be implemented as a timer event expressing it as a rule event seems more consistent. Escalation occurs if the reminder has triggered some number of times. Implementing as a rule allows the time event to be changed without having to worry about making any change to the escalation rule: the escalation logic is independent of the timer value. Personally I think this is a better approach. Easier to communication with a client, and clear in purpose. Decoupling unique requirements is a good thing.</p>
<p>I also still see both of these cases, timeout and escalation (based on a rule) as good examples of intermediate events, and BPMN supports modeling them quite well. I was focusing on this more from the modeling/BPMN perspective instead of a BPMS perspective. </p>
<p>From the BPMS perspective, BEPL of course supports timer events but doesn&#8217;t provide direct support for rule events (as I understand the specification). Of course you can implement these using service invocation constructs, but personally I prefer the conceptual approach provided by BPMN and see the lack of support for rule events more as a weakness of BPEL, but that&#8217;s just my opinion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bruce</title>
		<link>http://www.brsilver.com/wordpress/2006/09/11/bpmn-and-business-rules/comment-page-1/#comment-282</link>
		<dc:creator>bruce</dc:creator>
		<pubDate>Sat, 21 Oct 2006 17:41:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/11/bpmn-and-business-rules/#comment-282</guid>
		<description>Vernon,
I&#039;m in total agreement with you about the use case, but still the rule event seems superfluous and mismatched to the way BPMSs work.  In your approval reminder example, the first reminder would be a timer event where the exception flow sends the reminder and loops back to the original activity.  The escalation &quot;rule&quot; is just a second timer.  According to Steve White, this should be modeled as a &quot;multiple&quot; event - I&#039;m no fan of the multiple trigger because it hides the semantics from the diagram, but even if you attached 2 intermediate events to the activity (Steve says no), the second one could just as easily be another timer as a rule.

My frame of reference is usually the way BPMSs work.  You are correct that there are 3 types of rules involved.  Routing rules are gateways in BPMN.  Decisions are tasks in BPMN, e.g. invoke a decision service on a rule engine, or perhaps a scrpt in the process engine.  Where do you see event-triggered rules in BPMS?  The one place I can think of is BAM.  To have relevance to BPMN, the BAM event action has to affect the process flow.  The BPMSs I know can do this in one of 2 ways: start a process (ok that&#039;s a rule start event) or invoke a web service.  I suppose you could twist the latter into an intermediate rule event by saying the web service sends an event to a process activity.  But then why not call that a message event?  I could agree that if that&#039;s what you mean, a rule intermediate event is appropriate.  But I think that implementation is pretty rare.

There are some BPMSs that use event rules more generally than in BAM, for instance Cordys and Savvion.  See my reports on those products in the &lt;a href=&#039;http://www.bpminstitute.org/bpmsreport.html&#039; rel=&quot;nofollow&quot;&gt;2006 BPMS Report series &lt;/a&gt;for details.</description>
		<content:encoded><![CDATA[<p>Vernon,<br />
I&#8217;m in total agreement with you about the use case, but still the rule event seems superfluous and mismatched to the way BPMSs work.  In your approval reminder example, the first reminder would be a timer event where the exception flow sends the reminder and loops back to the original activity.  The escalation &#8220;rule&#8221; is just a second timer.  According to Steve White, this should be modeled as a &#8220;multiple&#8221; event &#8211; I&#8217;m no fan of the multiple trigger because it hides the semantics from the diagram, but even if you attached 2 intermediate events to the activity (Steve says no), the second one could just as easily be another timer as a rule.</p>
<p>My frame of reference is usually the way BPMSs work.  You are correct that there are 3 types of rules involved.  Routing rules are gateways in BPMN.  Decisions are tasks in BPMN, e.g. invoke a decision service on a rule engine, or perhaps a scrpt in the process engine.  Where do you see event-triggered rules in BPMS?  The one place I can think of is BAM.  To have relevance to BPMN, the BAM event action has to affect the process flow.  The BPMSs I know can do this in one of 2 ways: start a process (ok that&#8217;s a rule start event) or invoke a web service.  I suppose you could twist the latter into an intermediate rule event by saying the web service sends an event to a process activity.  But then why not call that a message event?  I could agree that if that&#8217;s what you mean, a rule intermediate event is appropriate.  But I think that implementation is pretty rare.</p>
<p>There are some BPMSs that use event rules more generally than in BAM, for instance Cordys and Savvion.  See my reports on those products in the <a href='http://www.bpminstitute.org/bpmsreport.html' rel="nofollow">2006 BPMS Report series </a>for details.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: VernonS</title>
		<link>http://www.brsilver.com/wordpress/2006/09/11/bpmn-and-business-rules/comment-page-1/#comment-279</link>
		<dc:creator>VernonS</dc:creator>
		<pubDate>Sat, 21 Oct 2006 12:01:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/11/bpmn-and-business-rules/#comment-279</guid>
		<description>I think there are some good uses for &#039;rule&#039; in the Intermediate Boundary Event context. As a specific example consider an activity such as an approval. One might attach a timer to an such an activity to remind the approver to act on the activity on a timely basis. If after some number of notifications (let&#039;s say 2) the approver still has not acted on the activity, a rule (as an Intermediate Boundary Event) could be invoked to escalate the activity to an alternative approver or supervisor.

Actually I perceive this type of &#039;rule&#039; to be a fairly common event condition, and the rule as an Intermediate Boundary Event models this well. It&#039;s also consistent with the BPMN definition of a Event, which is to the effect of &quot;An event is something that “happens” during the course of a business process.&quot; 

Part of the confusion between this approach vs. what&#039;s referenced as a rule in the context of  &#039;“Customer is New/Not New” and complex “Customer’s credit is good/bad”? One of these is about routing rules, one is about decision rules&#039;. While we may refer to these as Business Rules, I wouldn&#039;t necessairly consider it a rule in the context of an &#039;Event&#039; which is the general way I understand rules to be intended within the context of BPMN (as quoted in the paragraph above). Instead, I would consider these to be business logic. This logic could be implemented by invoking a rules engine or through the Gateway constructs, but trying to implement it using the an Event rule seems inappropriate.

I think the key here is making sure we don&#039;t confuse business rules with a BPMN event rule. While they share a word in common in their general definition, their intent is quite different.</description>
		<content:encoded><![CDATA[<p>I think there are some good uses for &#8216;rule&#8217; in the Intermediate Boundary Event context. As a specific example consider an activity such as an approval. One might attach a timer to an such an activity to remind the approver to act on the activity on a timely basis. If after some number of notifications (let&#8217;s say 2) the approver still has not acted on the activity, a rule (as an Intermediate Boundary Event) could be invoked to escalate the activity to an alternative approver or supervisor.</p>
<p>Actually I perceive this type of &#8216;rule&#8217; to be a fairly common event condition, and the rule as an Intermediate Boundary Event models this well. It&#8217;s also consistent with the BPMN definition of a Event, which is to the effect of &#8220;An event is something that “happens” during the course of a business process.&#8221; </p>
<p>Part of the confusion between this approach vs. what&#8217;s referenced as a rule in the context of  &#8216;“Customer is New/Not New” and complex “Customer’s credit is good/bad”? One of these is about routing rules, one is about decision rules&#8217;. While we may refer to these as Business Rules, I wouldn&#8217;t necessairly consider it a rule in the context of an &#8216;Event&#8217; which is the general way I understand rules to be intended within the context of BPMN (as quoted in the paragraph above). Instead, I would consider these to be business logic. This logic could be implemented by invoking a rules engine or through the Gateway constructs, but trying to implement it using the an Event rule seems inappropriate.</p>
<p>I think the key here is making sure we don&#8217;t confuse business rules with a BPMN event rule. While they share a word in common in their general definition, their intent is quite different.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
