Biological Models for Ubiquitous Computing
Project Proposal , funded by FONDECYT.
- lead researcher: Jessie Dedecker
- sponsoring researcher: Éric Tanter
This project is centered on the use of biologically inspired models for designing and implementing system software for ubiquitous computing. The goal is to study how such models can be used to organize the software in a highly decoupled fashion to achieve meaningful emergent behavior.
Ubiquitous computing is a post-desktop model of interaction that makes many computers in the physical environment available by integrating them into everyday objects, making computers effectively invisible to the user. Ubiquitous computing systems have put new requirements on the manner in which software is structured, which are currently not addressed by the state of the art. Software for ubiquitous computing should be structured in a decentralized manner such that smart objects can be organized in an unanticipated setup and interoperate spontaneously. Furthermore, a ubiquitous computing system is also subject to a high degree of volatility: the setup of the system is highly dynamic and unpredictable due to the unheralded mobility of users and devices.
Many of the characteristics found in ubiquitous computing systems are also exhibited by biological systems: 1) Biological systems are typically organized in societies as a collection of interacting individual entities. These individual entities usually cooperate in a highly decentralized fashion and do not have global knowledge about the goals they are addressing. Nevertheless, meaningful global behavior emerges from the collection of individual actions. Similarly, a ubiquitous computing system is organized as a collection of interacting smart objects. The behavior of a ubiquitous computing system emerges from the actions and interactions between smart objects. 2) Biological systems have to organize themselves based on the provisions (e.g. nutrients, shelter, …) found in their environment. Likewise, ubiquitous computing systems have to integrate with their physical environment. The physical environment influences the manner in which devices interoperate and determines the operation mode. 3) Biological societies are highly dynamic; groups of cooperating individuals can spontaneously be formed and are typically also resilient to the disappearance of individuals. Similarly, the setup of a ubiquitous computing systems is highly dynamic and unpredictable since smart objects may disappear as swiftly as they have appeared. These similarities between the two systems indicate that biological models may be a good way to structure software for ubiquitous computing.
This project proposes to study how two concrete biological models can contribute to better structure software for ubiquitous computing. The first model is based on stigmergy, a phenomenon used by social insects to coordinate their actions through the environment without directly communicating to one another. The second model is based on membrane computation, which uses communication and boundary principles found in cell structures to organize computations. Both models support a decentralized organization of computation, which are composed of local interactions between distributed individual entities. Local interactions are an intrinsic part of biological models and are an essential ingredient to achieve a decentralized and decoupled setup. In order for these biological models to be applicable in the context of ubiquitous computing we need to reconsider the notion of local interactions. For this reason we propose to study how interactions can be scoped based on both the physical environment of a device and application-specific information. An expressive definition of such scoped interactions will enrich the study of both biological models. Finally, it is our conjecture that both biological models have complementary properties and that the unification of both models will further enhance the structure of ubiquitous computing software.
The outcome of this project will enable one to structure ubiquitous computing software based on a biological paradigm of programming. Support for this mode of programming will be incorporated in a contemporary programming language, called AmbientTalk. This language is a good experimentation platform because it has been conceived from the ground up to support the development of ubiquitous computing applications; it is both behaviorally and syntactically extensible via its reflective interface; and finally, it supports the use of existing Java code such that we can tap into a large code base of existing APIs. In addition, we will implement a number of applications that are structured using the biologically-inspired programming abstractions.