Target Groups
Target groups determine what is being affected by a defined policy. One can view the target group as a set of elements that is adjusted every time the policy is triggered. As stated previously, the way how the target group is adjusted is determined by the defined adjustment type (see [⇢ Adjustments] and when this is happening is determined by the defined trigger (see [⇢ Triggers]).
The following type of target groups are available for use: Elastic Infrastructure, Service Group, Competing Queue Consumers.
Name | Description | Supertype |
---|---|---|
ElasticInfrastructure | The ElasticInfrastructure denotes that the target group is the set of all elements of the elastic infrastructure. | TargetGroup |
ServiceGroup | The ServiceGroup denotes that the target group is the set of all elements of a service group i.e., service instances. | TargetGroup |
CompetingQueueConsumers | The CompetingQueueConsumers denotes that the target group is the set of all elements of a competing queue consumers. | TargetGroup |
Since SPD relies on Palladio for simulating the behavior of the system under a policy the target groups map to structures in the Palladio model. The mapping is configured through an auxiliary model that is defined in the [SPD Semantic] which also defines the semantic of the SPD language.
Elastic Infrastructure
An Elastic Infrastructure target group gives end-users the opportunity to model policies at the infrastructure level. This allows the architect to express policies that are usually provided by the cloud provider (e.g., auto-scaling groups in AWS).
In Palladio, the Elastic Infrastructure target group maps to a subset of resource containers part of the ResourceEnvironment
model element. For example, in the following figure the elastic infrastructure is the highlighted subset of resource containers. One can imagine, that the resource containers labelled with ...Node2
and ...Node3
were created after the policy got enacted.
When the elastic infrastructure is adjusted, other Palladio models are adjusted as well to reflect the changes in the resource environment (i.e., to make use of the newly created resource containers). The behavior is ultimately configured through the [SPD Semantic] auxiliary model, however, to the modeller creating the SPD it is transparent. They can add policies, adjust triggers, constraints and other elements without additional effort.
Service Group
A Service Group target group gives end-users the opportunity to model policies at the service level. We define a service group in Palladio, as a set of assembly contexts that are load balanced by a load balancer assembly context. For example, in the following figure the service group is the highlighted set of assembly contexts. The load balancer is highlighted inside the service group.
Whenever an adjustment occurs, the service group is adjusted accordingly in the Palladio model. The following steps are performed:
- A new assembly context is created for each new service instance and the new assemblies are connected correctly to the load balancer and to downstream components.
- The load balancer component is adjusted to distribute load to the new number of
AssemblyContexts
. - The new assembly contexts are placed on the right resource containers by modifying the
Allocation
model.
Competing Queue Consumers
TBA