The development of Ambient Intelligence (AmI) applications raises new challenges that have not still been properly addressed. This kind of applications (e.g. smart homes, home telecare, vehicular networks, etc.) must manage: (1) embedded software for devices with different resources, (2) context-awareness, (3) anticipation to user requests, (4) deployment of applications instances such that fits the user and the software/hardware of the device, and (5) dynamic reconfiguration taking into account the changes in the environment.
Since addressing all these features from scratch for every AmI application would be very expensive, it would be desirable to have a specific platform for the AmI domain that provide typical services required by these applications. In order to fulfill all these requirements, we make use of Aspect Oriented Software Development (AOSD) and Software Product Lines (SPL) technologies. By using AOSD we improve the platform modularisation and as such we can define powerful mechanisms for addressing dynamic reconfiguration with the least possible impact in the platform architecture.
However, the AOSD technology is not enough for modelling every kind of variability or generating custom configurations. SPL technology is being succesfully applied to create different configurations of the same application, and therefore we propose the definition of a family of platforms oriented to AmI systems, i.e. a products line from which we will be able to generate the middleware that best fits the resources and capacities of every device (PDAs, sensors, actuators, mobile phones, etc.).
Not only the type of device or network determines the platform version that should be generated, but for everyone exists some different possibilities regarding to the software development technology (different operating systems, APIs, communication protocols, searching algorithms, devices localisation, network topology, etc.). The SPL approach allow us to manage all the existing variability in our domain not at application level as other proposals do, but at middleware level, which makes this proposal a very innovative approach (it is unique).
On the other hand, since the resulting system presents very high dynamic adaptation requirements, it would be desirable to provide mechanisms for verification prior to implementation. To this end we define an extended version of the actions semantic for the aspect orientation, and we focus on defining mechanisms for dynamic composition of components and aspects, which are closer to the real application execution on the platform.
Finally, both the process of generating a concrete middleware and the steps of designing, simulating and validating and AmI application, as well as the implementation of the generated platform, will be addressed using Model Driven Development (MDD) technologies. Our proposal will be validated by means of high social impact applications such as telecare for elder and/or disabled people (Ambient Assisted Living) and vehicular network systems.