Building biologically-inspired self-adapting systems
by Yuriy Brun
Abstract:

Biological systems are far more complex than systems we design and build today. The human body alone has orders of magnitude more complexity than our most-intricate designed systems. Further, biological systems are decentralized in such a way that allows them to benefit from built-in error-correction, fault tolerance, and scalability. It follows that if we can extract certain properties of biological systems and inject them into our software design process, we may be able to build complex self-adaptive software systems.

Biological systems' complexity makes them not only desirable to guide software design, but also difficult to fully understand. Thus one approach to building software similar to biological systems is by first building models of biology that we can understand. Then these models can guide the high-level design, or architecture of the software systems, resulting in systems that retain the model's fault tolerance, scalability, and other properties.

I present a general outline of how one might use biology to create a model to guide the architecture of a software system, and develop one such model and the resulting architectural style, the tile style, for computational systems that can use a large distributed network of computers, such as the Internet, to solve computationally-intensive problems in a discreet, fault-tolerant, and scalable manner.

Citation:
Yuriy Brun, Building biologically-inspired self-adapting systems, in Proceedings of the Schloss Dagstuhl seminar 08031: Software Engineering for Self-Adaptive Systems, B. H. Cheng et al., Eds., 2008.
Bibtex:
@InProceedings{Brun08dagstuhl,
  author = {Yuriy Brun},
  title =
  {\href{http://people.cs.umass.edu/brun/pubs/pubs/Brun08dagstuhl.pdf}{Building
  biologically-inspired self-adapting systems}},
  booktitle = {Proceedings of the Schloss Dagstuhl seminar 08031: Software
  Engineering for Self-Adaptive Systems},
  venue = {Dagstuhl},
  month = {January},
  date = {13--18},
  year = {2008},
  editor = {Betty H.C. Cheng and Rog{\'{e}}rio de Lemos and Holger Giese and
  Paola Inverardi and Jeff Magee},
  ISSN = {1862-4405},
  address = {Dagstuhl, Germany},
  url = {http://drops.dagstuhl.de/opus/volltexte/2008/1499},

  note = {\href{http://drops.dagstuhl.de/opus/volltexte/2008/1499}{Dagstuhl URL:
  http://drops.dagstuhl.de/opus/volltexte/2008/1499}},

  abstract = {<p>Biological systems are far more complex than systems we design and
  build today. The human body alone has orders of magnitude more complexity than
  our most-intricate designed systems. Further, biological systems are
  decentralized in such a way that allows them to benefit from built-in
  error-correction, fault tolerance, and scalability. It follows that if we can
  extract certain properties of biological systems and inject them into our
  software design process, we may be able to build complex self-adaptive
  software systems.</p>
  
  <p>Biological systems' complexity makes them not only desirable to guide
  software design, but also difficult to fully understand. Thus one approach to
  building software similar to biological systems is by first building models of
  biology that we can understand. Then these models can guide the high-level
  design, or architecture of the software systems, resulting in systems that
  retain the model's fault tolerance, scalability, and other properties.</p>
  
  <p>I present a general outline of how one might use biology to create a model to
  guide the architecture of a software system, and develop one such model and
  the resulting architectural style, the tile style, for computational systems
  that can use a large distributed network of computers, such as the Internet,
  to solve computationally-intensive problems in a discreet, fault-tolerant, and
  scalable manner.</p>},
}