From e574e13b745adce58405e6c7468d8dd9e2ef467d Mon Sep 17 00:00:00 2001
From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de>
Date: Fri, 21 Dec 2012 14:19:27 +0000
Subject: [PATCH] Modeled SEAMS Adaptation Points DESCARTES-17

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@9616 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../SEAMS_Case_Study/AcamarCluster.xmi        | 133 +++++-------------
 .../SEAMS_Case_Study/AdaptationPoints.xmi     |  73 ++++++++++
 .../ContainerTemplateRepo.xmi                 |   2 +-
 3 files changed, 107 insertions(+), 101 deletions(-)
 create mode 100644 edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/AdaptationPoints.xmi

diff --git a/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/AcamarCluster.xmi b/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/AcamarCluster.xmi
index 6eeb1ec7..25f5bbf4 100644
--- a/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/AcamarCluster.xmi
+++ b/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/AcamarCluster.xmi
@@ -1,118 +1,51 @@
 <?xml version="1.0" encoding="ASCII"?>
-<resourcelandscape:DistributedDataCenter
-    xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1"
-    xsi:schemaLocation="http://www.descartes-research.net/metamodel/resourcelandscape/0.1 ../../../edu.kit.ipd.descartes.mm.resourcelandscape/model/resourcelandscape.ecore"
-    id="1" name="KitDataCenters">
-  <consistsOf
-      id="2"
-      name="AtisDataCenter">
-    <contains
-        xsi:type="resourcelandscape:CompositeHardwareInfrastructure"
-        id="3"
-        name="AcamarCluster">
-      <contains
-          xsi:type="resourcelandscape:ComputingInfrastructure"
-          id="4"
-          name="ClusterNode20">
-        <contains
-            id="10"
-            name="XenServer">
-          <contains
-              id="12"
-              name="AppServerVM1"
-              ofClass="OS VM">
-            <template
-                href="ContainerTemplateRepo.xmi#2"/>
+<resourcelandscape:DistributedDataCenter xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1" xsi:schemaLocation="http://www.descartes-research.net/metamodel/resourcelandscape/0.1 ../../../edu.kit.ipd.descartes.mm.resourcelandscape/model/resourcelandscape.ecore" id="1" name="KitDataCenters">
+  <consistsOf id="2" name="AtisDataCenter">
+    <contains xsi:type="resourcelandscape:CompositeHardwareInfrastructure" id="3" name="AcamarCluster">
+      <contains xsi:type="resourcelandscape:ComputingInfrastructure" id="4" name="ClusterNode20">
+        <contains id="10" name="XenServer">
+          <contains id="12" name="AppServerVM1" ofClass="OS VM">
+            <template href="ContainerTemplateRepo.xmi#2"/>
           </contains>
-          <contains
-              id="13"
-              name="AppServerVM2"
-              ofClass="OS VM">
-            <template
-                href="ContainerTemplateRepo.xmi#2"/>
+          <contains id="13" name="AppServerVM2" ofClass="OS VM">
+            <template href="ContainerTemplateRepo.xmi#2"/>
           </contains>
-          <template
-              href="ContainerTemplateRepo.xmi#11"/>
+          <template href="ContainerTemplateRepo.xmi#11"/>
         </contains>
-        <template
-            href="ContainerTemplateRepo.xmi#5"/>
+        <template href="ContainerTemplateRepo.xmi#5"/>
       </contains>
-      <contains
-          xsi:type="resourcelandscape:ComputingInfrastructure"
-          id="5"
-          name="ClusterNode19">
-        <contains
-            id="15"
-            name="XenServer">
-          <contains
-              id="16"
-              name="AppServerVM3"
-              ofClass="OS VM">
-            <template
-                href="ContainerTemplateRepo.xmi#2"/>
+      <contains xsi:type="resourcelandscape:ComputingInfrastructure" id="5" name="ClusterNode19">
+        <contains id="15" name="XenServer">
+          <contains id="16" name="AppServerVM3" ofClass="OS VM">
+            <template href="ContainerTemplateRepo.xmi#2"/>
           </contains>
-          <contains
-              id="17"
-              name="AppServerVM4"
-              ofClass="OS VM">
-            <template
-                href="ContainerTemplateRepo.xmi#2"/>
+          <contains id="17" name="AppServerVM4" ofClass="OS VM">
+            <template href="ContainerTemplateRepo.xmi#2"/>
           </contains>
-          <template
-              href="ContainerTemplateRepo.xmi#11"/>
+          <template href="ContainerTemplateRepo.xmi#11"/>
         </contains>
-        <template
-            href="ContainerTemplateRepo.xmi#5"/>
+        <template href="ContainerTemplateRepo.xmi#5"/>
       </contains>
-      <contains
-          xsi:type="resourcelandscape:ComputingInfrastructure"
-          id="6"
-          name="ClusterNode18">
-        <contains
-            id="25"
-            name="XenServer">
-          <contains
-              id="26"
-              name="AppServerVM5"
-              ofClass="OS VM">
-            <template
-                href="ContainerTemplateRepo.xmi#2"/>
+      <contains xsi:type="resourcelandscape:ComputingInfrastructure" id="6" name="ClusterNode18">
+        <contains id="25" name="XenServer">
+          <contains id="26" name="AppServerVM5" ofClass="OS VM">
+            <template href="ContainerTemplateRepo.xmi#2"/>
           </contains>
-          <contains
-              id="27"
-              name="AppServerVM6"
-              ofClass="OS VM">
-            <template
-                href="ContainerTemplateRepo.xmi#2"/>
+          <contains id="27" name="AppServerVM6" ofClass="OS VM">
+            <template href="ContainerTemplateRepo.xmi#2"/>
           </contains>
-          <template
-              href="ContainerTemplateRepo.xmi#11"/>
+          <template href="ContainerTemplateRepo.xmi#11"/>
         </contains>
-        <template
-            href="ContainerTemplateRepo.xmi#5"/>
+        <template href="ContainerTemplateRepo.xmi#5"/>
       </contains>
-      <contains
-          xsi:type="resourcelandscape:ComputingInfrastructure"
-          id="7"
-          name="ClusterNode17">
-        <contains
-            id="14"
-            name="XenServer">
-          <contains
-              id="33"
-              name="DatabaseVM"
-              ofClass="OS VM">
-            <template
-                href="ContainerTemplateRepo.xmi#555"/>
+      <contains xsi:type="resourcelandscape:ComputingInfrastructure" id="7" name="ClusterNode17">
+        <contains id="14" name="XenServer">
+          <contains id="33" name="DatabaseVM" ofClass="OS VM">
+            <template href="ContainerTemplateRepo.xmi#555"/>
           </contains>
-          <template
-              href="ContainerTemplateRepo.xmi#11"/>
+          <template href="ContainerTemplateRepo.xmi#11"/>
         </contains>
-        <template
-            href="ContainerTemplateRepo.xmi#5"/>
+        <template href="ContainerTemplateRepo.xmi#5"/>
       </contains>
     </contains>
   </consistsOf>
diff --git a/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/AdaptationPoints.xmi b/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/AdaptationPoints.xmi
new file mode 100644
index 00000000..24ce1ffe
--- /dev/null
+++ b/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/AdaptationPoints.xmi
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="ASCII"?>
+<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:resourceconfiguration="http://www.descartes-research.net/metamodel/resourceconfiguration/0.1"
+    xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1"
+    xsi:schemaLocation="http://www.descartes-research.net/metamodel/adaptationpoints/0.1 ../../../edu.kit.ipd.descartes.mm.adaptationpoints/model/adaptationpoints.ecore http://www.descartes-research.net/metamodel/containerrepository/0.1 ../../../edu.kit.ipd.descartes.mm.resourcelandscape/model/containerrepository.ecore http://www.descartes-research.net/metamodel/resourceconfiguration/0.1 ../../../edu.kit.ipd.descartes.mm.resourcelandscape/model/resourceconfiguration.ecore http://www.descartes-research.net/metamodel/resourcelandscape/0.1 ../../../edu.kit.ipd.descartes.mm.resourcelandscape/model/resourcelandscape.ecore"
+    id="1" name="SEAMS-AdaptationPoints">
+  <adaptationPoints
+      xsi:type="adaptationpoints:ModelVariableConfigurationRange"
+      id="238746123"
+      name="AmountOfCores"
+      minValue="1.0"
+      maxValue="4.0">
+    <adaptableEntity
+        xsi:type="resourceconfiguration:NumberOfParallelProcessingUnits"
+        href="ContainerTemplateRepo.xmi#1341341"/>
+  </adaptationPoints>
+  <adaptationPoints
+      xsi:type="adaptationpoints:ModelEntityConfigurationRange"
+      id="12312412412"
+      name="NumberOfAppServerVmInstances">
+    <variationPossibility
+        xsi:type="adaptationpoints:PropertyRange">
+      <minValueConstraint
+          oclString="self.containedIn.contains -> select( r&#xA; | r.template = self.template)->size() >= 1"/>
+      <maxValueConstraint
+          oclString="self.containedIn.contains -> select( r&#xA; | r.template = self.template)->size() &lt;= 4"/>
+    </variationPossibility>
+    <adaptableEntity
+        xsi:type="resourcelandscape:RuntimeEnvironment"
+        href="AcamarCluster.xmi#12"/>
+  </adaptationPoints>
+  <adaptationPoints
+      xsi:type="adaptationpoints:ModelEntityConfigurationRange"
+      id="xyz"
+      name="NumberOfAppServerTemplateInstances">
+    <variationPossibility
+        xsi:type="adaptationpoints:PropertyRange">
+      <minValueConstraint
+          oclString="self.referringContainers->size() >= 1"/>
+      <maxValueConstraint
+          oclString="self.referringContainers->size() &lt;= 10"/>
+    </variationPossibility>
+    <adaptableEntity
+        xsi:type="containerrepository:ContainerTemplate"
+        href="ContainerTemplateRepo.xmi#2"/>
+  </adaptationPoints>
+  <adaptationPoints
+      xsi:type="adaptationpoints:ModelEntityConfigurationRange"
+      id="123321"
+      name="VmMigration">
+    <variationPossibility
+        xsi:type="adaptationpoints:SetOfConfigurations">
+      <valueConstraint
+          oclString="&quot;Specify a fancy OCL constraint here&quot;"/>
+      <variants
+          href="AcamarCluster.xmi#4"/>
+      <variants
+          href="AcamarCluster.xmi#5"/>
+      <variants
+          href="AcamarCluster.xmi#6"/>
+      <variants
+          href="AcamarCluster.xmi#7"/>
+    </variationPossibility>
+    <adaptableEntity
+        xsi:type="resourcelandscape:RuntimeEnvironment"
+        href="AcamarCluster.xmi#13"/>
+  </adaptationPoints>
+</adaptationpoints:AdaptationPointDescriptions>
diff --git a/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/ContainerTemplateRepo.xmi b/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/ContainerTemplateRepo.xmi
index 04994ffc..3fe95e33 100644
--- a/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/ContainerTemplateRepo.xmi
+++ b/edu.kit.ipd.descartes.adaptation.test/test_models/SEAMS_Case_Study/ContainerTemplateRepo.xmi
@@ -3,7 +3,7 @@
   <templates id="2" name="AppServerVmTemplate">
     <templateConfig xsi:type="resourceconfiguration:ActiveResourceSpecification" id="3" name="CpusAppServer">
       <processingResourceSpecifications id="235234" name="CPU-Spec" schedulingPolicy="PROCESSOR_SHARING" processingRate="1000.0" parentResourceSpecification="3">
-        <nrOfParProcUnits id="1341341" name="NumberOfVirtualCpus" number="2"/>
+        <nrOfParProcUnits id="1341341" name="NumberOfAppServerVmCpus" number="2"/>
       </processingResourceSpecifications>
     </templateConfig>
   </templates>
-- 
GitLab