ERCIM News No.47, October 2001 [contents]
Ubiquitous Computing and Embedded Operating Systems Design
by Michel Banâtre
A research activity at INRIA concerns the impact of Ubiquitous Computing on operating system design, particularly the aspects related to Java for appliances, Spontaneous Information Systems and context awareness.
One of the main purposes of an operating system is to provide the basic mechanisms to manage hardware resources available on architectures in order to run applications in an efficient way. Obviously, its purpose is not limited to hardware resources management, it provides all facilities for their virtualization to make resources accesses easier.
Resource management is always the problem that operating systems researchers have to solve. Obviously solutions provided ten years ago, need to be strongly reconsidered, mainly due to the evolution of the hardware architectures and also to new application domains. Some of these application domains have already been carefully considered. For example a lot of research has been carried out concerning multimedia applications. Here, one of the main problems is to guarantee a quality of service (QoS) which can be defined in terms of security, availability or efficiency: Today, the growing interest for mobile devices (PDA, cell phones, Car Information Systems, etc.) requires advanced researches in the emergence of Ubiquitous Computing. Intuitively it can be defined as making computer systems pervasive, enhancing user interaction with the environment, as seamlessly as possible. Obviously context awareness plays a major role in this area. The Ubiquitous Computing research area is not new, Marc Weiser identified it ten years ago. However, at that time the need of specific equipment in term of communication facilities or terminals made difficult to imagine what kind of applications could benefit from the new research area. Today, the situation is totally different with the development of wireless communication facilities (eg GSM), the new generation of mobile phones and PDA, the short distance wireless technology (wavelan, bluetooth, etc.). Some research projects are running, but they are mainly concerned with the definition of user interfaces or interaction scenarios between the user and its PDA, which leads to the notion of wearable computers. A great deal of research remains to be done about operating systems to support Ubiquitous Computing. Reasons for this are:
To summarize, we can advocate that operating systems have to be reconsidered taking into account constraints related to the physical environment at large. To do that, we need to examine the impact of ubiquitous computing in areas such that resource allocation, load balancing techniques, scheduling algorithms, etc. It is clear that a lot of results exist concerning these activities, but the challenge is to provide global solutions, which take into account simultaneously, for example, soft real time requirements, energy consumption and short distance wireless connection.
Our research theme is devoted to the design of such operating systems, through three main activities. One is related to the design and the implementation of a Java Development Environment that allows the development of Java multimedia application targeted appliances, the other one concerns spontaneous information systems based on Short Distance Wireless (SDW) technologies, and the last one is about location awareness.
Java Development Environment for PDA
A Java environment achieves the latter requirement. Furthermore, the de facto standard status of Java leads to a significant amount of available software, which will continue to grow. However, providing a Java environment for appliances that both supports multimedia applications and exploits the underlying hardware, which could be a multiprocessor, is an open issue and constitutes the main core of our current research. A Java runtime environment has been designed that allows the development of Java multimedia applications, targeted for appliances. Such an environment supports:
Currently, the research is devoted to taking the benefit of the underlying hardware in order to improve the efficiency of our environment.
Spontaneous Information Systems
Among all the challenges we have identified, we have selected some which demonstrate the real need for new research. One is coming from the fact that the network composition is dynamic and localized. Devices can only communicate with devices in their neighbourhood, and once a device leaves the range of communication, it no longer forms part of that network. A device can only use the information available on its current network. The second one is autonomy. For instance, many spontaneous systems are formed mainly by PDAs, which are programmable devices. On the one hand, this makes the range of possible applications large. On the other hand, it introduces extra complexity since devices may interact in unforeseen ways. For example, a device may use a protocol that other devices are unaware of.
The last important feature of spontaneous systems is that the value of the information can be highly localized in time and place. For instance, information about a traffic jam can be useful to a person in a car who is one kilometer from the jam, but the information is useless one day later or to anyone who is not in a car. Information in a spontaneous network is highly contextual and situational.
All of these problems combined are particular to spontaneous information systems and suggest a new form of building and operating systems as the users physical mobility has to be taken into account at the resource management level (energy, CPU, etc). Currently we are involved in two main directions, one related to the proposal of predictive scheme in order to estimate the communication time depending on users mobility. The other is concerned with data location and accesses. In order to integrate all these results a demonstrator is under construction.