XML Schema of the Petrinet-based Grid Workflow Description Language (GWorfklowDL).


Copyright 2009 Fraunhofer Gesellschaft, Munich, Germany, for its Fraunhofer Institute for Computer Architecture and Software Technology (FIRST), Berlin, Germany
All rights reserved. This file is licensed under the terms of the Fraunhofer FIRST license
Written by Andreas Hoheisel, Hans-Werner Pohl, and Tilman Linden; Fraunhofer FIRST.
Version: $Id: gworkflowdl_2_0.xsd 1347 2010-02-04 08:12:57Z andreas.hoheisel@first.fraunhofer.de $


This XML Schema specifies a language for describing the data and control flow of workflows based on the Petri net standard ISO/IEC 15909-1: "High-level Petri nets - Part 1: Concepts, definitions and graphical notation". Within the GWorkflowDL, the root element workflow represents a High-Level Petri Net (HLPN), which is composed of a set of places visualized by circles, transitions visualized by squares, and flow relations represented by arcs from places to transitions or from transitions to places. In addition, places can be labeled with a partial capacity restriction specifying the maximum number of tokens hold by a place. In contrast to ordinary P/T Petri Nets, the tokens of HLPNs are distinguishable and can be used to model high-level values, such as real input/output data, references to data (e.g., filenames or URLs), and boolean values representing side-effects. The distribution of tokens on places is called marking and represents the state of the distributed system. When an enabled transition occurs (fires), then one input token is consumed from each input place (e.g., holding input data) and one new output token is put on each output place (e.g., holding output data).

This XML namespace mainly comprises the sematics and syntax for describing worklow structures. The declaration of specific operations and data may be done by means of additional namespaces, such as http://www.gridworkflow.org/gworkflowdl/operationclass.


Example workflow:

<workflow xmlns="http://www.gridworkflow.org/gworkflowdl" ID="No_ID">
  <description>simple workflow</description>
  <place ID="begin">
    <token><control>true</control></token>
  </place>
  <place ID="end"/>
  <transition ID="t">
    <inputPlace placeID="begin"/>
    <outputPlace placeID="end"/>
  </transition>
</workflow>

Representation of a workflow by means of a High-level Petri net, mainly composed of places and transitions. The "workflow" element is the root element of each GWorkflowDL document. The arcs are represented as child elements of transitions, the tokens are child elements of places. A place is a placeholder for tokens that represent the data and the state of the workflow. Description of the class of tokens hold by a place. A token represents state information, such as true/false (control token) or arbitrary XML (data token). The data element can hold one single child element with arbitrary XML representing data (e.g., SOAP parameters) or references to data (e.g., filenames). A control token can either be "true" or "false", reflecting the exit status of the previous transition. The ocurrence of a transition alters the state of the Petri net. A transition may be linked to an (external) operation. Petri net arcs are directed edges that are represented by read places, input places, write places and output places. The optional element "condition" specifies a pre condition expression that must evaluate to "true" for a transition to be enabled. The syntax for conditions is XPath 1.0. The context for the evaluation is the contents of the input and read tokens which can be referred to by means of a "$" concatenated with the corresponding edgeExpression (e.g., "$input". The element "operation" links transitions with (external) operations. As operations may be platform-specific, they are specified in a separate XML Schema using different namespace. Reference to a place within the same GWorkflowDL document. The attribute "placeRef" denotes a place ID. The attribute edgeExpression is used as value assignement for input and read places and as functional statement for output places using the XPath 1.0 standard. Human-readable description of the element. Generic property. The attribute "name" specifies the property name, the element contents its value. URI to external OWL description of the element. Specifies a read edge which connects the transition with a specific read place. One occurrence of the transition uses one token on each read place as input token, but the transition does not remove these tokens after occurrence. Several occurrences of transitions may read the same token on a read place concurrently. Regarding the theory of P/T nets a read edge is equivalent to a loop of input and output edge, however in practice, a read edge allows to model concurrent read operations on shared data. Specifies an input edge which connects the transition with a specific input place. One occurrence of the transition locks one token on each input place as input token, and removes these tokens from the input places after occurrence. Specifies a write edge which connects the transition with a specific write place. One occurrence of the transition (partially) overwrites one existing token on each write place. Regarding the theory of P/T nets a write edge is equivalent to a loop of input and output edge, however in practice, a write edge allows to model concurrent write operations on shared data. Specifies an output edge which connects the transition with a specific output place. One occurrence of the transition reserves space for one token on each output place, and creates a new token on each output place after occurrence.