Events - Colloquia & Seminars
CCIS Colloquium Spring 2005
Abstractions and Algorithms for Pervasive Programming
Speaker: Patrick Eugster
SUN Microsystems, Switzerland
Date: March 21, 2005
Talk: 10:30am, 366 WVH
Abstract
Through the continuously increasing number of devices equipped with computing and communication capabilities, the vision of "pervasive computing" is materializing. Computing has become inherently distributed, but with the power of pervasion comes complexity, as typical applications involve more and more components, both hard- and software ones. This places yet more burden on the application developer, which namely has to deal with aspects of the underlying infrastructure such as (lack of) availability and reliability of communication and hosts, in addition to software aspects, such as extensibility, reusability, and adaptability of software components. These constraints ask for new programming paradigms which account for the dynamism of modern distributed settings. A fundamental concern consists in minimizing coupling of components.
This talk presents abstractions and algorithms for programming in pervasive settings, centered around a candidate abstraction called type-based publish/subscribe (TPS). TPS combines the loose coupling provided by the publish/subscribe communication style with high-level guarantees such as type safety and encapsulation. We present an overview of two ways of making TPS accessible to the programmer in the Java programming language, a first one based on specific primitives added to the language, and a second one making use of recent inherent features of Java. Being essentially a multicast primitive, TPS is implemented mainly through multicast algorithms. We outline a set of such algorithms --- designed and implemented in the context of TPS --- which follow a randomized approach. Through these algorithms, we discuss the benefits of probabilistic approaches for pervasive computing, as well as the difficulties encountered when providing probabilistic guarantees to the programmer.