Sorry, this entry is only available in Русский.
Archive for September, 2010
BPMN Signal Start
A short addendum to previous post “A Case For BPMN Signal Event“.
The pecularity of the signal event noted there - a signal is catched by every instance of a receiver process which is waiting for the event at the moment the signal is thrown - refers to intermediate events.
In case of start event one process initiates a signal and another process starts as a result. But why using a signal here - a message seemingly can do the same?
Firstly, a signal allows to initiate several processes at once.
Secondly, a signal has conceptual advantage:
- Let a given signal thrown by a process A initiate start of a process B.
- Now let’s recall that BPM is a management of business processes that change in time and assume that we decided to make process C handle the signal instead of B.
- When a message is used, the receiver is specified in process A, hence we need to modify A scheme in order to change the handler. And if we do we got a problem with A instances already running.
- When a signal is used, we simply install C and uninstall B. We don’t need to modify A nor to do anything with A instances.
This way signal implements late binding: a handler can be set/reset at time of execution rather than development.
A Case For BPMN Signal Event
Events are both the most powerful component of BPMN and most difficult to learn. There are many types of events (more and more with each new versions of BPMN) and it’s not clear how, where and when to use each one. As a result not only users but also developers of BPM Suites make mistakes by implementing events not exactly as the standard prescribes.
There are two levels of understanding: 1) formal and 2) meaningful. Knowing the definition is one thing and knowing how the event of given type differs from others and what are the use cases is another.
In this article I will focus on the signal event.
