Key Architectural Principles are shared by
multicellular life and multicellular computing
Four principles of
multicellular systems -- Architectural strategies for
managing cooperation between cells emerged more than 500 million
years ago. They are nearly universal in multicellular
organisms. And they each evolved before or coincident with
the emergence of multicellular life. Webs of cooperating
computers are evolving similar principles.
Specialization
in Computing -- Although there is a tendency to think of
computers as general purpose, most computers are in fact quite
specialized already
2) Messaging -- the
receiver, not the sender, determines a message'a meaning
Messaging in
multicellular computing -- code transfer should also be
taboo.
Issues of loading code and
dealing with interpreted
code complicate matters.
3) Stigmergy --
individual parts of the system communicate by modifying their
local environment. The modifications become persistent
cues for other elements in the system
Stigmergy and
self -- self is defined by the
body-as-stigmergy-structure, not by the genetic identities of the
cells
Stigmergy in
computing systems -- cues left in persistent stores,
e.g., databases, network structures and Web Services, organize
multicellular computing
Apoptosis in
Computing -- in multicellular computing, the individual
computer must be willing to sacrifice itself for the good of
the larger organism. But old single-cell computing attitudes
that each computer is supreme will die slowly.
How
the four principles are intertwined -- the four principles
co-evolved and are interdependent both as abstract architecural
principles and as concrete implimentations within each cell.
Conclusions --
The evolution from single-cell to multicellular
computing is happening. The Four Principles
can smooth the transition.
Background Issues: The Underlying Problems of
Complexity in both worlds
A brief statement
of the problem -- Complexity in the digital world is
beyond our control, yet computing becomes ever more central to
business and society
Characterizing
Complexity -- Dynamic complex systems inevitably become
even more complex. But why? Turns out that's a deep question.
Dynamic
Complexity -- Dynamic elements in a system that adapt to
other dynamic elements create positive feedback loops and
complex interdependencies
Out of
control complexity -- Once complexity is out of control,
it takes control
The need for
Encapsulation -- both life and computing use encapsulation
to limit unwanted dynamic interactions
The
parallels between biology and computing -- Information
processing, complexity, encapsulation and the evolution toward
multicellularity
Biological
information processing -- Cells process information in
order to survive and thrive. How comparable are their
capabilities to computers?
Background Issues: Emergence and Evolution
Multi-Level
Emergent Complexity -- Complex systems inevitably evolve
multiple levels of complexity which are difficult to understand,
and even more difficult to predict
Multi-Level
Biological Systems -- It took more than a dozen
intermediate stages/levels of emergence to evolve
multicellular life, and they all still play a role in everyday
living systems.
Multi-Level
Computing Systems -- The evolution of computing systems
is far shorter than the evolution of life, but now the two are
merging!
Scale and
Emergence -- The tradeoff between the richness of possible
interactions and the number of elements required in a system for
emergence to generate new surprises.
Examples of Emergence
-- Some familiar examples in nature: hurricanes, flocks of
birds, and sand dunes
The
evolution of multicellular systems -- From "training
wheels" (biofilms) to full-blown multicellular life
Evolution, co-evolution
and monoculture -- No matter how hard we try to engineer
complex computing systems, they stubbornly insist upon evolving.
Other Resources
Slides(pdf)
From the 2004 TII/Vanguard Conference on Complexity
Slides(pdf)
From the 2009 University of Birmingham Seminar