Time Pattern TP2: Durations
Durations constitute one of the most frequently used temporal constraints in PAISs. They are often required to ensure compliance of processes with global rules and regulations, to guarantee adherence to external benchmarks (e.g., policies, service level agreements), or to limit resource usage.
Time Pattern TP2: Durations
Also known as
-
Problem
A particular activity, activity set, process, or set of process instances has to obey a certain duration restriction.
Durations result from both waiting (i.e., activity is suspended) and processing times during activity execution. However, a duration does not cover the time span the activity (activity set, process or process instance) is offered in user worklists but has not been started by any user yet (i.e., the time span between activation and start of the activity).
Durations result from both waiting (i.e., activity is suspended) and processing times during activity execution. However, a duration does not cover the time span the activity (activity set, process or process instance) is offered in user worklists but has not been started by any user yet (i.e., the time span between activation and start of the activity).
Design Choices
C | Durations can be applied to different process granularities | |
a | Single activity (including multi-instance activities) | |
b | Activity set | |
c | Process model | |
d | Set of process instances | |
D | There are three kinds of restrictions | |
a | Minimum value | |
b | Maximum value | |
c | Time interval [min … max] |
Solution
A time constraint is introduced between the start and end events of an activity (the same applies to activity sets, processes and process instances).
Timers can be used to enable run-time support for durations. For minimum (maximum) durations the respective activity must not complete before (after) the timer has expired, otherwise appropriate exception handling needs to be initiated. For time intervals, the end event has to occur within the time interval boundaries.
Timers can be used to enable run-time support for durations. For minimum (maximum) durations the respective activity must not complete before (after) the timer has expired, otherwise appropriate exception handling needs to be initiated. For time intervals, the end event has to occur within the time interval boundaries.
Context
The mechanism evaluating the constraint (i.e., starting the timer) needs to be able to access the value of the duration before starting the activity (activity set, process or process instance).
Examples
- The assembly of a new engine must not takelonger than 30 minutes (task work) (Design Choices C[b] D[b])
- Depending on its severity and the patient’s state, ovarian cancer surgeries take 1 to 10 hours (Design Choices C[a] D[c]).
- Maintenance issues need to be resolved within 1hr (Design Choices C[c] D[b])
- Processing 100 requests must not take longer than 1 second (Design Choices C[d] D[b])
Related Patterns
TP1 – Time Lags between Activities
TP3 – Time Lags between Events; TP2 can be implemented based on TP3
TP3 – Time Lags between Events; TP2 can be implemented based on TP3
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 | C[a], D[b] | partially supported for single activities |
Sunbird | 1.0 | C[a], D[b] | partially supported for single activities |
Google Calendar | 12.2011 | C[a], D[b] | partially supported for single activities |
Microsoft Project | 2010 | C[a,c], D[b] | partially supported |
BPMN | 2.0 | C[a,c*], D[b] | partially supported |
IBM Websphere Integration Developer | 6.1 | C[a,c], D[b] | partially supported |
WebSphere Lombardi Edition | 7.1 | C[a,c], D[b] | partially supported |
AristaFlow | 1.0.1 | C[a], D[b] | partially supported |
Intalio | 6.0.3 | C[a*,c*], D[b] | partially supported using scheduled action |
TIBCO Business Studio | 3.4.2 | C[a,c*], D[b] | partially supported |
Bettini et al. | C[a,c], D[a,b,c] | supported for activities and processes but not for complex constructs | |
Combi et al. | C[a,c], D[a,b,c] | mostly supported | |
Eder et al. | C[a,c], D[b] | partially supported | |
Marjanovic et al. | C[a,c], D[a,b,c] | mainly supported | |
Zhuge et al. | C[a], D[a,b,c] | partially supported |