Models, Reflective Mechanisms and Family-based Systems to Support Dynamic Configuration Bencomo N., Blair G., and Grace P. Lancaster University Comp. Dep., InfoLab21, Lancaster, UK, LA1 4WA {nelly, gordon, gracep}@comp.lancs.ac.uk ABSTRACT Middleware platforms must satisfy an increasingly broad and variable set of requirements arising from the needs of both applications and underlying systems deployed in dynamically changing environments such as environment monitoring and disaster management. To meet these requirements, middleware platforms must offer a high degree of configurability at deployment time and runtime. At Lancaster we use reflection, components and component frameworks, and middleware families as the basis of our approach to develop dynamically configurable middleware platforms. In our approach, components and component frameworks provide structure, and reflection provides support for dynamic configuration and extensibility for run-time evolution and adaptation. This approach however has contributed to make the development and operation of middleware platforms even more complex. Middleware developers deal with a large number of variability decisions when planning (re)configurations and adaptations. This paper examines how Model-Driven Engineering (MDE), Domain Specific Languages (DSLs) and System Family Engineering can be used to improve the development of middleware families, systematically generating middleware configurations from high level descriptions. We present Genie, a DSL-based prototype development-tool that supports the specification, validation and generation of artefacts for component-based reflective middleware. In particular, this paper describes how the Genie toolkit improves the development of the Gridkit middleware through the modelling and automated generation of middleware policies; that remove the complexity of handling large number of runtime adaptation policies. Categories and Subject Descriptors D.2.10 [Software Engineering]: Design; D.2.13 [Software Engineering]: Reusable Software - Reuse models; D.4.7 [Operating Systems]: Organization and Design – Distributed Systems. General Terms: Design Keywords: Reflective Middleware, Grid Computing, MDE, DSL, System Families 1. INTRODUCTION Middleware platforms must satisfy an increasingly broad and variable set of requirements arising from the needs of both applications and underlying systems deployed in dynamically changing environments such as environment monitoring and disaster management. Even more, such platforms must embrace both heterogeneous networks and heterogeneous devices: from embedded devices in wireless ad-hoc networks to high-power computers in the Internet. To meet these requirements, middleware platforms must offer a high degree of configurability at deployment time and at runtime time. Significant advances have been made in recent years in the general area of dynamic reconfiguration [1, 12, 22, 24, 26, 27, 31]. At Lancaster we use reflection, components and component frameworks, and middleware families as the basis of our approach to develop dynamically configurable middleware platforms. We have successfully developed several experimental reflective middleware platforms and applications [15-17, 21]. In our approach, components and component frameworks provide extendable structure and functionality, and reflection offers the essential support for dynamic configuration and extensibility for run-time evolution and adaptation. Currently, middleware developers deal with a large number of variability decisions when planning (re)configurations and adaptations. This approach however has contributed to make the development and operation of middleware platforms even more complex. Middleware developers deal with a large number of variability decisions when planning (re)configurations and adaptations. This large number makes it error prone to manually guarantee that all the decisions are consistent. Such ad hoc approaches do not offer formal foundations for verification that the middleware will offer the required functionality [5, 6]. We strongly believe that dynamically reconfigurable middleware platforms require new software development and operational paradigms to support systematic and automated checking of both functional and non functional properties. In this paper, we describe our experience of how Model- Driven Engineering (MDE), and specifically Domain Specific Languages (DSLs), and System Family Engineering can be used to improve the development of middleware families, systematically generating middleware configurations from high level descriptions. To demonstrate our approach we describe how the Gridkit middleware[10, 15] development is improved by the Genie tool [3]. Genie is a prototype development-tool platform that offers a Domain Specific Language for the specification, 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. MODDM '06, November 27-December 1, 2006 Melbourne ,Australia Copyright 2006 ACM 1-59593-423-5/06/11... $5.00".