|Full text||Click to download.|
E. Jen Ed. Robust Design: A Repertoire of Biological, Ecological, and
Engineering Case Studies, pp. 207-230. Oxford University Press (2004).
Reprinted in K. Park and W. Willinger Eds. The Internet as a Large-Scale
Complex System, pp. 227-250. Oxford University Press (2005).
The explosive growth of the Internet has created new opportunities and
risks by increasing the number of contacts between separately administered
computing resources. Widespread networking and mobility has blurred many
traditional computer system distinctions, including those between operating
system and application, network and computer, user and administrator, and
program and data. An increasing number of executable codes, including
applets, agents, viruses, email attachments, and downloadable software, are
escaping the confines of their original systems and spreading through
communications networks. These programs coexist and coevolve with us in our
world, not always to good effect. Our computers are routinely disabled by
network-borne infections, our browsers crash due to unforeseen interactions
between an applet and a language implementation, and applications are broken
by operating system upgrades. We refer to this situation as computation in
the wild, by which we mean to convey the fact that software is developed,
distributed, stored, and executed in rich and dynamic environments populated
by other programs and computers, which collectively form a software
ecosystem. The thesis of this chapter is that networked computer systems can
be better understood, controlled, and developed when viewed from the
perspective of living systems.
Taking seriously the analogy between computer systems and living systems requires us to rethink several aspects of the computing infrastructure-developing design strategies from biology, constructing software that can survive in the wild, understanding the current software ecosystem, and recognizing that all nontrivial software must evolve. There are deep connections between computation and life, so much so that in some important ways, "living computer systems" are already around us, and moreover, such systems are spreading rapidly and will have major impact on our lives and society in the future.
In this paper we outline the biological principles we believe to be most relevant to understanding and designing the computational networks of the future. Among the principles of living systems we see as most important to the development of robust software systems are: Modularity, autonomy, redundancy, adaptability, distribution, diversity, and use of disposable components. These are not exhaustive, simply the ones that we have found most useful in our own research. We then describe a prototype network intrusion-detection system, known as LISYS, which illustrates many of these principles. Finally, we present experimental data on LISYS' performance in a live network environment.
Back to publications
Back to previous page