Computers and networking technology are becoming an integral part of our living and working environment. The increasing mobility and pervasiveness of computing and communication enables new services and applications that can improve quality of work and life. However the constant change that characterize mobile environment - e.g. network, battery, light and noise conditions - poses a significant challenge to developers. To retain usability, usefulness, and reliability applications need to adapt to the changing operating environment and the context in which they are used. Existing software development methodology and middleware technology do not support such dynamically adaptive applications.
The overall objective of MADAM is to provide software engineers with modelling language extensions, tools and middleware that collectively foster the design, implementation and operation of innovative applications and services for the mobile user and worker. To achieve this objective we will study the adaptation requirements of mobile applications and develop a theory of adaptation. A set of reusable adaptation strategies and adaptation mechanisms, based on dynamically reconfigurable component architecture will be developed. Modelling language extensions and tools will enable application designers to specify adaptation capabilities at design time.
MADAM will provide prototype implementations of the reference middleware platform as well as the modelling tool extensions. Pilot applications will be developed to validate the approach and the prototype implementations. The project puts considerable emphasis on the dissemination and commercial exploitation of the results. Therefore, strong and focused industry partners are included in the consortium.
The MADAM project aims towards simplifying the design and implementation of mobile adaptive applications. This is necessary to bring out the best of the exciting new possibilities of next generation mobile computing technology.
Motivation
Computers and networking technology are becoming an integral part of our living and working environment. The increasing mobility and pervasiveness of computing and communication enables new services and applications that can improve quality of work and life. When people are moving around while using handheld networked devices, significant variability is introduced in the operating environment for the provided services. For example, communication bandwidth change dynamically in wireless communication networks and battery power of handheld device decreases. Furthermore, user interface preferences change when on the move because light and noise conditions change, or hands and eyes are busy with other things.
This poses a significant challenge for application developers: dynamic adaptation is required in order to retain usability, usefulness, and reliability of the application under such circumstances. Existing software development methodology and middleware technology are not designed and not capable to support such dynamic adaptation.
Vision
The overall objective of MADAM is to provide software engineers with suitable means to develop mobile adaptive applications. The project will investigate the idea that adaptivity can be supported by generic solutions in the form of extensions to methods, languages, middleware and tools.
The scientific and technological objectives
- To develop an open framework for the management of dynamic adaptivity. This framework will encompass concepts, languages, middleware and tools. A variety of devices (including mobile phones, PDAs and application servers) will be supported.
- To assess the ability of this framework to support adaptivity and facilitate the development of adaptive applications.
Scientific and technological activities to achieve the main objectives
- Capture the requirements to adaptivity in mobile applications (and services) through the development of application scenarios.
- Develop a theory of adaptation that aims at tuning the quality properties of applications in a mobile context. A set of reusable adaptation strategies and adaptation mechanisms will be developed
- Identify and develop a set of reusable mechanisms for the dynamic reconfiguration of applications (i.e. reconfiguration at runtime).
- Integrate the proposed adaptation and reconfiguration mechanisms in a component based architecture thus providing a reference architecture for adaptive applications.
- Develop a middleware prototype compliant to the proposed reference architecture and that supports the proposed adaptation and reconfiguration mechanisms.
- Develop a software design methodology that captures possible adaptation paths and adaptation policies during modelling.
- Develop the necessary tool support for specifying adaptation capabilities on a high level of abstraction and for transforming those specifications to the proposed middleware.
- Develop pilot services in order to assess the adequacy of the proposed solutions.
Technical Approach
The project approach is based on the following main technical elements:
- Context monitoring and decision making about adaptation can to a large extent be managed by generic middleware components.
- Component based architectures and reflection together offer necessary capabilities for dynamic reconfiguration.
The application developer should describe the ways in which applications can be reconfigured and the effects of reconfiguration on the application properties. MDA, UML and emerging standards for quality of service specification form a suitable basis for necessary language and tool extensions to support modeling adaptivity properties.