Skip to content
Snippets Groups Projects
PushPullAdaptationProcess.xmi 12.76 KiB
<?xml version="1.0" encoding="ASCII"?>
<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"
    xmlns:containerrepository="http://www.descartes-research.net/metamodel/containerrepository/0.1"
    xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1"
    id="_07SqMKaFEeKsaqdh-1smGw"
    name="PushPullAdaptationProcess">
  <tactics id="2341234"
      name="addResources">
    <implementedPlan
        id="qweqweqwe"
        name="addResourcesAdaptationPlan">
      <steps
          xsi:type="adaptation:StartAction"
          id="_PXgN0KaHEeKsaqdh-1smGw"
          successor="_Qych0qaHEeKsaqdh-1smGw"/>
      <steps
          xsi:type="adaptation:StopAction"
          id="_QNxHcaaHEeKsaqdh-1smGw"
          predecessor="_Qych0qaHEeKsaqdh-1smGw"/>
      <steps
          xsi:type="adaptation:LoopAction"
          id="_Qych0qaHEeKsaqdh-1smGw"
          predecessor="_PXgN0KaHEeKsaqdh-1smGw"
          successor="_QNxHcaaHEeKsaqdh-1smGw"
          counter="1">
        <body
            id="_UpH4cKaHEeKsaqdh-1smGw"
            name="addVCPUorAppServer">
          <steps
              xsi:type="adaptation:StartAction"
              id="2342623434"
              successor="33eadsea"/>
          <steps
              xsi:type="adaptation:BranchAction"
              id="33eadsea"
              predecessor="2342623434"
              successor="6423423423"
              condition="RuntimeEnvironment.allInstances()->select( re | re.template = self.template )->exists(re | re.configSpec.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number &lt; 4)) and RuntimeEnvironment.allInstances()->select( re | re.template = self.template )->forAll(re | re.template.templateConfig.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number &lt; 4))">
            <context
                xsi:type="resourcelandscape:RuntimeEnvironment"
                href="AcamarCluster.xmi#12"/>
            <conditionTrueBranch
                id="efasfasd"
                name="addVCPU">
              <steps
                  xsi:type="adaptation:ActionReference"
                  id="35634534"
                  predecessor="321321"
                  successor="345fdas"
                  refersTo="2"/>
              <steps
                  xsi:type="adaptation:StartAction"
                  id="321321"
                  successor="35634534"/>
              <steps
                  xsi:type="adaptation:StopAction"
                  id="345fdas"
                  predecessor="35634534"/>
            </conditionTrueBranch>
            <conditionFalseBranch
                id="adsgsadas"
                name="addAppServer">
              <steps
                  xsi:type="adaptation:ActionReference"
                  id="453412341241"
                  predecessor="e123134"
                  successor="e63412"
                  refersTo="41123123"/>
              <steps
                  xsi:type="adaptation:StartAction"
                  id="e123134"
                  successor="453412341241"/>
              <steps
                  xsi:type="adaptation:StopAction"
                  id="e63412"
                  predecessor="453412341241"/>
            </conditionFalseBranch>
          </steps>
          <steps
              xsi:type="adaptation:StopAction"
              id="6423423423"
              predecessor="33eadsea"/>
        </body>
      </steps>
    </implementedPlan>
  </tactics>
  <tactics id="_zFC2EaaMEeKdn_E8M08Q_g"
      name="undoPreviousAction">
    <implementedPlan
        id="_1_t3cKaMEeKdn_E8M08Q_g"
        name="undoPreviousActionPlan">
      <steps
          xsi:type="adaptation:StartAction"
          id="_9awssKaMEeKdn_E8M08Q_g"
          successor="_-Pacw6aMEeKdn_E8M08Q_g"/>
      <steps
          xsi:type="adaptation:BranchAction"
          id="_-Pacw6aMEeKdn_E8M08Q_g"
          predecessor="_9awssKaMEeKdn_E8M08Q_g"
          successor="_9ysEgaaMEeKdn_E8M08Q_g"
          condition="">
        <context
            xsi:type="containerrepository:ContainerTemplate"
            href="ContainerTemplateRepo.xmi#2"/>
        <conditionTrueBranch
            id="_KP82cKaNEeKdn_E8M08Q_g"
            name="conditionTrue">
          <steps
              xsi:type="adaptation:StartAction"
              id="_UUI4MKaNEeKdn_E8M08Q_g"
              successor="_dl-P9KaNEeKdn_E8M08Q_g"/>
          <steps
              xsi:type="adaptation:StopAction"
              id="_Uv0uoaaNEeKdn_E8M08Q_g"
              predecessor="_dl-P9KaNEeKdn_E8M08Q_g"/>
          <steps
              xsi:type="adaptation:ActionReference"
              id="_dl-P9KaNEeKdn_E8M08Q_g"
              predecessor="_UUI4MKaNEeKdn_E8M08Q_g"
              successor="_Uv0uoaaNEeKdn_E8M08Q_g"
              refersTo="41123123"/>
        </conditionTrueBranch>
        <conditionFalseBranch
            id="_K4GbkaaNEeKdn_E8M08Q_g"
            name="conditionFalse">
          <steps
              xsi:type="adaptation:StartAction"
              id="_VFQMEKaNEeKdn_E8M08Q_g"
              successor="_mMx4RKaOEeKlTfD7QKQIcw"/>
          <steps
              xsi:type="adaptation:StopAction"
              id="_VYB-IaaNEeKdn_E8M08Q_g"
              predecessor="_mMx4RKaOEeKlTfD7QKQIcw"/>
          <steps
              xsi:type="adaptation:ActionReference"
              id="_mMx4RKaOEeKlTfD7QKQIcw"
              predecessor="_VFQMEKaNEeKdn_E8M08Q_g"
              successor="_VYB-IaaNEeKdn_E8M08Q_g"
              refersTo="2"/>
        </conditionFalseBranch>
      </steps>
      <steps
          xsi:type="adaptation:StopAction"
          id="_9ysEgaaMEeKdn_E8M08Q_g"
          predecessor="_-Pacw6aMEeKdn_E8M08Q_g"/>
    </implementedPlan>
  </tactics>
  <tactics id="123123"
      name="removeResources">
    <implementedPlan
        id="123123123"
        name="removeResourcesAdaptationPlan">
      <steps
          xsi:type="adaptation:StartAction"
          id="_iqERYKaMEeKdn_E8M08Q_g"
          successor="_jqTmYqaMEeKdn_E8M08Q_g"/>
      <steps
          xsi:type="adaptation:StopAction"
          id="_jO2ZcaaMEeKdn_E8M08Q_g"
          predecessor="_jqTmYqaMEeKdn_E8M08Q_g"/>
      <steps
          xsi:type="adaptation:LoopAction"
          id="_jqTmYqaMEeKdn_E8M08Q_g"
          predecessor="_iqERYKaMEeKdn_E8M08Q_g"
          successor="_jO2ZcaaMEeKdn_E8M08Q_g"
          counter="1">
        <body
            id="_oCJwYKaMEeKdn_E8M08Q_g"
            name="removeVCPUorAppServer">
          <steps
              xsi:type="adaptation:StartAction"
              id="321"
              successor="branchDecrease"/>
          <steps
              xsi:type="adaptation:BranchAction"
              id="branchDecrease"
              predecessor="321"
              successor="432"
              condition="RuntimeEnvironment.allInstances()->select( re | re.template = self.template and not re.configSpec->isEmpty())->exists(re | re.configSpec.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number > 2))">
            <context
                xsi:type="resourcelandscape:RuntimeEnvironment"
                href="AcamarCluster.xmi#12"/>
            <conditionTrueBranch
                id="_k0FLAICyEeKnieBrE9C24w"
                name="addVCPU">
              <steps
                  xsi:type="adaptation:ActionReference"
                  id="decreaseVirtualCpu"
                  predecessor="_q13HQICyEeKnieBrE9C24w"
                  successor="_rJvFgYCyEeKnieBrE9C24w"
                  refersTo="345242342"/>
              <steps
                  xsi:type="adaptation:StartAction"
                  id="_q13HQICyEeKnieBrE9C24w"
                  successor="decreaseVirtualCpu"/>
              <steps
                  xsi:type="adaptation:StopAction"
                  id="_rJvFgYCyEeKnieBrE9C24w"
                  predecessor="decreaseVirtualCpu"/>
            </conditionTrueBranch>
            <conditionFalseBranch
                id="_nZJv1oCyEeKnieBrE9C24w"
                name="removeAppServer">
              <steps
                  xsi:type="adaptation:ActionReference"
                  id="234983249623"
                  predecessor="_xUQHAICyEeKnieBrE9C24w"
                  successor="_xx9WsYCyEeKnieBrE9C24w"
                  refersTo="1287127123"/>
              <steps
                  xsi:type="adaptation:StartAction"
                  id="_xUQHAICyEeKnieBrE9C24w"
                  successor="234983249623"/>
              <steps
                  xsi:type="adaptation:StopAction"
                  id="_xx9WsYCyEeKnieBrE9C24w"
                  predecessor="234983249623"/>
            </conditionFalseBranch>
          </steps>
          <steps
              xsi:type="adaptation:StopAction"
              id="432"
              predecessor="branchDecrease"/>
        </body>
      </steps>
    </implementedPlan>
  </tactics>
  <actions id="2"
      name="addVCPU">
    <referredAdaptationPoint
        xsi:type="adaptationpoints:ModelVariableConfigurationRange"
        href="AdaptationPoints.xmi#238746123"/>
    <adaptationActionOperation
        adaptationOperationScope="RANDOM"
        adaptationOperationDirection="INCREASE"/>
  </actions>
  <actions id="345242342"
      name="removeCPU">
    <referredAdaptationPoint
        xsi:type="adaptationpoints:ModelVariableConfigurationRange"
        href="AdaptationPoints.xmi#238746123"/>
    <adaptationActionOperation
        adaptationOperationScope="RANDOM"
        adaptationOperationDirection="DECREASE"/>
  </actions>
  <actions id="41123123"
      name="addAppServer">
    <referredAdaptationPoint
        xsi:type="adaptationpoints:ModelEntityConfigurationRange"
        href="AdaptationPoints.xmi#12312412412"/>
    <adaptationActionOperation
        adaptationOperationScope="RANDOM"
        adaptationOperationDirection="INCREASE"/>
  </actions>
  <actions id="1287127123"
      name="removeAppServer">
    <referredAdaptationPoint
        xsi:type="adaptationpoints:ModelEntityConfigurationRange"
        href="AdaptationPoints.xmi#12312412412"/>
    <adaptationActionOperation
        adaptationOperationScope="RANDOM"
        adaptationOperationDirection="DECREASE"/>
  </actions>
  <strategies
      id="s1"
      name="PUSH"
      objective="_GdVkoKaGEeKsaqdh-1smGw">
    <triggeringEvents
        id="12345"
        name="SlaViolatedEvent"/>
    <tactics
        id="wt1"
        name="AddResourcesWeightedTactic"
        usedTactic="2341234"
        currentWeight="1.0"
        defaultWeight="1.0"/>
    <weightingFunction
        id="wf1"
        name="WeightedSum">
      <weightedMetrics
          id="_TzHMgGVXEeK4L53_AeGtGA"
          name="UtilizationWeight"
          weight="1.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#2"/>
      </weightedMetrics>
      <weightedMetrics
          id="_QKf6YGllEeKYrN0mFHpJCQ"
          name="ResponseTimeWeight"
          weight="-2.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#3"/>
      </weightedMetrics>
    </weightingFunction>
  </strategies>
  <strategies
      id="_Cg--ZYAnEeKW2vVcg5ekRw"
      name="PULL"
      objective="_G-ctoKaGEeKsaqdh-1smGw">
    <triggeringEvents
        id="_H_MTgIAnEeKW2vVcg5ekRw"
        name="ScheduledMaintenanceEvent"/>
    <tactics
        id="_Tk5LUYAnEeKW2vVcg5ekRw"
        name="RemoveResourcesWeightedTactic"
        usedTactic="123123"
        currentWeight="1.0"
        defaultWeight="1.0"/>
    <tactics
        id="_4j5FkaamEeKwhcuIujY6Yw"
        name="UndoPreviousActionWeightedTactic"
        usedTactic="_zFC2EaaMEeKdn_E8M08Q_g"
        currentWeight="0.5"
        defaultWeight="0.5"/>
    <weightingFunction
        id="wf2"
        name="WeightedSum">
      <weightedMetrics
          id="_TzHMgGVXEeK4L53_AeGtGA1"
          name="UtilizationWeight"
          weight="1.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#2"/>
      </weightedMetrics>
      <weightedMetrics
          id="_Fc5YUKanEeKwhcuIujY6Yw"
          name="ResponseTimeWeight"
          weight="-2.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#3"/>
      </weightedMetrics>
    </weightingFunction>
  </strategies>
  <goal description="&lt;&lt;Maintain SLAs of all serivces using resources efficiently>>">
    <objectives
        id="_GdVkoKaGEeKsaqdh-1smGw"
        name="MaintainSLAs"
        specification="90% Quantile of ResponseTime"/>
    <objectives
        id="_G-ctoKaGEeKsaqdh-1smGw"
        name="OptimizeResourceEfficiency"
        specification="85% > Utilization > 45%"/>
  </goal>
</adaptation:AdaptationProcess>