Ubiquitous computing (hereafter called Ubicomp) is a vision, conceived about two decades ago, of informatic systems that will increasingly pervade our world in the 21st century. Our technology for sensors, effectors and communication will enable us to build systems that autonomously manage our environment. Without our awareness they will make decisions previously made by us. Examples are individual health care and control of traffic on motorways.
This vision, though exciting, also arouses a cautious reaction. Bearing in mind the patchy reliability of current large informatic systems, we cannot expect current software engineering practice to cope with Ubicomp; these new autonomous systems will be huge in size and novel in quality, and expected to adapt to changing requirements without our intervention.
Around 2004, as part of the UK's initiative of Grand Challenges for Computing Research, a Challenge called Ubiquitous Computing: Experience, Design and Science was defined [1]. Its manifesto distinguishes three essential themes of the research required:
This website introduces a proposal for the foundational aspect of Ubicomp. It rests firmly upon earlier research by many people. In 2006, two papers [2,3] advocated the notion of a tower of models for Ubicomp. It arises from the daunting range of concepts needed to understand Ubicomp: data provenance, privacy, authorisation, trust (among agents), self-awareness, self-management, reconfiguration, failure recovery, goals, beliefs, ..., and the list can be extended much further.
No single model can handle all these concepts, so a hierarchy of models is needed. The concepts at each higher-level model must be represented or implemented at a lower level, and where possible this representation must be proved sound. We therefore think of the notion of explanation of one model by another. In addition, we must cater for combination of two models at the same level, each explaining a part of a lower-level model.
The essay [4] explores these ideas in greater detail, with illustrations. This work does not impose a preconceived definition of `model' on our science. It aims to promote debate upon what kinds of models will be useful, and above all what kind of relationship they bear to each other. It allows that many useful models, and the corresponding explanations and combinations, will be informal; and it acknowledges that much existing informatic science can be readily cast in terms of models.
At a Royal Society Discussion Meeting [5], where a wide range of research in Ubicomp was presented, three panelists gave position papers [6,7,8] representing the three themes. The paper on the science theme [8] is reproduced here, as a concise summary of the approach to models I have put forward.
Finally, as anticipated in [3], the Lecture Slides at [9] give an outline of how the other strand of this work, bigraphs, may provide a generic foundational model for Ubicomp.