Page 261 -
P. 261

9  The Runtime Environment                                      255
















                           Fig. 9.6 Relational schema for Engine log (main relations shown)

                           TaskInstance tables are supplied by the Engine, which produces an identifier
                           (referred to generally as a “caseID”) that is unique across all instantiations of all nets
                           and tasks. It is formulated by first assigning the next available case number to a new
                           case instance, then using a dotted number formation to refer to its child instances.
                           So, for example, the root net of a new case instance might receive a caseID of “123”;
                           its first child task instance (i.e., a work item) will receive a caseID of “123.1,” its sec-
                           ond “123.2,” and so on. For a composite task, the subnet instance might be assigned
                           “123.3,” and its first work item “123.3.1”. This convention ensures that all instance
                           identifiers are unique.
                              The process log consists of nine tables:

                             Specification: A YAWL specification is uniquely identifiable through its internal
                              specification identifier (Identifier) and version number (Version) – all versions of
                              a specification share the same identifier. It also has a non-unique name assigned
                              to it at design time, which is perhaps more meaningful to a human reader than
                              the identifier. In addition, this table stores, for convenience, a reference to its root
                              net via a foreign key to the Net table
                             Net: Each specification contains one or more nets; this table stores data of each
                              net of each specification, from which net instances may be created
                             NetInstance: Each execution of a net is recorded in this table. This may represent
                              the start of a new case instance (i.e., if it is a root net) or the decomposition of
                              a composite task (i.e., a subnet). This table has fields to record the foreign keys
                              for the net from which the net instance has been created and, if the net has been
                              created from a composite task, the key of that task instance. It also stores a unique
                              identifier (NetInstanceID), and the “case ID” assigned to the net by the Engine
                              (EngineInstanceID)
                             Task: This table stores a reference to each task started by a net instance, and
                              contains a unique identifier, the name of the task and a foreign key reference
                              to its parent net. For composite tasks, the key of the net (decomposition) of the
                              task is also stored. The entries in this table refer to task definitions from which
                              task instances are created (and stored in the TaskInstance table), in the same way
                              as the Net table refers to process definitions from which process instances are
                              created (and stored in the NetInstance table)
   256   257   258   259   260   261   262   263   264   265   266