Interface ParametricResourceDemand

All Superinterfaces:
org.eclipse.emf.cdo.CDOObject, org.eclipse.emf.cdo.common.id.CDOWithID, EObject, Notifier, PCMBaseClass, PCMClass
All Known Implementing Classes:
ParametricResourceDemandImpl

public interface ParametricResourceDemand extends PCMBaseClass
A representation of the model object 'Parametric Resource Demand'. TODO (Überarbeitung durch MH)
Parametric Resource Demand Specifies the amount of processing requested from a certain type of resource in a parametrised way. It assigns the demand specified as a Random-Variable to an abstract ProcessingResourceType (e.g., CPU, hard disk) instead of a concrete ProcessingResourceSpecification (e.g., 5 Ghz CPU, 20 MByte/s hard disk). This keeps the RDSEFF independent from a specific resource environment, and makes the concrete resources replaceable to answer sizing questions.
The demand's unit is equal for all ProcessingResourceSpecifications referencing
the same ProcessingResourceType. It can for example be "WorkUnits"
for CPUs [Smi02] or "BytesRead" for hard disks. Each ProcessingResource-
Specification contains a processing rate for demands (e.g., 1000 WorkUnits/s, 20
MB/s), which analysis tools use to compute an actual timing value in seconds. They
use this timing value for example as the service demand on a service center in a queueing
network or the firing delay of a transition in a Petri net. As multiple component services
might request processing on the same resource, these analytical or simulation models
allow determining the waiting delay induced by this contention effect.
Besides this parameterisation over different resource environments, Parametric-
ResourceDemands also parameterise over the usage profile. For this, the stochastic expression
specifying the resource demand can contain references to the service's input
parameters or the component parameters. Upon evaluating the resource demand, analysis
tools use the current characterisation of the referenced input or component parameter
and substitute the reference with this characterisation in the stochastic expression.
Solving the stochastic expression, which can be a function involving arithmetic operators
(Chapter 3.3.6), then yields a constant or probability function for the resource demand.
As an example for solving the parameterisation over resource environment and usage
profile, consider an RDSEFF for a service implementing the bubblesort algorithm. It
might include a CPU demand specification of n22000WorkUnits derived from complexity
theory (n2) and empirical measurements (2000). In this case n refers to the length of
the list the algorithm shall sort, which is an input parameter of the service. If the current
characterisation of the list's length is 100 (as the modelled usage profile), analysis tools
derive 1002  2000  12000 WorkUnits from the specification, thus resolving the usage
profile dependency. If the CPU ProcessingResourceSpecification the service's
126
4.3. Resource Demanding Service Effect Specification
component is allocated on then contains a processing rate of 10000WorkUnits/s, analysis
tools derive an execution time of 12000 WorkUnits {10000 WorkUnits/s = 1:2 s from the
specification, thus resolving the resource environment dependency.
The stochastic expression for a ParametricResourceDemand depends on the implementation
of the service. Component developers can specify it using complexity theory,
estimations, or measurements. However, how to get data to define such expressions
accurately is beyond of the scope of this thesis. Woodside et al. [WVCB01] and Krogmann
[Kro07] present approaches for measuring resource demands in dependency to input parameters.
Meyerhoefer et al. [ML05] and Kuperberg et al. [KB07] propose methods to
establish resource demands independent from concrete resources. For the scope of this
thesis, it is assumed that these methods have been applied and an accurate specification
of the ParametricResourceDemand is available.

The following features are supported:

See Also:
Generated class or method.
EMF model class or method.
annotation="http://www.eclipse.org/emf/2002/Ecore constraints='demandedProcessingResourceMustBeUniqueWithinAbstractInternalControlFlowAction'" annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG demandedProcessingResourceMustBeUniqueWithinAbstractInternalControlFlowAction='self.action_ParametricResourceDemand.resourceDemand_Action->select(prd | prd.requiredResource_ParametricResourceDemand=self.requiredResource_ParametricResourceDemand)->size() = 1'"