The heart of this book is a chapter describing the system “tuples on the air,” which the authors have implemented. This is based on a simple idea, which has been considered by others before, but it benefits here from being worked through thoroughly and described well.
Suppose we have a network of processors, each of which holds information about the universe in the form of tuples. The network interacts with the universe through the injection of a tuple into a processor. A tuple has a set of rules to be obeyed when a processor receives it, stating how it is to be stored on the processor, and how modified versions of it are to be sent to other processors. For example, a tuple may represent the location of a particular entity in the network. When the tuple is sent to a neighboring processor, it is modified by increasing a distance field in it by the distance to the neighbor. If a processor receives a modified version of a tuple it already has, it ignores it if the distance field is greater than the one it has; thus, information about the shortest path to the entity will gradually propagate through the network. Sending a modified version of the tuple if the network changes or the entity changes positions means the information the system stores is dynamic, repairing itself to reflect changes.
This is described as field-based coordination, because we can imagine entities in an environment producing a field that either attracts or repels other entities; the closer the entity, the stronger the effect. Processors in the network may represent sensors that are physically distributed across an environment, and the entities may be actors in the environment; tuples on the air is a practical way to implement such a system. A simple example used throughout the book to illustrate this has the entities as tourists and works of art in a museum. The algorithms could be used, for example, to direct a group of tourists to congregate together as quickly as possible (if they have an attractive field), spread themselves out (with a repellent field), or find particular works of art. The principles described here could be used as the basis of more complex algorithms, with a variety of practical uses.
The book is a good contribution to the growing paradigm of computing that looks beyond centrally controlled systems to ones consisting of many computational entities that interact in an irregular manner, with none of them having an overall view of the entire system. There is speculation about more advanced uses of the technology, leading up to how it could be used to build a cloak of invisibility.
The technical level of the book is just about right for it to be accessible to a final year undergraduate; it would provide good inspiration for an able student seeking a good project topic. There are plenty of appropriate references, so the book could act as a stepping stone to further research in this area.
Although the approach described in this book is just one of many being proposed at this time, it seems inevitable that the sort of distributed computing it seeks to tackle will increasingly dominate the field of computer science. Some of the speculative scenarios raise questions about the social implications of this new technology, though that is a topic for another book, perhaps wisely ignored here.