Page 296 -
P. 296

292                                                        M. Adams
                           worklet, which contextually handles one specific task in a larger, composite process
                           activity. Each worklet is a complete extended workflow net (EWF-net) compliant
                           with Definition 1 of the YAWL semantics. Each worklet instance is dynamically
                           selected and invoked at runtime and may be designed and provided to the Selection
                           Service at any time, even while a parent process instance is executing, as opposed
                           to a static subprocess that must be defined at the same time as, and remains a static
                           part of, the main process model.
                              An extensible repertoire of worklets is maintained by the service for each task
                           in a specification. Each time the service is invoked for a work item, a choice is
                           made from the repertoire based on the contextual data values within the work item,
                           using an extensible set of Ripple-Down Rules (cf. Sect. 11.10) to determine the most
                           appropriate substitution.
                              The work item is checked out of the Engine, the corresponding data inputs of
                           the original work item are mapped to the net-level inputs of the worklet, and the
                           selected worklet is launched in the Engine as a separate case. When the worklet has
                           completed, its output data is mapped back to the original work item, which is then
                           checked back into the Engine, allowing the original process to continue.
                              The worklet executed for a task is run as a separate case in the Engine, so that,
                           from an Engine perspective, the worklet and its parent are two distinct, unrelated
                           cases. The Worklet Service tracks the relationships, data mappings, and synchro-
                           nizations between cases, and creates a process log that may be combined with the
                           Engine’s process logs via case identifiers to provide a complete operational history
                           of each process instance.
                              Worklets may be associated with either a single instance or a multiple instance
                           atomic task. Any number of worklets can form the repertoire of an individual task,
                           and any number of tasks in a particular specification can be associated with the
                           Worklet Service. A worklet may be a member of one or more repertoires, that is,
                           it may be reused for several distinct tasks within and across process specifications.
                           In the case of multiple instance tasks, a separate worklet is launched for each child
                           work item. Because each child work item may contain different data, the worklets
                           that substitute for them are individually selected, and so may all be instances of
                           different worklet specifications.


                           11.2.2 The Exception Service

                           Virtually every process instance (even if it follows a highly structured process defi-
                           nition) will experience some kind of exception (or deviation) during its execution. It
                           may be that these events are known to occur in a small number of cases, but not often
                           enough to warrant their inclusion in the process model; or they may be things that
                           were never expected to occur (or perhaps never even imagined could occur). In any
                           case, when they do happen, since they are not included in the process model, they
                           must be handled “off-line” before processing can continue (and the way they are
                           handled is rarely recorded). In some cases, the process model will be later modified
                           to capture this unforeseen event, which involves an often large organizational cost
   291   292   293   294   295   296   297   298   299   300   301