Ubiquitous Computing: Shall we understand it?

This was the question debated at a Computer Journal Lecture, which began with the following presentation by Robin Milner of Cambridge University, followed by the discussion below.

The broad view

Pervasive or ubiquitous computing has become an aspiration of the computing community in the last 15 years.

Its vision, pioneered by Mark Weiser [1], is that populations of computing entities - hardware and software - will become an effective part of our environment, performing tasks that support our broad purposes without our continual direction, thus allowing us to be largely unaware of them. The vision arises because the technology begins to lie within our grasp.

This simply stated aspiration arouses questions ranging across computer science and beyond. Here are a few of them.

  • Social questions: what ubiquitous computing systems (UCSs) do people want or need, and how will they change people's behaviour?
  • Technological questions: how will the hardware entities - the sensors and effectors whose cooperation represents such a system - acquire power, and by what medium do they communicate?
  • Engineering questions: for the populations and subpopulations - including software agents - that make up a system, what design principles should be adopted at each order of magnitude, to ensure dependable performance?
  • Foundational questions: what concepts are needed to specify and describe pervasive systems, their subsystems and their interaction?

The UK Computing Research Committee (UKCRC) has mounted an exercise posing a number of Grand Challenges for computing research over the next two decades [2]. One of these Challenges, Ubiquitous Computing: Experience, Design and Science [3], proposes to develop ubiquitous computing by tackling these four classes of question in a closely coupled manner.

The questions are already addressed to a varying extent for conventional software, but they are raised to an unprecedented level of difficulty by the following qualities that ubiquitous systems will possess in high degree.

First, since we shall be largely unaware of the activity of such systems, they will continually make decisions hitherto made by humans.

Second, new technologies will allow such systems to be vast - orders of magnitude larger than any we know, including the Worldwide Web - and the difficulties of designing and understanding them will surely grow nonlinearly with their size.

Third, the systems must adapt continually to new requirements, retaining reliability and without interrupting service (on whose continuity we shall increasingly depend).

Fourth, though individual systems may be designed independently, their pervasive nature will inevitably lead to unplanned interaction between them.

This tangle of concerns, about future systems of which we have only hazy ideas, will define a new character for computer science over the next half-century. What sense can we make of the tangle from our present knowledge?

In answering this, it is helpful to expose an (intended) ambiguity in the title of this lecture. The question 'Shall we understand it?' can be interpreted passively: Will understanding be possible? or actively: Do we wish to ensure understanding?

A recent report [4] contains an admirably detailed analysis of the risks and effects of ubiquitous computing, but declares (p.17) ubiquitous systems that '... no one can cope with the complexity of such distributed systems, neither mathematically nor legally'.

So the report interprets our question passively, and answers it 'No'. Since the systems in question are to be designed by us, my response is quite opposite; indeed, our role as computer scientists demands that we interpret the question actively and answer it Yes - we do indeed wish to design in a way that admits understanding.

This understanding must exist not only for scientists, but also to a certain degree for the general public. It may be argued that a user, being largely unaware of the performance of a UCS, has no need to understand it. But we do not apply this argument for the natural sciences.

For example, most of us are largely unaware of the chemistry of our bodies, yet nowadays public understanding of the natural sciences is increasingly sought. It would be paradoxical not to seek it for the science of our own artefacts.

So, as we aim to create new systems that we do not yet fully understand, we shall need to create models - and modelling tools - that help us to improve our understanding, both as scientists and as users. What kinds of model do we want?

Read the rest of Robin's presentation:

Modelling Ubiquity
Software science for ubiquitous systems
Models as languages
Two experiments
A tower of models
Goals for the challenge
Projects to meet the challenge
Coda
Acknowledgements and References

Discussion

1. Morris Sloman, Department of Computing, Imperial College London
2. Martyn Thomas, Martyn Thomas Associates, UK
3. Karen Spark-Jones, Computer Laboratory, University of Cambridge
4. Jon Crowcroft, Cambridge University
5. Marta Kwiatkowska, University of Birmingham
6. Paul Gardner, Head of Pervasive ICT Research Centre, BT Group Chief Technology Office, British Telecommunications
7. Nicholas R Jennings, School of Electronics and Computer Science, University of Southampton
8. Vladimiro Sassone ECS, University of Southampton
9. Eamonn O’Neil, Department of Computer Science, University of Bath
10. Michael Wooldridge, Department of Computer Science, University of Liverpool
11. Carsten Maple, Institute for Research in Applicable Computing, Department of Computing and Information Systems, University of Luton
12. George Coulouris, Digital Technology Group, Computer Laboratory, Cambridge University
13. Dan Chalmers, Department of Informatics, University of Sussex