<?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"
	>
<channel>
	<title>Комментарии к записи: Процессный антипаттерн: гарантированное получение сообщения</title>
	<atom:link href="http://mainthing.ru/item/273/feed/" rel="self" type="application/rss+xml" />
	<link>https://mainthing.ru/ru/item/273/</link>
	<description>BPM-блог Анатолия Белайчука</description>
	<pubDate>Thu, 14 May 2026 06:22:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>Автор: Anatoly Belychook</title>
		<link>https://mainthing.ru/ru/item/273/#comment-726</link>
		<dc:creator>Anatoly Belychook</dc:creator>
		<pubDate>Mon, 22 Feb 2010 21:23:43 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=273#comment-726</guid>
		<description>Jon

We use DFD for high-level modeling. It shows inter-process communications via messages, signals and (most often) data/business objects.

I don't believe in high-level and low-level modeling of the same business process. The can only represent two sequential stages of process discovery but as soon as you dived into the low-level model there is no way back to high level.</description>
		<content:encoded><![CDATA[<p>Jon</p>
<p>We use DFD for high-level modeling. It shows inter-process communications via messages, signals and (most often) data/business objects.</p>
<p>I don&#8217;t believe in high-level and low-level modeling of the same business process. The can only represent two sequential stages of process discovery but as soon as you dived into the low-level model there is no way back to high level.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Jon ND</title>
		<link>https://mainthing.ru/ru/item/273/#comment-724</link>
		<dc:creator>Jon ND</dc:creator>
		<pubDate>Mon, 22 Feb 2010 16:14:34 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=273#comment-724</guid>
		<description>Nice anti-pattern – though I’m not sure it is always an anti-pattern. In some cases you want to create simple, high-level models with not too much detail (what Bruce Silver calls Level 1/descriptive modeling). Then the first example is probably better.

I’d like to be able to combine the high-level and the more detailed view in one model, but I’m not sure this is possible. You could create a “receive payment” subprocess, and put the event gateway in the subprocess diagram, but it probably wouldn’t help, as you need to show the “exception handling” (process delay, process refusal) at the top level.</description>
		<content:encoded><![CDATA[<p>Nice anti-pattern – though I’m not sure it is always an anti-pattern. In some cases you want to create simple, high-level models with not too much detail (what Bruce Silver calls Level 1/descriptive modeling). Then the first example is probably better.</p>
<p>I’d like to be able to combine the high-level and the more detailed view in one model, but I’m not sure this is possible. You could create a “receive payment” subprocess, and put the event gateway in the subprocess diagram, but it probably wouldn’t help, as you need to show the “exception handling” (process delay, process refusal) at the top level.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Энди</title>
		<link>https://mainthing.ru/ru/item/273/#comment-720</link>
		<dc:creator>Энди</dc:creator>
		<pubDate>Mon, 22 Feb 2010 07:59:44 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=273#comment-720</guid>
		<description>Подумал еще, кажется я понял, чего я не понял :) все так на самом деле и есть, просто символ в значке незнакомый.</description>
		<content:encoded><![CDATA[<p>Подумал еще, кажется я понял, чего я не понял <img src='https://mainthing.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> все так на самом деле и есть, просто символ в значке незнакомый.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Энди</title>
		<link>https://mainthing.ru/ru/item/273/#comment-719</link>
		<dc:creator>Энди</dc:creator>
		<pubDate>Mon, 22 Feb 2010 07:57:49 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=273#comment-719</guid>
		<description>Все очень правильно, но меня одно в этом конструкте озадачивает. Зачем нужна сплошная стрелка от "send invoice" к блоку решения? Логичнее и понятнее было бы, если от send invoice вниз шло согласование, а вправо - блок "ожидание согласования" потом "ответ получен вовремя? да/нет" и потом уже по ветке "да" три варианта реакции в зависимости от ответа. Что я думаю не так? Спасибо.</description>
		<content:encoded><![CDATA[<p>Все очень правильно, но меня одно в этом конструкте озадачивает. Зачем нужна сплошная стрелка от &#8220;send invoice&#8221; к блоку решения? Логичнее и понятнее было бы, если от send invoice вниз шло согласование, а вправо - блок &#8220;ожидание согласования&#8221; потом &#8220;ответ получен вовремя? да/нет&#8221; и потом уже по ветке &#8220;да&#8221; три варианта реакции в зависимости от ответа. Что я думаю не так? Спасибо.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Anatoly Belychook</title>
		<link>https://mainthing.ru/ru/item/273/#comment-717</link>
		<dc:creator>Anatoly Belychook</dc:creator>
		<pubDate>Wed, 17 Feb 2010 10:44:38 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=273#comment-717</guid>
		<description>В приведенной диаграмме сообщение будет проигнорировано. Предполагается, что "Разобраться с задержкой" сделает все что надо в ручном режиме.

В BPMN 2.0 можно воспользоваться non-interrupting attached timer event, чтобы разбирательство с задержкой не прекращало ожидания сообщения.

Варианты могут быть разными для разных ситуаций, единственно правильного решения тут нет. Я ставил перед собой другую задачу - показать широко распространенную и при этом явно неправильную схему.</description>
		<content:encoded><![CDATA[<p>В приведенной диаграмме сообщение будет проигнорировано. Предполагается, что &#8220;Разобраться с задержкой&#8221; сделает все что надо в ручном режиме.</p>
<p>В BPMN 2.0 можно воспользоваться non-interrupting attached timer event, чтобы разбирательство с задержкой не прекращало ожидания сообщения.</p>
<p>Варианты могут быть разными для разных ситуаций, единственно правильного решения тут нет. Я ставил перед собой другую задачу - показать широко распространенную и при этом явно неправильную схему.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Анатолий</title>
		<link>https://mainthing.ru/ru/item/273/#comment-716</link>
		<dc:creator>Анатолий</dc:creator>
		<pubDate>Wed, 17 Feb 2010 10:24:17 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=273#comment-716</guid>
		<description>Анатолий, а что произойдет если сообщение от покупателя об оплате будет отправлено по истечению тайм-аута?
Каким процессом будет обработано сообщение? или просто проигнорировано?</description>
		<content:encoded><![CDATA[<p>Анатолий, а что произойдет если сообщение от покупателя об оплате будет отправлено по истечению тайм-аута?<br />
Каким процессом будет обработано сообщение? или просто проигнорировано?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Anatoly Belychook</title>
		<link>https://mainthing.ru/ru/item/273/#comment-715</link>
		<dc:creator>Anatoly Belychook</dc:creator>
		<pubDate>Tue, 16 Feb 2010 17:42:11 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=273#comment-715</guid>
		<description>Scott

Thank you for sharing thoughts. I had this hope in mind. Some BPMS developers will read this post for sure.

Of course the attached events is the option but implementing it probably isn't easier. Anyway, the systems I have in mind lack both.

As for individual preferences - I considered the solution you propose but I didn't like the idea of combining different messages into one. Such a diagram would require annotations while the diagram with the event gateway speaks for itself.

The proposed diagram is a bit eclectic - one may ask why sending the message isn't implemented by intermediary event - but who cares.</description>
		<content:encoded><![CDATA[<p>Scott</p>
<p>Thank you for sharing thoughts. I had this hope in mind. Some BPMS developers will read this post for sure.</p>
<p>Of course the attached events is the option but implementing it probably isn&#8217;t easier. Anyway, the systems I have in mind lack both.</p>
<p>As for individual preferences - I considered the solution you propose but I didn&#8217;t like the idea of combining different messages into one. Such a diagram would require annotations while the diagram with the event gateway speaks for itself.</p>
<p>The proposed diagram is a bit eclectic - one may ask why sending the message isn&#8217;t implemented by intermediary event - but who cares.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Scott</title>
		<link>https://mainthing.ru/ru/item/273/#comment-714</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Tue, 16 Feb 2010 16:28:50 +0000</pubDate>
		<guid isPermaLink="false">http://mainthing.ru/?p=273#comment-714</guid>
		<description>In fact, I'd go so far as to say I'd like for vendors who support this construct to respond to your blog and go on the record.  I don't particularly like the way this construct is drawn on the page, but it is eminently useful.  There are workarounds but it requires quite a bit more message passing and attaching events to activities to make it work ( and this is how we've been able to work around the lack of this construct in the past )

Imagine, for example, a single activity with all three events attached to it: the timer, the refusal event, and the payment event (keeping in mind, refusal and payment could be attributes of the same "response" event if we wanted).  The activity must be designed to "not exit" so that it stops and waits for one of these three events to transpire.  

I think diagrammatically it is cleaner than the event gateway in some respects, but there's no "never-ending activity" as a first-class notion in BPMN (um, that I'm aware of, the spec is big and getting bigger!).  And I think there are even more complicated scenarios than the one that you describe that really call for an event gateway to exist.</description>
		<content:encoded><![CDATA[<p>In fact, I&#8217;d go so far as to say I&#8217;d like for vendors who support this construct to respond to your blog and go on the record.  I don&#8217;t particularly like the way this construct is drawn on the page, but it is eminently useful.  There are workarounds but it requires quite a bit more message passing and attaching events to activities to make it work ( and this is how we&#8217;ve been able to work around the lack of this construct in the past )</p>
<p>Imagine, for example, a single activity with all three events attached to it: the timer, the refusal event, and the payment event (keeping in mind, refusal and payment could be attributes of the same &#8220;response&#8221; event if we wanted).  The activity must be designed to &#8220;not exit&#8221; so that it stops and waits for one of these three events to transpire.  </p>
<p>I think diagrammatically it is cleaner than the event gateway in some respects, but there&#8217;s no &#8220;never-ending activity&#8221; as a first-class notion in BPMN (um, that I&#8217;m aware of, the spec is big and getting bigger!).  And I think there are even more complicated scenarios than the one that you describe that really call for an event gateway to exist.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
