With sensors becoming increasingly ubiquitous, there is a tremendous potential for services which can take advantage of the data collected by these sensors, from the important — such as detecting medical emergencies and imminent natural disasters — to the mundane — such as waiting times experienced by diners at restaurants. These services rely on the state of the context in which devices are located, such as a person or a group of people carrying the devices, their geographical location, etc. I refer to such services as mobile distributed services.
The barriers to offering mobile distributed services continue to be prohibitive for most: not only must these services be implemented, but they would also inevitably compete for resources on people’s devices. This is in part because such services are poorly understood, and consequently, there is limited language support for programming them. In this talk, I will present a number of mechanisms and systems I have developed to support different aspects of mobile distributed services