A Resource and QoS Management Framework for a Real-Time Event System in Mobile Ad Hoc Environments Hector A. Duran-Limon 1 , Gordon S. Blair 1 , Adrian Friday 1 , Thirunavukkarasu Sivaharan 2 , George Samartzidis 1 Computing Department, Lancaster University, Bailrigg, Lancaster LA1 4YR, UK. {duranlim,gordon,gs,adrian}@comp.lancs.ac.uk 1 , t.sivaharan@lancaster.ac.uk 2 Abstract A new class of applications can now be envisaged with the emergence of both mobile ad hoc computing and ubiquitous computing. Applications of such kind are characterised by being largely distributed and proactive, i.e. able to operate without human intervention. The anonymous and asynchronous paradigm, which is advocated by event models, has shown to be well-suited for this kind of applications. However, current real-time event-oriented middleware technologies do not provide a complete solution for the requirements of mobile ad hoc environments. In this paper, we present the research carried out on both a resource and a QoS management framework to achieve real-time support for an event system operating in mobile ad hoc environments. The framework makes use of both reflection and component technology. The implementation of our resource system is developed in OpenCOM, which is a lightweight, efficient and reflective model based on Microsoft’s COM. 1. Introduction Over the last few years we have seen the proliferation of embedded mobile systems such as mobile phones and PDAs. Ubiquitous computing is also taking off in which multiple cooperating possibly embedded controllers are used. A new kind of applications can now be envisaged with the emergence of both mobile ad hoc computing and ubiquitous computing. Applications of such kind are characterised by being largely distributed and proactive, i.e. able to operate without human intervention. A set of further characteristics are also involved such as context awareness as a means to sense the surrounding environment. Examples of these applications include automatic car control systems in which cars are able to operate independently and cooperate with each other to avoid collisions. Another example is an air traffic control system whereby thousands of aircraft are proactively coordinated to keep them at safe distances from each other, direct them during takeoff and landing from airports and ensure that traffic congestion is avoided. Smart room systems can also be foreseen in which the intensity of light, room temperature and some other features are automatically tuned according to the user preferences of the persons present in the room. The CORTEX Project 1 is examining fundamental issues relating to the support of such applications, including the development of middleware for this domain. The CORTEX approach is based on anonymous and asynchronous event models. Such models are well-suited to ad hoc environments including a large number of autonomous processing units. These many-to-many communication scenarios are well supported by the anonymous dissemination of information. In addition, asynchronous communication is well-suited to systems where frequent disconnection is anticipated as blocking conditions are avoided. Further requirements include support for mobility and non-functional properties such as timeliness and reliability since some of these applications are time- and safety-critical. However, current event- oriented middleware technologies do not provide a solution for all the challenges imposed by these applications. A higher-level programming model is also needed to deal with the complexity of multiple event interactions with different QoS demands. In addition, current programming models do not generally differentiate between functional and non-functional properties. The result of this is a code tangled with different aspects which is more difficult to write, read and reuse. As regards timeliness requirements, we believe that resource management plays an important role in providing support for real-time applications. In particular, the mechanism that allocates resources in the system should ensure that critical activities will be provided with enough resources to carry out their tasks in a predictable way. Changes in the availability of network resources and periods of disconnection are frequently experienced as mobile computing environments are highly dynamic. Furthermore, mobile applications typically operate on devices with scarce resources, e.g. CPU capacity, system memory and battery life. Therefore, support for the predictable and efficient management of the system resources as well as resource reconfiguration capabilities for achieving adaptation are required. An example of the latter is a redistribution of both CPU-time and memory to 1 This work is supported by the EC, through project IST-FET-2000- 26031 (CORTEX). http://cortex.di.fc.ul.pt