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>