Page 282 -
P. 282

278                                                        M. Adams
                           of codelets are distributed as part of the default environment. Perhaps the most inter-
                           esting of these is ShellExecution, which provides for any program to be executed in
                           the external operating system environment (i.e., outside the immediate YAWL envi-
                           ronment), using application names and parameters passed as data values within the
                           automated task associated with the codelet.
                              The Connection Handler manages user sessions. This component checks logon
                           credentials, and creates and maintains sessions with end users. A timer is also main-
                           tained for each session, and times out after a period of inactivity (by default 60 min,
                           but this value may be modified via a configuration setting). Each time a user inter-
                           acts with the service, their session is checked for currency, and if valid, the inactivity
                           timer is reset.
                              Every runtime action taken by a user or the service on a work item is logged
                           by the Event Logger component, so that a process history is kept for all cases. All
                           changes in resource status (e.g., “Allocated” to “Started”) are logged, as well as user
                           actions such as delegation and reallocation. Data values describing the participant,
                           the work item, the action, and the timestamp are kept. Log records can be accessed
                           via Interface W, and may be incorporated with the engine’s process logs to reveal a
                           detailed process execution history for each case.
                              Finally, the Persistence Engine saves all runtime objects, updating them as nec-
                           essary, to ensure a copy of “live” cases and their associated data are permanently
                           backed up so that the entire runtime environment can be recreated in the event of a
                           server shutdown and restart.



                           10.5 Initial Distribution


                           When the engine notifies the service of an enabled work item, the service undertakes
                           to distribute the work item to resource(s) using the resourcing specifications for the
                           task from which the work item was created, as specified at design time. The process
                           followed by the service is shown in the flowchart in Fig. 10.7.
                              The first step is to retrieve the resource map applicable to the work item. A
                           Resource Map is an object created by parsing the task’s resourcing specification,
                           and describes how the work item’s resourcing decisions are to be made, as well as
                           performing the actual distribution process. For all specifications created in YAWL
                           versions prior to 2.0, there will be no resource map available, as specifications based
                           on older schemas had no knowledge of the Resource Service. In such cases, the work
                           item is offered to all participants (i.e., each participant in the organizational model
                           will see the work item in their Offered queue) and the distribution process com-
                           pletes. If the specification is based on the YAWL 2.0 schema, then each task will
                           have a designated resourcing specification (a default specification of User–User–
                           User initiated interaction points is applied to any task that has not been explicitly
                           designated a resourcing specification at design time).
                              Once the resource map is available, it is first checked to determine if a participant
                           has piled the work item. If so, the work item is immediately started and placed on
   277   278   279   280   281   282   283   284   285   286   287