Send to Printer

SOA

HTTP and Message Passing

October 13, 2006 10:43:32.585

Grady Booch has a nice post up on the difference between SOA and Snake Oil Architecture. I particularlay like this:

Stripped away of all the hype, a Service-Oriented Architecture is essentially a variant of well-proven message-passing architectural patterns. The variance comes in the form that services are cleverly designed to take advantage of the Web-centric infrastructure that pervades many organizations: services allow you to send and receive semantically rich messages through firewalls.

Smalltalk arrived on the message passing frontier a long, long time ago. In a lot of ways, HTTP messaging resembles what happens in Smalltalk - you send the server a message, and if it doesn't understand, it sends you back an appropriate HTTP error message (kind of like a DNU in Smalltalk). The server doesn't crash, it doesn't throw up its hands and stop; rather, it awaits the next message.

This kind of architecture has to be flexible, and growable at runtime. Smalltalk has been that way since the beginning, and HTTP servers operate in much the same way - you can add messages that they'll understand in well understood, dynamic ways. It's kind of nice to see people understanding this strength :)

Technorati Tags: , ,

Comments

It's not a coincidence...

[John Dougan] October 15, 2006 2:09:31.001

It's not a conincidence that it resembles Smalltalk. See:

http://www.w3.org/People/Connolly/9703-web-apps-essay.html

http://www.w3.org/DesignIssues/Identified 

for some evidence. It seems clear to me that TBL had the Objective-C/Smalltalk message passing model in mind.

 

like requesting a URL

[Isaac Gouy] October 15, 2006 22:30:05.664

HTTP messaging resembles what happens in Smalltalk

James Gosling was talking about maintaining the configuration of large scale distributed systems:
In some sense, the brilliant thing that Tim Berners-Lee did was simply to say, "I don't care." For 20 years people had been failing to solve these problems in any large-scale way. Berners-Lee decided to just do the simple obvious thing that solves the problem he needed, namely, getting ahold of a resource. ... He did that, and that enabled a lot of what the Web is today. But the Web has all these problems. What happens if a Web page moves or gets deleted? ... On the one hand, the URL design has made the Web somewhat fragile. Broken links are all over the place. On the other hand, if they had tried to really solve that problem, the Web never would have happened, because the problem is just too hard.
In a similar sense, the brilliant thing that Smalltalk did (25 years ago) 'was simply to say, "I don't care."'

Sending a "message" in Smalltalk is like requesting a URL - maybe a method will be found (maybe a resource will be found), maybe the method will do what you expected (maybe the resource will be what you expected). And maybe it won't.

LtU archives 12/4/2003; 11:50:40 AM

Obviously I agree with the analogy.
Now follow it through - programs that are somewhat fragile, broken messages all over the place.

Except...

[ James Robertson] October 15, 2006 23:11:46.016

Comment by James Robertson

I wouldn't call the web fragile. The fact that Gosling thinks it is does not speak well of him

Hmm

[ James Robertson] October 16, 2006 8:17:57.065

Comment by James Robertson

Having read the entire quote from the original source, it seems that Isaac pulled an MSM move, and quoted selectively (and out of context). Read the whole thing here, and draw your own conclusions.

[Isaac Gouy] October 16, 2006 12:06:09.485

Yes, do read the original, and meanwhile perhaps James could substantiate his accusation - in what way exactly is this "quoted selectively (and out of context)"?

Overcoming Development Hurdles

[Isaac Gouy] October 16, 2006 13:48:06.502

Once more scroll-off-the-front-page has stopped comments at an arbitrary moment, this time on Overcoming Development Hurdles

James wrote When you demonstrate actual problems with the lack of type declarations, I'll pay attention.
baby with bathwater thrown out
James, once more, it isn't the lack of explicit type declarations - we saw how Scala needed 3 explicit type declarations and Java needed ~40 - it's the lack of static type checking.

It's not arbitrary

[ James Robertson] October 16, 2006 15:02:43.778

Comment by James Robertson

You want to keep track of spam attempts that slip through on (literally) thousands of old posts, be my guest.

[Isaac Gouy] October 16, 2006 19:03:58.927

I understand that you're trying to address a spam problem - however the moment that comments are no longer accepted for a specific blog post is arbitrary.

Well....

[ James Robertson] October 16, 2006 19:22:43.067

Comment by James Robertson

I can actually enable comments on a per post basis if I want - doing so set sup a single post feed with comments attached.

 Share Tweet This