Skip to content
Snippets Groups Projects
Commit a1d86068 authored by Sebastian Ebert's avatar Sebastian Ebert
Browse files

fixed service modelling

parent c1552d4d
No related branches found
No related tags found
No related merge requests found
...@@ -33,8 +33,8 @@ public class Main { ...@@ -33,8 +33,8 @@ public class Main {
// parse the global not flatted petri net // parse the global not flatted petri net
// pnmlPath = "../pnml-relast-nets/src/main/resources/signalFlatteningTestNets/inputsignal-simple-3.pnml"; // pnmlPath = "../pnml-relast-nets/src/main/resources/signalFlatteningTestNets/inputsignal-simple-3.pnml";
//pnmlPath = "../pnml-relast-nets/src/main/resources/serviceTestNets/structureTestNets/service-structure-correct.pnml"; // String pnmlPath = "../pnml-relast-nets/src/main/resources/serviceTestNets/structureTestNets/service-structure-correct.pnml";
//configPath = "src/main/config/config.json"; // String configPath = "src/main/config/config.json";
PetriNet petriNet = PnmlParser.parsePnml(pnmlPath).get(0); PetriNet petriNet = PnmlParser.parsePnml(pnmlPath).get(0);
// read config for analyzer from file // read config for analyzer from file
...@@ -64,12 +64,12 @@ public class Main { ...@@ -64,12 +64,12 @@ public class Main {
// flat service clients / servers to instance based semantics // flat service clients / servers to instance based semantics
logger.error("[FLATTER] Breaking down service channels."); logger.error("[FLATTER] Breaking down service channels.");
PetriNet serviceFlattedPetriNet = ChannelFlatter.flatServiceChannels(topicFlattedPetriNet); PetriNet serviceFlattedPetriNet = ChannelFlatter.flatServiceChannels(topicFlattedPetriNet);
printNet(serviceFlattedPetriNet); // printNet(serviceFlattedPetriNet);
// flat input signals // flat input signals
logger.error("[FLATTER] Breaking down signals."); logger.error("[FLATTER] Breaking down signals.");
PetriNet signalFlattedPetriNet = ChannelFlatter.flatSignals(serviceFlattedPetriNet); PetriNet signalFlattedPetriNet = ChannelFlatter.flatSignals(serviceFlattedPetriNet);
// printNet(signalFlattedPetriNet); printNet(signalFlattedPetriNet);
// export flatted net to pnml // export flatted net to pnml
logger.error("[FLATTER] Exporting to pnml."); logger.error("[FLATTER] Exporting to pnml.");
...@@ -171,6 +171,7 @@ public class Main { ...@@ -171,6 +171,7 @@ public class Main {
logger.error("----------------- ARCS -----------------"); logger.error("----------------- ARCS -----------------");
for (Arc a : petriNet.allArcs()) { for (Arc a : petriNet.allArcs()) {
logger.error("Arc: " + a.getId());
logger.error("Arc: " + a.getId() + " -- source: " + a.getSource().getId() + " -- target: " + a.getTarget().getId()); logger.error("Arc: " + a.getId() + " -- source: " + a.getSource().getId() + " -- target: " + a.getTarget().getId());
if(a.getNumToolspecific() > 0){ if(a.getNumToolspecific() > 0){
......
...@@ -60,4 +60,5 @@ public final class TemplateConstants { ...@@ -60,4 +60,5 @@ public final class TemplateConstants {
public static final String SERVICE_CLIENT_CONNECTOR_TRANSITION = "ServiceClientConnectorTransition"; public static final String SERVICE_CLIENT_CONNECTOR_TRANSITION = "ServiceClientConnectorTransition";
public static final String SERVICE_QUEUE_OUTPUT_PLACE = "ServiceQueueOutputPlace"; public static final String SERVICE_QUEUE_OUTPUT_PLACE = "ServiceQueueOutputPlace";
public static final String SERVICE_QUEUE_CAPACITY_PLACE = "ServiceQueueCapacityPlace"; public static final String SERVICE_QUEUE_CAPACITY_PLACE = "ServiceQueueCapacityPlace";
public static final String SERVICE_FEEDBACK_PLACE = "ServiceFeedbackPlace";
} }
...@@ -84,7 +84,7 @@ public class ChannelFlatter { ...@@ -84,7 +84,7 @@ public class ChannelFlatter {
petriNet.flushTreeCache(); petriNet.flushTreeCache();
} else { } else {
attachANDSignalNetToBaseSignalNet(petriNet, entry.getValue().get(i), attachANDSignalNetToBaseSignalNet(petriNet, entry.getValue().get(i),
getTransitionByID(petriNet, actToInActId).asInputSignalTransition(), Objects.requireNonNull(getTransitionByID(petriNet, actToInActId)).asInputSignalTransition(),
getTransitionByID(petriNet, inActToActId).asInputSignalTransition(), i, entry.getKey(), isActiveSignal); getTransitionByID(petriNet, inActToActId).asInputSignalTransition(), i, entry.getKey(), isActiveSignal);
} }
...@@ -648,44 +648,44 @@ public class ChannelFlatter { ...@@ -648,44 +648,44 @@ public class ChannelFlatter {
// link the template instance to the net via arcs // link the template instance to the net via arcs
Arc channelClientInputArc = new Arc(); Arc channelClientInputArc = new Arc();
channelClientInputArc.setId("channel-client-input-arc" + channel_suffix); channelClientInputArc.setId("channel-client-input-arc-" + channel_suffix);
channelClientInputArc.setSource(incomingPlace); channelClientInputArc.setSource(incomingPlace);
channelClientInputArc.setTarget(getTransitionByID(petriNet, TemplateConstants.SERVICE_CLIENT_INPUT_TRANSITION + "-" + channel_suffix)); channelClientInputArc.setTarget(getTransitionByID(petriNet, TemplateConstants.SERVICE_CLIENT_INPUT_TRANSITION + "-" + channel_suffix));
topPage.addObject(channelClientInputArc); topPage.addObject(channelClientInputArc);
Arc channelClientOutputArc = new Arc(); Arc channelClientOutputArc = new Arc();
channelClientOutputArc.setId("channel-client-output-arc" + channel_suffix); channelClientOutputArc.setId("channel-client-output-arc-" + channel_suffix);
channelClientOutputArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_CLIENT_OUTPUT_TRANSITION + "-" + channel_suffix)); channelClientOutputArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_CLIENT_OUTPUT_TRANSITION + "-" + channel_suffix));
channelClientOutputArc.setTarget(responseTransition.getOutArcs().get(clientCount).getTarget()); channelClientOutputArc.setTarget(responseTransition.getOutArcs().get(clientCount).getTarget());
topPage.addObject(channelClientOutputArc); topPage.addObject(channelClientOutputArc);
Arc channelServerInputArc = new Arc(); Arc channelServerInputArc = new Arc();
channelServerInputArc.setId("channel-server-input-arc" + channel_suffix); channelServerInputArc.setId("channel-server-input-arc-" + channel_suffix);
channelServerInputArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_INPUT_TRANSITION + "-" + channel_suffix)); channelServerInputArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_INPUT_TRANSITION + "-" + channel_suffix));
channelServerInputArc.setTarget(ioPlacePair._1); channelServerInputArc.setTarget(ioPlacePair._1);
topPage.addObject(channelServerInputArc); topPage.addObject(channelServerInputArc);
Arc channelServerOutputArc = new Arc(); Arc channelServerOutputArc = new Arc();
channelServerOutputArc.setId("channel-server-output-arc" + channel_suffix); channelServerOutputArc.setId("channel-server-output-arc-" + channel_suffix);
channelServerOutputArc.setSource(ioPlacePair._2); channelServerOutputArc.setSource(ioPlacePair._2);
channelServerOutputArc.setTarget(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_OUTPUT_TRANSITION + "-" + channel_suffix)); channelServerOutputArc.setTarget(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_OUTPUT_TRANSITION + "-" + channel_suffix));
topPage.addObject(channelServerOutputArc); topPage.addObject(channelServerOutputArc);
// new arcs in service v3 // new arcs in service v3
Arc serviceQueueInputArc = new Arc(); Arc serviceQueueInputArc = new Arc();
serviceQueueInputArc.setId("channel-server-queue-input-arc" + channel_suffix); serviceQueueInputArc.setId("channel-server-queue-input-arc-" + channel_suffix);
serviceQueueInputArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_CLIENT_CONNECTOR_TRANSITION + "-" + channel_suffix)); serviceQueueInputArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_CLIENT_CONNECTOR_TRANSITION + "-" + channel_suffix));
serviceQueueInputArc.setTarget(getPlaceByID(petriNet, TemplateConstants.SERVICE_QUEUE_INPUT_PLACE + "-" + queue_suffix)); serviceQueueInputArc.setTarget(getPlaceByID(petriNet, TemplateConstants.SERVICE_QUEUE_INPUT_PLACE + "-" + queue_suffix));
topPage.addObject(serviceQueueInputArc); topPage.addObject(serviceQueueInputArc);
Arc queueToServerArc = new Arc(); Arc queueToServerArc = new Arc();
queueToServerArc.setId("queue-to-server-arc" + channel_suffix); queueToServerArc.setId("queue-to-server-arc-" + channel_suffix);
queueToServerArc.setSource(getPlaceByID(petriNet, TemplateConstants.SERVICE_QUEUE_OUTPUT_PLACE + "-" + queue_suffix)); queueToServerArc.setSource(getPlaceByID(petriNet, TemplateConstants.SERVICE_QUEUE_OUTPUT_PLACE + "-" + queue_suffix));
queueToServerArc.setTarget(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_INPUT_TRANSITION + "-" + channel_suffix)); queueToServerArc.setTarget(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_INPUT_TRANSITION + "-" + channel_suffix));
topPage.addObject(queueToServerArc); topPage.addObject(queueToServerArc);
Arc serverToQueueArc = new Arc(); Arc serverToQueueArc = new Arc();
serverToQueueArc.setId("server-to-queue-arc" + channel_suffix); serverToQueueArc.setId("server-to-queue-arc-" + channel_suffix);
serverToQueueArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_OUTPUT_TRANSITION + "-" + channel_suffix)); serverToQueueArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_OUTPUT_TRANSITION + "-" + channel_suffix));
serverToQueueArc.setTarget(getPlaceByID(petriNet, TemplateConstants.SERVICE_QUEUE_CAPACITY_PLACE + "-" + queue_suffix)); serverToQueueArc.setTarget(getPlaceByID(petriNet, TemplateConstants.SERVICE_QUEUE_CAPACITY_PLACE + "-" + queue_suffix));
topPage.addObject(serverToQueueArc); topPage.addObject(serverToQueueArc);
...@@ -693,6 +693,28 @@ public class ChannelFlatter { ...@@ -693,6 +693,28 @@ public class ChannelFlatter {
serverOutTransitions.add(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_OUTPUT_TRANSITION + "-" + channel_suffix)); serverOutTransitions.add(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_OUTPUT_TRANSITION + "-" + channel_suffix));
serverInTransitions.add(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_INPUT_TRANSITION + "-" + channel_suffix)); serverInTransitions.add(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_INPUT_TRANSITION + "-" + channel_suffix));
// FeedbackPlace Integration
OutputSignalPlace serverFeedbackPlace = PrimitiveTemplates.getOutputSignalPlace();
serverFeedbackPlace.setId(TemplateConstants.SERVICE_FEEDBACK_PLACE + "-" + channel_suffix);
Place capPlace = getPlaceByID(petriNet, TemplateConstants.SERVICE_QUEUE_CAPACITY_PLACE + "-" + queue_suffix);
serverFeedbackPlace.setToolspecificList(capPlace.getToolspecificList().treeCopy());
serverFeedbackPlace.getName().setText(TemplateConstants.SERVICE_FEEDBACK_PLACE + "-" + channel_suffix);
serverFeedbackPlace.setNodeGraphics(capPlace.getNodeGraphics().treeCopy());
serverFeedbackPlace.getInitialMarking().setText(1);
topPage.addObject(serverFeedbackPlace);
Arc feedbackToInputArc = new Arc();
feedbackToInputArc.setId("feedbackplace-to-inputtransition-arc-" + channel_suffix);
feedbackToInputArc.setSource(serverFeedbackPlace);
feedbackToInputArc.setTarget(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_INPUT_TRANSITION + "-" + channel_suffix));
topPage.addObject(feedbackToInputArc);
Arc outputToFeedbackArc = new Arc();
outputToFeedbackArc.setId("outputtransition-to-feedbackplace-arc-" + channel_suffix);
outputToFeedbackArc.setSource(getTransitionByID(petriNet, TemplateConstants.SERVICE_SERVER_OUTPUT_TRANSITION + "-" + channel_suffix));
outputToFeedbackArc.setTarget(serverFeedbackPlace);
topPage.addObject(outputToFeedbackArc);
// flush // flush
petriNet.flushTreeCache(); petriNet.flushTreeCache();
clientCount++; clientCount++;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment