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
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.
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'"
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns the value of the 'Action Parametric Resource Demand' container reference.Returns the value of the 'Required Resource Parametric Resource Demand' reference.Returns the value of the 'Specification Parameteric Resource Demand' containment reference.void
Sets the value of the 'Action Parametric Resource Demand
' container reference.void
Sets the value of the 'Required Resource Parametric Resource Demand
' reference.void
Sets the value of the 'Specification Parameteric Resource Demand
' containment reference.Methods inherited from interface org.eclipse.emf.cdo.CDOObject
cdoConflict, cdoDirectResource, cdoHistory, cdoID, cdoInvalid, cdoLockState, cdoPermission, cdoPrefetch, cdoReadLock, cdoReload, cdoResource, cdoRevision, cdoRevision, cdoState, cdoView, cdoWriteLock, cdoWriteOption
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
-
Field Details
-
copyright
- See Also:
- Generated class or method.
-
-
Method Details
-
getSpecification_ParametericResourceDemand
PCMRandomVariable getSpecification_ParametericResourceDemand()Returns the value of the 'Specification Parameteric Resource Demand' containment reference. It is bidirectional and its opposite is 'Parametric Resource Demand PCM Random Variable
'.- Returns:
- the value of the 'Specification Parameteric Resource Demand' containment reference.
- See Also:
- Generated class or method.
- EMF model class or method.
- opposite="parametricResourceDemand_PCMRandomVariable" containment="true" required="true" ordered="false"
-
setSpecification_ParametericResourceDemand
Sets the value of the 'Specification Parameteric Resource Demand
' containment reference.- Parameters:
value
- the new value of the 'Specification Parameteric Resource Demand' containment reference.- See Also:
- Generated class or method.
-
getRequiredResource_ParametricResourceDemand
ProcessingResourceType getRequiredResource_ParametricResourceDemand()Returns the value of the 'Required Resource Parametric Resource Demand' reference.- Returns:
- the value of the 'Required Resource Parametric Resource Demand' reference.
- See Also:
- Generated class or method.
- EMF model class or method.
- required="true" ordered="false"
-
setRequiredResource_ParametricResourceDemand
Sets the value of the 'Required Resource Parametric Resource Demand
' reference.- Parameters:
value
- the new value of the 'Required Resource Parametric Resource Demand' reference.- See Also:
- Generated class or method.
-
getAction_ParametricResourceDemand
AbstractInternalControlFlowAction getAction_ParametricResourceDemand()Returns the value of the 'Action Parametric Resource Demand' container reference. It is bidirectional and its opposite is 'Resource Demand Action
'.- Returns:
- the value of the 'Action Parametric Resource Demand' container reference.
- See Also:
- Generated class or method.
- EMF model class or method.
- opposite="resourceDemand_Action" required="true" transient="false" ordered="false"
-
setAction_ParametricResourceDemand
Sets the value of the 'Action Parametric Resource Demand
' container reference.- Parameters:
value
- the new value of the 'Action Parametric Resource Demand' container reference.- See Also:
- Generated class or method.
-