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:

  • these systems could be considered as embedded systems as they have to ensure some minimal running facilities in a strictly autonomous way during a mission for which we do not know, a priori, the tasks which will be run
  • these systems may have to ensure soft real time constraints due to possible multimedia applications
  • these systems have to take into account the specificity of some kind of resources, in particular the energy, the physical context and the mobility of the user, and the limited amount of some resources such as memory or CPU
  • these systems have to be designed taking into account the instability of cellular networks (bandwidth, connection, etc).

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
The main goal of this activity is to envision the use of wireless appliances that allow the user to perform actions such as Internet accesses, application downloading, and phone calls. However, the actual provision of the aforementioned environment on the wireless appliance is far from straightforward; hardware and software solutions still need to be devised. Our research concerns software solutions design. A wireless software environment must meet the following requirements:

  • maximize efficiency so as to support efficient execution of applications, possibly run concurrently
  • minimize power consumption so as to provide users with highly autonomous, small-sized appliances
  • maximize availability so that users can benefit from their appliances despite the occurrence of failures
  • support multimedia applications, which have ‘soft’ real-time constraints
  • support dynamic downloading of applications (eg through Internet).

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:

  • concurrent execution of multimedia applications, by handling associated timeliness requirements
  • efficient execution of applications by exploiting the underlying architecture
  • parallelism together with minimal power consumption, through the provision of complementary scheduling and load balancing policies.

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
A spontaneous information system is a system composed of computing devices that are carried by people and that communicate by a Short Distances Wireless (SDW) interface. Devices can only communicate with each other when they are within a relatively short distance. Since devices are mobile, a device may leave a network at any time – simply by being moved out of communication range of other devices. Spontaneous networks are analogous to human groupings: people can only directly communicate when they are close, strangers that meet may exchange information, and this exchange may lead to further exchanges (notably of more sensitive information) as the relationship develops. A person can find himself in a network at any time, and the network around him or her varies over time. It is very easy to imagine relevant applications of this paradigm: medical domain, e-commerce, PDA-to-PDA information exchange, games, etc.

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 user’s 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.

Location Awareness
Location awareness is the last important aspect to consider: ubiquitous computing enables the system to fade into the environment, by its potential to guess the context of the users without requiring explicit interactions from them. Up to now, most localization services were used to build applications related to navigation (helping the user to locate himself or other entities in the environment, like GPS car navigation system). We believe that a lot of research still has to be done for a true context-aware system, which uses localization as a part of the context representation (along with time), to go further than a navigation application. Currently we have designed an original solution based on SDW technologies to dynamically sense the relevant context aspects of a mobile user.

Java Development Environment for PDA activity is supported by Texas-Instruments and the Spontaneous Information Systems activity is supported by Alcatel R&D

Please contact:
Michel Banâtre - INRIA
Tel: +33 2 99 84 72 85
E-mail: banatre@irisa.fr