Time Pattern TP8: Time-dependent Variability

Time Pattern TP8: Time-dependent Variability
Also known as
-
Problem
Depending on temporal conditions the control flow may vary; e.g., different branches of a process are executed or different sub-process fragments are chosen.
Design Choices
CTime lags only constrain the execution of activities
 aSingle activity (including multi-instance activities)
JThere are different time aspects which may be considered by an instance of this pattern
 aExecution time of an activity instance
 cTime lags between activities / events
Solution

Time-dependent variability can be achieved in different ways. The simplest approach is to explicitly capture the required variability in the process model by enumerating all possible options. Alternatively, techniques like late binding can be used to select appropriate activity implementations during run-time depending on temporal conditions. Both approaches realize the variability based on the execution time of the respective node (Design Choice J[a]). Finally, the Deferred Choice Workflow Pattern may be used in combination with triggers to achieve time-dependent variability based on time lags between activities (Design Choice J[b]).

Time Dependent XORTime Dependent Late BindingTime Dependent Deferred Choice
Context
The mechanism that evaluates the condition needs to be able to access any required data when determining which of the possible alternatives shall be chosen.
Examples
  • If no offer is received 7 days after having sent the request the request may be canceled (Design Choice J[b]).
  • When issuing a passport the processing usually takes4-6 weeks. If the person needs the passport earlier than 4 weeks an interim passport can be issued (Design Choice J[a]).
  • A patient admitted to a hospital between 6 pm and 8 am is always assigned to the emergency unit (for the first night). If no threatening situation exists the following day the patient is transferred to a normal ward. Between 8 am and 6 pm, in turn, a patient is usually directly admitted to the ward unless there is an emergency (Design Choice J[a]).

Animation

Product Evaluation

We differentiate between supported, partially supported, not supported, and not specified.
If an evaluation object provides support for the particular pattern the supported design choices are listed. If the pattern is only partially supported (e.g., by a work-around) this is indicated by the additional label "*" and if support is not specified this is indicated by the label "?". Missing support is labeled with "-".

Product/Language Version Score Motivation
Microsoft Outlook 2010 There is no control-flow
Sunbird 1.0 There is no control flow
Google Calendar 12.2011 There is no control-flow
Microsoft Project 2010 not supported
BPMN 2.0 J[a,b*] partially supported
IBM Websphere Integration Developer 6.1 J[a,b*] partially supported
WebSphere Lombardi Edition 7.1 J[a] partially supported
AristaFlow 1.0.1 J[a] partially supported
Intalio 6.0.3 J[a,b*] mainly supported
TIBCO Business Studio 3.4.2 J[a,b*] partially supported
Bettini et al.   not supported (not discussed)
Combi et al.   not discussed
Eder et al.   not supported (not discussed)
Marjanovic et al.   not supported
Zhuge et al.   not discussed