next up previous contents index
Next: External Calls and Parameter Up: Resource Demanding Service Effect Previous: Overview   Contents   Index


Resource Demand

Figure 3.16: Resource Usage in RDSEFFs
Image RDSEFF2
To conduct QoS analyses, component specifications must contain information on how system resources, such as hardware devices or middleware entities are used by components. Ideally, component developers would specify a timing value for the execution time of each provided service of a component. However, these timing values would be useless for third party users of the component, because they would depend on the specific usage profile, hardware environment, software platform, and attached required services the component developer had used while measuring them.

Thus, component developers have to specify the demand each provided service places on resources instead of a timing value. Other than a timing value, the demand is independent from concrete resources. For example, a component developer could specify the number of CPU cycles of a specific operation within a service or the number of bytes read from or written to an I/O device. These demands have to be specified against abstract resource types, because the component developer does not know all possible resources the component could be deployed on. Only software architects and deployers know the concrete resources the component shall be used on and can define a specific deployment context (i.e., a resource environment model, Section 3.4.4). With this concrete context, for example, the execution time of one CPU cycle or the time to read one byte from an I/O device is specified. Then, actual timing values can be derived from the resource demands.

Resource demands of a component service may vary depending on how the service is used. For example, the hard disk demand of a component service, which offers downloading different files from a server, strongly depends on the size of the file that is requested via an input parameter. Another example would be the CPU demand of a component that allows sorting collections. Its CPU demand for the sort operation would depend on the number of elements in the collection. Thus, it could not be specified as a fixed value by the component developers, because they cannot forsee how the component will eventually be used by third parties. Therefore, it is necessary to specify resource demands in dependency of input parameters.

These considerations have been mapped to the meta model of the RDSEFF (see Figure 3.16). AbstractActions can either be external calls (ExternalCallAction), which reference required services and do not produce resource demands themselves, or internal computations actions (AbstractResourceDemandingActions), which actually place demands on resources. These ParametericResourceDemands contain a demand (e.g., ''127'') and a unit (e.g., ''bytes''). The demand can be specified in dependency to the service's input parameters (e.g., demand=''x.BYTESIZE * 200'', unit=''CPU cycles'', where ''x'' is an input parameter of the service). Once ''x.BYTESIZE'' is specified by third party users, the actual resource demand can be computed.

Resource demands reference ProcessingResourceTypes from the ResourceType package of the PCM (Section 3.4.3). Once the concrete processing resource, such as a CPU or network device, is specified, the actual resource demands can be placed on them to calculate timing values.

Besides active resources, such as CPUs, I/O devices, storage devices, memory etc., component service may also acquire or release passive resources, such as semaphores, threads, monitors, etc. These resources usually exist in a limited number, and a service can only continue its execution if at least one of them is available. Passive resource are themselves not able to process requests and do not allow to place demands on them. They can only be acquired and released, which can be modelled with the AquireAction and ReleaseAction (see Figure 3.16). These actions reference PassiveResourceTypes from the resource type package of the PCM.


next up previous contents index
Next: External Calls and Parameter Up: Resource Demanding Service Effect Previous: Overview   Contents   Index
Snowball 2007-03-16