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

Re: Myth of loose coupling

From: Jacobs,David B. <djacobs@mitre.org>
Date: Tue, 7 Jan 2003 06:40:00 -1000
Message-ID: <0f2e01c2b66b$6d3f3510$6501a8c0@jacobs>
To: "Assaf Arkin" <arkin@intalio.com>, "David Orchard" <dorchard@bea.com>
Cc: <edwink@collaxa.com>, "'Mark Baker'" <distobj@acm.org>, "'Ugo Corda'" <UCorda@seebeyond.com>, "'Champion Mike'" <Mike.Champion@softwareag-usa.com>, <www-ws-arch@w3.org>

hmm...I think we are in violent agreement here :-).

David

----- Original Message -----
From: "Assaf Arkin" <arkin@intalio.com>
To: "Jacobs,David B." <djacobs@mitre.org>; "David Orchard"
<dorchard@bea.com>
Cc: <edwink@collaxa.com>; "'Mark Baker'" <distobj@acm.org>; "'Ugo Corda'"
<UCorda@seebeyond.com>; "'Champion Mike'"
<Mike.Champion@softwareag-usa.com>; <www-ws-arch@w3.org>
Sent: Monday, January 06, 2003 10:44 PM
Subject: RE: Myth of loose coupling


>
> That's exactly the point.
>
> An interaction with Amazon involves three layers. The HTTP client, the
HTML
> client and the human client. As long as you keep using the same version of
> HTTP and HTML, the first two clients do not percieve any change to the
> Amazon Web site. They could care less if it's English or Japanese. But
when
> you introduce a change to the Web site the human client gets affected.
>
> The service is only loosely coupled if you are talking about the ability
to
> send/recieve HTML over HTTP, but if you are talking about the ability to
buy
> something, it is no longer loosely coupled. When Amazon changes their Web
> site, for example switching to Japanese (how did that happen?), it affects
> the buyer client.
>
> arkin
>
> > That is why Amazon puts human readable labels on their links :-).  For a
> > machine readable version, you would need appropriate machine
> > understandable
> > labels (URIs?) to help the computer figure out what the link was for.
> >
> > David
> >
> > ----- Original Message -----
> > From: "Assaf Arkin" <arkin@intalio.com>
> > To: "David Jacobs" <djacobs@mitre.org>; "David Orchard"
<dorchard@bea.com>
> > Cc: <edwink@collaxa.com>; "'Mark Baker'" <distobj@acm.org>; "'Ugo
Corda'"
> > <UCorda@seebeyond.com>; "'Champion, Mike'"
> > <Mike.Champion@softwareag-usa.com>; <www-ws-arch@w3.org>
> > Sent: Monday, January 06, 2003 10:20 PM
> > Subject: RE: Myth of loose coupling
> >
> >
> > > Here is a test for you. Can you tell me what I have just bought:
> > >
> > >
> > http://www.amazon.co.jp/exec/obidos/ASIN/B00006RT6E/ref=ed_ec_gw_c
> > s_1_2/249-
> > > 5515888-2202702
> > >
> > > arkin
> > >
> > > > -----Original Message-----
> > > > From: www-ws-arch-request@w3.org
[mailto:www-ws-arch-request@w3.org]On
> > > > Behalf Of David Jacobs
> > > > Sent: Monday, January 06, 2003 5:43 PM
> > > > To: David Orchard
> > > > Cc: 'Assaf Arkin'; edwink@collaxa.com; 'Mark Baker'; 'Ugo Corda';
> > > > 'Champion, Mike'; www-ws-arch@w3.org
> > > > Subject: Re: Myth of loose coupling
> > > >
> > > >
> > > >
> > > > I agree that web servers and browsers are tightly coupled at the
HTTP,
> > > > HTML, CSS, JPEG level.  However, at the application level (and by
> > > > application I mean something like Amazon's site) I would
> > argue that the
> > > > client and server are not tightly coupled.  Amazon can make
> > huge changes
> > > > to its service offerings and layout without any changes being
required
> > > > of the client.  I believe it is this flexibility for the
> > application to
> > > > change and grow without breaking existing clients that most folks
are
> > > > aiming for when they say "loosely coupled"
> > > >
> > > > David Jacobs
> > > >
> > > > David Orchard wrote:
> > > >
> > > > >I'm baffled that people consider the web to be "loosely-coupled"
> > systems.
> > > > >Guess what, when HTML changed versions, people had to upgrade their
> > > > >browsers.  The app (browser) changed whenever the user needed more
> > > > >functionality.  Say a new version of HTML comes out, maybe even
> > > > XHTML!  Then
> > > > >a whack of servers upgrade to say they will produce according to
the
> > new
> > > > >interface.  And new apps (the updated browsers) come along and
> > > > can grok the
> > > > >xhtml.
> > > > >
> > > > >It just so happens that HTML, XHTML, CSS, JPEG, etc. have
> > > > followed a fairly
> > > > >lengthy centralized standardization process.  And we've kind of
> > > > settled down
> > > > >to our current versions.  To prove this point, the current angst
over
> > how
> > > > >XHTML 2.0 should define link constructs CLEARLY indicates
> > that the app
> > > > >(browser) is tightly coupled to the interface schema.
> > > > >
> > > > >Maybe it will be the same with PurchaseOrders, Invoices, etc.
> > > > But for now,
> > > > >we actually want to have it where the interfaces are defined in a
> > > > >decentralized manner, rather than through a centralized ever-speedy
> > > > >standards process.
> > > > >
> > > > ><rant>
> > > > >I think we should stop kidding ourselves that we are building
loosely
> > > > >coupled systems when we have well-defined interfaces and protocols.
> > > > >
> > > > >We certainly have loose coupling between the applications
> > > > environments, like
> > > > >Perl/Java/Python; OSes; app server environments; and the messages.
> > Heck,
> > > > >our software provides about a few  different "mapping" layers
between
> > xml
> > > > >and Java.  But fundamentally, if the interface changes, software on
> > both
> > > > >sides has to change.  It can sometimes be nicely isolated from the
> > > > >application by the mapping layer, but more often than not it
> > can't.  I
> > > > >highly doubt that I could change a purchase order schema, and
> > > > not change the
> > > > >application.  Try just changing a string Name into a structure of
> > > > >firstname/lastname and you are doomed.  There are over 10 000
> > > > rules for how
> > > > >to figure out firstnames from last names in a string, so the
> > > > darned sending
> > > > >software is going to be in hell trying to figure the separation
rules
> > in
> > > > >this "mythical" mapping layer that's supposed to insulate it from
> > change.
> > > > >"Just put XSLT in between" doesn't cut it in any way.  We are
> > > > living through
> > > > >the agony of this in all the darned infrastructure vocabularies
> > > > - like the
> > > > >changes that occur in the ws-security schemas - so why
> > wouldn't the app
> > > > >vocabs?
> > > > >
> > > > >The web isn't loosely coupled between the interface schema and the
> > > > >implementations, it's just that the evolution has almost
> > stopped and we
> > > > >don't remember all the times we had to rev our browser.  And
> > > > we've now got
> > > > >cool "auto-update" features that allow us to get the latest flash
> > player
> > > > >without much effort.  The browser has been built to modularize
> > > > the various
> > > > >places that the changes can occur, so it doesn't appear as
> > > > disruptive.  But
> > > > >it's all still tightly coupled.  Change the interface=change
> > a piece of
> > > > >software.  Nowhere to hide.  The only question is: can you
> > isolate the
> > > > >change to a small piece of software that's on a faster rev cycle
than
> > the
> > > > >bigger "container" software?
> > > > >
> > > > >Web services can't run from this problem either.  At least
> > we have some
> > > > >great infrastructure pieces to help us deal with change, like
> > > > soap headers,
> > > > >xml and namespaces, WSDL.
> > > > >
> > > > ></rant>
> > > > >
> > > > >Cheers,
> > > > >Dave
> > > > >
> > > > >
> > > > >
> > > > >>What we are seeing in practice is that all too often
> > > > >>developers take the
> > > > >>easy approach. Rather than defining an interface - whether
> > > > >>RPC of document
> > > > >>style - that is decoupled from the implementation, they use
> > tools that
> > > > >>produce a service definition directly from the implementation API.
> > > > >>Obviously, as the implementation changes so would every
> > > > >>application that
> > > > >>needs to use this interface. Not a Good Thing(tm).
> > > > >>
> > > > >>However, nothing precludes you from following best practice,
> > > > >>defining an
> > > > >>interface that is decoupled from the implementation,
> > > > >>performing mapping
> > > > >>between the abstract interface and the particular
> > > > >>implementation, and using
> > > > >>RPC style to represent that abstract interface. WSDL does not
> > > > >>say that RPC
> > > > >>has to conform to an API, bad practice makes it happen.
> > > > >>
> > > > >>
> > > > >>
> > > > >>
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> >
>
>
Received on Tuesday, 7 January 2003 11:42:04 GMT

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