Middleware Support for Ubiquitous Computing
by Luc Hogie and Christian Hutter
Mobile devices such as Personal Digital Assistants (PDAs) are currently used mostly for personal information management. However, these devices are becoming powerful enough to run much more sophisticated applications not only in an isolated manner, but even, due to their wireless communication capabilities, in a cooperative way. We are looking at middleware support in the domain known as ubiquitous computing.
In order to highlight some of the challenges inherent to ubiquitous computing, we use the example of ubiquitous gaming. Based upon elements of traditional multiplayer games like 'The Settlers' or 'SimCity', we introduce various ideas of how to adapt them for use in a ubiquitous environment.
For instance, while travelling by train, passengers could play a game together. At train stations, some players might leave while others join the game, possibly taking over existing roles. People could also collaborate, joining forces as well as dividing work. In addition to that, the environment itself could have an influence on the game. For instance, train stations might represent marketplaces in which a large variety of goods are offered and collaboration with other players waiting for their trains is possible. Aside from that, several sophisticated services, hosted for example on a powerful stationary node, might be available only at such special locations (see Figure).
Obviously, middleware support for ubiquitous applications is a very big field. Currently we are focusing on two specific areas within this complex domain, which will be discussed throughout the subsequent sections.
One problem area to be tackled is that of sharing and distributing information between network nodes, ie, not only between all participants in a single application, but also across different applications, where some information (eg, where other devices are likely to be found) might be of general interest. For that purpose, we introduce the concept of information brokers. An information broker is a service running locally on each device, collecting and disseminating data in the background while within the coverage area of other devices.
From a logical perspective, a single set of information is available via the local broker. Physically, however, data is fully distributed over all nodes, with a local cache holding copies of the most interesting information. Queries are issued against the local broker, which can not only return data stored locally, but also send agents into the network. These agents collect information from devices in the local surroundings, thereby supplementing the query results in an incremental way. For non-time-critical queries that are allowed to run for some time, it is even possible to collect information from nodes that were not connected to the network at the time that the query was initiated. In the game example, a player might want to look for the best place where to buy or sell items of a specific type, dependent upon the current price and other criteria. As this kind of information might become outdated after a period of time, appropriate strategies, eg for limiting information lifetime, need to be provided. In particular, the trade-off between replica consistency and communication overhead is a complex research topic.
In the context of this task, we are collaborating closely with the University of Trier, Germany, where a macroscopic simulation environment for multihop ad hoc networks has been developed. Information brokers represent a service integrated with that environment. By using the simulation, we can test our algorithms with a large number of devices. The Trier team in turn employs our service in their own applications, thereby giving us valuable feedback.
Service Architecture and Mobile Grid
Aside from sharing information between the nodes in the network, it is also sensible to share resources, eg in terms of computing power and services. Up to now, scientific and business applications have benefited from networking mostly by using distributed resources for storage and retrieval of information or distributing the computational effort on different nodes.
Most research on distributed and parallel computing is based on an existing and fixed network infrastructure and therefore leads to fairly static solutions such as PVM, MPI, CORBA, RMI, etc.
With the emerging ubiquitous computing paradigm, certain significant limits relevant to current middleware must be addressed. In particular, middleware is:
- usually tied up with a central naming mechanism
- built for use of workstations or servers, meaning most current middleware is heavy and therefore unsuitable for use on lightweight devices.
Our aim is to define elegant models of a service architecture for ubiquitous applications. We are interested in the concept of a large-scale operating system using the resources available not only on the local machine but everywhere in the network. This might be considered as an extension of current well-known peer-to-peer networks like Kazaa or Gnutella. These open networks focus on file sharing. The idea is to allow nodes in such a network to act as service providers. Assuming a device can make available services of any type, the network is able to represent a computational grid, a data-sharing system, or even a distributed database. We are currently working on the model (using the metaphor of human society and communication) and its implementation. Once completed, it will be the lowest layer of (and a first step towards) a middleware and runtime environment dedicated to applications for the mobile grid.
This research is done in collaboration with the Computer Science Laboratory at the University of Le Havre (France), where work is currently being done on the specific issue of load balancing for ad hoc networks.
Luc Hogie, Christian Hutter
Luxembourg University of Applied Sciences
E-mail: Luc.Hogie@ist.lu, Christian.Hutter@ist.lu