BT

How Relevant Are The Fallacies Of Distributed Computing Today?

by Dilip Krishnan on May 27, 2009 |

Tim Bray of Sun Microsystems writes of the Fallacies of Distributed Computing; He observes that despite its profound implications when designing distributed systems, “you don’t often find them coming up in conversations about building big networked systems”.

Tim believes that the reason that some of the fallacies may not seem as relevant is probably because a multitude of applications today are built on web technologies; and the web lets you believe some of them (fallacies). He examines each of the fallacies in the context of the web, and explains why some of them continue to remain fallacies but are somewhat mitigated or at least appear to be mitigated by web technologies.

1. The network is reliable

HTTP […] connections are brief; Compared to a traditional networked system with connections whose lifetime approximates that of the application.

Second, the clarity about GET, PUT, and DELETE being idempotent, while POST isn’t, helps hugely. [for e.g.] if a GET gets a network blowup, just do it again. [T]his places very clear boundaries around the repair and recovery that an app needs to handle.

2. Latency is zero

The Web […] requires connection setup/teardown [and] users ha[ve] internalized this, and [are] aware of the difference between the normal single-digit number of seconds it takes for a nicely-functioning server to assemble request results and get them to you, and behavior under overload.

3. Bandwidth is infinite

4. Transport cost is zero

These are quite evident by news of recent bandwidth caps. Or As Tim puts it “Time after time, you’ll see messages, between computing civilians, of the form “Sorry that this picture is so big””.

5. The network is secure

This is probably the fallacy least-well-addressed by the Web. Anyhow, the Web technologies mean that application builders can survive even while subject to one or more of The Fallacies. But not this one.

6. Topology doesn't change

By making almost all our apps Web-based, and thus having everyone address everything with URIs, we all agree to share solutions to routing and addressing problems; [which] means that application builders almost never have to think about the problem.

7. There is one administrator

Well yeah, there isn’t. But who cares, any more? Web architecture makes addressing decentralized.

8. The network is homogeneous

The Web doesn’t do APIs and object models, it’s just a set of agreements over what messages you’re going to send and what messages expect back in return. Which, as a side-effect, makes heterogeneity a non-issue.

Tim concludes his post with a word of caution

if you’re building Web technology, you have to worry about these things. But if you’re building applications ON it, mostly you don’t. Well, except for security; please don’t stop worrying about security.

Hello stranger!

You need to Register an InfoQ account or to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Overly optimistic by Arnon Rotem-Gal-Oz

I think Tim is overly optimistic - even according to his count only 4 fallacies are covered. I also think that the fact that the web standards cover some of the fallacies doesn't mean that those who build web application comply with the standards - That's a really big assumption right there and the difference between something that considers the fallacies and a solution that fails miserably
I also blogged that in a little more detail

Re: Overly optimistic by Dilip Krishnan

@Arnon The way I read the post was very similar to your sentiments; which is "I know it seems like it is easy, its not! But atleast make sure you take care of securing the applications"

Re: Overly optimistic by Julian Browne

I think what Tim's trying to say is that web technology has become a useful abstraction that simplifies many of the things that might go wrong for developers (where they are building on it and not in it) rather than hides things. JINI was Sun's famous (notorious?) attempt to build an abstraction layer to deal with The Fallacies and it didn't take me long to discover that Tim had his concerns about that due primarily to what he called its "barrier to entry".

As we all know abstractions can be hugely powerful but they can leak and we forget this at our peril. So, like Arnon and Dilip, I'm somewhat confused by Tim's conclusion that "mostly" you don't need to worry about these things, unless by mostly he means that most web apps aren't critical, time-sensitive or in need of bullet-proof reliability so simplification is more appropriate than hiding.

I'd tend to agree with Arnon's statement in his excellent PDF on The Fallacies "the more things change the more they stay the same". Whilst I'm all for anything that makes my job simpler (I'm still a JINI fan), because it allows me to concentrate on the value-adding aspects rather than the plumbing, I think I'll continue to worry about the fallacies for some time to come...

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

3 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2013 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT