From 545e9d484546f04bf29cc29720ee0211f6b67c98 Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Mon, 10 Jul 2023 13:43:17 +0200
Subject: [PATCH] usecase nets

---
 src/main/resources/nets/SortingNet.pnml       |  158 ---
 .../resources/nets/{ => sample}/TestNet1.pnml |    0
 .../resources/nets/{ => sample}/TestNet2.pnml |    4 +-
 .../resources/nets/{ => sample}/TestNet3.pnml |    0
 .../resources/nets/{ => sample}/TestNet4.pnml |    4 +-
 .../resources/nets/usecase/SortingNet.pnml    | 1194 +++++++++++++++++
 .../nets/usecase/SortingNetSensor.pnml        |  249 ++++
 7 files changed, 1447 insertions(+), 162 deletions(-)
 delete mode 100644 src/main/resources/nets/SortingNet.pnml
 rename src/main/resources/nets/{ => sample}/TestNet1.pnml (100%)
 rename src/main/resources/nets/{ => sample}/TestNet2.pnml (98%)
 rename src/main/resources/nets/{ => sample}/TestNet3.pnml (100%)
 rename src/main/resources/nets/{ => sample}/TestNet4.pnml (99%)
 create mode 100644 src/main/resources/nets/usecase/SortingNet.pnml
 create mode 100644 src/main/resources/nets/usecase/SortingNetSensor.pnml

diff --git a/src/main/resources/nets/SortingNet.pnml b/src/main/resources/nets/SortingNet.pnml
deleted file mode 100644
index e668fa7..0000000
--- a/src/main/resources/nets/SortingNet.pnml
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml">
-    <net id="SortingNet" type="http://www.pnml.org/version-2009/grammar/ptnet">
-        <name>
-            <text>SortingNet</text>
-        </name>
-        <page id="top">
-            <page id="SelectorNodePage">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <type>nodePage</type>
-                </toolspecific>
-                <place id="RedObjectPool">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeRed</subnet>
-                    </toolspecific>
-                    <name>
-                        <text>RedObjectPool</text>
-                    </name>
-                </place>
-                <place id="BlueObjectPool">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeBlue</subnet>
-                    </toolspecific>
-                    <name>
-                        <text>BlueObjectPool</text>
-                    </name>
-                </place>
-                <place id="GreenObjectPool">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeGreen</subnet>
-                    </toolspecific>
-                    <name>
-                        <text>GreenObjectPool</text>
-                    </name>
-                </place>
-                <place id="RedPublisher">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeRed</subnet>
-                    </toolspecific>
-                    <name>
-                        <text>RedPublisher</text>
-                    </name>
-                </place>
-                <place id="BluePublisher">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeBlue</subnet>
-                    </toolspecific>
-                    <name>
-                        <text>BluePublisher</text>
-                    </name>
-                </place>
-                <place id="GreenPublisher">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeGreen</subnet>
-                    </toolspecific>
-                    <name>
-                        <text>GreenPublisher</text>
-                    </name>
-                </place>
-
-                <transition id="SortRed">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeRed</subnet>
-                        <type>discreteTransitionType</type>
-                        <inputsignalclause>(SignalRed)</inputsignalclause>
-                    </toolspecific>
-                    <name>
-                        <text>SortRed</text>
-                    </name>
-                </transition>
-                <transition id="SortGreen">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeGreen</subnet>
-                        <type>discreteTransitionType</type>
-                        <inputsignalclause>(SignalGreen)</inputsignalclause>
-                    </toolspecific>
-                    <name>
-                        <text>SortGreen</text>
-                    </name>
-                </transition>
-                <transition id="SortBlue">
-                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                        <node>SelectorNode</node>
-                        <subnet>SelectorNodeBlue</subnet>
-                        <type>discreteTransitionType</type>
-                        <inputsignalclause>(SignalBlue)</inputsignalclause>
-                    </toolspecific>
-                    <name>
-                        <text>SortBlue</text>
-                    </name>
-                </transition>
-
-                <arc id="sn1" source="RedObjectPool" target="SortRed">
-                </arc>
-                <arc id="sn2" source="GreenObjectPool" target="SortGreen">
-                </arc>
-                <arc id="sn3" source="BlueObjectPool" target="SortBlue">
-                </arc>
-                <arc id="sn4" source="SortRed" target="RedPublisher">
-                </arc>
-                <arc id="sn5" source="SortGreen" target="GreenPublisher">
-                </arc>
-                <arc id="sn6" source="SortBlue" target="BluePublisher">
-                </arc>
-            </page>
-
-            <page id="ControllerLeftNodePage">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <type>nodePage</type>
-                </toolspecific>
-
-            </page>
-
-            <page id="ControllerRightNodePage">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <type>nodePage</type>
-                </toolspecific>
-
-            </page>
-
-            <page id="SynchronizerNodePage">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <type>nodePage</type>
-                </toolspecific>
-
-            </page>
-
-            <page id="ExecutorNodePage">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <type>nodePage</type>
-                </toolspecific>
-
-            </page>
-
-            <page id="SensorNodePage">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <type>nodePage</type>
-                </toolspecific>
-
-            </page>
-
-            <page id="FeedbackNodePage">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <type>nodePage</type>
-                </toolspecific>
-
-            </page>
-        </page>
-    </net>
-</pnml>
diff --git a/src/main/resources/nets/TestNet1.pnml b/src/main/resources/nets/sample/TestNet1.pnml
similarity index 100%
rename from src/main/resources/nets/TestNet1.pnml
rename to src/main/resources/nets/sample/TestNet1.pnml
diff --git a/src/main/resources/nets/TestNet2.pnml b/src/main/resources/nets/sample/TestNet2.pnml
similarity index 98%
rename from src/main/resources/nets/TestNet2.pnml
rename to src/main/resources/nets/sample/TestNet2.pnml
index 3f15265..3ceccac 100644
--- a/src/main/resources/nets/TestNet2.pnml
+++ b/src/main/resources/nets/sample/TestNet2.pnml
@@ -6,7 +6,7 @@
             <text>ServiceNet</text>
         </name>
         <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-            <communicators>
+       <!--     <communicators>
                 <communicator>
                     <cType>serviceClient</cType>
                     <cSubnet>s1</cSubnet>
@@ -15,7 +15,7 @@
                     <cType>serviceServer</cType>
                     <cSubnet>s2</cSubnet>
                 </communicator>
-            </communicators>
+            </communicators>-->
         </toolspecific>
         <page id="top">
             <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
diff --git a/src/main/resources/nets/TestNet3.pnml b/src/main/resources/nets/sample/TestNet3.pnml
similarity index 100%
rename from src/main/resources/nets/TestNet3.pnml
rename to src/main/resources/nets/sample/TestNet3.pnml
diff --git a/src/main/resources/nets/TestNet4.pnml b/src/main/resources/nets/sample/TestNet4.pnml
similarity index 99%
rename from src/main/resources/nets/TestNet4.pnml
rename to src/main/resources/nets/sample/TestNet4.pnml
index c2615c5..5ea8aa7 100644
--- a/src/main/resources/nets/TestNet4.pnml
+++ b/src/main/resources/nets/sample/TestNet4.pnml
@@ -6,7 +6,7 @@
             <text>ServiceNet2</text>
         </name>
         <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-            <communicators>
+      <!--      <communicators>
                 <communicator>
                     <cType>serviceClient</cType>
                     <cSubnet>s1</cSubnet>
@@ -23,7 +23,7 @@
                     <cType>serviceServer</cType>
                     <cSubnet>s3</cSubnet>
                 </communicator>
-            </communicators>
+            </communicators>-->
         </toolspecific>
         <page id="top">
             <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
diff --git a/src/main/resources/nets/usecase/SortingNet.pnml b/src/main/resources/nets/usecase/SortingNet.pnml
new file mode 100644
index 0000000..c79d587
--- /dev/null
+++ b/src/main/resources/nets/usecase/SortingNet.pnml
@@ -0,0 +1,1194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml">
+    <net id="SortingNet" type="http://www.pnml.org/version-2009/grammar/ptnet">
+        <name>
+            <text>SortingNet</text>
+        </name>
+        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+            <inputsignals>
+                <inputsignal>
+                    <inputsignalID>SignalRed</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>SignalBlue</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>SignalGreen</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>Stop</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>PickFail</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>PickSuccess</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>PlaceFail</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>PlaceSuccess</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>SensorReady</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+            </inputsignals>
+        </toolspecific>
+
+        <page id="top">
+            <page id="SelectorNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>nodePage</type>
+                </toolspecific>
+                <place id="RedObjectPool">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeRed</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>RedObjectPool</text>
+                    </name>
+                </place>
+                <place id="BlueObjectPool">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeBlue</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>BlueObjectPool</text>
+                    </name>
+                </place>
+                <place id="GreenObjectPool">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeGreen</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>GreenObjectPool</text>
+                    </name>
+                </place>
+                <place id="RedPublisher">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeRed</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>RedPublisher</text>
+                    </name>
+                </place>
+                <place id="BluePublisher">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeBlue</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>BluePublisher</text>
+                    </name>
+                </place>
+                <place id="GreenPublisher">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeGreen</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>GreenPublisher</text>
+                    </name>
+                </place>
+
+                <transition id="SortRed">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeRed</subnet>
+                        <type>discreteTransitionType</type>
+                        <inputsignalclause>(SignalRed)</inputsignalclause>
+                    </toolspecific>
+                    <name>
+                        <text>SortRed</text>
+                    </name>
+                </transition>
+                <transition id="SortGreen">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeGreen</subnet>
+                        <type>discreteTransitionType</type>
+                        <inputsignalclause>(SignalGreen)</inputsignalclause>
+                    </toolspecific>
+                    <name>
+                        <text>SortGreen</text>
+                    </name>
+                </transition>
+                <transition id="SortBlue">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SelectorNode</node>
+                        <subnet>SelectorNodeBlue</subnet>
+                        <type>discreteTransitionType</type>
+                        <inputsignalclause>(SignalBlue)</inputsignalclause>
+                    </toolspecific>
+                    <name>
+                        <text>SortBlue</text>
+                    </name>
+                </transition>
+
+                <arc id="sn1" source="RedObjectPool" target="SortRed">
+                </arc>
+                <arc id="sn2" source="GreenObjectPool" target="SortGreen">
+                </arc>
+                <arc id="sn3" source="BlueObjectPool" target="SortBlue">
+                </arc>
+                <arc id="sn4" source="SortRed" target="RedPublisher">
+                </arc>
+                <arc id="sn5" source="SortGreen" target="GreenPublisher">
+                </arc>
+                <arc id="sn6" source="SortBlue" target="BluePublisher">
+                </arc>
+            </page>
+
+            <transition id="LeftCellObjectsTopicTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>topicTransitionType</type>
+                    <topicName>LeftCellObjects</topicName>
+                    <publishers>
+                        <publisher>
+                            <id>RedPublisher</id>
+                            <limit>10</limit>
+                        </publisher>
+                        <publisher>
+                            <id>GreenPublisher</id>
+                            <limit>10</limit>
+                        </publisher>
+                    </publishers>
+                    <subscribers>
+                        <subscriber>
+                            <id>L-AwaitingControl</id>
+                            <limit>20</limit>
+                        </subscriber>
+                    </subscribers>
+                </toolspecific>
+                <name>
+                    <text>LeftCellObjectsTopicTransition</text>
+                </name>
+            </transition>
+
+            <transition id="RightCellObjectsTopicTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>topicTransitionType</type>
+                    <topicName>RightCellObjects</topicName>
+                    <publishers>
+                        <publisher>
+                            <id>BluePublisher</id>
+                            <limit>10</limit>
+                        </publisher>
+                    </publishers>
+                    <subscribers>
+                        <subscriber>
+                            <id>R-AwaitingControl</id>
+                            <limit>10</limit>
+                        </subscriber>
+                    </subscribers>
+                </toolspecific>
+                <name>
+                    <text>RightCellObjectsTopicTransition</text>
+                </name>
+            </transition>
+
+            <page id="ControllerLeftNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>nodePage</type>
+                </toolspecific>
+
+                <place id="L-AwaitingControl">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>L-ControllerNode</node>
+                        <subnet>LC1</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>L-AwaitingControl</text>
+                    </name>
+                </place>
+
+                <place id="L-Ready">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>L-ControllerNode</node>
+                        <subnet>LC2</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>L-Ready</text>
+                    </name>
+                </place>
+
+                <place id="L-ObjectPicked">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>L-ControllerNode</node>
+                        <subnet>LC3</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>L-ObjectPicked</text>
+                    </name>
+                </place>
+
+                <place id="L-ObjectPlaced">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>L-ControllerNode</node>
+                        <subnet>LC4</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>L-ObjectPlaced</text>
+                    </name>
+                </place>
+
+                <place id="L-Done">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>L-ControllerNode</node>
+                        <subnet>LC5</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>L-Done</text>
+                    </name>
+                </place>
+            </page>
+
+            <page id="ControllerRightNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>nodePage</type>
+                </toolspecific>
+
+                <place id="R-AwaitingControl">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>R-ControllerNode</node>
+                        <subnet>RC1</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>R-AwaitingControl</text>
+                    </name>
+                </place>
+
+                <place id="R-Ready">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>R-ControllerNode</node>
+                        <subnet>RC2</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>R-Ready</text>
+                    </name>
+                </place>
+
+                <place id="R-ObjectPicked">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>R-ControllerNode</node>
+                        <subnet>RC3</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>R-ObjectPicked</text>
+                    </name>
+                </place>
+
+                <place id="R-ObjectPlaced">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>R-ControllerNode</node>
+                        <subnet>RC4</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>R-ObjectPlaced</text>
+                    </name>
+                </place>
+
+                <place id="R-Done">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>R-ControllerNode</node>
+                        <subnet>RC5</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>R-Done</text>
+                    </name>
+                </place>
+            </page>
+
+            <transition id="UiTopicTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>topicTransitionType</type>
+                    <topicName>UI</topicName>
+                    <publishers>
+                        <publisher>
+                            <id>R-Done</id>
+                            <limit>10</limit>
+                        </publisher>
+                        <publisher>
+                            <id>L-Done</id>
+                            <limit>10</limit>
+                        </publisher>
+                    </publishers>
+                    <subscribers>
+                        <subscriber>
+                            <id>FeedbackNode</id>
+                            <limit>20</limit>
+                        </subscriber>
+                    </subscribers>
+                </toolspecific>
+                <name>
+                    <text>UiTopicTransition</text>
+                </name>
+            </transition>
+
+            <page id="SynchronizerNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>nodePage</type>
+                </toolspecific>
+
+                <page id="GetControlServer">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <type>serverPrototype</type>
+                        <serviceName>GetControl</serviceName>
+                    </toolspecific>
+
+                    <place id="GetServerIn">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>SynchronizerNode</node>
+                            <subnet>GetServerSubnet</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>GetServerIn</text>
+                        </name>
+                    </place>
+
+                    <place id="GetServerOut">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>SynchronizerNode</node>
+                            <subnet>GetServerSubnet</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>GetServerOut</text>
+                        </name>
+                    </place>
+
+                    <transition id="GetT">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>SynchronizerNode</node>
+                            <subnet>GetServerSubnet</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>GetT</text>
+                        </name>
+                    </transition>
+
+                    <referencePlace id="GetServerRef" ref="Get">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <location>SynchronizerNode</location>
+                            <subnet>GetServerSubnet</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>GetServerRef</text>
+                        </name>
+                    </referencePlace>
+
+                    <arc id="gs1" source="GetServerIn" target="GetT">
+                    </arc>
+                    <arc id="gs2" source="GetT" target="GetServerOut">
+                    </arc>
+                    <arc id="gs3" source="referencePlace" target="GetT">
+                    </arc>
+
+                </page>
+
+                <page id="EndControlServer">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <type>serverPrototype</type>
+                        <serviceName>EndControl</serviceName>
+                    </toolspecific>
+
+                    <place id="EndServerIn">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>SynchronizerNode</node>
+                            <subnet>EndServerSubnet</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>EndServerIn</text>
+                        </name>
+                    </place>
+
+                    <place id="EndServerOut">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>SynchronizerNode</node>
+                            <subnet>EndServerSubnet</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>EndServerOut</text>
+                        </name>
+                    </place>
+
+                    <referenceTransition id="EndControlRef" ref="End">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <location>SynchronizerNode</location>
+                            <subnet>EndServerSubnet</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>EndControlRef</text>
+                        </name>
+                    </referenceTransition>
+
+                    <arc id="ec1" source="EndServerIn" target="EndControlRef">
+                    </arc>
+                    <arc id="ec2" source="EndControlRef" target="EndServerOut">
+                    </arc>
+
+                </page>
+
+                <page id="SemaphorePage">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <type>page</type>
+                    </toolspecific>
+
+                    <place id="Get">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>SynchronizerNode</node>
+                            <subnet>SP</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>Get</text>
+                        </name>
+                        <initialMarking>
+                            <text>1</text>
+                        </initialMarking>
+                    </place>
+
+                    <transition id="End">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>SynchronizerNode</node>
+                            <subnet>SP</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>SortBlue</text>
+                        </name>
+                    </transition>
+
+                    <arc id="sp1" source="Get" target="End">
+                    </arc>
+                </page>
+            </page>
+
+            <transition id="GetControlServiceTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>serviceTransitionType</type>
+                    <serviceName>GetControl</serviceName>
+                    <serverInput>GetServerIn</serverInput>
+                    <serverOutput>GetServerout</serverOutput>
+                    <serverCapacity>16</serverCapacity>
+                    <channels>
+                        <channel>
+                            <cid>LeftCellChannel</cid>
+                            <request>L-AwaitingControl</request>
+                            <response>L-Ready</response>
+                        </channel>
+                        <channel>
+                            <cid>RightCellChannel</cid>
+                            <request>R-AwaitingControl</request>
+                            <response>R-Ready</response>
+                        </channel>
+                    </channels>
+                </toolspecific>
+                <name>
+                    <text>GetControlServiceTransition</text>
+                </name>
+            </transition>
+
+            <transition id="EndControlServiceTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>serviceTransitionType</type>
+                    <serviceName>EndControl</serviceName>
+                    <serverInput>EndControlIn</serverInput>
+                    <serverOutput>EndControlOut</serverOutput>
+                    <serverCapacity>16</serverCapacity>
+                    <channels>
+                        <channel>
+                            <cid>LeftCellChannel</cid>
+                            <request>L-ObjectPlaced</request>
+                            <response>L-Done</response>
+                        </channel>
+                        <channel>
+                            <cid>RightCellChannel</cid>
+                            <request>R-ObjectPlaced</request>
+                            <response>R-Done</response>
+                        </channel>
+                    </channels>
+                </toolspecific>
+                <name>
+                    <text>EndControlServiceTransition</text>
+                </name>
+            </transition>
+
+            <page id="ExecutorNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>nodePage</type>
+                </toolspecific>
+
+                <page id="SafetyModelPage">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <type>page</type>
+                    </toolspecific>
+
+                    <place id="Unsafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>Unsafe</text>
+                        </name>
+                        <initialMarking>
+                            <text>1</text>
+                        </initialMarking>
+                    </place>
+
+                    <place id="Safe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>Safe</text>
+                        </name>
+                    </place>
+
+                    <place id="CallSensor">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>CallSensor</text>
+                        </name>
+                    </place>
+
+                    <place id="GetSensor">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>GetSensor</text>
+                        </name>
+                    </place>
+
+                    <transition id="SafeToUnsafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause>(Stop)</inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>SafeToUnsafe</text>
+                        </name>
+                    </transition>
+
+                    <transition id="UnsafeToSensorCall">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>UnsafeToSensorCall</text>
+                        </name>
+                    </transition>
+
+                    <transition id="GetSensorToSafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>GetSensorToSafe</text>
+                        </name>
+                    </transition>
+
+                    <transition id="SafeToCallSensor">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>SafeToCallSensor</text>
+                        </name>
+                    </transition>
+
+                    <transition id="GetSensorToUnsafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>GetSensorToUnsafe</text>
+                        </name>
+                    </transition>
+
+                    <arc id="sm1" source="Unsafe" target="UnsafeToSensorCall">
+                    </arc>
+                    <arc id="sm2" source="UnsafeToSensorCall" target="CallSensor">
+                    </arc>
+                    <arc id="sm3" source="GetSensorToUnsafe" target="Unsafe">
+                    </arc>
+                    <arc id="sm4" source="SafeToUnsafe" target="Unsafe">
+                    </arc>
+                    <arc id="sm5" source="Safe" target="SafeToUnsafe">
+                    </arc>
+                    <arc id="sm6" source="Safe" target="SafeToCallSensor">
+                    </arc>
+                    <arc id="sm7" source="SafeToCallSensor" target="CallSensor">
+                    </arc>
+                    <arc id="sm8" source="GetSensor" target="GetSensorToUnsafe">
+                    </arc>
+                    <arc id="sm9" source="GetSensor" target="GetSensorToSafe">
+                    </arc>
+                    <arc id="sm10" source="GetSensorToSafe" target="Safe">
+                    </arc>
+
+                </page>
+
+                <page id="PickServerPage">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <type>serverPrototype</type>
+                        <serviceName>PickService</serviceName>
+                    </toolspecific>
+
+                    <place id="PickInput">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PickInput</text>
+                        </name>
+                    </place>
+
+                    <place id="PickSystemOK">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PickSystemOK</text>
+                        </name>
+                    </place>
+
+                    <place id="PickSystemFailure">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PickSystemFailure</text>
+                        </name>
+                    </place>
+
+                    <place id="PickOutput">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PickOutput</text>
+                        </name>
+                    </place>
+
+                    <place id="PickInter">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PickInter</text>
+                        </name>
+                    </place>
+
+                    <referencePlace id="PickSafeRef" ref="Safe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <location>ExecutorNode</location>
+                            <subnet>PickS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PickSafeRef</text>
+                        </name>
+                    </referencePlace>
+
+                    <referencePlace id="PickUnsafeRef" ref="Unsafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <location>ExecutorNode</location>
+                            <subnet>PickS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PickUnsafeRef</text>
+                        </name>
+                    </referencePlace>
+
+                    <transition id="PickUnsafeTransition">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PickUnsafeTransition</text>
+                        </name>
+                    </transition>
+
+                    <transition id="PickOkToFailure">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause>(PickFail)</inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PickOkToFailure</text>
+                        </name>
+                    </transition>
+
+                    <transition id="PickFailureToOutput">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PickFailureToOutput</text>
+                        </name>
+                    </transition>
+
+                    <transition id="PickSafeTransition">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PickSafeTransition</text>
+                        </name>
+                    </transition>
+
+                    <transition id="PickSafeToOutput">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PickS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause>(PickSuccess)</inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PickSafeToOutput</text>
+                        </name>
+                    </transition>
+
+                    <arc id="ps1" source="PickUnsafeRef" target="PickUnsafeTransition">
+                    </arc>
+                    <arc id="ps2" source="PickUnsafeTransition" target="PickUnsafeRef">
+                    </arc>
+                    <arc id="ps3" source="PickSystemOK" target="PickUnsafeTransition">
+                    </arc>
+                    <arc id="ps4" source="PickSafeTransition" target="PickSystemOK">
+                    </arc>
+                    <arc id="ps5" source="PickSafeTransition" target="PickSafeRef">
+                    </arc>
+                    <arc id="ps6" source="PickSafeRef" target="PickSafeTransition">
+                    </arc>
+                    <arc id="ps7" source="PickInput" target="PickSafeTransition">
+                    </arc>
+                    <arc id="ps8" source="PickSafeTransition" target="PickInter">
+                    </arc>
+                    <arc id="ps9" source="PickInter" target="PickSafeToOutput">
+                    </arc>
+                    <arc id="ps10" source="PickInter" target="PickFailureToOutput">
+                    </arc>
+                    <arc id="ps11" source="PickFailureToOutput" target="PickOutput">
+                    </arc>
+                    <arc id="ps12" source="PickSafeToOutput" target="PickOutput">
+                    </arc>
+                    <arc id="ps13" source="PickSystemOK" target="PickOkToFailure">
+                    </arc>
+                    <arc id="ps14" source="PickOkToFailure" target="PickSystemFailure">
+                    </arc>
+                    <arc id="ps15" source="PickSystemFailure" target="PickFailureToOutput">
+                    </arc>
+                    <arc id="ps16" source="PickUnsafeTransition" target="PickSystemFailure">
+                    </arc>
+
+                </page>
+
+                <page id="PlaceServerPage">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <type>serverPrototype</type>
+                        <serviceName>PlaceService</serviceName>
+                    </toolspecific>
+
+                    <place id="PlaceInput">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceInput</text>
+                        </name>
+                    </place>
+
+                    <place id="PlaceSystemOK">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceSystemOK</text>
+                        </name>
+                    </place>
+
+                    <place id="PlaceSystemFailure">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceSystemFailure</text>
+                        </name>
+                    </place>
+
+                    <place id="PlaceOutput">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceOutput</text>
+                        </name>
+                    </place>
+
+                    <place id="PlaceInter">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceInter</text>
+                        </name>
+                    </place>
+
+                    <referencePlace id="PlaceSafeRef" ref="Safe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <location>ExecutorNode</location>
+                            <subnet>PlaceS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceSafeRef</text>
+                        </name>
+                    </referencePlace>
+
+                    <referencePlace id="PlaceUnsafeRef" ref="Unsafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <location>ExecutorNode</location>
+                            <subnet>PlaceS</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceUnsafeRef</text>
+                        </name>
+                    </referencePlace>
+
+                    <transition id="PlaceUnsafeTransition">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceUnsafeTransition</text>
+                        </name>
+                    </transition>
+
+                    <transition id="PlaceOkToFailure">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause>(PlaceFail)</inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceOkToFailure</text>
+                        </name>
+                    </transition>
+
+                    <transition id="PlaceFailureToOutput">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceFailureToOutput</text>
+                        </name>
+                    </transition>
+
+                    <transition id="PlaceSafeTransition">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceSafeTransition</text>
+                        </name>
+                    </transition>
+
+                    <transition id="PlaceSafeToOutput">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>PlaceS</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause>(PlaceSuccess)</inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>PlaceSafeToOutput</text>
+                        </name>
+                    </transition>
+
+                    <arc id="pls1" source="PlaceUnsafeRef" target="PlaceUnsafeTransition">
+                    </arc>
+                    <arc id="pls2" source="PlaceUnsafeTransition" target="PlaceUnsafeRef">
+                    </arc>
+                    <arc id="pls3" source="PlaceSystemOK" target="PlaceUnsafeTransition">
+                    </arc>
+                    <arc id="pls4" source="PlaceSafeTransition" target="PlaceSystemOK">
+                    </arc>
+                    <arc id="pls5" source="PlaceSafeTransition" target="PlaceSafeRef">
+                    </arc>
+                    <arc id="pls6" source="PlaceSafeRef" target="PlaceSafeTransition">
+                    </arc>
+                    <arc id="pls7" source="PlaceInput" target="PlaceSafeTransition">
+                    </arc>
+                    <arc id="pls8" source="PlaceSafeTransition" target="PlaceInter">
+                    </arc>
+                    <arc id="pls9" source="PlaceInter" target="PlaceSafeToOutput">
+                    </arc>
+                    <arc id="pls10" source="PlaceInter" target="PlaceFailureToOutput">
+                    </arc>
+                    <arc id="pls11" source="PlaceFailureToOutput" target="PlaceOutput">
+                    </arc>
+                    <arc id="pls12" source="PlaceSafeToOutput" target="PlaceOutput">
+                    </arc>
+                    <arc id="pls13" source="PlaceSystemOK" target="PlaceOkToFailure">
+                    </arc>
+                    <arc id="pls14" source="PlaceOkToFailure" target="PlaceSystemFailure">
+                    </arc>
+                    <arc id="pls15" source="PlaceSystemFailure" target="PlaceFailureToOutput">
+                    </arc>
+                    <arc id="pls16" source="PlaceUnsafeTransition" target="PlaceSystemFailure">
+                    </arc>
+                </page>
+            </page>
+
+            <transition id="PlaceServiceTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>serviceTransitionType</type>
+                    <serviceName>PlaceService</serviceName>
+                    <serverInput>PlaceServiceInput</serverInput>
+                    <serverOutput>PlaceServiceOutput</serverOutput>
+                    <serverCapacity>16</serverCapacity>
+                    <channels>
+                        <channel>
+                            <cid>LeftCellChannel</cid>
+                            <request>L-ObjectPicked</request>
+                            <response>L-ObjectPlaced</response>
+                        </channel>
+                        <channel>
+                            <cid>LeftCellChannel</cid>
+                            <request>R-ObjectPicked</request>
+                            <response>R-ObjectPlaced</response>
+                        </channel>
+                    </channels>
+                </toolspecific>
+                <name>
+                    <text>PlaceServiceTransition</text>
+                </name>
+            </transition>
+
+            <transition id="PickServiceTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>serviceTransitionType</type>
+                    <serviceName>PickService</serviceName>
+                    <serverInput>PickServiceInput</serverInput>
+                    <serverOutput>PickServiceOutput</serverOutput>
+                    <serverCapacity>16</serverCapacity>
+                    <channels>
+                        <channel>
+                            <cid>LeftCellChannel</cid>
+                            <request>L-Ready</request>
+                            <response>L-ObjectPicked</response>
+                        </channel>
+                        <channel>
+                            <cid>LeftCellChannel</cid>
+                            <request>R-Ready</request>
+                            <response>R-ObjectPicked</response>
+                        </channel>
+                    </channels>
+                </toolspecific>
+                <name>
+                    <text>PickServiceTransition</text>
+                </name>
+            </transition>
+
+            <transition id="SensorServiceTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>serviceTransitionType</type>
+                    <serviceName>SensorService</serviceName>
+                    <serverInput>SensorServiceIn</serverInput>
+                    <serverOutput>SensorServiceOut</serverOutput>
+                    <serverCapacity>16</serverCapacity>
+                    <channels>
+                        <channel>
+                            <cid>LeftCellChannel</cid>
+                            <request>CallSensor</request>
+                            <response>GetSensor</response>
+                        </channel>
+                    </channels>
+                </toolspecific>
+                <name>
+                    <text>SensorServiceTransition</text>
+                </name>
+            </transition>
+
+            <page id="SensorNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>serverPrototype</type>
+                    <serviceName>SensorService</serviceName>
+                </toolspecific>
+
+                <place id="SensorServiceIn">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>SensorServiceIn</text>
+                    </name>
+                </place>
+
+                <place id="SensorResult">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>SensorResult</text>
+                    </name>
+                </place>
+
+                <place id="SensorServiceOut">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>SensorServiceOut</text>
+                    </name>
+                </place>
+
+                <transition id="GetSensorData">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                        <type>discreteTransitionType</type>
+                        <inputsignalclause>(SensorReady)</inputsignalclause>
+                    </toolspecific>
+                    <name>
+                        <text>GetSensorData</text>
+                    </name>
+                </transition>
+
+                <transition id="ProcessSensorData">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                        <type>discreteTransitionType</type>
+                        <inputsignalclause></inputsignalclause>
+                    </toolspecific>
+                    <name>
+                        <text>ProcessSensorData</text>
+                    </name>
+                </transition>
+
+                <arc id="ses1" source="SensorServiceIn" target="GetSensorData">
+                </arc>
+                <arc id="ses2" source="GetSensorData" target="SensorResult">
+                </arc>
+                <arc id="ses3" source="SensorResult" target="ProcessSensorData">
+                </arc>
+                <arc id="ses4" source="ProcessSensorData" target="SensorServiceOut">
+                </arc>
+            </page>
+
+            <page id="FeedbackNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>nodePage</type>
+                </toolspecific>
+
+                <place id="FeedbackSubscriber">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>FeedbackNode</node>
+                        <subnet>FNS</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>FeedbackSubscriber</text>
+                    </name>
+                </place>
+
+                <place id="FeedbackFinished">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>FeedbackNode</node>
+                        <subnet>FNS</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>FeedbackFinished</text>
+                    </name>
+                </place>
+
+                <transition id="CreateFeedback">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>FeedbackNode</node>
+                        <subnet>FNS</subnet>
+                        <type>discreteTransitionType</type>
+                        <inputsignalclause></inputsignalclause>
+                    </toolspecific>
+                    <name>
+                        <text>CreateFeedback</text>
+                    </name>
+                </transition>
+
+                <arc id="fn1" source="FeedbackSubscriber" target="CreateFeedback">
+                </arc>
+                <arc id="fn2" source="CreateFeedback" target="FeedbackFinished">
+                </arc>
+            </page>
+        </page>
+    </net>
+</pnml>
diff --git a/src/main/resources/nets/usecase/SortingNetSensor.pnml b/src/main/resources/nets/usecase/SortingNetSensor.pnml
new file mode 100644
index 0000000..87f9acb
--- /dev/null
+++ b/src/main/resources/nets/usecase/SortingNetSensor.pnml
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml">
+    <net id="SortingNetSensor" type="http://www.pnml.org/version-2009/grammar/ptnet">
+        <name>
+            <text>SortingNetSensor</text>
+        </name>
+        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+            <inputsignals>
+                <inputsignal>
+                    <inputsignalID>Stop</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+                <inputsignal>
+                    <inputsignalID>SensorReady</inputsignalID>
+                    <initialvalue>false</initialvalue>
+                </inputsignal>
+            </inputsignals>
+        </toolspecific>
+
+        <page id="top">
+            <page id="ExecutorNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>nodePage</type>
+                </toolspecific>
+
+                <page id="SafetyModelPage">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <type>page</type>
+                    </toolspecific>
+
+                    <place id="Unsafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>Unsafe</text>
+                        </name>
+                        <initialMarking>
+                            <text>1</text>
+                        </initialMarking>
+                    </place>
+
+                    <place id="Safe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>Safe</text>
+                        </name>
+                    </place>
+
+                    <place id="CallSensor">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>CallSensor</text>
+                        </name>
+                    </place>
+
+                    <place id="GetSensor">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                        </toolspecific>
+                        <name>
+                            <text>GetSensor</text>
+                        </name>
+                    </place>
+
+                    <transition id="SafeToUnsafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause>(Stop)</inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>SafeToUnsafe</text>
+                        </name>
+                    </transition>
+
+                    <transition id="UnsafeToSensorCall">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>UnsafeToSensorCall</text>
+                        </name>
+                    </transition>
+
+                    <transition id="GetSensorToSafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>GetSensorToSafe</text>
+                        </name>
+                    </transition>
+
+                    <transition id="SafeToCallSensor">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>SafeToCallSensor</text>
+                        </name>
+                    </transition>
+
+                    <transition id="GetSensorToUnsafe">
+                        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                            <node>ExecutorNode</node>
+                            <subnet>SafetyModel</subnet>
+                            <type>discreteTransitionType</type>
+                            <inputsignalclause></inputsignalclause>
+                        </toolspecific>
+                        <name>
+                            <text>GetSensorToUnsafe</text>
+                        </name>
+                    </transition>
+
+                    <arc id="sm1" source="Unsafe" target="UnsafeToSensorCall">
+                    </arc>
+                    <arc id="sm2" source="UnsafeToSensorCall" target="CallSensor">
+                    </arc>
+                    <arc id="sm3" source="GetSensorToUnsafe" target="Unsafe">
+                    </arc>
+                    <arc id="sm4" source="SafeToUnsafe" target="Unsafe">
+                    </arc>
+                    <arc id="sm5" source="Safe" target="SafeToUnsafe">
+                    </arc>
+                    <arc id="sm6" source="Safe" target="SafeToCallSensor">
+                    </arc>
+                    <arc id="sm7" source="SafeToCallSensor" target="CallSensor">
+                    </arc>
+                    <arc id="sm8" source="GetSensor" target="GetSensorToUnsafe">
+                    </arc>
+                    <arc id="sm9" source="GetSensor" target="GetSensorToSafe">
+                    </arc>
+                    <arc id="sm10" source="GetSensorToSafe" target="Safe">
+                    </arc>
+
+                </page>
+            </page>
+
+            <transition id="SensorServiceTransition">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>serviceTransitionType</type>
+                    <serviceName>SensorService</serviceName>
+                    <serverInput>SensorServiceIn</serverInput>
+                    <serverOutput>SensorServiceOut</serverOutput>
+                    <serverCapacity>16</serverCapacity>
+                    <channels>
+                        <channel>
+                            <cid>LeftCellChannel</cid>
+                            <request>CallSensor</request>
+                            <response>GetSensor</response>
+                        </channel>
+                    </channels>
+                </toolspecific>
+                <name>
+                    <text>SensorServiceTransition</text>
+                </name>
+            </transition>
+
+            <page id="SensorNodePage">
+                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                    <type>serverPrototype</type>
+                    <serviceName>SensorService</serviceName>
+                </toolspecific>
+
+                <place id="SensorServiceIn">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>SensorServiceIn</text>
+                    </name>
+                </place>
+
+                <place id="SensorResult">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>SensorResult</text>
+                    </name>
+                </place>
+
+                <place id="SensorServiceOut">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                    </toolspecific>
+                    <name>
+                        <text>SensorServiceOut</text>
+                    </name>
+                </place>
+
+                <transition id="GetSensorData">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                        <type>discreteTransitionType</type>
+                        <inputsignalclause>(SensorReady AND NOT SensorReady)</inputsignalclause>
+                    </toolspecific>
+                    <name>
+                        <text>GetSensorData</text>
+                    </name>
+                </transition>
+
+                <transition id="ProcessSensorData">
+                    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+                        <node>SensorNode</node>
+                        <subnet>SeS</subnet>
+                        <type>discreteTransitionType</type>
+                        <inputsignalclause></inputsignalclause>
+                    </toolspecific>
+                    <name>
+                        <text>ProcessSensorData</text>
+                    </name>
+                </transition>
+
+                <arc id="ses1" source="SensorServiceIn" target="GetSensorData">
+                </arc>
+                <arc id="ses2" source="GetSensorData" target="SensorResult">
+                </arc>
+                <arc id="ses3" source="SensorResult" target="ProcessSensorData">
+                </arc>
+                <arc id="ses4" source="ProcessSensorData" target="SensorServiceOut">
+                </arc>
+            </page>
+        </page>
+    </net>
+</pnml>
\ No newline at end of file
-- 
GitLab