ABOUT ICE

Research Area: Generic data-sharing infrastructures

As hand-held devices, including mobile telephones, become more and more powerful, their ability to support more "advanced" types of applications increase. This opens up for the possibility of developing distributed applications that may run simultaneously on a variety of different terminals, exchanging data between them. However, the task of developing truly "multi-terminal", distributed applications require an adaptive software infrastructure that are able to support various types of communications patterns (event based, stream based, etc.) involving various types of data.

This effort focuses on the specification and development of a generic software service for supporting data-sharing between possibly heterogenous distributed applications. The data-sharing service will allow applications to publish a set of data objects, which are then accessible to other applications for inspection or even modification. All updates to shared objects will automatically be available to interested applications, for instance as notifications (event distribution) or explicit propagation of attribute values (state distribution).

The key research issues that will be addressed include how to design a service system that scales well as the number of connected applications and/or the number of shared objects increase, how to support different distribution architectures (e.g., client-server and peer-to-peer), how to handle load balancing within the data-sharing service, mechanisms for service discovery and activation, how to support various types of consistency protocols for the object state and event distribution, and how the system can take into account various characteristics of the connected applications and terminals (e.g., bandwidth, display capabilities, cpu power, etc.) to achieve an optimal data distribution.

The general aim is to design a data-sharing system that is generic, open and modular in design, with the assumption that it can be easily extended or reconfigured to be used in various different settings. Special focus will be devoted to the issue of run-time reconfigurability, meaning that the system's behaviour can be changed during run-time, e.g., via reflection mechanimsm or the replacement of loaded software modules. Such a characteristic is very important since it allows a system to be upgraded while its running, saving the costs of halting the system due to maintenance etc.



Contact details:

Olov Ståhl & Emmanuel Frécon