Supporting Solutions to Performance Adaptations

The increasing number of devices that surround us in everyday life requires additional means to handle the information overload they cause. Our environment may include devices from various domains such as home appliances, building automation, and personal mobile devices. The heterogeneous computation and communication devices aim to enhance user satisfaction and ease everyday tasks [1]. However, in a smart environment, the technologies should disappear into the background [2]. In addition to heterogeneity, the smart environment is challenging because of dynamism of the environment, such as user mobility, fluctuating resources and changing user needs. In this kind of dynamic environment it is not possible to fully guarantee the smooth operation of applications at design time. Consequently, the applications need to be able to adapt to these changing conditions in order to maintain the user-perceived quality at an acceptable level. Furthermore, smart environments typically address predictive decision-making capabilities [3].

Self-management consists of monitoring, analysis, planning and execution phases which all use a common knowledge of the system and its environment [4]. In the autonomic control loop, often called MAPE-K, monitoring observes the state of the system and the environment; analysis discovers reasons for adaptation actions; the planning part makes a plan for what actions to take, and the execution part performs the selected actions. In general, performance engineering ensures that the timing requirements of applications are met within the resource constraints enforced by the underlying platform. Runtime performance management (RPM) provides mechanisms for the self-management of adaptive applications facing timing requirements and resource constraints. Runtime performance management may be needed when (1) applications are downloaded onto
devices where they are not necessarily tested before, (2) the overall performance is a result of co-operation of devices that are emerging and disappearing, and (3) the user preferences may change at runtime.

The heterogeneity of the devices relating to resource availability brings challenges to performance management. In addition to variation from resource-poor to resource-rich devices the concurrent operations depending on user needs affect what are the resources available for a particular operation and what is the resulting performance. Typically, device manufacturers from different domains have their own standards they follow and they have a lot of legacy software developed for a particular platform. Moreover, the device manufacturers often want to hide as much as possible of the internals of a device and thus protect their intellectual properties. Runtime quality management has been studied in the field of service-oriented architectures [5][6][7], autonomic computing [8], and ubiquitous computing infrastructures [9][10]. However, because they usually require that the possible compositions of applications and devices should be known at development time they are not directly applicable to smart environments. Runtime performance management should:
- Support easy integration of emerging and disappearing devices that embed heterogeneous platforms. The co-operating devices in a smart environment can be from various application domains and utilize diverse platforms.
- Separate performance management from application execution so that it is an optional and adaptable feature when composing applications. Removing the quality management does not require changes in the implementation of the application itself.
- Be scalable to the amount of resources and the size of the managed application.

The composition of the performance management itself is flexible so that, for example, the resource management of a resource-poor device can be transferred at least partially outside the device even at runtime. Furthermore, the scope of the DIEM 27/10/2011 performance management can be defined so that the performance management of large applications can be achieved hierarchically. In the remainder of the report, the background information and requirements for the performance management are first discussed in section 2 and 3. Thereafter, the concepts for runtime performance management are presented in section 4. Runtime performance management with semantic information broker is described in section 5. The implementation of the approach is discussed in section 6. Finally, section 7 discusses the related work and section 8 concludes the results.

Related work packages:

Contributors: