Self-assembly for discreet, fault-tolerant, and scalable computation on Internet-sized distributed networks
by Yuriy Brun
Abstract:

When engineers compare biological and software systems, the former come out ahead in the majority of dimensions. For example, the human body is far more complex, better suited to deal with faulty components, more resistant to malicious agents such as viruses, and more adaptive to environmental changes than your favorite operating system. Thus it follows that we, the engineers, may be able to build better software systems than the ones we build today by borrowing technologies from nature and injecting them into our system design process.

In this dissertation, I present an architectural style and accompanying implementation support for building distributed software systems that allow large networks, such as the Internet, to solve computationally intensive problems. This architectural style, the tile style, is based on a nature's system of crystal growth, and thus inherits some of nature's dependability, fault and adversary tolerance, scalability, and security. The tile style allows one to distribute computation onto a large network in a way that guarantees that unless someone controls a large fraction of the network, they cannot learn the private data within the computation or force the computation to fail. These systems are highly scalable, capable of dealing with faulty and malicious nodes, and are discreet since every sufficiently small group of nodes knows neither the problem nor the data.

The tile style is based on a formal mathematical model of self-assembly. In order to leverage this model to build software, I define the notion of self-assembling computation and develop systems that compute functions such as adding, multiplying, factoring, and solving NP-complete problems SubsetSum and SAT. For each system, I prove its correctness, compute its probability of successful computation, and show that its running time and tileset size are asymptotically optimal.

I use the mathematical nature of the tile assembly model to present a formal mathematical analysis of the tile style, proving that software systems built using this style are discreet, fault- and adversary-tolerant, and scalable. I further implement a tile-style system and use it to distribute computation to empirically evaluate the tile style's utility.

Citation:
Yuriy Brun, Self-assembly for discreet, fault-tolerant, and scalable computation on Internet-sized distributed networks, Ph.D. dissertation, University of Southern California, Los Angeles, CA, USA, 2008.
Bibtex:
@phdthesis{Brun08PhD,
  author = {Yuriy Brun},
  title =
  {\href{http://people.cs.umass.edu/brun/pubs/pubs/Brun08PhD.pdf}{Self-assembly for
  discreet, fault-tolerant, and scalable computation on {I}nternet-sized
  distributed networks}},
  venue = {PhD},
  school = {University of Southern California},
  address = {Los Angeles, {CA}, {USA}},
  month = {May},
  year = {2008},
  isbn = {978-0-549-60920-9},
  url =
  {http://proquest.umi.com/pqdlink?did=1564036421&Fmt=7&clientId=79356&RQT=309&VName=PQD},

  note =
  {\href{http://proquest.umi.com/pqdlink?did=1564036421\&Fmt=7\&clientId=79356\&RQT=309\&VName=PQD}{Proquest
  URL: http://proquest.umi.com/pqdlink?did=1564036421\&Fmt=7\&clientId=
  79356\&RQT=309\&VName=PQD}},

  abstract = {<p>When engineers compare biological and software systems, the former
  come out ahead in the majority of dimensions. For example, the human body is
  far more complex, better suited to deal with faulty components, more resistant
  to malicious agents such as viruses, and more adaptive to environmental
  changes than your favorite operating system. Thus it follows that we, the
  engineers, may be able to build better software systems than the ones we build
  today by borrowing technologies from nature and injecting them into our system
  design process.</p>
  
  <p>In this dissertation, I present an architectural style and accompanying
  implementation support for building distributed software systems that allow
  large networks, such as the Internet, to solve computationally intensive
  problems. This architectural style, the tile style, is based on a nature's
  system of crystal growth, and thus inherits some of nature's dependability,
  fault and adversary tolerance, scalability, and security. The tile style
  allows one to distribute computation onto a large network in a way that
  guarantees that unless someone controls a large fraction of the network, they
  cannot learn the private data within the computation or force the computation
  to fail. These systems are highly scalable, capable of dealing with faulty and
  malicious nodes, and are discreet since every sufficiently small group of
  nodes knows neither the problem nor the data.</p>
  
  <p>The tile style is based on a formal mathematical model of self-assembly. In
  order to leverage this model to build software, I define the notion of
  self-assembling computation and develop systems that compute functions such as
  adding, multiplying, factoring, and solving NP-complete problems SubsetSum and
  SAT. For each system, I prove its correctness, compute its probability of
  successful computation, and show that its running time and tileset size are
  asymptotically optimal.</p>
  
  <p>I use the mathematical nature of the tile assembly model to present a formal
  mathematical analysis of the tile style, proving that software systems built
  using this style are discreet, fault- and adversary-tolerant, and scalable. I
  further implement a tile-style system and use it to distribute computation to
  empirically evaluate the tile style's utility.</p>},
}