KBD

Keith Devens .com

Thursday, November 20, 2008 Flag waving
"It's no trick for talented people to be interesting, but it's a gift to be interested. We want... – Randy S. Nelson (dean of Pixar University)
← How Python is DevelopedLua has a book →

Daily link icon Monday, December 15, 2003

The speed of light is a problem for distributed apps

The Farm links to an interview at Artima.com with Anders Hejlsberg about Innapropriate [sic] Abstractions. Hejlsberg makes such an important point in this article that I'd like to highlight. I was reading this series of articles at MSDN about COM, and they kept saying things like:

You write code that uses COM components without worrying (or even knowing) what type of COM object you'll end up using, so you use the exact same code to hook up to an in-process, local, or remote object. ... COM does the rest, including starting processes and communicating over the network.

Throughout the article at MSDN, I kept thinking "No, you really should be worrying if something's going out over the network". You have to program something completely differently if that's the case. Hejlsberg highlights this:

The prevailing wisdom five or ten years ago about how distributed systems would be built in the future was CORBA, IIOP, object request brokers. The rave at the time was to make the world look like objects, in particular, to have a bunch of infrastructure that shrouds the fact that objects are distributed. The nirvana ideal was that you could just say Object obj = CreateMeAnObject(), and then call obj.ThisMethod(), obj.ThatMethod(), and you wouldn't know if that object was over in Thailand, right next door, or in the same process. The problem with that type of programming is: it works great in a single process; it works quite well across processes; it works fairly well in a small intranet; but then it completely sucks thereafter.

If you hide the fact that messages go across a network, and don't know when they go across, you end up with chatty conversations. And all of a sudden, the speed of light can become a big problem for you. You can't engage in a conversation with an object out in New York that goes, obj.LetMeGetX(), obj.LetMeGetY(), obj.LetMeGetZ(). No, you need to say, obj.LetMeGetXYAndZ(), and have everything come back in one chunk. But you can't really do that unless you actually make people understand that they are building a distributed application. In other words, you shouldn't try to pretend that a remote object is just a local object, because there is a difference.

I really wish I could remember where, but I remember reading years ago about a bug that exhibited behavior limited by the speed of light.

← How Python is DevelopedLua has a book →

Comments XML gif

Ronaldo (http://www.reflectivesurface.com/weblog/) wrote:

You may have been thinking of the case of 500-mile e-mail[1].

[1] http://www.ibiblio.org/harris/500milemail.html

∴ Ronaldo | 24-Dec-2003 12:25pm est | http://www.reflectivesurface.com/weblog/ | #3624

Keith (http://keithdevens.com/) wrote:

Yes, that's it! Thanks!

Keith | 24-Dec-2003 12:45pm est | http://keithdevens.com/ | #3625

Feel free to post a comment below. Please see my comment policy.

Formatting Rules (No HTML):

  • **bold**, *italic*, _underlined_, --strikeout--
  • "text"="url" creates a link, and URLs are auto-highlighted
  • Blockquote: Like e-mail, begin paragraph with > (greater-than sign)
  • Lists: begin paragraph with *,-, or + (unordered), or # (ordered)
  • Code block: ?!code:language=perl|php|sql|javascript|etc.{\n}...{\n}?!/code

:
(will be your IP address if blank)
: (optional)
(Will not be shown on site)

: (optional)
:

November 2008
SunMonTueWedThuFriSat
 1
2345678
9101112131415
16171819202122
23242526272829
30 



RSS feed RSS feed for Keith's Weblog
Atom feed Atom feed for Keith's Weblog
Weblog archive
Recent comments
  on 4 posts

Recent comments XML

new⇒Java join function

Meh, don't have null strings in​your string arrays imo, but you're​welcome ...

Keith: Nov 19, 7:51pm

Girls, please don't get breast implants

sorry but another thing i have to​make a comment on about you​men...the men...

happynow: Nov 17, 11:36pm

Books by Vincent Cheung

to all Cheung​fans:

read:

http://www.progin​osko.com/aquascum/cheung.h...

Zamir: Nov 16, 9:07am

Spider solitaire

To undo or not to undo that is the​question.
I'm an undoer. 
My dad​was n...

Can Turk: Nov 15, 2:50pm

Generated in about 0.201s.

(Used 8 db queries)

mobile phone