From 419eb782e19d470636929e56a833433c1ebaf193 Mon Sep 17 00:00:00 2001 From: Simon <simon.eismann@uni-wuerzburg.de> Date: Mon, 5 Mar 2018 16:00:50 +0100 Subject: [PATCH] cleaned up video store use case 2 and added static analysis --- .../HelloWorldExample/DML-Model/My.probes | 2 + .../DML-Model/My.variablemapping | 2 + .../DML-Model/min.taggedrepository | 8 + dml-examples/Simple.functions | 8 + .../DML-Model/usecase2/EU.usageprofile | 55 --- .../high.usageprofile} | 0 .../DML-Model/usecase2/EU/low.usageprofile | 145 +++++++ .../DML-Model/usecase2/EU/lowest.usageprofile | 145 +++++++ .../DML-Model/usecase2/EU/med.usageprofile | 145 +++++++ .../usecase2/{ => EU}/videostore.deployment | 0 .../usecase2/{ => EU}/videostore.repository | 0 .../{ => EU}/videostore.resourcelandscape | 0 .../usecase2/{ => EU}/videostore.system | 0 .../DML-Model/usecase2/NA/high.usageprofile | 146 +++++++ .../DML-Model/usecase2/NA/low.usageprofile | 146 +++++++ .../DML-Model/usecase2/NA/lowest.usageprofile | 146 +++++++ .../DML-Model/usecase2/NA/med.usageprofile | 146 +++++++ .../usecase2/NA/videostore.deployment | 13 + .../usecase2/NA/videostore.repository | 144 +++++++ .../usecase2/NA/videostore.resourcelandscape | 11 + .../DML-Model/usecase2/NA/videostore.system | 359 ++++++++++++++++++ .../usecase2/Static/high.usageprofile | 19 + .../usecase2/Static/low.usageprofile | 19 + .../usecase2/Static/lowest.usageprofile | 19 + .../usecase2/Static/med.usageprofile | 19 + .../usecase2/Static/videostore.deployment | 13 + .../usecase2/Static/videostore.repository | 127 +++++++ .../Static/videostore.resourcelandscape | 11 + .../usecase2/Static/videostore.system | 19 + .../BoundsAnalysis.dql} | 0 .../BoundsAnalysisComparison.dql} | 0 .../usecase1.properties | 0 .../VideoStore/DQL-Queries/usecase2.rar | Bin 111691 -> 0 bytes .../usecase2/BoundsAnalysis - usecase2.dql | 7 - .../DQL-Queries/usecase2/DMLSelectMetrics.dql | 5 - .../usecase2/PaperMetrics_EU_high.dql | 7 + ...- usecase2.dql => PaperMetrics_EU_low.dql} | 5 +- .../usecase2/PaperMetrics_EU_lowest.dql | 7 + .../usecase2/PaperMetrics_EU_med.dql | 7 + .../usecase2/PaperMetrics_NA_high.dql | 7 + .../usecase2/PaperMetrics_NA_low.dql | 7 + .../usecase2/PaperMetrics_NA_lowest.dql | 7 + .../usecase2/PaperMetrics_NA_med.dql | 7 + .../usecase2/PaperMetrics_Static_high.dql | 7 + .../usecase2/PaperMetrics_Static_low.dql | 7 + .../usecase2/PaperMetrics_Static_lowest.dql | 7 + .../usecase2/PaperMetrics_Static_med.dql | 7 + .../PaperMetrics_EU_high.properties | 7 + .../properties/PaperMetrics_EU_low.properties | 7 + .../PaperMetrics_EU_lowest.properties | 7 + .../properties/PaperMetrics_EU_med.properties | 7 + .../PaperMetrics_NA_high.properties | 7 + .../properties/PaperMetrics_NA_low.properties | 7 + .../PaperMetrics_NA_lowest.properties | 7 + .../properties/PaperMetrics_NA_med.properties | 7 + .../PaperMetrics_Static_high.properties | 7 + .../PaperMetrics_Static_low.properties | 7 + .../PaperMetrics_Static_lowest.properties | 7 + .../PaperMetrics_Static_med.properties | 7 + .../DQL-Queries/usecase2/usecase2.properties | 7 - 60 files changed, 1976 insertions(+), 76 deletions(-) create mode 100644 dml-examples/HelloWorldExample/DML-Model/My.probes create mode 100644 dml-examples/HelloWorldExample/DML-Model/My.variablemapping create mode 100644 dml-examples/HelloWorldExample/DML-Model/min.taggedrepository create mode 100644 dml-examples/Simple.functions delete mode 100644 dml-examples/VideoStore/DML-Model/usecase2/EU.usageprofile rename dml-examples/VideoStore/DML-Model/usecase2/{videostore.usageprofile => EU/high.usageprofile} (100%) create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/EU/low.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/EU/lowest.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/EU/med.usageprofile rename dml-examples/VideoStore/DML-Model/usecase2/{ => EU}/videostore.deployment (100%) rename dml-examples/VideoStore/DML-Model/usecase2/{ => EU}/videostore.repository (100%) rename dml-examples/VideoStore/DML-Model/usecase2/{ => EU}/videostore.resourcelandscape (100%) rename dml-examples/VideoStore/DML-Model/usecase2/{ => EU}/videostore.system (100%) create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/NA/high.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/NA/low.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/NA/lowest.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/NA/med.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.deployment create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.repository create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.resourcelandscape create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.system create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/Static/high.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/Static/low.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/Static/lowest.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/Static/med.usageprofile create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.deployment create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.repository create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.resourcelandscape create mode 100644 dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.system rename dml-examples/VideoStore/DQL-Queries/{usecase2/BoundsAnalysis - usecase1.dql => usecase1/BoundsAnalysis.dql} (100%) rename dml-examples/VideoStore/DQL-Queries/{usecase2/BoundsAnalysisComparison - usecase1.dql => usecase1/BoundsAnalysisComparison.dql} (100%) rename dml-examples/VideoStore/DQL-Queries/{usecase2 => usecase1}/usecase1.properties (100%) delete mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2.rar delete mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysis - usecase2.dql delete mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/DMLSelectMetrics.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_high.dql rename dml-examples/VideoStore/DQL-Queries/usecase2/{BoundsAnalysisComparison - usecase2.dql => PaperMetrics_EU_low.dql} (58%) create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_lowest.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_med.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_high.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_low.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_lowest.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_med.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_high.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_low.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_lowest.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_med.dql create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_high.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_low.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_lowest.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_med.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_high.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_low.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_lowest.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_med.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_high.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_low.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_lowest.properties create mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_med.properties delete mode 100644 dml-examples/VideoStore/DQL-Queries/usecase2/usecase2.properties diff --git a/dml-examples/HelloWorldExample/DML-Model/My.probes b/dml-examples/HelloWorldExample/DML-Model/My.probes new file mode 100644 index 0000000..70ec219 --- /dev/null +++ b/dml-examples/HelloWorldExample/DML-Model/My.probes @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<probes:ProbeRepository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:probes="http://www.descartes.tools/solving/probes/1.0"/> diff --git a/dml-examples/HelloWorldExample/DML-Model/My.variablemapping b/dml-examples/HelloWorldExample/DML-Model/My.variablemapping new file mode 100644 index 0000000..e874940 --- /dev/null +++ b/dml-examples/HelloWorldExample/DML-Model/My.variablemapping @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<variablemapping:VariableMapping xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:variablemapping="http://www.descartes.tools/transformations/dml2stackframe/variablemapping/1.0"/> diff --git a/dml-examples/HelloWorldExample/DML-Model/min.taggedrepository b/dml-examples/HelloWorldExample/DML-Model/min.taggedrepository new file mode 100644 index 0000000..943d54b --- /dev/null +++ b/dml-examples/HelloWorldExample/DML-Model/min.taggedrepository @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<taggedrepository:TaggedRepository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:taggedrepository="http://www.descartes.tools/solving/tailoredmodelcomposition/taggedrepository/1.0"> + <repository href="min.repository#_O2wgMEcEEeOgk9V4uRCQAw"/> + <tags metric="AvgUtilization"> + <signature href="min.repository#_h7eHYJ7EEeec6726JGgl9g"/> + <interfaceProvidingRole href="min.repository#_o98roJ7EEeec6726JGgl9g"/> + </tags> +</taggedrepository:TaggedRepository> diff --git a/dml-examples/Simple.functions b/dml-examples/Simple.functions new file mode 100644 index 0000000..b2ae3c0 --- /dev/null +++ b/dml-examples/Simple.functions @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<functions:RandomVariable xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0"> + <probFunction xsi:type="functions:BoxedPDF"> + <sample value="1" probability="0"/> + <sample value="2" probability="0.3"/> + <sample value="5" probability="0.6"/> + </probFunction> +</functions:RandomVariable> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/EU.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/EU.usageprofile deleted file mode 100644 index eeb6ef8..0000000 --- a/dml-examples/VideoStore/DML-Model/usecase2/EU.usageprofile +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?> -<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> - <imports importURI="videostore.system"/> - <imports importURI="videostore.repository"/> - <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> - <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> - <scenarioBehavior> - <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> - <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> - <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> - <inputParameterSettings> - <value> - <probFunction xsi:type="functions:DoubleLiteral" value="0.498"/> - </value> - <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.0"/> - </inputParameterSettings> - <inputParameterSettings> - <value> - <probFunction xsi:type="functions:DoubleLiteral" value="0.249"/> - </value> - <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.1"/> - </inputParameterSettings> - <inputParameterSettings> - <value> - <probFunction xsi:type="functions:DoubleLiteral" value="0.083"/> - </value> - <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.2"/> - </inputParameterSettings> - <inputParameterSettings> - <value> - <probFunction xsi:type="functions:DoubleLiteral" value="0.102"/> - </value> - <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.3"/> - </inputParameterSettings> - <inputParameterSettings> - <value> - <probFunction xsi:type="functions:DoubleLiteral" value="0.051"/> - </value> - <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.4"/> - </inputParameterSettings> - <inputParameterSettings> - <value> - <probFunction xsi:type="functions:DoubleLiteral" value="0.017"/> - </value> - <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.5"/> - </inputParameterSettings> - </actions> - </scenarioBehavior> - <workloadType xsi:type="usageprofile:OpenWorkloadType"> - <interArrivalTime> - <probFunction xsi:type="functions:ExponentialDistribution" rate="0.06666666666"/> - </interArrivalTime> - </workloadType> - </usageScenarios> -</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/videostore.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/EU/high.usageprofile similarity index 100% rename from dml-examples/VideoStore/DML-Model/usecase2/videostore.usageprofile rename to dml-examples/VideoStore/DML-Model/usecase2/EU/high.usageprofile diff --git a/dml-examples/VideoStore/DML-Model/usecase2/EU/low.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/EU/low.usageprofile new file mode 100644 index 0000000..9bf2eb7 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/EU/low.usageprofile @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.15"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.0"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.075"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.1"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.025"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.2"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.126"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.3"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.063"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.4"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.021"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.5"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.09"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.6"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.045"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.7"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.015"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.8"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.084"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.9"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.042"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.10"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.014"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.11"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.066"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.12"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.033"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.13"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.011"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.14"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.054"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.15"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.027"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.16"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.009"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.17"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.03"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.18"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.015"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.19"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.005"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.20"/> + </inputParameterSettings> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.01"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/EU/lowest.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/EU/lowest.usageprofile new file mode 100644 index 0000000..2e7fb19 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/EU/lowest.usageprofile @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.15"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.0"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.075"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.1"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.025"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.2"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.126"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.3"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.063"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.4"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.021"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.5"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.09"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.6"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.045"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.7"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.015"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.8"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.084"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.9"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.042"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.10"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.014"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.11"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.066"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.12"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.033"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.13"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.011"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.14"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.054"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.15"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.027"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.16"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.009"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.17"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.03"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.18"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.015"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.19"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.005"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.20"/> + </inputParameterSettings> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.005"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/EU/med.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/EU/med.usageprofile new file mode 100644 index 0000000..8b48862 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/EU/med.usageprofile @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.15"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.0"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.075"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.1"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.025"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.2"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.126"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.3"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.063"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.4"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.021"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.5"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.09"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.6"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.045"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.7"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.015"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.8"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.084"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.9"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.042"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.10"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.014"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.11"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.066"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.12"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.033"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.13"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.011"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.14"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.054"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.15"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.027"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.16"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.009"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.17"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.03"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.18"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.015"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.19"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.005"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.20"/> + </inputParameterSettings> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.02"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/videostore.deployment b/dml-examples/VideoStore/DML-Model/usecase2/EU/videostore.deployment similarity index 100% rename from dml-examples/VideoStore/DML-Model/usecase2/videostore.deployment rename to dml-examples/VideoStore/DML-Model/usecase2/EU/videostore.deployment diff --git a/dml-examples/VideoStore/DML-Model/usecase2/videostore.repository b/dml-examples/VideoStore/DML-Model/usecase2/EU/videostore.repository similarity index 100% rename from dml-examples/VideoStore/DML-Model/usecase2/videostore.repository rename to dml-examples/VideoStore/DML-Model/usecase2/EU/videostore.repository diff --git a/dml-examples/VideoStore/DML-Model/usecase2/videostore.resourcelandscape b/dml-examples/VideoStore/DML-Model/usecase2/EU/videostore.resourcelandscape similarity index 100% rename from dml-examples/VideoStore/DML-Model/usecase2/videostore.resourcelandscape rename to dml-examples/VideoStore/DML-Model/usecase2/EU/videostore.resourcelandscape diff --git a/dml-examples/VideoStore/DML-Model/usecase2/videostore.system b/dml-examples/VideoStore/DML-Model/usecase2/EU/videostore.system similarity index 100% rename from dml-examples/VideoStore/DML-Model/usecase2/videostore.system rename to dml-examples/VideoStore/DML-Model/usecase2/EU/videostore.system diff --git a/dml-examples/VideoStore/DML-Model/usecase2/NA/high.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/NA/high.usageprofile new file mode 100644 index 0000000..5b14ee5 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/NA/high.usageprofile @@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.498"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.0"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.249"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.1"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.083"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.2"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.102"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.3"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.051"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.4"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.017"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.5"/> + </inputParameterSettings> + + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.6"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.7"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.8"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.9"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.10"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.11"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.12"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.13"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.14"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.15"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.16"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.17"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.18"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.19"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.20"/> + </inputParameterSettings> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.04"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/NA/low.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/NA/low.usageprofile new file mode 100644 index 0000000..c822fbc --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/NA/low.usageprofile @@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.498"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.0"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.249"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.1"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.083"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.2"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.102"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.3"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.051"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.4"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.017"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.5"/> + </inputParameterSettings> + + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.6"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.7"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.8"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.9"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.10"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.11"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.12"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.13"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.14"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.15"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.16"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.17"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.18"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.19"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.20"/> + </inputParameterSettings> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.01"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/NA/lowest.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/NA/lowest.usageprofile new file mode 100644 index 0000000..a629c75 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/NA/lowest.usageprofile @@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.498"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.0"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.249"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.1"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.083"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.2"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.102"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.3"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.051"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.4"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.017"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.5"/> + </inputParameterSettings> + + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.6"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.7"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.8"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.9"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.10"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.11"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.12"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.13"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.14"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.15"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.16"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.17"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.18"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.19"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.20"/> + </inputParameterSettings> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.005"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/NA/med.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/NA/med.usageprofile new file mode 100644 index 0000000..ff925d6 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/NA/med.usageprofile @@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.498"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.0"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.249"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.1"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.083"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.2"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.102"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.3"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.051"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.4"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.017"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.5"/> + </inputParameterSettings> + + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.6"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.7"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.8"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.9"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.10"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.11"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.12"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.13"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.14"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.15"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.16"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.17"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.18"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.19"/> + </inputParameterSettings> + <inputParameterSettings> + <value> + <probFunction xsi:type="functions:DoubleLiteral" value="0.0"/> + </value> + <parameter href="videostore.repository#//@interfaces.0/@signatures.0/@parameters.20"/> + </inputParameterSettings> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.02"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.deployment b/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.deployment new file mode 100644 index 0000000..fa35dcf --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.deployment @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<deployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:deployment="http://www.descartes.tools/metamodel/deployment/1.0" xmlns:resourcelandscape="http://www.descartes.tools/metamodel/resourcelandscape/0.1" id="_04BXQOa4EeGWevb6qKkohg" name="depl"> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <targetResourceLandscape href="videostore.resourcelandscape#_FE29UEnuEeOWVc_o6w1CBw"/> + <deploymentContexts id="_XCpjIEnvEeOWVc_o6w1CBw" name="VideoStore"> + <assemblyContext href="videostore.system#_5QiUIEeoEeSW4Op0B0CyhQ"/> + <resourceContainer xsi:type="resourcelandscape:ComputeNode" href="videostore.resourcelandscape#_EuLk4ObvEeWHMYaSILpfIw"/> + </deploymentContexts> + <deploymentContexts id="_X4NlUIBdEeeCAMrBzrrAJw" name="SubtitleProvider"> + <assemblyContext href="videostore.system#_o4xc8IBVEeeB54TBT5-nRQ"/> + <resourceContainer xsi:type="resourcelandscape:ComputeNode" href="videostore.resourcelandscape#_EuLk4ObvEeWHMYaSILpfIw"/> + </deploymentContexts> +</deployment:Deployment> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.repository b/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.repository new file mode 100644 index 0000000..e54ab2e --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.repository @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="ASCII"?> +<repository:Repository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:parameterdependencies="http://www.descartes.tools/metamodel/parameterdependencies/1.0" xmlns:repository="http://www.descartes.tools/metamodel/repository/1.0" xmlns:resourcetype="http://www.descartes.tools/metamodel/resourcetype/1.0" xmlns:servicebehavior="http://www.descartes.tools/metamodel/servicebehavior/1.0" id="_O2wgMEcEEeOgk9V4uRCQAw" name="repositoryName"> + <imports importURI="min.resourcetype"/> + <interfaces id="_Tq2AUUhvEeOHzfCev3b1wQ" name="VideoStore"> + <signatures id="_aeA_cEh-EeOdTtmYhYAY2w" name="getVideo"> + <parameters xsi:type="repository:InputParameter" name="pEB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pEM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pER"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pGB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pGM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pGR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pFB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pFM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pFR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pIB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pIM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pIR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pSB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pSM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pSR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pPB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pPM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pPR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pRB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pRM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pRR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + </signatures> + </interfaces> + <interfaces id="_3yUWA4BTEeeB54TBT5-nRQ" name="SubtitleProvider"> + <signatures id="__6600IBTEeeB54TBT5-nRQ" name="getSubtitle"/> + </interfaces> + <components xsi:type="repository:BasicComponent" id="_ePxeNEicEeOUHduTkzq26A" name="VideoStore"> + <interfaceProvidingRoles id="_fMTX4EicEeOUHduTkzq26A" name="VideoStore" interface="_Tq2AUUhvEeOHzfCev3b1wQ"/> + <interfaceRequiringRoles id="_LmuUoYBUEeeB54TBT5-nRQ" name="SubtitleProvider" interface="_3yUWA4BTEeeB54TBT5-nRQ"/> + <fineGrainedBehavior describedSignature="_aeA_cEh-EeOdTtmYhYAY2w" interfaceProvidingRole="_fMTX4EicEeOUHduTkzq26A"> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="1" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.0"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="2" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.1"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="3" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.2"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="4" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.3"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="5" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.4"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="6" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.5"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="7" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.6"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="8" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.7"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="9" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.8"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="10" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.9"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="11" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.10"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="12" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.11"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="13" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.12"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="14" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.13"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="15" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.14"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="16" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.15"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="17" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.16"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="18" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.17"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="19" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.18"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="20" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.19"/> + <callParameter xsi:type="parameterdependencies:ServiceInputParameter" id="21" characterization="EXPLICIT" providingRole="_fMTX4EicEeOUHduTkzq26A" parameter="//@interfaces.0/@signatures.0/@parameters.20"/> + <behavior> + <actions xsi:type="servicebehavior:ExternalCallAction"> + <externalCall id="_USys4IBUEeeB54TBT5-nRQ" name="getSubtitle" signature="__6600IBTEeeB54TBT5-nRQ" interfaceRequiringRole="_LmuUoYBUEeeB54TBT5-nRQ"/> + </actions> + <actions xsi:type="servicebehavior:InternalAction"> + <resourceDemand id="_a-wSROnUEeWJbNBbEh2EOw" characterization="EXPLICIT"> + <explicitDescription> + <probFunction xsi:type="functions:DoubleLiteral" value="0.5"/> + </explicitDescription> + <resourceType xsi:type="resourcetype:ProcessingResourceType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/defaultresourcetypes.resourcetype#_3ql5IJB4EeKmfoqNH_-HEA"/> + </resourceDemand> + </actions> + </behavior> + </fineGrainedBehavior> + </components> + <components xsi:type="repository:BasicComponent" id="_Cxy7VIBUEeeB54TBT5-nRQ" name="SubtitleProvider"> + <interfaceProvidingRoles id="_GdUK0IBUEeeB54TBT5-nRQ" name="SubtitleProvider" interface="_3yUWA4BTEeeB54TBT5-nRQ"/> + <fineGrainedBehavior describedSignature="__6600IBTEeeB54TBT5-nRQ" interfaceProvidingRole="_GdUK0IBUEeeB54TBT5-nRQ"> + <behavior> + <actions xsi:type="servicebehavior:BranchAction"> + <branches> + <actions xsi:type="servicebehavior:InternalAction"> + <resourceDemand id="_4KwOsIBUEeeB54TBT5-nRQ" characterization="EXPLICIT"> + <explicitDescription> + <probFunction xsi:type="functions:DoubleLiteral" value="0.000352579"/> + </explicitDescription> + <resourceType xsi:type="resourcetype:ProcessingResourceType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/defaultresourcetypes.resourcetype#_3ql5IJB4EeKmfoqNH_-HEA"/> + </resourceDemand> + </actions> + </branches> + <branches> + <actions xsi:type="servicebehavior:InternalAction"> + <resourceDemand id="_E0rjoIBVEeeB54TBT5-nRQ" characterization="EXPLICIT"> + <explicitDescription> + <probFunction xsi:type="functions:DoubleLiteral" value="21.05"/> + </explicitDescription> + <resourceType xsi:type="resourcetype:ProcessingResourceType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/defaultresourcetypes.resourcetype#_3ql5IJB4EeKmfoqNH_-HEA"/> + </resourceDemand> + </actions> + </branches> + <branchProbabilities id="_pIESoIBUEeeB54TBT5-nRQ" characterization="EXPLICIT"/> + </actions> + </behavior> + </fineGrainedBehavior> + </components> +</repository:Repository> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.resourcelandscape b/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.resourcelandscape new file mode 100644 index 0000000..613f039 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.resourcelandscape @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<resourcelandscape:DistributedDataCenter xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:resourceconfiguration="http://www.descartes.tools/metamodel/resourceconfiguration/1.0" xmlns:resourcelandscape="http://www.descartes.tools/metamodel/resourcelandscape/0.1" id="_FE29UEnuEeOWVc_o6w1CBw" name="ddc"> + <consistsOf id="_FnQfwEnuEeOWVc_o6w1CBw" name="dc"> + <computeNodes id="_EuLk4ObvEeWHMYaSILpfIw" name="CPU"> + <configSpec xsi:type="resourceconfiguration:ProcessingResourceSpecification" id="_I3tj4EnuEeOWVc_o6w1CBw" name="processingCPU" schedulingPolicy="FCFS" processingRate="1.0"> + <processingResourceType href="pathmap://DML_APPLICATIONLEVEL_MODELS/defaultresourcetypes.resourcetype#_3ql5IJB4EeKmfoqNH_-HEA"/> + <nrOfParProcUnits id="_PUJdkAJEEeaYI8Ji-SVFxg" name="multiplicity" number="1"/> + </configSpec> + </computeNodes> + </consistsOf> +</resourcelandscape:DistributedDataCenter> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.system b/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.system new file mode 100644 index 0000000..1e9b28c --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/NA/videostore.system @@ -0,0 +1,359 @@ +<?xml version="1.0" encoding="ASCII"?> +<system:System xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:parameterdependencies="http://www.descartes.tools/metamodel/parameterdependencies/1.0" xmlns:repository="http://www.descartes.tools/metamodel/repository/1.0" xmlns:system="http://www.descartes.tools/metamodel/system/1.0" id="_zdRVAEeoEeSW4Op0B0CyhQ" name="MySys"> + <assemblyContexts id="_5QiUIEeoEeSW4Op0B0CyhQ" name="VideoStore"> + <encapsulatedComponent xsi:type="repository:BasicComponent" href="videostore.repository#_ePxeNEicEeOUHduTkzq26A"/> + </assemblyContexts> + <assemblyContexts id="_o4xc8IBVEeeB54TBT5-nRQ" name="SubtitleProvider"> + <encapsulatedComponent xsi:type="repository:BasicComponent" href="videostore.repository#_Cxy7VIBUEeeB54TBT5-nRQ"/> + </assemblyContexts> + <assemblyConnectors id="_tQ4ssYBVEeeB54TBT5-nRQ" name="Store --> Provider" providingAssemblyContext="_o4xc8IBVEeeB54TBT5-nRQ" requiringAssemblyContext="_5QiUIEeoEeSW4Op0B0CyhQ"> + <interfaceRequiringRole href="videostore.repository#_LmuUoYBUEeeB54TBT5-nRQ"/> + <interfaceProvidingRole href="videostore.repository#_GdUK0IBUEeeB54TBT5-nRQ"/> + </assemblyConnectors> + <providingDelegationConnectors id="_6lWyAEeoEeSW4Op0B0CyhQ" name="PDCn_provRole_ProvRole_IA" assemblyContext="_5QiUIEeoEeSW4Op0B0CyhQ" outerInterfaceProvidingRole="_zdRVAUeoEeSW4Op0B0CyhQ"> + <innerInterfaceProvidingRole href="videostore.repository#_fMTX4EicEeOUHduTkzq26A"/> + </providingDelegationConnectors> + <interfaceProvidingRoles id="_zdRVAUeoEeSW4Op0B0CyhQ" name="ProvRole_IA"> + <interface href="videostore.repository#_Tq2AUUhvEeOHzfCev3b1wQ"/> + </interfaceProvidingRoles> + <relationships xsi:type="parameterdependencies:DependencyPropagationRelationship" characterization="EXPLICIT"> + <explicitDescription> + <expression xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.0"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="200"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.1"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="800"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.2"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="9000"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.3"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="200"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.4"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="800"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.5"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="9000"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.6"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="200"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.7"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="800"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.8"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="9000"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.9"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="200"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.10"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="800"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.11"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="9000"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.12"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="200"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.13"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="800"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.14"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="9000"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.15"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="200"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.16"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="800"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.17"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="9000"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.18"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="200"/> + </left> + <right xsi:type="functions:Term"> + <left xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.19"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="800"/> + </left> + <right xsi:type="functions:Product" operation="DIV"> + <left xsi:type="functions:Product"> + <left xsi:type="functions:Power"> + <base xsi:type="functions:InfluencingParameterValue"> + <relationshipVariable href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.20"/> + </base> + <exponent xsi:type="functions:IntLiteral" value="2"/> + </left> + <right xsi:type="functions:IntLiteral" value="250"/> + </left> + <right xsi:type="functions:IntLiteral" value="9000"/> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </right> + </expression> + </explicitDescription> + <dependent href="videostore.repository#_pIESoIBUEeeB54TBT5-nRQ"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.0"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.1"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.2"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.3"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.4"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.5"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.6"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.7"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.8"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.9"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.10"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.11"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.15"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.16"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.17"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.18"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.19"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.20"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.12"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.13"/> + <independent href="videostore.repository#//@components.0/@fineGrainedBehavior.0/@callParameter.14"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <independentComponentInstanceReferences assemblies="_5QiUIEeoEeSW4Op0B0CyhQ"/> + <dependentComponentInstanceReference assemblies="_o4xc8IBVEeeB54TBT5-nRQ"/> + </relationships> +</system:System> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/Static/high.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/Static/high.usageprofile new file mode 100644 index 0000000..3965187 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/Static/high.usageprofile @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.04"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/Static/low.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/Static/low.usageprofile new file mode 100644 index 0000000..23be6c7 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/Static/low.usageprofile @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.01"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/Static/lowest.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/Static/lowest.usageprofile new file mode 100644 index 0000000..dc49ac7 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/Static/lowest.usageprofile @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.005"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/Static/med.usageprofile b/dml-examples/VideoStore/DML-Model/usecase2/Static/med.usageprofile new file mode 100644 index 0000000..1306d08 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/Static/med.usageprofile @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="ASCII"?> +<usageprofile:UsageProfile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:usageprofile="http://www.descartes.tools/metamodel/usageprofile/1.0" id="_yiEmIEeqEeSW4Op0B0CyhQ" name="usgProfile"> + <imports importURI="videostore.system"/> + <imports importURI="videostore.repository"/> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <usageScenarios id="_yiFNMEeqEeSW4Op0B0CyhQ" name="do"> + <scenarioBehavior> + <actions xsi:type="usageprofile:SystemCallUserAction" id="_A_DeMEmxEeOPLK3yYyEQWQ" name="SysCall_boof"> + <providingRole href="videostore.system#_zdRVAUeoEeSW4Op0B0CyhQ"/> + <signature href="videostore.repository#_aeA_cEh-EeOdTtmYhYAY2w"/> + </actions> + </scenarioBehavior> + <workloadType xsi:type="usageprofile:OpenWorkloadType"> + <interArrivalTime> + <probFunction xsi:type="functions:ExponentialDistribution" rate="0.02"/> + </interArrivalTime> + </workloadType> + </usageScenarios> +</usageprofile:UsageProfile> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.deployment b/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.deployment new file mode 100644 index 0000000..fa35dcf --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.deployment @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<deployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:deployment="http://www.descartes.tools/metamodel/deployment/1.0" xmlns:resourcelandscape="http://www.descartes.tools/metamodel/resourcelandscape/0.1" id="_04BXQOa4EeGWevb6qKkohg" name="depl"> + <system href="videostore.system#_zdRVAEeoEeSW4Op0B0CyhQ"/> + <targetResourceLandscape href="videostore.resourcelandscape#_FE29UEnuEeOWVc_o6w1CBw"/> + <deploymentContexts id="_XCpjIEnvEeOWVc_o6w1CBw" name="VideoStore"> + <assemblyContext href="videostore.system#_5QiUIEeoEeSW4Op0B0CyhQ"/> + <resourceContainer xsi:type="resourcelandscape:ComputeNode" href="videostore.resourcelandscape#_EuLk4ObvEeWHMYaSILpfIw"/> + </deploymentContexts> + <deploymentContexts id="_X4NlUIBdEeeCAMrBzrrAJw" name="SubtitleProvider"> + <assemblyContext href="videostore.system#_o4xc8IBVEeeB54TBT5-nRQ"/> + <resourceContainer xsi:type="resourcelandscape:ComputeNode" href="videostore.resourcelandscape#_EuLk4ObvEeWHMYaSILpfIw"/> + </deploymentContexts> +</deployment:Deployment> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.repository b/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.repository new file mode 100644 index 0000000..71246f0 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.repository @@ -0,0 +1,127 @@ +<?xml version="1.0" encoding="ASCII"?> +<repository:Repository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functions="http://www.descartes.tools/metamodel/functions/1.0" xmlns:repository="http://www.descartes.tools/metamodel/repository/1.0" xmlns:resourcetype="http://www.descartes.tools/metamodel/resourcetype/1.0" xmlns:servicebehavior="http://www.descartes.tools/metamodel/servicebehavior/1.0" id="_O2wgMEcEEeOgk9V4uRCQAw" name="repositoryName"> + <imports importURI="min.resourcetype"/> + <interfaces id="_Tq2AUUhvEeOHzfCev3b1wQ" name="VideoStore"> + <signatures id="_aeA_cEh-EeOdTtmYhYAY2w" name="getVideo"> + <parameters xsi:type="repository:InputParameter" name="pEB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pEM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pER"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pGB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pGM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pGR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pFB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pFM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pFR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pIB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pIM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pIR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pSB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pSM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pSR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pPB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pPM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pPR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pRB"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pRM"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + <parameters xsi:type="repository:InputParameter" name="pRR"> + <dataType xsi:type="repository:PrimitiveDataType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/primitivetypes.repository#_rulXgjaOEeK3VJC2wj7WsA"/> + </parameters> + </signatures> + </interfaces> + <interfaces id="_3yUWA4BTEeeB54TBT5-nRQ" name="SubtitleProvider"> + <signatures id="__6600IBTEeeB54TBT5-nRQ" name="getSubtitle"/> + </interfaces> + <components xsi:type="repository:BasicComponent" id="_ePxeNEicEeOUHduTkzq26A" name="VideoStore"> + <interfaceProvidingRoles id="_fMTX4EicEeOUHduTkzq26A" name="VideoStore" interface="_Tq2AUUhvEeOHzfCev3b1wQ"/> + <interfaceRequiringRoles id="_LmuUoYBUEeeB54TBT5-nRQ" name="SubtitleProvider" interface="_3yUWA4BTEeeB54TBT5-nRQ"/> + <fineGrainedBehavior describedSignature="_aeA_cEh-EeOdTtmYhYAY2w" interfaceProvidingRole="_fMTX4EicEeOUHduTkzq26A"> + <behavior> + <actions xsi:type="servicebehavior:ExternalCallAction"> + <externalCall id="_USys4IBUEeeB54TBT5-nRQ" name="getSubtitle" signature="__6600IBTEeeB54TBT5-nRQ" interfaceRequiringRole="_LmuUoYBUEeeB54TBT5-nRQ"/> + </actions> + <actions xsi:type="servicebehavior:InternalAction"> + <resourceDemand id="_a-wSROnUEeWJbNBbEh2EOw" characterization="EXPLICIT"> + <explicitDescription> + <probFunction xsi:type="functions:DoubleLiteral" value="0.5"/> + </explicitDescription> + <resourceType xsi:type="resourcetype:ProcessingResourceType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/defaultresourcetypes.resourcetype#_3ql5IJB4EeKmfoqNH_-HEA"/> + </resourceDemand> + </actions> + </behavior> + </fineGrainedBehavior> + </components> + <components xsi:type="repository:BasicComponent" id="_Cxy7VIBUEeeB54TBT5-nRQ" name="SubtitleProvider"> + <interfaceProvidingRoles id="_GdUK0IBUEeeB54TBT5-nRQ" name="SubtitleProvider" interface="_3yUWA4BTEeeB54TBT5-nRQ"/> + <fineGrainedBehavior describedSignature="__6600IBTEeeB54TBT5-nRQ" interfaceProvidingRole="_GdUK0IBUEeeB54TBT5-nRQ"> + <behavior> + <actions xsi:type="servicebehavior:BranchAction"> + <branches> + <actions xsi:type="servicebehavior:InternalAction"> + <resourceDemand id="_4KwOsIBUEeeB54TBT5-nRQ" characterization="EXPLICIT"> + <explicitDescription> + <probFunction xsi:type="functions:DoubleLiteral" value="0.000352579"/> + </explicitDescription> + <resourceType xsi:type="resourcetype:ProcessingResourceType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/defaultresourcetypes.resourcetype#_3ql5IJB4EeKmfoqNH_-HEA"/> + </resourceDemand> + </actions> + </branches> + <branches> + <actions xsi:type="servicebehavior:InternalAction"> + <resourceDemand id="_E0rjoIBVEeeB54TBT5-nRQ" characterization="EXPLICIT"> + <explicitDescription> + <probFunction xsi:type="functions:DoubleLiteral" value="21.05"/> + </explicitDescription> + <resourceType xsi:type="resourcetype:ProcessingResourceType" href="pathmap://DML_APPLICATIONLEVEL_MODELS/defaultresourcetypes.resourcetype#_3ql5IJB4EeKmfoqNH_-HEA"/> + </resourceDemand> + </actions> + </branches> + <branchProbabilities id="_pIESoIBUEeeB54TBT5-nRQ" characterization="EXPLICIT"> + <explicitDescription> + <probFunction xsi:type="functions:DoubleLiteral" value="0.185"/> + </explicitDescription> + </branchProbabilities> + </actions> + </behavior> + </fineGrainedBehavior> + </components> +</repository:Repository> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.resourcelandscape b/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.resourcelandscape new file mode 100644 index 0000000..613f039 --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.resourcelandscape @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<resourcelandscape:DistributedDataCenter xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:resourceconfiguration="http://www.descartes.tools/metamodel/resourceconfiguration/1.0" xmlns:resourcelandscape="http://www.descartes.tools/metamodel/resourcelandscape/0.1" id="_FE29UEnuEeOWVc_o6w1CBw" name="ddc"> + <consistsOf id="_FnQfwEnuEeOWVc_o6w1CBw" name="dc"> + <computeNodes id="_EuLk4ObvEeWHMYaSILpfIw" name="CPU"> + <configSpec xsi:type="resourceconfiguration:ProcessingResourceSpecification" id="_I3tj4EnuEeOWVc_o6w1CBw" name="processingCPU" schedulingPolicy="FCFS" processingRate="1.0"> + <processingResourceType href="pathmap://DML_APPLICATIONLEVEL_MODELS/defaultresourcetypes.resourcetype#_3ql5IJB4EeKmfoqNH_-HEA"/> + <nrOfParProcUnits id="_PUJdkAJEEeaYI8Ji-SVFxg" name="multiplicity" number="1"/> + </configSpec> + </computeNodes> + </consistsOf> +</resourcelandscape:DistributedDataCenter> diff --git a/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.system b/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.system new file mode 100644 index 0000000..e7da45f --- /dev/null +++ b/dml-examples/VideoStore/DML-Model/usecase2/Static/videostore.system @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="ASCII"?> +<system:System xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:repository="http://www.descartes.tools/metamodel/repository/1.0" xmlns:system="http://www.descartes.tools/metamodel/system/1.0" id="_zdRVAEeoEeSW4Op0B0CyhQ" name="MySys"> + <assemblyContexts id="_5QiUIEeoEeSW4Op0B0CyhQ" name="VideoStore"> + <encapsulatedComponent xsi:type="repository:BasicComponent" href="videostore.repository#_ePxeNEicEeOUHduTkzq26A"/> + </assemblyContexts> + <assemblyContexts id="_o4xc8IBVEeeB54TBT5-nRQ" name="SubtitleProvider"> + <encapsulatedComponent xsi:type="repository:BasicComponent" href="videostore.repository#_Cxy7VIBUEeeB54TBT5-nRQ"/> + </assemblyContexts> + <assemblyConnectors id="_tQ4ssYBVEeeB54TBT5-nRQ" name="Store --> Provider" providingAssemblyContext="_o4xc8IBVEeeB54TBT5-nRQ" requiringAssemblyContext="_5QiUIEeoEeSW4Op0B0CyhQ"> + <interfaceRequiringRole href="videostore.repository#_LmuUoYBUEeeB54TBT5-nRQ"/> + <interfaceProvidingRole href="videostore.repository#_GdUK0IBUEeeB54TBT5-nRQ"/> + </assemblyConnectors> + <providingDelegationConnectors id="_6lWyAEeoEeSW4Op0B0CyhQ" name="PDCn_provRole_ProvRole_IA" assemblyContext="_5QiUIEeoEeSW4Op0B0CyhQ" outerInterfaceProvidingRole="_zdRVAUeoEeSW4Op0B0CyhQ"> + <innerInterfaceProvidingRole href="videostore.repository#_fMTX4EicEeOUHduTkzq26A"/> + </providingDelegationConnectors> + <interfaceProvidingRoles id="_zdRVAUeoEeSW4Op0B0CyhQ" name="ProvRole_IA"> + <interface href="videostore.repository#_Tq2AUUhvEeOHzfCev3b1wQ"/> + </interfaceProvidingRoles> +</system:System> diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysis - usecase1.dql b/dml-examples/VideoStore/DQL-Queries/usecase1/BoundsAnalysis.dql similarity index 100% rename from dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysis - usecase1.dql rename to dml-examples/VideoStore/DQL-Queries/usecase1/BoundsAnalysis.dql diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysisComparison - usecase1.dql b/dml-examples/VideoStore/DQL-Queries/usecase1/BoundsAnalysisComparison.dql similarity index 100% rename from dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysisComparison - usecase1.dql rename to dml-examples/VideoStore/DQL-Queries/usecase1/BoundsAnalysisComparison.dql diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/usecase1.properties b/dml-examples/VideoStore/DQL-Queries/usecase1/usecase1.properties similarity index 100% rename from dml-examples/VideoStore/DQL-Queries/usecase2/usecase1.properties rename to dml-examples/VideoStore/DQL-Queries/usecase1/usecase1.properties diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2.rar b/dml-examples/VideoStore/DQL-Queries/usecase2.rar deleted file mode 100644 index 8cbc931b5bf2bc0a92c8d1c99d753810b75c5854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111691 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%0A*M_x<~5F}Y}3vFG&0n+EU zmXp8MNLelk1PU{`2NqL=OR7e}Yrc|TFR`R3x0fm!8RxVtECgurmZ!+e0SvNP@mF(+ zqwRvTkhZ!sLNzThWM#AH6vx*HipAe`KanCpD|J})cM?JnNq}C~(>!QQ8S_mHi3OBR z8-^Hw7LN$KClUK^ZSrVU74^N5`txmUIMWUG8xQA)+1pcD{Ot7U{B%la30mLR=CiF= z4d}-oG$L6}OWkbs9_XhDXhRM6>7EC??TC+UndvhqeKumQT@~H<W%2@KNRBuqxq#gR zA8{%+9wuc$x|sVAv|E4%&rS~vX3*(nrNU7spvlv`7O?1dr8qj~YYQBV7~=5BEN}~` z5I_;musZUlSebKNE*^MC>pn4vlZ}8cxH>BwRKukdy>)l5!hOk^ZAgi@P~O!L2c)Yy zp!RQ%`ccrz=IQUylN6aC3%(e-$YKasZL{B_`sfJTZ~b}>Q$NwYYbin_`Ykf+c=FQ~ zkplBx|8H6xFs8)-r2qgR4Gy;8R#)rQ_!6rPYmz<tYm*G(VP#?FVa37f>h9ud<?d-` z<pDTpxMf7u!We$Q<^4(k?_8B0XymPg&L>H&{rZ_xEU(yg3ow+)g1WxmHOmBEU)AOz zAdxnl8K@ideC|GPg~-ThkDY2Mif|=IyvH)wiyt7n+SAMuo!=HMuJUntCZZc16T@|4 z%>?;6m7FoCCW|0uwJTNsxyPFw;<Djnl;jfPkC4RHu-dTR(i!^c(w}}P*<dt((X_3+ zhIA#(T>FdHFSSM1xj$@hDQq@T!s3(#RKeoReT-A)X%PUZrwfad`k&)8akp}HH1qkt z;nwIzM*c&%+)qjBP1hZx2C>_}6TYsR<yEj<_3S{be=~YFyunCKh>jta-Cnl{zhBjE zgSgNoKEVX2xhc;1mH@P-+rb#{xOS73yZU)^aHVEe5R`w&rs*>jPn6*9+nYHbS0Lso zPdr6?#*ZBoeLf^}FI@E6aIj_h1|n!FA0@sw`7j`koObHmi@)?^<-=~(*mUjb7+TLI z{(F#uWP3vR*<S}&NrGHk@zwu7xSW59Rut*!|BW_m8S<Trc@-yCpWUsI>pSw&jyz7) z>$vf;ZaZI8JF)y950YubHFD;N0XA2!0*xR|?>b|kGzP(L=$J{UvpaCq5m+mYFZ|CK zQH8eyjGv=0b8+;jMEO2n(tKHh)NQNH7J;N?>-RO}jd>}jB9(H6`R26r5#eVdV7_6# ze*WPFmE#8E4|szt=(G{HI;3KpV^#Op>*=9{F}9SQdC!#uE!fch@q&N+c<l7zv$F$m zVBh~UcR3B+tvq0@T@OP^I}cBHJ9EfmOIO;?(aOW*f7`uWygY!D1O%mqroW3m_Lcs< zD6F}}#RUS?z*Wj>eEPfSV-fqm5ar_obAtgjQeRT5=>IPISTy_hqOi&t7fke|h*qA- z>F=VC#}WS*qFkJuU=G+XHDo94`@87lLgBv=<>BUpiJJ1LmmmFI^wF05dr_D-;Q{jj zY6RL`_8$LJ?my-e?EUwY`a=}wAEy+cW}PA8iXV0n%U>@#`aNY({&ErEgrCW#SLhW$ H6dCY8^P_Hv diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysis - usecase2.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysis - usecase2.dql deleted file mode 100644 index 374492f..0000000 --- a/dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysis - usecase2.dql +++ /dev/null @@ -1,7 +0,0 @@ -SELECT do.avgResponseTime, do.throughput, CPU_processingCPU.utilization -CONSTRAINED AS 'BOUNDS' -FOR SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, - SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, - SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, - RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU -USING dml@'usecase2.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/DMLSelectMetrics.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/DMLSelectMetrics.dql deleted file mode 100644 index e32727c..0000000 --- a/dml-examples/VideoStore/DQL-Queries/usecase2/DMLSelectMetrics.dql +++ /dev/null @@ -1,5 +0,0 @@ -SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization -CONSTRAINED AS 'ACCURATE' -FOR SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, - RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU -USING dml@'usecase2.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_high.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_high.dql new file mode 100644 index 0000000..0ad8cef --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_high.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_EU_high.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysisComparison - usecase2.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_low.dql similarity index 58% rename from dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysisComparison - usecase2.dql rename to dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_low.dql index c415732..3130d6b 100644 --- a/dml-examples/VideoStore/DQL-Queries/usecase2/BoundsAnalysisComparison - usecase2.dql +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_low.dql @@ -1,6 +1,7 @@ -SELECT do.avgResponseTime, do.throughput, CPU_processingCPU.utilization +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU -USING dml@'usecase2.properties'; \ No newline at end of file +USING dml@'properties/PaperMetrics_EU_low.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_lowest.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_lowest.dql new file mode 100644 index 0000000..2457899 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_lowest.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_EU_lowest.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_med.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_med.dql new file mode 100644 index 0000000..6e7c98e --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_EU_med.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_EU_med.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_high.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_high.dql new file mode 100644 index 0000000..adffa54 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_high.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_NA_high.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_low.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_low.dql new file mode 100644 index 0000000..14831a3 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_low.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_NA_low.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_lowest.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_lowest.dql new file mode 100644 index 0000000..1b42a81 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_lowest.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_NA_lowest.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_med.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_med.dql new file mode 100644 index 0000000..cb8fb29 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_NA_med.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_NA_med.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_high.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_high.dql new file mode 100644 index 0000000..5da15a1 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_high.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_Static_high.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_low.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_low.dql new file mode 100644 index 0000000..7b62e92 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_low.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_Static_low.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_lowest.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_lowest.dql new file mode 100644 index 0000000..060b910 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_lowest.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_Static_lowest.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_med.dql b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_med.dql new file mode 100644 index 0000000..85d6e39 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/PaperMetrics_Static_med.dql @@ -0,0 +1,7 @@ +SELECT SysCall_boof.avgResponseTime, CPU_processingCPU.utilization +CONSTRAINED AS 'ACCURATE' +FOR SERVICE '_yiFNMEeqEeSW4Op0B0CyhQ' AS do, + SERVICE '_A_DeMEmxEeOPLK3yYyEQWQ' AS SysCall_boof, + SERVICE '_USys4IBUEeeB54TBT5-nRQ' AS getSubtitle, + RESOURCE '_I3tj4EnuEeOWVc_o6w1CBw' AS CPU_processingCPU +USING dml@'properties/PaperMetrics_Static_med.properties'; \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_high.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_high.properties new file mode 100644 index 0000000..8c41b98 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_high.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/EU/high.usageprofile +dml.files.system=/../../../DML-Model/usecase2/EU/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/EU/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/EU/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/EU/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_low.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_low.properties new file mode 100644 index 0000000..f98d79b --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_low.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/EU/low.usageprofile +dml.files.system=/../../../DML-Model/usecase2/EU/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/EU/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/EU/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/EU/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_lowest.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_lowest.properties new file mode 100644 index 0000000..711a910 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_lowest.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/EU/lowest.usageprofile +dml.files.system=/../../../DML-Model/usecase2/EU/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/EU/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/EU/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/EU/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_med.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_med.properties new file mode 100644 index 0000000..bdd9890 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_EU_med.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/EU/med.usageprofile +dml.files.system=/../../../DML-Model/usecase2/EU/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/EU/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/EU/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/EU/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_high.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_high.properties new file mode 100644 index 0000000..ba65458 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_high.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/NA/high.usageprofile +dml.files.system=/../../../DML-Model/usecase2/NA/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/NA/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/NA/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/NA/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_low.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_low.properties new file mode 100644 index 0000000..cb37209 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_low.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/NA/low.usageprofile +dml.files.system=/../../../DML-Model/usecase2/NA/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/NA/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/NA/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/NA/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_lowest.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_lowest.properties new file mode 100644 index 0000000..7d88021 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_lowest.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/NA/lowest.usageprofile +dml.files.system=/../../../DML-Model/usecase2/NA/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/NA/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/NA/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/NA/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_med.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_med.properties new file mode 100644 index 0000000..d0e9cd6 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_NA_med.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/NA/med.usageprofile +dml.files.system=/../../../DML-Model/usecase2/NA/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/NA/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/NA/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/NA/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_high.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_high.properties new file mode 100644 index 0000000..54c60c9 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_high.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/Static/high.usageprofile +dml.files.system=/../../../DML-Model/usecase2/Static/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/Static/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/Static/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/Static/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_low.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_low.properties new file mode 100644 index 0000000..fca7696 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_low.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/Static/low.usageprofile +dml.files.system=/../../../DML-Model/usecase2/Static/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/Static/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/Static/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/Static/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_lowest.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_lowest.properties new file mode 100644 index 0000000..7f6d4f4 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_lowest.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/Static/lowest.usageprofile +dml.files.system=/../../../DML-Model/usecase2/Static/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/Static/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/Static/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/Static/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_med.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_med.properties new file mode 100644 index 0000000..340ec86 --- /dev/null +++ b/dml-examples/VideoStore/DQL-Queries/usecase2/properties/PaperMetrics_Static_med.properties @@ -0,0 +1,7 @@ +## Model Instance +dml.files.usageprofile=/../../../DML-Model/usecase2/Static/med.usageprofile +dml.files.system=/../../../DML-Model/usecase2/Static/videostore.system +dml.files.resourcelandscape=/../../../DML-Model/Static/usecase2/videostore.resourcelandscape +dml.files.repository=/../../../DML-Model/usecase2/Static/videostore.repository +dml.files.deployment=/../../../DML-Model/usecase2/Static/videostore.deployment +#dml.outputdirectory=/../results/ \ No newline at end of file diff --git a/dml-examples/VideoStore/DQL-Queries/usecase2/usecase2.properties b/dml-examples/VideoStore/DQL-Queries/usecase2/usecase2.properties deleted file mode 100644 index b34967a..0000000 --- a/dml-examples/VideoStore/DQL-Queries/usecase2/usecase2.properties +++ /dev/null @@ -1,7 +0,0 @@ -## Model Instance -dml.files.usageprofile=/../../DML-Model/usecase2/videostore.usageprofile -dml.files.system=/../../DML-Model/usecase2/videostore.system -dml.files.resourcelandscape=/../../DML-Model/usecase2/videostore.resourcelandscape -dml.files.repository=/../../DML-Model/usecase2/videostore.repository -dml.files.deployment=/../../DML-Model/usecase2/videostore.deployment -#dml.outputdirectory=/../results/ \ No newline at end of file -- GitLab