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.
   50   51   52   53   54   55   56   57   58   59   60