W3C home > Mailing lists > Public > www-ws-arch@w3.org > January 2003

Loose coupling is like pornography

From: Hao He <Hao.He@thomson.com.au>
Date: Fri, 10 Jan 2003 10:42:22 +1100
Message-ID: <686B9E7C8AA57A45AE8DDCC5A81596AB046AE243@sydthqems01.INT.TISA.COM.AU>
To: "'Mark Baker'" <distobj@acm.org>, "'Assaf Arkin'" <arkin@intalio.com>, "'Champion, Mike'" <Mike.Champion@SoftwareAG-USA.com>
Cc: www-ws-arch@w3.org
In view of the recent REST discussions, we'd better solve one problem at a
time. 

First of all, the key value provided by Web Services is loose coupling.
Agreed?

If agreed, we then look at the definition of "loose coupling".  A quick
search on google reveals
the following:

" Loose coupling is like pornography. Everyone talks about it, but when
challenged, few can tell you what it is. For some, it borders on a religion
with the attendant fervor one would expect from the newly converted. Others
even go so far as to suggest that the definition of loose coupling is itself
loosely coupled, providing them an excuse to avoid dealing with it. But with
Loose Coupling as the title of my forthcoming book, I'm not going to get off
quite so easily. Take a look at this table and let me know what I've missed.
" --http://www.rds.com/doug/weblogs/webServicesStrategies/2002/11/18.html

You have to click the URL to see the table.  Interestingly, the author
claims that "document style of interaction, later binding, asynchronous
messaging ..." are loosely coupling. All those are heavily prompted by REST.
This would imply that REST is more loosely coupled than the SOAP approach.

Here is my attempt at defining loose coupling. Coupling is the dependency
between interacting systems.  Dependency can be classified as real
dependency and artificial dependency.  Real dependency is the features or
services one consumes from other systems. Artificial dependency is the thing
one has to follow in order to consume the features or services provided by
other systems. Typical artificial dependency in IT are: language dependency,
platform dependency, API dependency ...  

There are two rules here:
1. One can never reduce real dependency but itself is evolving.
2. One can never get rid of artificial dependency but one can reduce
artificial dependency or the cost of artificial dependency.

Hence, loose coupling describes the state when artificial dependency or the
cost of artificial dependency has been reduced to the minimum. 

So, to really compare between REST and SOAP, we just need to look at compare
the artificial dependency and the cost introduced by them.

Thoughts?

Hao


Received on Thursday, 9 January 2003 18:41:42 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:12 GMT