Four Principles


Four fundamental architectural principles of multicellular life are proposed as candidates for fundamental patterns of multicellular computing. They are discussed (with links to much more detail) at http://www.runningempty. ... rPrinciples.html

In brief, they are:

  • Specialization -- As multicellularity evolves and the organisms become more complex, the individual elements whether cells, individual insects in colonies, or individual computers in complex networks, tend to specialize and become simpler. To those steeped in Object Oriented design, this should be familiar; you've seen something similar in many a refactoring process. Specialization is possible because the larger organism provides a simpler, more stable, environment within which the elements collaborate. Specialization is necessary because behavior that is too general places an expensive maintenance burden on the elements and exposes too much "surface area" to predatory attack.

  • Messaging -- Communication and collaboration is based upon exchange of polymorphic messages rather than exchange of "executable" code (DNA/RNA in the case of biological cells, machine code in the case of computing. Only the specialized cell can know what behavior to invoke given a certain message.

  • Stigmergy -- Multicellular organisms, whether biological or computing, co-exist and co-evolve with external structures that are created by and, in turn, influence the behavior of the "cells." Examples in the world of social insects include termite mounds which are built by and influence individual insects. Examples in multicellular organisms include bones and connective tissues which are built by and, in turn, support the cells. Examples in traditional computing include data bases and networking infrastructure. Examples in the internet include wikis, open-source project code repositories, and the Web itself (especially when organized by search engines). Note that these external stigmergy structures facilitate communication between individuals by providing a framework for "cues" (persistent polymorphic messages or data) in these structures that other individuals interpret according to their role in the multicellular entity.

  • Apoptosis -- Also known as Programmed Cell Death. The principle is that every "healthy" cell (or computer in a muticellular computing network) must be prepared to suicide if needed for the benefit of the organism as a whole because, after all, we are talking about multicellular architecture here. The organism as a whole is more important than any given cell. We see ants and bees sacrifice themselves for the good of the colony. Cells do likewise. There are three main reasons for cell suicide: 1) During development some anatomical features are temporary, e.g., a tadpole's tail or the webbing between our fingers, 2) Normal cell turnover and maintenance requires about half of the cells in the human body to suicide and be replaced each year; and 3) Cells suicide when they recognize that they are infected by viruses, detect mistakes in DNA copying or DNA damage from toxic chemicals or radiation, or are physically detached from their proper place in the body, i.e., detached from the stigmergy structure. Similar kinds of circumstances can occur in multicellular networks. So programmed apoptosis will find an important place in computing as well.

Because these principles co-evolved during the transition from single-cell life to multicellular life, they are intimately IntertwinedPrinciples. Now, analogous principles are co-evolving in multicellular computing systems. We, as architects of computing systems, need to communicate the use of such principles and perhaps guide their evolution. Thus, the PrinciplesImplyPatterns.

 

Last edited June 29, 2006
Return to WelcomeVisitors