System-Level Programming Abstractions for Ubiquitous Computing

The promise of ubiquitous computing is predicated on the ability of programmers to develop applications that will be able to work properly in constantly changing situations. Functions that interact with users and infrastructure must be maintained at tolerable levels even if devices and users are roaming, users switch devices or engage new ones, and the network provides only limited services. In this position paper, we present an approach based on exposing programmers to change while providing them with tools that make dealing with highly dynamic systems much more straightforward. We are developing several applications using our infrastructure and have already released to the research community a version of our system, called one.world . Our next step is to build a user community and to this end we are preparing to offer a workshop to interested colleagues in the fall of 2001 where they will be able to prototype their own applications and leave with working code.