Skip to content
Snippets Groups Projects
PushPullAdaptationProcess.xmi 9.03 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:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1"
    id="_07SqMKaFEeKsaqdh-1smGw"
    name="PushPullAdaptationProcess">
  <tactics id="2341234"
      name="increaseResources">
    <implementedPlan
        id="qweqweqwe"
        name="IncreaseResourcesAdaptationPlan">
      <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="increaseCores">
          <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="increaseServers">
          <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"/>
    </implementedPlan>
  </tactics>
  <tactics id="123123"
      name="gracefullyDecreaseResources">
    <implementedPlan
        id="123123123"
        name="DecreaseResourcesAdaptationPlan">
      <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="decreaseCores">
          <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="decreaseServers">
          <steps
              xsi:type="adaptation:ActionReference"
              id="decreaseServers"
              predecessor="_xUQHAICyEeKnieBrE9C24w"
              successor="_xx9WsYCyEeKnieBrE9C24w"
              refersTo="1287127123"/>
          <steps
              xsi:type="adaptation:StartAction"
              id="_xUQHAICyEeKnieBrE9C24w"
              successor="decreaseServers"/>
          <steps
              xsi:type="adaptation:StopAction"
              id="_xx9WsYCyEeKnieBrE9C24w"
              predecessor="decreaseServers"/>
        </conditionFalseBranch>
      </steps>
      <steps
          xsi:type="adaptation:StopAction"
          id="432"
          predecessor="branchDecrease"/>
    </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">
    <triggeringEvents
        id="12345"
        name="SlaViolatedEvent"/>
    <tactics
        id="wt1"
        name="weightedTacticIncreaseResources"
        usedTactic="2341234"
        currentWeight="100.0"
        defaultWeight="100.0"/>
    <weightingFunction
        id="wf1"
        name="weightedSum">
      <weightedMetrics
          id="_TzHMgGVXEeK4L53_AeGtGA"
          name="utilizationMetricWeight"
          weight="1.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#2"/>
      </weightedMetrics>
      <weightedMetrics
          id="_QKf6YGllEeKYrN0mFHpJCQ"
          name="goldCustomerResponseTimeWeight"
          weight="-2.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#3"/>
      </weightedMetrics>
      <weightedMetrics
          id="_UBs1cGllEeKYrN0mFHpJCQ"
          name="silverCustomerResponseTimeWeight"
          weight="-1.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#4"/>
      </weightedMetrics>
    </weightingFunction>
  </strategies>
  <strategies
      id="_Cg--ZYAnEeKW2vVcg5ekRw"
      name="PULL">
    <triggeringEvents
        id="_H_MTgIAnEeKW2vVcg5ekRw"
        name="ScheduledMaintenanceEvent"/>
    <tactics
        id="_Tk5LUYAnEeKW2vVcg5ekRw"
        name="weightedTacticDecreaseResources"
        usedTactic="123123"
        currentWeight="100.0"
        defaultWeight="100.0"/>
    <weightingFunction
        id="wf1"
        name="weightedSum">
      <weightedMetrics
          id="_TzHMgGVXEeK4L53_AeGtGA1"
          name="utilizationMetricWeight"
          weight="1.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#2"/>
      </weightedMetrics>
      <weightedMetrics
          id="_QKf6YGllEeKYrN0mFHpJCQ1"
          name="goldCustomerResponseTimeWeight"
          weight="-2.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#3"/>
      </weightedMetrics>
      <weightedMetrics
          id="_UBs1cGllEeKYrN0mFHpJCQ1"
          name="silverCustomerResponseTimeWeight"
          weight="-1.0">
        <metricType
            href="PerformanceDataRepositoryDummy.xmi#4"/>
      </weightedMetrics>
    </weightingFunction>
  </strategies>
  <goal description="&lt;&lt;Maintain SLAs of all serivces while using resources efficiently>>">
    <objectives
        id="_GdVkoKaGEeKsaqdh-1smGw"
        name="ServiceLevelAgreements"
        specification=""/>
    <objectives
        id="_G-ctoKaGEeKsaqdh-1smGw"
        name="resourceEfficiency"/>
  </goal>
</adaptation:AdaptationProcess>