Single cell organisms evolved into multicellular organisms
long ago. Today we are seeing a similar transition in computing.
Twenty years ago few computers communicated directly with
others. Now hundreds of millions of computers exchange
information at Internet speeds. The digital world inexorably
becomes more complex. Bigger groups of computers collaborate in
more complicated and less transparent ways. In doing so, they
encounter problems common to all complex systems – problems
already solved in the evolution of living systems. This website,
based upon a
companion paper (.pdf), explores the challenges of
increasing complexity and some architectural solutions to them.
Computers surround us. They are in our pockets or purses, are on our wrists and even on our glasses. Even the earliest iPods surpassed the compute power of the mainframes of yesteryear. The role that computers play in the world has changed dramatically as their costs dropped and their numbers exploded. They entertain us, help us shop, help us communicate with and befriend each other, and act as our memories. Some now talk with us. Mostly, however, they silently communicate with and collaborate with each other in the language of bits and bytes.
Two decades ago most computers operated independently from each other. A few exchanged primitive email or used FTP-like tools over phone lines with primitive modems to transfer files. Some collaborated in client-server relationships with internal corporate networks, banking systems or airline reservation systems. In 1992 a tiny number of computers in universities or research labs were connected together to form a persistent network which grew into the nascent Web. Nonetheless, for several years after the origins of the Internet, most computing continued to be done by single disconnected computers.
Today an isolated computer is an oddity. At least a billion computers exchange information at Internet speeds. Huge "clouds" of them communicate only with each other! Google, Amazon, Yahoo, Baidu (China's Google equivalent) and many other less well-known organizations spider, crawl, and catalog the Web constantly. Hundreds of thousands of such computers collaborate together to provide services on our laptops, iPads or iPhones. The digital world inexorably becomes complex beyond our comprehension. But there is no going back.
Large groups of computers collaborate in ever more complicated and less transparent ways as programmers and computing architects think of new ways to exploit digital collaboration and try to reduce the hazards of computer viruses, worms, botnets, and all sorts of other malware. At the same time, cyber criminals and other digital predators devise new tricks to exploit these complex interactions for their own purposes.
The evolution of computing is similar to the evolution of other complex systems -- biological, social, ecological, and economic systems. In each of these domains, the elements become increasingly more specialized and sophisticated, and they interact with each other in ever more complex ways. From that perspective, the similarities between biology and computing are not coincidental.
Multicellular computing already is adopting four major organizing principles of multicellular biological systems because they help tame the spiraling problems of complexity and out-of-control interactions in the Internet. They are:
This site explores these principles in considerable detail -- more detail than most readers would want to absorb in one sitting. It presents each principle in its biological context and describes its benefits both for multicellular life and for computing.
If you are impatient, you might want to skip right to the end of the story and read the conclusions. However, as with many a mystery novel, reading the last few pages will tell you who-done-it without telling you the most interesting part...why. The conclusions may well not make much sense without seeing how we get there.
The site map can help navigate to the various pages in an order that helps make sense of the story.