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/