Metamodel Documentation (platform:/resource/org.palladiosimulator.spd/model/SPD.ecore)

spd package

EPackage properties:
Namespace Prefix: spd
Namespace URI: http://palladiosimulator.org/ScalingPolicyDefinition/1.0

SPD

The root elements that consists of all scaling policies under analysis for a given cloud application. The SPD is an Entity (PCM), it has a unique identifier and it has a name.

Supertype:Entity

References
Name
Properties
Documentation
scalingPolicies
Cardinality: [1..*]
Containment

The set of scaling policies under analysis for the given cloud application model.

targetGroups
Cardinality: [1..*]
Containment

ScalingPolicy

A scaling policy determines the complete information for scaling a parituclar target. Each ScalingPolicy is an Entity (PCM), it has a unique identifier and it has a name.

Supertype:Entity

Attributes
Name
Properties
Documentation
active
T: EBoolean
Cardinality: [0..1]
References
Name
Properties
Documentation
adjustmentType
Cardinality: [1..1]
Containment
policyConstraints
Cardinality: [0..*]
Containment
scalingTrigger
Cardinality: [1..1]
Containment
targetGroup
Cardinality: [1..1]

spd.targets package

EPackage properties:
Namespace Prefix: targets
Namespace URI: http://palladiosimulator.org/ScalingPolicyDefinition/Targets/1.0

CompetingConsumersGroup

Supertype:TargetGroup

ElasticInfrastructure

Supertype:TargetGroup

References
Name
Properties
Documentation
PCM_ResourceEnvironment
Cardinality: [0..1]

ServiceGroup

Supertype:TargetGroup

References
Name
Properties
Documentation
unitAssembly
Cardinality: [0..1]

The unitAssembly is used to point to the ServiceGroup in PCM. It is used also for disinguishing between different service groups. A prerequisite is that the unit assembly is already connected in a Service Group structure in PCM.

TargetGroup

A TargetGroup defines a management group in SPD. It is both uniqely identified as well as it has a name, thus it extends from the Entity class of the PCM.

EClass properties:
Abstract

Supertype:Entity

References
Name
Properties
Documentation
targetConstraints
Cardinality: [0..*]
Containment

spd.adjustments package

EPackage properties:
Namespace Prefix: adjustments
Namespace URI: http://palladiosimulator.org/ScalingPolicyDefinition/Adjustments/1.0

AbsoluteAdjustment

The AbsoluteAdjustment denotes that the group is adjusted to a goal value.

Supertype:AdjustmentType

Attributes
Name
Properties
Documentation
goalValue
T: EInt
Cardinality: [1..1]
Default: 0

The goalValue determines the target number of elements for a particular group, e.g., a value 5 means that the group will have 5 elements.

AdjustmentType

An AdjustmentType determines how the target group is adjusted upon the firing of a trigger.

EClass properties:
Abstract

RelativeAdjustment

The RelativeAdjustment denotes that the group is adjusted relatively to the current number of elements. The RelativeAdjustment contains two parameters: the percentageGrowthValue and the minAdjustmentValue. The percentageGrowthValue determines the change (increase/decrease) of the current capacity as a percentage value. The minAdjustmentValue determines the minimal change of the current capacity.

Supertype:AdjustmentType

Attributes
Name
Properties
Documentation
minAdjustmentValue
T: EInt
Cardinality: [1..1]
Default: 0

A minimum adjustment value in case the percentage is 0.

percentageGrowthValue
T: EInt
Cardinality: [1..1]
Default: 100

The percantage value of adjustment e.g., a value of 10 denotes that 10% should be added to the existing capacity.

StepAdjustment

The StepAdjustment denotes that the group is adjusted by adding or removing a fixed amount of elements.

Supertype:AdjustmentType

Attributes
Name
Properties
Documentation
stepValue
T: EInt
Cardinality: [1..1]
Default: 0

The stepValue describes how many elements in the group should be added or removed. For example, a vallue of -1 determines that one element should be removed from the group.

spd.constraints package

EPackage properties:
Namespace Prefix: constraints
Namespace URI: http://palladiosimulator.org/ScalingPolicyDefinition/Constraints/1.0

AbstractConstraint

EClass properties:
Abstract

Supertype:Identifier

StateBasedContraint

EClass properties:
Abstract

Supertype:AbstractConstraint

TemporalConstraint

EClass properties:
Abstract

Supertype:AbstractConstraint

spd.triggers package

EPackage properties:
Namespace Prefix: triggers
Namespace URI: http://palladiosimulator.org/ScalingPolicyDefinition/Triggers/1.0

AGGREGATIONMETHOD

Enum for the following aggregation methods: MIN, MAX, AVERAGE, SUM that are relevant for different triggers.

Literals
Name
Value
Documentation
AVERAGE 0
MAX 1
MIN 2
MEDIAN 3
SUM 4

BaseTrigger

A BaseTrigger is a class of ScalingTrigger that works on a Stimulus (that entails the information gathered from the environment) and an ExpectedValue. Once the Stimulus 'matches' the ExpectedValue the trigger fires and an adjustment to the model is made. The matching of Stimulus with an ExpectedValue is determined by the subclasses. This can entail simple analysis through relational operators or more advanced transformation/aggregation of the Stimulus and the ExpectedValue.

EClass properties:
Abstract

Supertype:ScalingTrigger

References
Name
Properties
Documentation
expectedValue
Cardinality: [1..1]
Containment
stimulus
Cardinality: [1..1]
Containment

ComposedTrigger

A ComposedTrigger composes two or more ScalingTriggers through a logical operator (i.e., AND, OR, XOR). This enables the defintion of composed triggers which encapsulate more advanced conditions on the state to fire the trigger.

Supertype:ScalingTrigger

Attributes
Name
Properties
Documentation
logicalOperator
Cardinality: [0..1]
References
Name
Properties
Documentation
scalingtrigger
Cardinality: [2..*]
Containment

HDDUSAGETYPE

Enum for the type of HDD usage: READ, WRITE

Literals
Name
Value
Documentation
READ 0
WRITE 1

LogicalOperator

Literals
Name
Value
Documentation
AND 0
OR 1
XOR 2

NETWORKUSAGETYPE

Enum for the following Network Usage types: SEND, RECEIVE which are relevant to distinuish the type of use for a network resource.

Literals
Name
Value
Documentation
SEND 0
RECEIVE 1

RelationalOperator

Literals
Name
Value
Documentation
LessThan 0
GreaterThan 1
EqualTo 2
LessThanOrEqualTo 3
GreaterThanOrEqualTo 4

ScalingTrigger

The ScalingTrigger is a core concept in SPD. It entails both the information that is fetched from the simulation and models as well as the type of analysis that is performed on that information. It is uniquely identified as it extends from Idenfier (PCM).

EClass properties:
Abstract

Supertype:Identifier

SimpleFireOnTrend

The SimpleFireOnTrend trigger is a more advanced trigger that aggregates values and determines a trend and fires whenever this trend is as an expectedTrend value.

Supertype:BaseTrigger

SimpleFireOnValue

The SimpleFireOnValue trigger the most simplistic BaseTrigger that works on the fed stimulus through a relational operator with an expected value. In case 'LessThen' is specified then the the trigger will fire upon stiumuls < expectedValue.

Supertype:BaseTrigger

Attributes
Name
Properties
Documentation
relationalOperator
Cardinality: [0..1]

TrendPattern

Literals
Name
Value
Documentation
Increasing 0
Decreasing 1
NonIncreasing 2
NonDecreasing 3

spd.constraints.policy package

EPackage properties:
Namespace Prefix: constraints.policy
Namespace URI: http://palladiosimulator.org/ScalingPolicyDefinition/Constraints/Policy/1.0

CooldownConstraint

The CoolDown constraint defines a quiescence period in which the target group is not enacted by the policy. In addition one can specify the maximum number of scaling operations that can occur in the defined quiescence period. Contrary to the IntervalConstraint, the CooldownConstraint determines the future enactment of the policy after an adjustment has happened.

Supertypes:PolicyConstraint, TemporalConstraint

Attributes
Name
Properties
Documentation
cooldownTime
T: EDouble
Cardinality: [1..1]
maxScalingOperations
T: EInt
Cardinality: [1..1]
Default: 0

IntervalConstraint

The IntervalConstraint identifies fixed intervals in which a policy enacts adjustments. Contrary to the CooldownConstraint, the IntervalConstraint predefines the enactment of the policy in time.

Supertypes:PolicyConstraint, TemporalConstraint

Attributes
Name
Properties
Documentation
intervalDuration
T: EDouble
Cardinality: [1..1]

The duration in which no enactment by the policy occurs.

offset
T: EDouble
Cardinality: [1..1]

The offset determines a period of time from which the interval constraint should begin.

repeat
T: EBoolean
Cardinality: [0..1]
Default: false

The repeat property determines whether the interval constraint should repeat throughout the simulation or is applied once, which is the default case (false).

PolicyConstraint

EClass properties:
Abstract

Supertype:AbstractConstraint

spd.constraints.target package

EPackage properties:
Namespace Prefix: constraints.target
Namespace URI: http://palladiosimulator.org/ScalingPolicyDefinition/Constraints/Target/1.0

TargetConstraint

EClass properties:
Abstract

Supertype:AbstractConstraint

TargetGroupSizeConstraint

Supertypes:StateBasedContraint, TargetConstraint

Attributes
Name
Properties
Documentation
maxSize
T: EInt
Cardinality: [1..1]
minSize
T: EInt
Cardinality: [1..1]

ThrashingConstraint

Thrashing constraint is used to constraint the thrashing of resources i.e. increase and decrease of resources. The constraint is defined by the minimum amount of time where no two decicions with adjustments in two oposite directions can occur.

Supertypes:TargetConstraint, TemporalConstraint

Attributes
Name
Properties
Documentation
minimumTimeNoThrashing
T: EDouble
Cardinality: [0..1]