Page 213 -
P. 213

206                                                     M. Adams et al.
                           These characteristics contribute to keeping the YAWL System lightweight and
                           platform-neutral, which have been two of the key underlying design principles.
                              The YAWL System has been developed using Java technology and uses several
                                                           2
                           third-party open-source libraries: JDOM for XML processing and for evaluation of
                           XPath expressions – found, for example, in conditional branches within the work-
                                                3
                           flow specifications; Saxon for evaluation of XQuery expressions, which are used
                           to transform data transferred into and out of tasks and to define mappings amongst
                                                                  4
                           instances of multiple instance tasks ; and Xerces for XML Schema validation. The
                           core services of the YAWL System are packaged as web archives (or war)files
                           that can be deployed in a Java Servlet container. The current implementation of the
                                                                                  5
                           YAWL System is intended to be deployed into the Apache Tomcat Servlet con-
                           tainer, but it can in principle be deployed into other Servlet containers. The process
                           Editor is packaged separately in the form of a Java desktop application.
                              The rest of this chapter gives an overview of the services composing the YAWL
                           System and of the interfaces they provide.



                           7.2 A Three-Tier View of the YAWL System

                           Figure 7.1 presents a three-tier view of the YAWL System. It shows how YAWL ser-
                           vices at the business logic layer encapsulate resources in the data layer, and provide
                           functionality to user-facing services (or applications) at the presentation layers.
                              The inner layer in this figure is the data layer, which among other things, stores
                           workflow specifications. A workflow specification essentially covers three aspects:
                           (1) the control-flow logic; (2) the data definitions (XML schemas, input and output
                           mappings for each task, and boolean conditions for conditional flows); and (3) The
                           resources required to execute the various tasks. Resources are linked to an organi-
                           zational model, which specifies information about the participants, such as roles,
                           capabilities, and privileges. The data layer also contains the execution data,which
                           includes case data and the execution logs. The term “case data” refers to data asso-
                           ciated with individual cases, specifically values of variables defined at the level of
                           the root net of a workflow specification and values of variables defined at the level
                           of tasks or subnets thereof. The execution logs are composed of entries, each repre-
                           senting an event such as the creation or completion of a case or the start or end of a
                           task. Log entries include values such as start/end times, input/output data, and end-
                           status. Case data and execution logs may be persisted into a database for subsequent
                           analysis or to allow the recovery of workflow cases in the event of a system failure.
                              The core service of the YAWL System is the workflow engine (or Engine for
                           short). This service is responsible for creating, routing, and synchronizing the


                           2  www.jdom.org
                           3
                            saxon.sourceforge.net
                           4  xerces.apache.org/
                           5  tomcat.apache.org/
   208   209   210   211   212   213   214   215   216   217   218