Page 55 -
P. 55
42 N. Russell and A. ter Hofstede
Data Transfer Patterns
Data transfer patterns deal with the mechanics of how a data element is actually
transported to or from a task instance in an executing process. The actual hand-over
of a data element can occur in four distinct ways, each of which is recognized by an
individual pattern.
Data Transfer by Value recognizes the situation where the transport of a data
element is actually based on copying its value between one task and another. This
pattern is utilized in data passing approaches that rely on the actual evaluation
of an expression (such as an XQuery statement or database query) prior to the
assignment of the value to its target location.
Data Transfer by Reference – Unlocked corresponds to the scenario where data
elements are passed by reference rather than by value. Implicit in this approach
is the notion that the data value can be seamlessly transferred from the source to
the target location.
Data Transfer by Reference – With Lock is an extension of the preceding pattern
that also provides a measure of concurrency control by registering a lock over
the transferred data element to ensure that the receiving task retains complete
control over it and can rely on its integrity. The lock is relinquished when the
data element is passed to a subsequent task.
Data Transfer – Copy In/Copy Out corresponds to the situation where the data
element being sourced resides in a distinct location (typically outside of the pro-
cess) such as a database that normally is considered to retain ownership of the
data, and when the data element is transferred to the process or task instance, it
is done so with the proviso that it must be transferred back (i.e., synchronized)
when the process or task instance completes.
The remaining two data transfer patterns deal with the transformation of data ele-
ments when they are transferred to and from a task instance. These are the Data
Transformation – Input and Data Transformation – Output patterns.
While this group of patterns has focussed on the mechanics of data transfer at the
micro level, the final set of data patterns examines how data can affect other aspects
of process execution.
Data-Based Routing Patterns
Data routing patterns focus on the various ways in which the data perspective can
influence other aspects of process execution. The first four of these patterns deal
with task pre- and post-conditions that cause task commencement or completion to
be delayed until specified conditions based either on existence of data elements or
nominated data values are satisfied. These patterns are the following:
Task Precondition – Data Existence.
Task Precondition – Data Value.
Task Post-condition – Data Existence.
Task Post-condition – Data Value.