Initial Commit

This commit is contained in:
Matthias
2017-08-04 15:33:20 +02:00
commit 18f1c768cf
22 changed files with 8224 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
.directory
*.log
*.aux
*.bbl
*.blg
*.pdf
*.toc
thesis.run.xml
thesis-blx.bib
+4
View File
@@ -0,0 +1,4 @@
\chapter{Background}
\input{background/workflowmodel}
File diff suppressed because it is too large Load Diff
+499
View File
@@ -0,0 +1,499 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
<!--Created by yEd 3.14-->
<key for="graphml" id="d0" yfiles.type="resources"/>
<key for="port" id="d1" yfiles.type="portgraphics"/>
<key for="port" id="d2" yfiles.type="portgeometry"/>
<key for="port" id="d3" yfiles.type="portuserdata"/>
<key attr.name="url" attr.type="string" for="node" id="d4"/>
<key attr.name="description" attr.type="string" for="node" id="d5"/>
<key for="node" id="d6" yfiles.type="nodegraphics"/>
<key attr.name="Beschreibung" attr.type="string" for="graph" id="d7"/>
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
<graph edgedefault="directed" id="G">
<data key="d7"/>
<node id="n0">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="60.0" width="122.0" x="688.9031357885135" y="212.60369389972976"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="30.0" modelName="custom" textColor="#000000" visible="true" width="26.0" x="48.0" y="15.0">&lt;html&gt;
A&lt;sub&gt;1&lt;/sub&gt;
&lt;/html&gt;<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n1">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="5.0" width="21.0" x="688.9031357885135" y="272.60369389972976"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="8.5" y="0.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n2">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="60.0" width="122.0" x="618.0" y="314.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="30.0" modelName="custom" textColor="#000000" visible="true" width="26.0" x="48.0" y="15.0">&lt;html&gt;
A&lt;sub&gt;2&lt;/sub&gt;
&lt;/html&gt;<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n3">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="60.0" width="122.0" x="770.0" y="314.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="30.0" modelName="custom" textColor="#000000" visible="true" width="26.0" x="48.0" y="15.0">&lt;html&gt;
A&lt;sub&gt;3&lt;/sub&gt;
&lt;/html&gt;<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n4">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="60.0" width="122.0" x="688.9031357885135" y="416.39630610027024"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="30.0" modelName="custom" textColor="#000000" visible="true" width="26.0" x="48.0" y="15.0">&lt;html&gt;
A&lt;sub&gt;4&lt;/sub&gt;
&lt;/html&gt;<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n5">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="5.0" width="21.0" x="688.9031357885135" y="207.60369389972976"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="8.5" y="0.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n6">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="5.0" width="21.0" x="618.0" y="309.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="8.5" y="0.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n7">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="5.0" width="21.0" x="618.0" y="374.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="8.5" y="0.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n8">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="5.0" width="21.0" x="770.0" y="309.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="8.5" y="0.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n9">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="5.0" width="21.0" x="770.0" y="374.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="8.5" y="0.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n10">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="5.0" width="21.0" x="688.9031357885135" y="411.39630610027024"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="8.5" y="0.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n11">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="5.0" width="21.0" x="688.9031357885135" y="476.39630610027024"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="8.5" y="0.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n12">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="30.0" width="55.0" x="500.0" y="220.0"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" modelName="custom" textColor="#000000" visible="true" width="64.1171875" x="-4.55859375" y="3.6875">Activity<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n13">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="30.0" width="116.0" x="469.5" y="262.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" modelName="custom" textColor="#000000" visible="true" width="113.9765625" x="1.01171875" y="3.6875">Data Transfer<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n14">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="15.0" width="13.0" x="662.0" y="282.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="false" width="4.0" x="4.5" y="5.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode>
</data>
</node>
<node id="n15">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="30.0" width="55.0" x="500.0" y="305.0"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" modelName="custom" textColor="#000000" visible="true" width="56.234375" x="-0.6171875" y="3.6875">In Port<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n16">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="30.0" width="70.0" x="492.5" y="347.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" modelName="custom" textColor="#000000" visible="true" width="70.3828125" x="-0.19140625" y="3.6875">Out Port<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n17">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="30.0" width="108.0" x="473.5" y="390.0"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.625" modelName="custom" textColor="#000000" visible="true" width="104.7109375" x="1.64453125" y="3.375">Dependency<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="-4.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n18">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
<y:Geometry height="10.0" width="7.0" x="706.0" y="391.5"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="false" width="4.0" x="1.5" y="3.0">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode>
</data>
</node>
<edge id="e0" source="n0" target="n2">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="26.0" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="31.0" x="-4.297784791862796" y="10.09128481803009">&lt;html&gt;D&lt;sub&gt;12&lt;/sub&gt;&lt;/html&gt;<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e1" source="n0" target="n3">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="26.0" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="31.0" x="22.771966549983404" y="8.200390829718799">&lt;html&gt;D&lt;sub&gt;13&lt;/sub&gt;&lt;/html&gt;<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e2" source="n3" target="n4">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="26.0" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="31.0" x="-7.050241963968006" y="11.498490705197412">&lt;html&gt;D&lt;sub&gt;34&lt;/sub&gt;&lt;/html&gt;<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e3" source="n1" target="n6">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="-13.293288949645103" sy="5.089839781332955" tx="10.518716784893627" ty="-2.5052839608284785"/>
<y:LineStyle color="#000000" type="dashed_dotted" width="2.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e4" source="n12" target="n0">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="40.0" sy="0.0" tx="-70.0" ty="0.0"/>
<y:LineStyle color="#000000" type="dotted" width="2.0"/>
<y:Arrows source="none" target="none"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e5" source="n13" target="n14">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="60.0" sy="0.0" tx="-20.0" ty="0.0"/>
<y:LineStyle color="#000000" type="dotted" width="2.0"/>
<y:Arrows source="none" target="none"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e6" source="n15" target="n6">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="30.0" sy="0.0" tx="-15.0" ty="0.0"/>
<y:LineStyle color="#000000" type="dotted" width="2.0"/>
<y:Arrows source="none" target="none"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e7" source="n16" target="n7">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="40.0" sy="0.0" tx="-15.0" ty="0.0"/>
<y:LineStyle color="#000000" type="dotted" width="2.0"/>
<y:Arrows source="none" target="none"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e8" source="n2" target="n4">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="26.0" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="31.0" x="23.10523027399745" y="7.097193251213014">&lt;html&gt;D&lt;sub&gt;24&lt;/sub&gt;&lt;/html&gt;<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e9" source="n17" target="n18">
<data key="d9"/>
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="60.0" sy="0.0" tx="-10.0" ty="0.0"/>
<y:LineStyle color="#000000" type="dotted" width="2.0"/>
<y:Arrows source="none" target="none"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
</graph>
<data key="d0">
<y:Resources/>
</data>
</graphml>
+47
View File
@@ -0,0 +1,47 @@
\section{Workflow Model}
The design and implementation of scientific workflows consists of two parts: an \emph{abstract part} and a \emph{concrete part}. We give a short overview of these two parts in the following subsections.
\begin{figure}{ht}
\centering
\includegraphics[width=.5\textwidth]{./background/figures/workflow-abstractpart.pdf}
\caption{An abstract part of a scientific workflow.}
\label{fig:dag}
\end{figure}
\subsection{Workflow design: the abstract part}
The abstract part (see Figure~\ref{fig:dag}) of a scientific workflow specification comprises a hardware and middleware agnostic (and therefore easily portable) description of the workflow structure, the activities involved (identified by a unique name and a type), and the data and control flow dependencies between the activities. The individual activities are treated as black-boxes such that only the input and the output signatures are known.
There are usually two different types of workflow activities:
\begin{enumerate}
\item \emph{Atomic activities} are basic indivisible computations units such as a legacy codes;
\item \emph{Composite activities} combine several fine granular workflow activities, including atomic and other composite ones, to form coarse granular activities and impose a control flow on the contained inner activities.
\end{enumerate}
Typical composite activities are sequential and parallel loops, conditional activities, and sub-workflows.
\subsection{Workflow implementation: the concrete part}
The concrete part of a workflow contains the hardware and middleware-dependent implementations of the atomic activities and their accompanying meta-information. This part is often highly specific to each individual workflow system and the underlying DCI. It usually contains information about the available activity implementations, locations where they are installed, how they can be executed, and any other further information indented to help the workflow engine in selecting the most appropriate activity implementation.
\subsection{Workflow enactment}
A workflow engine executes a workflow instance (operation usually called \emph{workflow enactment}) by traversing the DAG representing the workflow structure, determining the state of the individual activities, transferring data from finished activities to their successors in the dependency graph, unrolling composite activities and replacing them with the resulting subgraph, and delegating the actual execution of atomic activities to the scheduling and execution subsystems.
We call the resulting DAG where composite activities have been replaced with their contained subgraphs enriched with additional state information a \emph{Workflow Execution Plan} (WEP).
We distinguish between two types of workflow enactment modes:
\begin{itemize}
\item In \emph{early enactment mode} the engine re-evaluates the WEP as soon as there are activity state changes, and tries to complete it as early as possible. This mode usually comes with a much higher overhead, but results in a more complete WEP comprising more information, which allows the scheduler to better plan the workflow execution on the underlying resources;
\item In \emph{late enactment mode} (also called \emph{lazy evaluation mode}) the engine only re-evaluates and completes the WEP when it is absolutely necessary for the workflow enactment, and only partially completes it as far as it is required for continuing the enactment.
\end{itemize}
\subsection{Workflow scheduling}
Scheduling describes the process of mapping atomic activities to available computing resources where they are executed. A concrete mapping of activities to computing resources is called \emph{workflow schedule}. The scheduler usually tries to optimize the schedule by maximising or minimizing a given utility function, typically the overall execution time.
To be able to produce an optimal mapping the scheduler need to know the resource requirements of an individual activity in advance. We assume in this paper that the scheduler has accurate knowledge of the resources required by an individual activity, but in practice obtaining this knowledge is still a steep challenge.
Existing scheduling algorithms can be broadly divided into two categories~\cite{Wieczorek2009}:
\begin{itemize}
\item \emph{Just-in-time scheduling algorithms} only consider the next activities to be scheduled when deciding on a mapping and ignore the rest of the WEP. They are usually linear in complexity with the number of activities (i.e. $O(N)$) and come with a low overhead, but due to limited information the generated schedule may not be that good;
\item \emph{Full-ahead scheduling algorithms} use the entire WEP when deciding on a mapping and try to find an optimal schedule in the search space. They usually come with a much higher overhead, but consider more workflow information and therefore, produce in general better results. Generating a full-ahead schedule is an NP-hard problem~\cite{ullman1975np} and therefore, most existing full-ahead scheduling algorithms are approximate heuristic algorithms~\cite{heft02}.
\end{itemize}
+35
View File
@@ -0,0 +1,35 @@
@Article{Wieczorek2009,
Title = {Towards a General Model of the Multi-Criteria Workflow Scheduling on the Grid},
Author = {Marek Wieczorek and Andreas Hoheisel and Radu Prodan},
Journal = {Future Generations Computer Systems},
Year = {2009},
Number = {3},
Pages = {237-256},
Volume = {25}
}
@Article{ullman1975np,
Title = {NP-complete scheduling problems},
Author = {Ullman, J.D.},
Journal = {Journal of Computer and System sciences},
Year = {1975},
Number = {3},
Pages = {384--393},
Volume = {10},
Publisher = {Elsevier}
}
@Article{heft02,
Title = {Performance-effective and low-complexity task scheduling for heterogeneous computing},
Author = {Topcuoglu, H. and Hariri, S. and Min-You Wu},
Journal = {IEEE Transactions on Parallel and Distributed Systems},
Year = 2002,
Month = 3,
Number = 3,
Pages = {260--274},
Volume = 13
}
+2
View File
@@ -0,0 +1,2 @@
\chapter{Conclusion}
+2
View File
@@ -0,0 +1,2 @@
\chapter{Introduction}
BIN
View File
Binary file not shown.
+545
View File
@@ -0,0 +1,545 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: /home/matthias/Uni/Work/WorkflowsOnManycores/Documents/FGCS-Paper/figures/Povray.dia
%%Creator: Dia v0.97.3
%%CreationDate: Fri Feb 19 15:30:18 2016
%%For: matthias
%%Orientation: Portrait
%%Magnification: 1.0000
%%BoundingBox: 0 0 359 538
%%BeginSetup
%%EndSetup
%%EndComments
%%BeginProlog
[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon
/less /equal /greater /question /at /A /B /C /D /E
/F /G /H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W /X /Y
/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
/d /e /f /g /h /i /j /k /l /m
/n /o /p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
/cp {closepath} bind def
/c {curveto} bind def
/f {fill} bind def
/a {arc} bind def
/ef {eofill} bind def
/ex {exch} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth pop} bind def
/tr {translate} bind def
/ellipsedict 8 dict def
ellipsedict /mtrx matrix put
/ellipse
{ ellipsedict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def /savematrix mtrx currentmatrix def
x y tr xrad yrad sc
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/mergeprocs {
dup length
3 -1 roll
dup
length
dup
5 1 roll
3 -1 roll
add
array cvx
dup
3 -1 roll
0 exch
putinterval
dup
4 2 roll
putinterval
} bind def
/Times-Roman-latin1
/Times-Roman findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Times-Italic-latin1
/Times-Italic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Times-Bold-latin1
/Times-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Times-BoldItalic-latin1
/Times-BoldItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/AvantGarde-Gothic-latin1
/AvantGarde-Gothic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/AvantGarde-BookOblique-latin1
/AvantGarde-BookOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/AvantGarde-Demi-latin1
/AvantGarde-Demi findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/AvantGarde-DemiOblique-latin1
/AvantGarde-DemiOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Bookman-Light-latin1
/Bookman-Light findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Bookman-LightItalic-latin1
/Bookman-LightItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Bookman-Demi-latin1
/Bookman-Demi findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Bookman-DemiItalic-latin1
/Bookman-DemiItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Courier-latin1
/Courier findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Courier-Oblique-latin1
/Courier-Oblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Courier-Bold-latin1
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Courier-BoldOblique-latin1
/Courier-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-latin1
/Helvetica findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Oblique-latin1
/Helvetica-Oblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Bold-latin1
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-BoldOblique-latin1
/Helvetica-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Narrow-latin1
/Helvetica-Narrow findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Narrow-Oblique-latin1
/Helvetica-Narrow-Oblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Narrow-Bold-latin1
/Helvetica-Narrow-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Narrow-BoldOblique-latin1
/Helvetica-Narrow-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/NewCenturySchlbk-Roman-latin1
/NewCenturySchlbk-Roman findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/NewCenturySchlbk-Italic-latin1
/NewCenturySchlbk-Italic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/NewCenturySchlbk-Bold-latin1
/NewCenturySchlbk-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/NewCenturySchlbk-BoldItalic-latin1
/NewCenturySchlbk-BoldItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Palatino-Roman-latin1
/Palatino-Roman findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Palatino-Italic-latin1
/Palatino-Italic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Palatino-Bold-latin1
/Palatino-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Palatino-BoldItalic-latin1
/Palatino-BoldItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Symbol-latin1
/Symbol findfont
definefont pop
/ZapfChancery-MediumItalic-latin1
/ZapfChancery-MediumItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/ZapfDingbats-latin1
/ZapfDingbats findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
28.346000 -28.346000 scale
-2.165000 -19.800000 translate
%%EndProlog
1.000000 1.000000 1.000000 srgb
n 2.715000 3.934440 m 2.715000 14.065551 l 14.250000 14.065551 l 14.250000 3.934440 l f
n 2.715000 4.434440 m 2.715000 4.434440 0.500000 0.500000 180.000000 270.000000 ellipse f
n 14.250000 4.434440 m 14.250000 4.434440 0.500000 0.500000 270.000000 360.000000 ellipse f
n 2.215000 4.434440 m 2.215000 13.565551 l 14.750000 13.565551 l 14.750000 4.434440 l f
n 2.715000 13.565551 m 2.715000 13.565551 0.500000 0.500000 90.000000 180.000000 ellipse f
n 14.250000 13.565551 m 14.250000 13.565551 0.500000 0.500000 0.000000 90.000000 ellipse f
0.100000 slw
[] 0 sd
[] 0 sd
0 slj
0.000000 0.000000 0.000000 srgb
n 2.715000 3.934440 m 14.250000 3.934440 l s
n 2.715000 14.065551 m 14.250000 14.065551 l s
n 2.715000 4.434440 0.500000 0.500000 180.000000 270.000000 ellipse s
n 14.250000 4.434440 0.500000 0.500000 270.000000 360.000000 ellipse s
n 2.215000 4.434440 m 2.215000 13.565551 l s
n 14.750000 4.434440 m 14.750000 13.565551 l s
n 2.715000 13.565551 0.500000 0.500000 90.000000 180.000000 ellipse s
n 14.250000 13.565551 0.500000 0.500000 0.000000 90.000000 ellipse s
/Helvetica-Bold-latin1 ff 0.790222 scf sf
(ParallelFor) 2.665000 5.096162 m
gs 1 -1 sc sh gr
1.000000 1.000000 1.000000 srgb
n 6.515000 3.100000 m 6.515000 4.300000 l 10.515000 4.300000 l 10.515000 3.100000 l f
0.100000 slw
[] 0 sd
[] 0 sd
0 slj
0.000000 0.000000 0.000000 srgb
n 6.515000 3.100000 m 6.515000 4.300000 l 10.515000 4.300000 l 10.515000 3.100000 l cp s
/Times-Roman-latin1 ff 0.070000 scf sf
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.515000 3.100000 m 8.515000 4.300000 l s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 7.515000 3.100000 m 7.515000 4.300000 l s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.515000 3.700000 m 8.515000 3.700000 l s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 9.515000 3.100000 m 9.515000 4.300000 l s
1.000000 1.000000 1.000000 srgb
n 6.515000 13.200000 m 6.515000 14.400000 l 10.515000 14.400000 l 10.515000 13.200000 l f
0.100000 slw
[] 0 sd
[] 0 sd
0 slj
0.000000 0.000000 0.000000 srgb
n 6.515000 13.200000 m 6.515000 14.400000 l 10.515000 14.400000 l 10.515000 13.200000 l cp s
/Times-Roman-latin1 ff 0.070000 scf sf
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.515000 13.200000 m 8.515000 14.400000 l s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 7.515000 13.200000 m 7.515000 14.400000 l s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.515000 13.800000 m 8.515000 13.800000 l s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 9.515000 13.200000 m 9.515000 14.400000 l s
1.000000 1.000000 1.000000 srgb
n 8.565000 10.750000 3.500000 1.250000 0 360 ellipse f
0.100000 slw
[] 0 sd
[] 0 sd
0 slj
0.000000 0.000000 0.000000 srgb
n 8.565000 10.750000 3.500000 1.250000 0 360 ellipse cp s
/Helvetica-Bold-latin1 ff 0.790222 scf sf
(Render) dup sw 2 div 8.565000 ex sub 10.797278 m
gs 1 -1 sc sh gr
1.000000 1.000000 1.000000 srgb
n 8.500000 16.662273 3.500000 1.312273 0 360 ellipse f
0.100000 slw
[] 0 sd
[] 0 sd
0 slj
0.000000 0.000000 0.000000 srgb
n 8.500000 16.662273 3.500000 1.312273 0 360 ellipse cp s
/Helvetica-Bold-latin1 ff 0.790222 scf sf
(Convert) dup sw 2 div 8.500000 ex sub 16.709551 m
gs 1 -1 sc sh gr
n 8.515000 1.400000 0.500000 0.500000 0 360 ellipse f
0.100000 slw
[] 0 sd
[] 0 sd
n 8.515000 1.400000 0.500000 0.500000 0 360 ellipse cp s
1.000000 1.000000 1.000000 srgb
n 8.565000 19.250000 0.500000 0.500000 0 360 ellipse f
0.100000 slw
[] 0 sd
[] 0 sd
0.000000 0.000000 0.000000 srgb
n 8.565000 19.250000 0.500000 0.500000 0 360 ellipse cp s
n 8.565001 19.250001 0.250001 0.250001 0 360 ellipse f
0.100000 slw
[] 0 sd
[] 0 sd
n 8.565001 19.250001 0.250001 0.250001 0 360 ellipse cp s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.515000 1.949170 m 8.515000 2.500317 l s
0 slj
n 8.265000 2.500317 m 8.515000 3.000317 l 8.765000 2.500317 l ef
0.100000 slw
[] 0 sd
0 slj
n 8.265000 2.500317 m 8.515000 3.000317 l 8.765000 2.500317 l cp s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.515000 4.300000 m 8.513673 5.016615 l s
0 slj
n 8.263673 5.016152 m 8.512747 5.516614 l 8.763673 5.017078 l ef
0.100000 slw
[] 0 sd
0 slj
n 8.263673 5.016152 m 8.512747 5.516614 l 8.763673 5.017078 l cp s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.565000 12.000000 m 8.537897 12.650477 l s
0 slj
n 8.288114 12.640069 m 8.517082 13.150043 l 8.787680 12.660884 l ef
0.100000 slw
[] 0 sd
0 slj
n 8.288114 12.640069 m 8.517082 13.150043 l 8.787680 12.660884 l cp s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.515000 14.400000 m 8.508683 14.800069 l s
0 slj
n 8.258714 14.796122 m 8.500789 15.300006 l 8.758652 14.804015 l ef
0.100000 slw
[] 0 sd
0 slj
n 8.258714 14.796122 m 8.500789 15.300006 l 8.758652 14.804015 l cp s
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.500000 17.974500 m 8.530209 18.451101 l s
0 slj
n 8.280709 18.466916 m 8.561837 18.950100 l 8.779708 18.435287 l ef
0.100000 slw
[] 0 sd
0 slj
n 8.280709 18.466916 m 8.561837 18.950100 l 8.779708 18.435287 l cp s
1.000000 1.000000 1.000000 srgb
n 8.510000 7.000000 3.872766 1.383131 0 360 ellipse f
0.100000 slw
[] 0 sd
[] 0 sd
0 slj
0.000000 0.000000 0.000000 srgb
n 8.510000 7.000000 3.872766 1.383131 0 360 ellipse cp s
/Helvetica-Bold-latin1 ff 0.790222 scf sf
(SceneFile) dup sw 2 div 8.510000 ex sub 7.047278 m
gs 1 -1 sc sh gr
0.100000 slw
[] 0 sd
[] 0 sd
0 slc
n 8.510000 8.383131 m 8.537948 8.950666 l s
0 slj
n 8.288251 8.962962 m 8.562541 9.450061 l 8.787646 8.938369 l ef
0.100000 slw
[] 0 sd
0 slj
n 8.288251 8.962962 m 8.562541 9.450061 l 8.787646 8.938369 l cp s
showpage
+3550
View File
File diff suppressed because it is too large Load Diff
+337
View File
@@ -0,0 +1,337 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
<!--Created by yEd 3.14-->
<key for="graphml" id="d0" yfiles.type="resources"/>
<key for="port" id="d1" yfiles.type="portgraphics"/>
<key for="port" id="d2" yfiles.type="portgeometry"/>
<key for="port" id="d3" yfiles.type="portuserdata"/>
<key attr.name="url" attr.type="string" for="node" id="d4"/>
<key attr.name="description" attr.type="string" for="node" id="d5"/>
<key for="node" id="d6" yfiles.type="nodegraphics"/>
<key attr.name="Beschreibung" attr.type="string" for="graph" id="d7"/>
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
<graph edgedefault="directed" id="G">
<data key="d7"/>
<node id="n0">
<data key="d6">
<y:GenericNode configuration="com.yworks.bpmn.Artifact.withShadow">
<y:Geometry height="55.0" width="35.0" x="-1313.13859375" y="-272.55046875"/>
<y:Fill color="#FFFFFFE6" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="36.59375" modelName="custom" textColor="#000000" visible="true" width="106.4091796875" x="-35.70458984375" y="59.0">Workflow
Specification<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:StyleProperties>
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ARTIFACT_TYPE_DATA_OBJECT"/>
<y:Property class="com.yworks.yfiles.bpmn.view.DataObjectTypeEnum" name="com.yworks.bpmn.dataObjectType" value="DATA_OBJECT_TYPE_PLAIN"/>
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
</y:StyleProperties>
</y:GenericNode>
</data>
</node>
<node id="n1">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="165.0" width="239.0" x="-1193.4785937499978" y="-327.55046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="117.5" y="80.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n2">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="128.0" width="49.0" x="-1178.4785937499978" y="-309.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="20.296875" modelName="custom" rotationAngle="270.0" textColor="#000000" visible="true" width="118.6796875" x="14.3515625" y="4.66015625">IWIR-Frontend<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n3">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="128.0" width="49.0" x="-1019.1585937499935" y="-309.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="20.296875" modelName="custom" rotationAngle="270.0" textColor="#000000" visible="true" width="102.02734375" x="14.3515625" y="12.986328125">WF-Backend<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n4">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="28.0" width="95.0" x="-1121.8185937499957" y="-268.83046875000014"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="custom" textColor="#000000" visible="true" width="98.27734375" x="-1.638671875" y="5.015625">Optimisations<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n5">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="165.0" width="208.0" x="-924.4785937499978" y="-327.55046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="102.0" y="80.5">
<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n6">
<data key="d6">
<y:GenericNode configuration="com.yworks.bpmn.Artifact.withShadow">
<y:Geometry height="55.0" width="35.0" x="-880.2771874999999" y="-272.55046875"/>
<y:Fill color="#FFFFFFE6" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="20.296875" modelName="custom" textColor="#000000" visible="true" width="102.560546875" x="-33.7802734375" y="59.0">WF-Program<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:StyleProperties>
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ARTIFACT_TYPE_DATA_OBJECT"/>
<y:Property class="com.yworks.yfiles.bpmn.view.DataObjectTypeEnum" name="com.yworks.bpmn.dataObjectType" value="DATA_OBJECT_TYPE_PLAIN"/>
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
</y:StyleProperties>
</y:GenericNode>
</data>
</node>
<node id="n7">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="128.0" width="49.0" x="-792.3171874999871" y="-309.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="20.296875" modelName="custom" rotationAngle="270.0" textColor="#000000" visible="true" width="88.62890625" x="14.3515625" y="19.685546875">WF-Engine<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n8">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="40.0" width="111.0" x="-1130.1585937499935" y="-157.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="22.625" modelName="custom" textColor="#000000" visible="true" width="84.5703125" x="13.21484375" y="8.6875">Compiler<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n9">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="40.0" width="111.0" x="-880.2771874999999" y="-157.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="22.625" modelName="custom" textColor="#000000" visible="true" width="79.7578125" x="15.62109375" y="8.6875">Runtime<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n10">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="55.0" width="103.16140625001071" x="-1046.239296874999" y="-394.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="36.59375" modelName="custom" textColor="#000000" visible="true" width="89.3876953125" x="6.886855468755357" y="9.203125">Activity
Repository<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n11">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="30.0" width="30.0" x="-1310.63859375" y="-369.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="18" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="24.953125" modelName="custom" textColor="#000000" visible="true" width="16.5244140625" x="6.73779296875" y="2.5234375">1<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode>
</data>
</node>
<node id="n12">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="30.0" width="30.0" x="-1106.239296874999" y="-369.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="18" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="24.953125" modelName="custom" textColor="#000000" visible="true" width="16.5244140625" x="6.73779296875" y="2.5234375">2<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode>
</data>
</node>
<node id="n13">
<data key="d6">
<y:ShapeNode>
<y:Geometry height="30.0" width="30.0" x="-833.7971874999935" y="-369.05046875"/>
<y:Fill hasColor="false" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="18" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="24.953125" modelName="custom" textColor="#000000" visible="true" width="16.5244140625" x="6.73779296875" y="2.5234375">3<y:LabelModel>
<y:SmartNodeLabelModel distance="4.0"/>
</y:LabelModel>
<y:ModelParameter>
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
</y:ModelParameter>
</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode>
</data>
</node>
<edge id="e0" source="n2" target="n3">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e1" source="n0" target="n2">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e2" source="n3" target="n6">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e3" source="n6" target="n7">
<data key="d10">
<y:BezierEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="-821.4785937499978" y="-274.83046875000014"/>
</y:Path>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
</y:BezierEdge>
</data>
</edge>
<edge id="e4" source="n7" target="n6">
<data key="d10">
<y:BezierEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="-818.4785937499978" y="-222.83046875000014"/>
</y:Path>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
</y:BezierEdge>
</data>
</edge>
<edge id="e5" source="n10" target="n3">
<data key="d10">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
</graph>
<data key="d0">
<y:Resources/>
</data>
</graphml>
+92
View File
@@ -0,0 +1,92 @@
\begin{wrapfigure}{R}{0.5\textwidth}
\centering
\includegraphics[width=4cm,keepaspectratio=true]{./mwre/figures/Povray.pdf}
\caption{The POV-Ray workflow.}
\label{fig:ex-povray}
\end{wrapfigure}
\section{MWRE Architecture}\label{sec:workflow_environment}
Based on the requirements outlined in the introduction, we designed a \emph{Manycore Workflow Runtime Engine (MWRE)} tailored to heterogeneous shared-memory manycore systems. Our main design principle was to provide a set of feature similar to the ones found in the current DCI workflow engines, while addressing the special characteristics and requirements of manycore systems. In this section we discuss the basic architecture of our workflow system and give short descriptions of the components.
We use the Persistence of Vision Raytracer (POV-Ray) workflow as a running example to illustrate the workflow representation, translation and enactment.
POV-Ray~\cite{Plachetka98-PVPR} is a free tool for creating three-dimensional graphics, which is known to be a time-consuming process used not only by hobbyists and artists, but also in biochemistry research, medicine, architecture, and mathematical visualization. We modelled a POV-Ray rendering scenario as a workflow depicted in Figure~\ref{fig:ex-povray}, where the description of a movie can be separated in several scenes, each scene being composed of several frames that can be rendered (e.g. in \texttt{.png} format) in a \texttt{parallel for} loop. The \texttt{Scene} activity before the \texttt{Render} returns the scene file for a given scene name.
Finally, all frames are merged into a \texttt{.mpg} movie using a \texttt{Convert} activity (e.g. running a \texttt{png2yuv} followed by an \texttt{ffmpeg} conversion).
Figure~\ref{fig:overall-architecture} presents the overall architecture of the MWRE consisting of three main parts: \circled{1} the workflow specification, \circled{2} a source-to-source compiler, and \circled{3} the workflow runtime environment.
The main difference between the MWRE's architecture and the traditional DCI workflow engines is the source-to-source compiler that generates a native C++ program from the workflow specification. Furthermore, MWRE does the mapping of abstract activity types to concrete activity implementations at compile-time, instead of runtime as done by most DCI engines.
\begin{figure}[t]
\centering
\includegraphics[keepaspectratio=true, width=\textwidth]{./mwre/figures/overall-architecture.pdf}
\caption{MWRE architecture.}
\label{fig:overall-architecture}
\end{figure}
\subsection{Workflow specification}
The input to MWRE is a workflow specification (\circled{1}) encoded in the Interoperable Workflow Intermediate Representation (IWIR)~\cite{Plankensteiner2013}. IWIR is an intermediate workflow specification language designed in the European SHIWA project\footnote{\url{http://www.shiwa-workflow.eu/}} to enable interoperability of different workflow systems. As most workflow environments require workflows to be written in their respective workflow language to be able to execute them, exchanging workflows usually means that the workflow specification needs to be translated from one workflow language to another. IWIR eases this translation process by providing a common intermediate representation and thus reducing the number of required translators from $2\cdot n^2$ to $2\cdot n$. IWIR is currently supported by four workflow systems: ASKALON~\cite{Fahringer2007}, MOTEUR~\cite{glatard2008flexible}, Triana~\cite{taylor2003triana} and WS-PGRADE~\cite{kacsuk2011p}.
Using IWIR to specify MWRE workflows has several advantages allowing reusing existing tool chains with no need to implement existing functionality.
First, because it is designed for interoperability, it captures all concepts and constructs found in most workflow languages, and can therefore be seen as a superset of the major workflow languages. Second, it is well-defined and easy to parse. Third, it allows automatic translation and reuse of existing workflows for experiments across different systems without further modifications.
Fourth, it allows integration of new languages and new platforms with O(1) complexity through IWIR front-end or back-end support. And fifth, the implementation of a MWRE workflows is not tied to a specific development environment, but domain scientists can use their favourite workflow development tools from any workflow environment that supports IWIR translation.
\lstset{ %
backgroundcolor=\color{white}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
basicstyle=\scriptsize\ttfamily, % the size of the fonts that are used for the code
breakatwhitespace=true, % sets if automatic breaks should only happen at whitespace
breaklines=true, % sets automatic line breaking
captionpos=b, % sets the caption-position to bottom
commentstyle=\color{black}, % comment style
deletekeywords={...}, % if you want to delete keywords from the given language
escapeinside={(*@}{@*)}, % if you want to add LaTeX within your code
extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
frame=none, % adds a frame around the code
keepspaces=false, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
keywordstyle=\color{black}, % keyword style
otherkeywords={*,...}, % if you want to add more keywords to the set
numbers=left, % where to put the line-numbers; possible values are (none, left, right)
numbersep=2pt, % how far the line-numbers are from the code
numberstyle=\tiny\color{gray}, % the style that is used for the line-numbers
rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
showstringspaces=false, % underline spaces within strings only
showtabs=false, % show tabs within strings adding particular underscores
stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered
stringstyle=\color{black}, % string literal style
tabsize=2, % sets default tabsize to 2 spaces
columns=fullflexible,
}
\lstdefinelanguage{XML2}{
language=XML,
commentstyle=\color{gray}\upshape,
morestring=[b][\color{black}\itshape\mdseries]",
morestring=[s][\bfseries]{>}{<},
morecomment=[s]{<?}{?>},
stringstyle=\color{black},
identifierstyle=\color{blue}\bfseries,
keywordstyle=\color{black}\bfseries, % keyword style
tagstyle=\color{black}\bfseries,
}
\begin{listing}
\resizebox*{!}{\textheight}{
\lstinputlisting[language=XML2]{mwre/povray.iwir}}
\caption{IWIR specification of the POV-Ray workflow.}
\label{lst:povray_iwir}
\end{listing}
Listing~\ref{lst:povray_iwir} shows the IWIR specification of our POV-Ray workflow. The \texttt{toplevel} composite activity represents the start of the workflow and is defined in lines~\ref{povray:iwir:toplevel:start}~--~\ref{povray:iwir:toplevel:end}. The input ports of the \texttt{toplevel} activity (one file and two integers) are defined in lines~\ref{povray:iwir:toplevel:inports:start}~--~\ref{povray:iwir:toplevel:inports:end} and also represent the workflow input ports. A real-world POV-Ray workflow has more input parameters, but we omitted them for brevity reasons. The output ports of the \texttt{toplevel} activity (one file) defined in lines~\ref{povray:iwir:toplevel:outports:start}~--~\ref{povray:iwir:toplevel:outports:end} again represent the workflow output ports too. Lines~\ref{povray:iwir:pfor:start}~--~\ref{povray:iwir:pfor:end} represent the \texttt{parallel for} \texttt{ParallelFor} loop activity containing the atomic activities \texttt{SceneFile} (lines~\ref{povray:iwir:SceneFile:start}~--~\ref{povray:iwir:SceneFile:end}) and \texttt{Render} (lines~\ref{povray:iwir:Render:start}~--~\ref{povray:iwir:Render:end}). The loop activity is then followed by the atomic activity \texttt{Convert}, represented in lines~\ref{povray:iwir:Convert:start}~--~\ref{povray:iwir:Convert:end}.
\subsection{Source-to-source compiler}
The IWIR workflow specification is then given to the source-to-source compiler (\circled{2}), which translates it into a C++ \emph{workflow program} using the API provided by MWRE. We believe that compiling the workflow application into a native executable program is the way to achieve the ``best'' performance on shared-memory manycore systems while minimizing enactment latencies and other middle-ware overheads. The compiler is also responsible for mapping the abstract workflow activity types to concrete activity implementations. Performing this task at compile-time, instead of runtime as done by most DCI workflow systems, saves additional overhead and eases configuration of the workflow program. For this purpose, the compiler has access to a repository that contains activity implementations in form of pre-compiled libraries, binaries, GPU kernels (i.e. \texttt{CUDA}, \texttt{OpenCL}), source-code snippets, and shell-scripts. The compiler also allows a $1$-to-$n$ mapping of activity types to implementations. Meta-data stored for each mapping allows the scheduler to efficiently select the most suitable implementation at runtime.
Using a source-to-source compiler also allows applying transformations to the workflow structure to optimize the performance of the generated workflow program, similar to the compiler optimisations for shared memory systems.
We describe the source-to-source compiler in Section~\ref{sec:Source-to-Source-Compiler} in detail.
\subsection{Runtime environment}
The runtime environment of MWRE (\circled{3}) invokes and executes the workflow program created by the source-to-source compiler. It is implemented as a C++ library considering several performance concerns, such as overhead, memory footprint, and resource utilization.
We describe MWRE workflow engine in Section~\ref{sec:MWRE-EnactmentModel} in detail.
+4
View File
@@ -0,0 +1,4 @@
\chapter{Manycore Workflow Runtime Engine (MWRE)}
\input{mwre/mwre-architecture}
+67
View File
@@ -0,0 +1,67 @@
<IWIR version="1.1" wfname="NewWorkflow" xmlns="http://shiwa-workflow.eu/IWIR">
<blockScope name="toplevel"> (*@\label{povray:iwir:toplevel:start}@*)
<inputPorts> (*@\label{povray:iwir:toplevel:inports:start}@*)
<inputPort name="scene" type="string"/>
<inputPort name="totalFrames" type="integer"/>
<inputPort name="framesPerActivity" type="integer"/>
</inputPorts> (*@\label{povray:iwir:toplevel:inports:end}@*)
<body>
<parallelFor name="ParallelFor"> (*@\label{povray:iwir:pfor:start}@*)
<inputPorts>
<inputPort name="scene" type="string"/>
<inputPort name="numFrames" type="integer"/>
<loopCounter name="frameCounter" from="1" to="" step=""/>
</inputPorts>
<body>
<task name="SceneFile" tasktype="SceneFile"> (*@\label{povray:iwir:SceneFile:start}@*)
<inputPorts>
<inputPort name="scene" type="string"/>
</inputPorts>
<outputPorts>
<outputPort name="povFile" type="file"/>
</outputPorts>
</task> (*@\label{povray:iwir:SceneFile:end}@*)
<task name="Render" tasktype="Render"> (*@\label{povray:iwir:Render:start}@*)
<inputPorts>
<inputPort name="povFile" type="file"/>
<inputPort name="startFrame" type="integer"/>
<inputPort name="numFrames" type="integer"/>
</inputPorts>
<outputPorts>
<outputPort name="frames" type="collection/file"/>
</outputPorts>
</task> (*@\label{povray:iwir:Render:end}@*)
</body>
<outputPorts>
<outputPort name="frames" type="collection/collection/file"/>
</outputPorts>
<links>
<link from="ParallelFor/scene" to="SceneFile/scene"/>
<link from="SceneFile/povFile" to="Render/povFile"/>
<link from="ParallelFor/numFrames" to="Render/numFrames"/>
<link from="ParallelFor/frameCounter" to="Render/startFrame"/>
<link from="Render/frames" to="ParallelFor/frames"/>
</links>
</parallelFor> (*@\label{povray:iwir:pfor:end}@*)
<task name="Convert" tasktype="Convert"> (*@\label{povray:iwir:Convert:start}@*)
<inputPorts>
<inputPort name="frames" type="collection/file"/>
</inputPorts>
<outputPorts>
<outputPort name="outFile" type="file"/>
</outputPorts>
</task> (*@\label{povray:iwir:Convert:end}@*)
</body>
<outputPorts> (*@\label{povray:iwir:toplevel:outports:start}@*)
<outputPort name="finalMovie" type="file"/>
</outputPorts> (*@\label{povray:iwir:toplevel:outports:end}@*)
<links>
<link from="toplevel/totalFrames" to="ParallelFor/frameCounter/to"/>
<link from="toplevel/framesPerActivity" to="ParallelFor/frameCounter/step"/>
<link from="toplevel/framesPerActivity" to="ParallelFor/numFrames"/>
<link from="toplevel/scene" to="ParallelFor/scene"/>
<link from="ParallelFor/frames" to="Convert/frames"/>
<link from="Convert/outFile" to="toplevel/finalMovie"/>
</links>
</blockScope> (*@\label{povray:iwir:toplevel:end}@*)
</IWIR>
+261
View File
@@ -0,0 +1,261 @@
[General]
def_graphic_ext=eps
img_extIsRegExp=false
img_extensions=.eps .jpg .jpeg .png .pdf .ps .fig .gif
kileprversion=2
kileversion=2.1.3
lastDocument=mwre/mwre-architecture.tex
masterDocument=
name=PhD Thesis
pkg_extIsRegExp=false
pkg_extensions=.cls .sty .bbx .cbx .lbx
src_extIsRegExp=false
src_extensions=.tex .ltx .latex .dtx .ins
[Tools]
MakeIndex=
QuickBuild=
[document-settings,item:background/background-main.tex]
Bookmarks=
Encoding=UTF-8
Highlighting=LaTeX
Indentation Mode=normal
Mode=LaTeX
[document-settings,item:background/workflowmodel.tex]
Bookmarks=
Encoding=UTF-8
Highlighting=LaTeX
Indentation Mode=normal
Mode=LaTeX
[document-settings,item:biblio.bib]
Bookmarks=
Encoding=UTF-8
Highlighting=BibTeX
Indentation Mode=normal
Mode=BibTeX
[document-settings,item:introduction/introduction-main.tex]
Bookmarks=
Encoding=UTF-8
Highlighting=LaTeX
Indentation Mode=normal
Mode=LaTeX
[document-settings,item:mwre/mwre-architecture.tex]
Bookmarks=
Encoding=UTF-8
Highlighting=LaTeX
Indentation Mode=normal
Mode=LaTeX
[document-settings,item:mwre/mwre-main.tex]
Bookmarks=
Encoding=UTF-8
Highlighting=LaTeX
Indentation Mode=normal
Mode=LaTeX
[document-settings,item:thesis.tex]
Bookmarks=
Encoding=UTF-8
Highlighting=LaTeX
Indentation Mode=normal
Mode=LaTeX
[document-settings,item:titlepage.tex]
Bookmarks=
Encoding=UTF-8
Highlighting=LaTeX
Indentation Mode=normal
Mode=LaTeX
[item:background/background-main.tex]
archive=true
column=20
encoding=UTF-8
highlight=LaTeX
line=1
mode=LaTeX
open=true
order=2
[item:background/workflowmodel.tex]
archive=true
column=18
encoding=UTF-8
highlight=LaTeX
line=5
mode=LaTeX
open=false
order=-1
[item:biblio.bib]
archive=true
column=0
encoding=UTF-8
highlight=BibTeX
line=0
mode=BibTeX
open=false
order=-1
[item:conclusion/conclusion-main.tex]
archive=true
column=7536750
encoding=
highlight=
line=0
mode=
open=false
order=-1
[item:introduction/introduction-main.tex]
archive=true
column=0
encoding=UTF-8
highlight=LaTeX
line=0
mode=LaTeX
open=false
order=-1
[item:mwre/mwre-architecture.tex]
archive=true
column=64
encoding=UTF-8
highlight=LaTeX
line=21
mode=LaTeX
open=true
order=4
[item:mwre/mwre-main.tex]
archive=true
column=30
encoding=UTF-8
highlight=LaTeX
line=3
mode=LaTeX
open=true
order=3
[item:phdthesis.kilepr]
archive=true
column=1
encoding=
highlight=
line=0
mode=
open=false
order=-1
[item:scheduling/scheduling-main.tex]
archive=true
column=0
encoding=
highlight=
line=0
mode=
open=false
order=-1
[item:thesis.tex]
archive=true
column=28
encoding=UTF-8
highlight=LaTeX
line=29
mode=LaTeX
open=true
order=0
[item:titlepage.tex]
archive=true
column=0
encoding=UTF-8
highlight=LaTeX
line=6
mode=LaTeX
open=true
order=1
[item:wepevaluation/wepevaluation-main.tex]
archive=true
column=0
encoding=
highlight=
line=0
mode=
open=false
order=-1
[item:workflowtransformations/workflowtransformations-main.tex]
archive=true
column=0
encoding=
highlight=
line=0
mode=
open=false
order=-1
[item:workflowtranslation/workflowtranslation-main.tex]
archive=true
column=0
encoding=
highlight=
line=0
mode=
open=false
order=-1
[view-settings,view=0,item:background/background-main.tex]
CursorColumn=20
CursorLine=1
JumpList=
ViMarks=.,3,16,[,3,9,],3,16
[view-settings,view=0,item:background/workflowmodel.tex]
CursorColumn=18
CursorLine=5
JumpList=
ViMarks=.,5,15,[,5,15,],5,15
[view-settings,view=0,item:biblio.bib]
CursorColumn=0
CursorLine=0
JumpList=
ViMarks=.,34,0,[,1,0,],-1,-1
[view-settings,view=0,item:introduction/introduction-main.tex]
CursorColumn=0
CursorLine=0
JumpList=
ViMarks=
[view-settings,view=0,item:mwre/mwre-architecture.tex]
CursorColumn=64
CursorLine=21
JumpList=
ViMarks=.,21,63,[,21,59,],21,63
[view-settings,view=0,item:mwre/mwre-main.tex]
CursorColumn=30
CursorLine=3
JumpList=
ViMarks=.,1,9,[,1,9,],1,47
[view-settings,view=0,item:thesis.tex]
CursorColumn=28
CursorLine=29
JumpList=
ViMarks=.,29,0,[,26,0,],29,27
[view-settings,view=0,item:titlepage.tex]
CursorColumn=0
CursorLine=6
JumpList=
ViMarks=
+2
View File
@@ -0,0 +1,2 @@
\chapter{Full-Ahead Scheduling}
+65
View File
@@ -0,0 +1,65 @@
\documentclass[
a4paper, % paper size
11pt, % font size
% DIV=15, % used for typearea calculation
% headsepline, % add head line to border calculation
oneside, % onesided document
footnotes = multiple, % visually separate two consecutive footnotes
% toc = index, % add index to table of contents
numbers = auto, % automatic placing of end dot in numbering
% pagesize % used for flexibility
]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage{wrapfig}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{url}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{\node[shape=circle,draw,inner sep=0.5pt] (char) {#1};}}
\usepackage{float}
\floatstyle{ruled}
\newfloat{listing}{tbph}{listing}
\floatname{listing}{Listing}
% Bibliography
%\usepackage[backend=bibtex,style=numeric]{biblatex}
%\addbibresource{biblio.bib}
\begin{document}
\include{titlepage}
\tableofcontents
\include{introduction/introduction-main}
\include{background/background-main}
\include{workflowtranslation/workflowtranslation-main}
\include{mwre/mwre-main}
\include{scheduling/scheduling-main}
\include{wepevaluation/wepevaluation-main}
\include{workflowtransformations/workflowtransformations-main}
\include{conclusion/conclusion-main}
\bibliographystyle{abbrv}
\bibliography{biblio}
\end{document}
+6
View File
@@ -0,0 +1,6 @@
\title{Workflows on Manycores}
\author{Matthias Janetschek}
\date{Sometime 2017/2018}
\maketitle
+2
View File
@@ -0,0 +1,2 @@
\chapter{WEP Evaluation}
@@ -0,0 +1,2 @@
\chapter{Workflow Transformations}
@@ -0,0 +1,2 @@
\chapter{Workflow-to-Workflow Translation}