VERA: Verifiable Aspect Models for Middleware Product Families (Visiting Fellowship)

Lead Research Organisation: Lancaster University
Department Name: Computing & Communications

Abstract

The overall aim of the VERA project is to develop a modelling framework for verifiable composition of aspect models pertaining to middleware families. Middleware is emerging as an increasingly important technology in the construction of (often complex) distributed applications and services. The role of middleware is to mask out problems of heterogeneity and distribution and to provide a more abstract and transparent programming model to application developers. However, in recent years it has become much more difficult to provide comprehensive middleware platforms largely due to the significant rise in levels of heterogeneity. As well as traditional aspects of heterogeneity (language, platform, etc.), middleware providers must also deal with increasing heterogeneity of application domains (pervasive, multimedia, mobile, Grid, etc.) as well as similar rises in heterogeneity in the deployment environment (wireless, wired, ad-hoc, etc.). Furthermore, there is a need to support a wider variety of non-functional requirements in areas such as security and dependability, with more specialised solutions emerging, for example, in areas such as pervasive computing. It is now clear that middleware providers are struggling with such extreme heterogeneity and rather provide platforms that are overly bloated and complex to deal with the variety of situations where they might be used. It is equally clear that this is unsatisfactory and that a major paradigm shift is required to cater for such changing operational conditions.The middleware community is reacting to these challenges and there is now strong interest in reflective middleware as a technique to support more configurability, and indeed reconfigurability. For the purposes of this proposal, we focus exclusively on the problems of configurable middleware and, in particular, how middleware families can be generated using the inherent support provided by reflection. However, there is an element of complexity in dealing with the flexibility that reflection offers. In is therefore imperative that in parallel with developments in reflective middleware, we also study tools and techniques that support the automatic or semi-automatic generation of middleware families from higher level specifications. In this project, we propose to study the marriage of three areas of technology in meeting this challenge:1. Reflective middleware as discussed above;2. Model driven engineering (MDE) to support the automatic construction of complex software from models (in our case middleware);3. Aspect-oriented software development (AOSD) to provide a natural separation of concerns both in terms of the models and the resultant platform.This needs close co-operation between the different communities. We are fortunate at Lancaster to have internationally leading activity in the areas of (reflective) middleware and AOSD. This proposal is concerned with supplementing these skills by bringing in Prof. Robert France as a visiting researcher to the department for a period of 5 months to complete our coverage of the three areas (Robert is a leading researcher in MDE).
 
Description The project investigated a methodology based on a combination of model-driven engineering (MDE) and aspect- orientation to support the construction of middleware families. The methodology is underpinned by appropriate formalisms to provide a higher degree of rigour in the generation process (including support for verifiable transformations from models to middleware families). The project also stimulated greater awareness of the role of MDE and AOSD in the realm of
middleware throughout the appropriate communities in the UK and Europe.
Exploitation Route The project identified a number of areas for potential research. We envisage that MDE research on runtime models will pave the way for the development of environments in which change agents (e.g., software maintainers, software-based agents) use runtime models to modify executing software in a controlled manner. The models act as interfaces that change agents can use to adapt, repair, extend, or retrofit software during its execution. In our broad vision of MDE, models are not only the primary artifacts of development, they are also the primary means by which developers and other systems understand, interact with, configure and modify the runtime behavior of software. Realizing this vision involves overcoming significant challenges that are best tackled in a collaborative research project.
Sectors Digital/Communication/Information Technologies (including Software)

 
Description The research conducted in this project is concerned with developing adaptive systems that behave in a dependable manner. Software systems that can automatically adapt to changes in their environments are playing increasingly vital roles in society's critical infrastructures and thus their trustworthiness is a major concern. Examples of critical software-based adaptive systems are disaster management, first-response, transportation control, and power management systems, and control systems for autonomous devices that operate in environments hostile to humans. These software systems are typically deployed on distributed platforms consisting of heterogeneous computing devices, thus further compounding their complexity. Techniques for taming the complexity of adaptive software during development are needed because errors in their designs can lead to failures that endanger societies. Other examples of the critical use of adaptive software are systems that monitor the environment and predict flooding and other natural disasters. Adaptive software can also be used to detect and counter hostile attempts at compromising critical infrastructures, to quickly contain and recover from failures within infrastructures, and to reconfigure and reallocate infrastructure elements so that critical services can still be delivered where needed when parts of the infrastructures have been compromised. Developing critical adaptive software is a complex task. There is an urgent need to develop a new generation of techniques for engineering trusted distributed adaptive software. In this collaborative research we tackled challenging problems associated with (1) developing rigorous requirements and design techniques that manage the complexity of addressing the many interdependent and competing functional, dependability and adaptability concerns that must be addressed when building critical adaptive software, (2) developing robust adaptation mechanisms that are capable of identifying the need to adapt and of performing timely, safe and correct adaptations, and (3) evolving adaptive software to correctly handle adaptations that were not designed into the original system. The project led to a successful EC FP7 project DiVA on dynamic variability in self-adaptive systems.
First Year Of Impact 2008
Sector Digital/Communication/Information Technologies (including Software)
Impact Types Economic