From 0ee40dafebd218e70a497e9fd4e18a7851882ddd Mon Sep 17 00:00:00 2001 From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de> Date: Thu, 26 Jun 2014 12:45:54 +0000 Subject: [PATCH] git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/DMM/trunk@16139 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../multiple_customers/MetricTypes.xmi | 9 ++ .../by-multiple_customers.adaptation | 67 +++++++++++ .../by-multiple_customers.launch | 16 +++ .../by-multiple_customers.pdr | 106 ++++++++++++++++++ .../by-multiple_customers.properties | 8 ++ .../default.adaptationpoints | 24 ++++ .../multiple_customers/default.resourcetype | 5 + .../multiple_customers/readme.txt | 16 +++ 8 files changed, 251 insertions(+) create mode 100644 Examples/BlueYonder_Case_Study/multiple_customers/MetricTypes.xmi create mode 100644 Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.adaptation create mode 100644 Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.launch create mode 100644 Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.pdr create mode 100644 Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.properties create mode 100644 Examples/BlueYonder_Case_Study/multiple_customers/default.adaptationpoints create mode 100644 Examples/BlueYonder_Case_Study/multiple_customers/default.resourcetype create mode 100644 Examples/BlueYonder_Case_Study/multiple_customers/readme.txt diff --git a/Examples/BlueYonder_Case_Study/multiple_customers/MetricTypes.xmi b/Examples/BlueYonder_Case_Study/multiple_customers/MetricTypes.xmi new file mode 100644 index 00000000..e29b0a6b --- /dev/null +++ b/Examples/BlueYonder_Case_Study/multiple_customers/MetricTypes.xmi @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="ASCII"?> +<perfdatarepo:PerformanceDataRepository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:perfdatarepo="http://www.descartes-research.net/metamodel/perfdata/0.1" id="1" name="DummyPerfDataRepo"> + <metricTypes id="2" name="AverageResponseTimeCustomerA"/> + <metricTypes id="_K9snIeLvEeK-n49tvUhS6w" name="AverageResponseTimeCustomerB"/> + <metricTypes id="3" name="OverallUtilizationDesc1"/> + <metricTypes id="4" name="OverallUtilizationDesc2"/> + <metricTypes id="5" name="OverallUtilizationDesc3"/> + <metricTypes id="6" name="OverallUtilizationDesc4"/> +</perfdatarepo:PerformanceDataRepository> diff --git a/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.adaptation b/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.adaptation new file mode 100644 index 00000000..52ddb976 --- /dev/null +++ b/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.adaptation @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?> +<adaptation:AdaptationProcess xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adaptation="http://www.descartes-research.net/metamodel/adaptation/0.1" xmlns:adaptationpoints="http://www.descartes-research.net/metamodel/adaptationpoints/0.1" id="_c_OSsOesEeK-n49tvUhS6w" name="BY-MultipleCustomersTradeOff"> + <tactics id="_MhuwEOetEeK-n49tvUhS6w" name="IncreaseResourcesOfCustomerB"> + <implementedPlan id="_PIaecOetEeK-n49tvUhS6w" name="IncreaseResourcesOfCustomerB-Plan"> + <steps xsi:type="adaptation:StartAction" id="_PYrIAOetEeK-n49tvUhS6w" successor="_QGM8ZOetEeK-n49tvUhS6w"/> + <steps xsi:type="adaptation:ActionReference" id="_QGM8ZOetEeK-n49tvUhS6w" predecessor="_PYrIAOetEeK-n49tvUhS6w" successor="_PsusceetEeK-n49tvUhS6w" refersTo="_WbEzweetEeK-n49tvUhS6w"/> + <steps xsi:type="adaptation:StopAction" id="_PsusceetEeK-n49tvUhS6w" predecessor="_QGM8ZOetEeK-n49tvUhS6w"/> + </implementedPlan> + </tactics> + <tactics id="_QY-LwefLEeK-n49tvUhS6w" name="IncreaseResourcesOfCustomerA"> + <implementedPlan id="_TH8TcOfLEeK-n49tvUhS6w" name="IncreaseResourcesOfCustomerA-Plan"> + <steps xsi:type="adaptation:StartAction" id="_VtuC4OfLEeK-n49tvUhS6w" successor="_Wp9BpOfLEeK-n49tvUhS6w"/> + <steps xsi:type="adaptation:ActionReference" id="_Wp9BpOfLEeK-n49tvUhS6w" predecessor="_VtuC4OfLEeK-n49tvUhS6w" successor="_WR7jMefLEeK-n49tvUhS6w" refersTo="_bWfpQefLEeK-n49tvUhS6w"/> + <steps xsi:type="adaptation:StopAction" id="_WR7jMefLEeK-n49tvUhS6w" predecessor="_Wp9BpOfLEeK-n49tvUhS6w"/> + </implementedPlan> + </tactics> + <tactics id="_kadK0efQEeK-n49tvUhS6w" name="MigrateResourcesOfCustomerA"> + <implementedPlan id="_mOXYcOfQEeK-n49tvUhS6w" name="MigrateResourcesOfCustomerA-Plan"> + <steps xsi:type="adaptation:StartAction" id="_mpi4kOfQEeK-n49tvUhS6w" successor="_m--9FOfQEeK-n49tvUhS6w"/> + <steps xsi:type="adaptation:ActionReference" id="_m--9FOfQEeK-n49tvUhS6w" predecessor="_mpi4kOfQEeK-n49tvUhS6w" successor="_ncibwefQEeK-n49tvUhS6w" refersTo="_uEBGEefQEeK-n49tvUhS6w"/> + <steps xsi:type="adaptation:StopAction" id="_ncibwefQEeK-n49tvUhS6w" predecessor="_m--9FOfQEeK-n49tvUhS6w"/> + </implementedPlan> + </tactics> + <actions id="_WbEzweetEeK-n49tvUhS6w" name="IncreasePredictionServerInstanceForCustomerB"> + <referredAdaptationPoint xsi:type="adaptationpoints:ModelEntityConfigurationRange" href="default.adaptationpoints#_2387d8uUpEeK-n49tvUhS6w"/> + <adaptationActionOperation adaptationOperationScope="THIS" adaptationOperationDirection="INCREASE"/> + </actions> + <actions id="_bWfpQefLEeK-n49tvUhS6w" name="IncreasePredictionServerInstanceForCustomerA"> + <referredAdaptationPoint xsi:type="adaptationpoints:ModelEntityConfigurationRange" href="default.adaptationpoints#_0d8uUeepEeK-n49tvUhS6w"/> + <adaptationActionOperation adaptationOperationScope="THIS" adaptationOperationDirection="INCREASE"/> + </actions> + <actions id="_uEBGEefQEeK-n49tvUhS6w" name="MigratePredictionServerInstanceOfCustomerA"> + <referredAdaptationPoint xsi:type="adaptationpoints:ModelEntityConfigurationRange" href="default.adaptationpoints#__wIDAKElEeKDl52Xojo4CQ"/> + <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="MIGRATE"/> + </actions> + <strategies id="_gyo58uesEeK-n49tvUhS6w" name="ResolveResourceBottleneck-CustomerB" objective="_rcP88OesEeK-n49tvUhS6w"> + <triggeringEvents id="_-oOCkOesEeK-n49tvUhS6w" name="WorkloadUpdate-CustomerB"/> + <tactics id="_FWnNMeetEeK-n49tvUhS6w" name="IncreaseResources" usedTactic="_MhuwEOetEeK-n49tvUhS6w" currentWeight="10.0" defaultWeight="10.0"/> + <weightingFunction id="_hKb5cuetEeK-n49tvUhS6w" name="WeightingFunction-CustomerB" weightingFunctionImplementation="edu.kit.ipd.descartes.adaptation.evaluation.weightingfunction.performance.WeightedSum"> + <weightedMetrics id="_kiKqQOetEeK-n49tvUhS6w" name="AvgResponseTimeForCustomerB-Weight" weight="-2.0"> + <metricType href="MetricTypes.xmi#_K9snIeLvEeK-n49tvUhS6w"/> + </weightedMetrics> + </weightingFunction> + </strategies> + <strategies id="_Z8ov1efKEeK-n49tvUhS6w" name="ResolveResourceBottleneck-CustomerA" objective="_fXhrMOfKEeK-n49tvUhS6w"> + <triggeringEvents id="_Az4tQOfLEeK-n49tvUhS6w" name="SLAviolated-CustomerA"/> + <tactics id="_lvonUefLEeK-n49tvUhS6w" name="IncreaseResourcesOfCustomerA" usedTactic="_QY-LwefLEeK-n49tvUhS6w" currentWeight="100.0" defaultWeight="100.0"/> + <tactics id="_fG60oefQEeK-n49tvUhS6w" name="MigrateResourcesOfCustomerA" usedTactic="_kadK0efQEeK-n49tvUhS6w" currentWeight="10.0" defaultWeight="10.0"/> + <weightingFunction id="_2g9E4ufKEeK-n49tvUhS6w" name="WeightingFunction-CustomerA" weightingFunctionImplementation="edu.kit.ipd.descartes.adaptation.evaluation.performance.weightingfunction.WeightedSum"> + <weightedMetrics id="_6SxJoOfKEeK-n49tvUhS6w" name="AvgResponseTimeForCustomerA-Weight" weight="-10.0"> + <metricType href="MetricTypes.xmi#2"/> + </weightedMetrics> + </weightingFunction> + </strategies> + <goal description="EnsureSLAwhileMaintingResourceEfficiency"> + <objectives id="_rcP88OesEeK-n49tvUhS6w" name="SLA-CustomerB"> + <specifications value="1800.0" relationalOperator="LESS_EQUAL"> + <metricType href="MetricTypes.xmi#_K9snIeLvEeK-n49tvUhS6w"/> + </specifications> + </objectives> + <objectives id="_fXhrMOfKEeK-n49tvUhS6w" name="SLA-CustomerA"> + <specifications value="1000.0" relationalOperator="LESS_EQUAL"> + <metricType href="MetricTypes.xmi#2"/> + </specifications> + </objectives> + </goal> +</adaptation:AdaptationProcess> diff --git a/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.launch b/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.launch new file mode 100644 index 00000000..89b71218 --- /dev/null +++ b/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.launch @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/AdaptationControl.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="edu.kit.ipd.descartes.adaptation.AdaptationControl"/> +<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="../by_dmm_multiplecustomers/by-multiple_customers.properties"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="edu.kit.ipd.descartes.adaptation"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-enableassertions"/> +</launchConfiguration> diff --git a/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.pdr b/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.pdr new file mode 100644 index 00000000..99f9f36e --- /dev/null +++ b/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.pdr @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="ASCII"?> +<repository:ObservationRepository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:domain="http://descartes.ipd.kit.edu/ql/models/mapping/domain/1.0" xmlns:repository="http://descartes.ipd.kit.edu/ql/models/repository/repository/1.0" startTimestamp="2013-06-26T15:00:0.000+0200" latestObservation="//@observations.0" latestImpact="//@impacts.0"> + <impacts identifier="Impact1" timestamp="2013-06-07T15:04:17.663+0200" before="//@observations.0" after="//@observations.1"/> + <impacts identifier="Impact2" timestamp="2013-06-07T15:04:17.663+0200" before="//@observations.1" after="//@observations.2"/> + <impacts identifier="Impact3" timestamp="2013-06-07T15:04:17.663+0200" before="//@observations.2" after="//@observations.3"/> + <observations identifier="Observation0: (PAR_YPS_DESC4, SIMUCOM_1000MEAS) Xreq-par-4ps-desc1-Yps-desc4-gw-desc3-db-desc2-predict-Z ps=0-req=40-size=500000" timestamp="2013-06-07T15:04:17.647+0200"> + <observation modelLocation="by-500kpar.pdr" doFModelLocation=""> + <resources identifier="_oZU-UK8HEeGqG9wdcmTqrg" alias="OverallUtilisationofdesc2DatabaseServer"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="15.392212521044648" accuracy="1"/> + </resources> + <resources identifier="_uZslUK8HEeGqG9wdcmTqrg" alias="OverallUtilisationofdesc1PredictionServerSlow"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="0.0" accuracy="1"/> + </resources> + <resources identifier="_3045MGV5EeKf2LJVcCQQCw" alias="OverallUtilisationofdesc3GatewayServer"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="3.4979377968103997" accuracy="1"/> + </resources> + <resources identifier="_8JY0QGV5EeKf2LJVcCQQCw" alias="OverallUtilisationofdesc4PredictionServerFast"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="25.154287457127667" accuracy="1"/> + </resources> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerA>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerA >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerA" valid="true" value="900" accuracy="1"/> + </services> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerB>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerB >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerB" valid="true" value="2000" accuracy="1"/> + </services> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerC>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerC >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerC" valid="true" value="5000" accuracy="1"/> + </services> + </observation> + </observations> + <observations identifier="Observation1: (PAR_YPS_DESC4, SIMUCOM_1000MEAS) Xreq-par-5ps-desc1-Yps-desc4-gw-desc3-db-desc2-predict-Z ps=0-req=40-size=500000" timestamp="2013-06-07T15:04:17.647+0200"> + <observation modelLocation="by-500kpar.pdr" doFModelLocation=""> + <resources identifier="_oZU-UK8HEeGqG9wdcmTqrg" alias="OverallUtilisationofdesc2DatabaseServer"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="15.392212521044648" accuracy="1"/> + </resources> + <resources identifier="_uZslUK8HEeGqG9wdcmTqrg" alias="OverallUtilisationofdesc1PredictionServerSlow"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="0.0" accuracy="1"/> + </resources> + <resources identifier="_3045MGV5EeKf2LJVcCQQCw" alias="OverallUtilisationofdesc3GatewayServer"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="3.4979377968103997" accuracy="1"/> + </resources> + <resources identifier="_8JY0QGV5EeKf2LJVcCQQCw" alias="OverallUtilisationofdesc4PredictionServerFast"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="25.154287457127667" accuracy="1"/> + </resources> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerA>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerA >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerA" valid="true" value="1200" accuracy="1"/> + </services> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerB>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerB >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerB" valid="true" value="1500" accuracy="1"/> + </services> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerC>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerC >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerC" valid="true" value="6000" accuracy="1"/> + </services> + </observation> + </observations> + <observations identifier="Observation2: (PAR_YPS_DESC4, SIMUCOM_1000MEAS) Xreq-par-4ps-desc1-Yps-desc4-gw-desc3-db-desc2-predict-Z ps=1-req=40-size=500000" timestamp="2013-06-07T15:04:17.647+0200"> + <observation modelLocation="by-500kpar.pdr" doFModelLocation=""> + <resources identifier="_oZU-UK8HEeGqG9wdcmTqrg" alias="OverallUtilisationofdesc2DatabaseServer"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="15.392212521044648" accuracy="1"/> + </resources> + <resources identifier="_uZslUK8HEeGqG9wdcmTqrg" alias="OverallUtilisationofdesc1PredictionServerSlow"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="0.0" accuracy="1"/> + </resources> + <resources identifier="_3045MGV5EeKf2LJVcCQQCw" alias="OverallUtilisationofdesc3GatewayServer"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="3.4979377968103997" accuracy="1"/> + </resources> + <resources identifier="_8JY0QGV5EeKf2LJVcCQQCw" alias="OverallUtilisationofdesc4PredictionServerFast"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="25.154287457127667" accuracy="1"/> + </resources> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerA>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerA >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerA" valid="true" value="1100" accuracy="1"/> + </services> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerB>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerB >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerB" valid="true" value="1400" accuracy="1"/> + </services> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerC>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerC >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerC" valid="true" value="5500" accuracy="1"/> + </services> + </observation> + </observations> + <observations identifier="Observation3: (PAR_YPS_DESC4, SIMUCOM_1000MEAS) Xreq-par-3ps-desc1-Yps-desc4-gw-desc3-db-desc2-predict-Z ps=2-req=40-size=500000" timestamp="2013-06-07T15:04:17.647+0200"> + <observation modelLocation="by-500kpar.pdr" doFModelLocation=""> + <resources identifier="_oZU-UK8HEeGqG9wdcmTqrg" alias="OverallUtilisationofdesc2DatabaseServer"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="15.392212521044648" accuracy="1"/> + </resources> + <resources identifier="_uZslUK8HEeGqG9wdcmTqrg" alias="OverallUtilisationofdesc1PredictionServerSlow"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="0.0" accuracy="1"/> + </resources> + <resources identifier="_3045MGV5EeKf2LJVcCQQCw" alias="OverallUtilisationofdesc3GatewayServer"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="3.4979377968103997" accuracy="1"/> + </resources> + <resources identifier="_8JY0QGV5EeKf2LJVcCQQCw" alias="OverallUtilisationofdesc4PredictionServerFast"> + <probes xsi:type="domain:DecimalResult" metricName="OverallUtilisation" valid="true" value="25.154287457127667" accuracy="1"/> + </resources> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerA>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerA >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerA" valid="true" value="1000" accuracy="1"/> + </services> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerB>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerB >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerB" valid="true" value="1300" accuracy="1"/> + </services> + <services identifier="ResponseTimeofCall_call_multiple0<EntryLevelSystemCallid:CustomerC>" alias="Call_call_multiple0 <EntryLevelSystemCall id: CustomerC >"> + <probes xsi:type="domain:DecimalResult" metricName="AverageResponseTimeCustomerC" valid="true" value="5000" accuracy="1"/> + </services> + </observation> + </observations> +</repository:ObservationRepository> \ No newline at end of file diff --git a/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.properties b/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.properties new file mode 100644 index 00000000..1f2719e1 --- /dev/null +++ b/Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.properties @@ -0,0 +1,8 @@ +process.name=BlueYonderCustomerMutlipleCustomersTradeoffAlgorithm +adaptationprocess.instance=../Examples/BlueYonder_Case_Study/multiple_customers/by-multiple_customers.adaptation +perfdatarepo.metamodel=edu.kit.ipd.descartes.ql.models.repository.ObservationRepository +perfdatarepo.instance=../Examples/BlueYonder_Case_Study/multiple_customers/by-multiplecustomers.pdr +process.maxiterations=30 +qosdegradation.accept=true +# The list of triggering events can be found in EventTypeEnum.java ## WorkloadUpdate-CustomerB, SLAviolated-CustomerA +event.type=WorkloadUpdate-CustomerB \ No newline at end of file diff --git a/Examples/BlueYonder_Case_Study/multiple_customers/default.adaptationpoints b/Examples/BlueYonder_Case_Study/multiple_customers/default.adaptationpoints new file mode 100644 index 00000000..e8b4c976 --- /dev/null +++ b/Examples/BlueYonder_Case_Study/multiple_customers/default.adaptationpoints @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<adaptationpoints:AdaptationPointDescriptions xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adaptationpoints="http://www.descartes-research.net/metamodel/adaptationpoints/0.1" xmlns:containerrepository="http://www.descartes-research.net/metamodel/containerrepository/0.1" xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1" id="_7XQlUKElEeKDl52Xojo4CQ" name="Blue Yonder System Adaptation Points"> + <adaptationPoints xsi:type="adaptationpoints:ModelEntityConfigurationRange" id="__wIDAKElEeKDl52Xojo4CQ" name="PredictionServer-CustomerA-Deployment"> + <variationPossibility xsi:type="adaptationpoints:SetOfConfigurations"> + <variants xsi:type="resourcelandscape:ComputingInfrastructure" href="by.resourcelandscape#_ZmPKIJB3EeKmfoqNH_-HEA"/> + <variants xsi:type="resourcelandscape:ComputingInfrastructure" href="by.resourcelandscape#_hWcXEJB3EeKmfoqNH_-HEA"/> + </variationPossibility> + <adaptableEntity xsi:type="containerrepository:ContainerTemplate" href="by.containerrepository#_IG-A4KEgEeKDl52Xojo4CQ"/> + </adaptationPoints> + <adaptationPoints xsi:type="adaptationpoints:ModelEntityConfigurationRange" id="_0d8uUeepEeK-n49tvUhS6w" name="PredictionServerInstances-CustomerA"> + <variationPossibility xsi:type="adaptationpoints:PropertyRange"> + <minValueConstraint oclString="self.referringContainers->size() >= 1" name="minAmountOfPredictionServerInstances"/> + <maxValueConstraint oclString="let containments : Integer = self.referringContainers->first().oclAsType(resourcelandscape::RuntimeEnvironment).containedIn.contains->size(), maxInstances : Integer = self.referringContainers->first().oclAsType(resourcelandscape::RuntimeEnvironment).containedIn.template.templateConfig->first().oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->asOrderedSet()->first().nrOfParProcUnits.number * 2 in containments <= maxInstances" name="maxAmountOfPredictionServerInstances"/> + </variationPossibility> + <adaptableEntity xsi:type="containerrepository:ContainerTemplate" href="by.containerrepository#_IG-A4KEgEeKDl52Xojo4CQ"/> + </adaptationPoints> + <adaptationPoints xsi:type="adaptationpoints:ModelEntityConfigurationRange" id="_2387d8uUpEeK-n49tvUhS6w" name="PredictionServerInstances-CustomerB"> + <variationPossibility xsi:type="adaptationpoints:PropertyRange"> + <minValueConstraint oclString="self.referringContainers->size() >= 1" name="minAmountOfPredictionServerInstances"/> + <maxValueConstraint oclString="self.referringContainers->size() <= 20" name="maxAmountOfPredictionServerInstances"/> + </variationPossibility> + <adaptableEntity xsi:type="containerrepository:ContainerTemplate" href="by.containerrepository#_RG-A4KEgEeKDl52Xojo4CQ"/> + </adaptationPoints> +</adaptationpoints:AdaptationPointDescriptions> diff --git a/Examples/BlueYonder_Case_Study/multiple_customers/default.resourcetype b/Examples/BlueYonder_Case_Study/multiple_customers/default.resourcetype new file mode 100644 index 00000000..b304da21 --- /dev/null +++ b/Examples/BlueYonder_Case_Study/multiple_customers/default.resourcetype @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<resourcetype:ResourceTypeRepository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:resourcetype="http://www.descartes-research.net/metamodel/resourcetype/0.1"> + <resourceTypes xsi:type="resourcetype:ProcessingResourceType" id="_3ql5IJB4EeKmfoqNH_-HEA" name="CPU"/> + <resourceTypes xsi:type="resourcetype:ProcessingResourceType" id="_52tLYJB4EeKmfoqNH_-HEA" name="DELAY"/> +</resourcetype:ResourceTypeRepository> diff --git a/Examples/BlueYonder_Case_Study/multiple_customers/readme.txt b/Examples/BlueYonder_Case_Study/multiple_customers/readme.txt new file mode 100644 index 00000000..ca66e93e --- /dev/null +++ b/Examples/BlueYonder_Case_Study/multiple_customers/readme.txt @@ -0,0 +1,16 @@ +Phase 1 +1. Set correct path to properties file +2. Adjust settings + 2.1. Set event in properies file to WorkloadUpdate-CustomerB + 2.2. Set lastImpact in PDR to Observation0 +3. Start adaptation +4. Check results (resoure landscape model). PS_CustB should have one more PS instance. + +Phase 2 +1. Set event in properies file to SLAviolated-CustomerA +2. Set lastImpact in PDR to Observation1 +3. Check results --> Applied tactic 1: IncreaseResourcesOfCustomerB. Result ID: NoResult. Successful: true. + Applied tactic 2: IncreaseResourcesOfCustomerA. Result ID: NoResult. Successful: false. + Applied tactic 3: MigrateResourcesOfCustomerA. Result ID: NoResult. Successful: true. + Applied tactic 4: MigrateResourcesOfCustomerA. Result ID: NoResult. Successful: true. + PS1 + PS2 of CustA are now on desc4 \ No newline at end of file -- GitLab