A Model-Driven Approach to Performability Analysis of Dynamically Reconfigurable Component-Based Systems Vincenzo Grassi° Raffaela Mirandola* Antonino Sabetta° ° Dipartimento di Informatica, Sistemi e Produzione, Università di Roma “Tor Vergata”, Italy {vgrassi, sabetta}@info.uniroma2.it *Dipartimento di Elettronica e Informazione, Politecnico di Milano, Italy mirandola@elet.polimi.it ABSTRACT Dynamic reconfiguration techniques appear promising to build component-based (C-B) systems for application domains that have strong adaptability requirements, like the mobile and the service- oriented computing domains. However, introducing dynamic reconfiguration features into a C-B application makes even more challenging the design and verification of functional and non functional requirements. Our goal is to support the model-based analysis of the effectiveness of reconfigurable C-B applications, with a focus on the assessment of the non-functional performance and reliability attributes. As a first step towards this end, we address the issue of selecting suitable analysis models for reconfigurable systems, suggesting to this end the use of joint performance and reliability (performability) models. Furthermore, we propose a model-driven approach to automatically transform a design model into an analysis model. For this purpose, we build on the existence of intermediate languages that have been proposed to facilitate this transformation and we extend one of them, to capture the core features (from a performance/reliability viewpoint) of a dynamically reconfigurable C-B system. Finally, we illustrate by a simple application example the main steps of the proposed approach. Categories and Subject Descriptors D.2.2 [Software engineering]: Design tools and techniques; C.4 [Performance of systems]: Modeling techniques. General Terms: Design, Performance, Reliability. Keywords: Model-driven development, dynamic reconfiguration, performability. 1. INTRODUCTION Dynamic reconfiguration of applications is becoming a key challenge that software developers are facing today, due to the emergence of more and more classes of applications that are highly complex and distributed, and operate in heterogeneous and rapidly changing environments (like those from the mobile, pervasive or service-oriented computing domains). The IBM initiative on autonomic computing [22], whose goal is to devise adaptive behaviours for the fulfilment of self*-properties, is an example of the efforts in this direction. The main goal of a dynamic reconfiguration is to make the application able to meet its functional requirements in different execution environments, while achieving and maintaining at the same time some required Quality of Service (QoS) goal (non functional requirement) like timeliness and reliability [36]. In the case of component-based (C-B) applications [8], dynamic reconfiguration can be obtained in different ways, including dynamic component replacement, component assembly modification or component relocation on different devices. Introducing dynamic reconfiguration features into a C-B application makes its design and development even more challenging. Hence, it is useful to have methodologies and tools that support the application designers in this activity. In this respect, our goal is to support the model-based analysis of the effectiveness of reconfigurable C-B applications, with a focus on the assessment of performance and reliability attributes. Model-based analysis allows the early QoS assessment of a C-B system, prior to its actual implementation. Hence, it can be useful for the QoS-driven selection of the components and their interconnection architecture. It can also be useful to devise suitable reconfiguration strategies for the dynamic contexts where the application will be deployed. Once the application is implemented, model-based reasoning may be used to predict the impact of different reconfigurations in a changing context, driving in this way the reconfiguration process. In this perspective, we tackle in this paper the following two problems: • which kind of model is suitable for the performance and reliability analysis of dynamically reconfigurable systems; • how we can support the construction of such a model. Concerning the first problem, we build on past work on the joint analysis of performance and reliability of reconfigurable systems. Research in this field was motivated by the consideration that reconfigurable systems may exhibit different performance or reliability levels during some observation period. Moreover, performance and reliability are sometimes competing QoS attributes, as one could be achieved at the expense of the other. This led to the definition of the performability concept as a unifying framework to deal with these multi-level and possibly competing attributes, and to the proposal of suitable models to support performability analysis [17]. We base on this work our suggestion for a model that supports performance and reliability analysis of a C-B dynamically reconfigurable system. To address the second problem, we leverage MDD-based model transformation methodologies and tools [3, 29]. The focus of MDD methodologies is typically on a transformation path from high level to platform specific models (up to the executable code) of a software application [27]. The idea of exploiting MDD methodologies for QoS assessment has emerged in recent years [7,9,35]. Indeed, the construction of a QoS model can be seen as a special type of model transformation that takes as input some Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. WOSP’07, February 5–8, 2007, Buenos Aires, Argentina. Copyright 2007 ACM 1-59593-297-6/07/0002...$5.00.