- Originally there were The 7 Fallacies of Distributed Computing. We just added fallacies #8 & #9 – if you are a Blackberry or YouTube user, start worrying and read on.
In late 1991, Bill Joy and Dave Lyon had already formulated a list of flawed assumptions about distributed computing that were guaranteed to cause problems down the road:
- the network is reliable;
- latency is zero;
- bandwidth is infinite; and
- the network is secure.
James Gosling, Sun Fellow, had actually codified these four, calling them “The Fallacies of Networked Computing.”
As history tells us, in 1994, Peter Deutsch drafted seven assumptions that network architects and designers of distributed systems are likely to make even though they might turn out be wrong in the long run.
In 1997 James Gosling added another such fallacy. The assumptions are now collectively known as the “The 8 fallacies of distributed computing.
L Peter Deutsch
Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.
1. The network is reliable [e.g., power failures, someone trips on a the network cord, all of a sudden clients connect wirelessly, and so on or the software has a bug - see LSE example)].
2. Latency is zero (time delay between the moment something is initiated, and the moment one of its effects begins or becomes detectable).
3. Bandwidth is infinite.
4. The network is secure.
5. Topology doesn’t change [i.e. assumpiton that the arrangement or mapping of the elements (links, nodes, etc.) of a network ==> the physical and logical/virtual interconnections between different nodes remains stable].
6. There is one administrator.
7. Transport cost is zero.
8. The network is homogeneous.
9. The physical units of computation are logical units (Distributed Computing Fallacy #9) – assumption is that 10 servers might be better than 1 or 5 (ps.a logical unit is a unique connection to an application program that could malfunction, while a physical unit is often a hardware device – server – i.e. sometimes several logical units run on one physical unit).
10. Network infrastructure is redundancy compliant (e.g., see NYC banks use a network is not redundancy compliant” rel=”bookmark” href=”http://blog.cytrap.eu/?p=160″> Taiwan’s 2006-12-26 and Egypt 2008-01-29 incidents).
The above still apply today, except that with computing in a cloud number 9 and 10 have become a real threat. Ever more web-based applications are running on server farms somewhere. Already, customers accessing services offered by their suppliers using Google or Amazon’s computing in a cloud services, have reported several service interruptions this year alone.
Whenever critical mission applications require distributed or networked computing resources, one has to manage the risks by looking at the cost-benefit issues.
None of the above fallacies can be 100% eliminated. Nevertheless, the likelihood of a disaster happening can be reduced to acceptable levels if these fallacies are analyzed and discussed (e.g., software and network architecture).
Most importantly, all this comes at a price! Accordingly, unless public e-communications networks address the above fallacies, we might experience a disaster of some sort in the not so distant future.
Highly disruptive tolerant routing and data replication services – which your Blackberry RIM service fails to have, are essential if computing in a cloud using locations around the globe is supposed to work.