- From: David Orchard <dorchard@bea.com>
- Date: Tue, 7 Jan 2003 22:04:17 -0800
- To: <www-ws-arch@w3.org>
There's a difference between breaking because of errors in data etc. versus interface changes. I never claimed that the only reason why software would break is interfaces. We're talking about loose coupling, not errors/faults etc. Dave > -----Original Message----- > From: www-ws-arch-request@w3.org [mailto:www-ws-arch-request@w3.org]On > Behalf Of Walden Mathews > Sent: Tuesday, January 07, 2003 5:40 PM > To: David Orchard; www-ws-arch@w3.org > Subject: Re: Myth of loose coupling > > > > > ----- Original Message ----- > From: "David Orchard" <dorchard@bea.com> > To: <www-ws-arch@w3.org> > Sent: Tuesday, January 07, 2003 2:07 PM > Subject: RE: Myth of loose coupling > > > > > > I completely understand the flexibility of changing web > sites without > > affecting the client. My argument is that from the > client's perspective, > > this is a "data" change, and not an "application" change. > > This is sounding very familiar. I used to manage ticker > plant development > for a quote vendor; we had to deal with changes in the feeds > published by > the financial exchanges. Some of those required new software > releases; > some didn't. I'd say there are two ways an application can "break": > > (1) syntax of the vocabulary changes so that the client can no > longer access the meaning of the encoded data, > > (2) values encoded exceed expected limits, or meaningful combinations > of values for a given data set -- i.e., the data model > invariants are > violated resulting in invalid object states. > > > Imagine the > > corollary in Web services. Web model=use HTML. Web > services=use XML. > > Instead of using the standardized HTML for offering a web > site, Amazon > > offers XML. Now it creates it's own vocabulary of xml. > You write an app > > for that XML. If Amazon changes the data values - like > adds a new book - > > your app doesn't break. > > Not usually, but if the price of the book is > US1,000,000,000.00, something > might break. There was one stock I remember that was > notorious for this; it > set off all the validation alarms and had to be custom coded for. > > > But if Amazon changes the vocabulary of xml, your > > app breaks. > > Sometime, yes, but not if the vocabulary is changed by > _extension_, which > afterall is what the 'X' in XML is all about. Extensible > data structures > have > been around for a long time. What makes XML special in this > area is that > you can "append" stuff to an XML schema right in the middle > of a document. > With binary formats, you have to design extension areas at > the end of the > structure, which eventually makes data structures ugly. > > > My point is that HTML doesn't evolve very quickly, so the > > clients don't break very often. But in program to program > via XML, this > > situation is completely different. And because XML allows for much > quicker > > changes to vocabularies, programs will break more often. > The browser and > > the Web service client all have the same level of coupling, > it's just that > > the vocabularies can change at WAY different speeds. > > I think the real crux of "loose coupling" is in the idea that > servers will > evolve > at a different rate than clients (usually in that order), and that iff > clients are > written so as to be immune to changes that are pure extensions, then > evolution > can indeed proceed _somewhat_ independently. This is a huge > improvement > over what the commodities exchanges used to do to us! > > But if two peer applications are hell bent on going in > different directions, > then > I think we'd agree there's little hope. > > > > In fact, I kind of > > argue that XML is a two-edged sword because of this. XML > means we can > very > > quickly create new vocabularies. But the converse of that is that > > clients/servers will break more quickly. > > We need to keep "eXtensible" in mind when we design our XML vocabs, > no?* Even so, stuff will drift into the "sunset" zone > (that's what they > told me > about my Quicken Deluxe 2000 today when I called customer > support). The > price of keeping "sunset" functionality in the loop justifies > the avoidance > of > breakage, I think, as long as there's a way to dump it eventually. > > The ultimate "loosely coupled" applications don't understand > each other, > so add no value. We have to avoid thinking of these things > in the absolute > if we're going to make progress here. > > Regards, > > Walden > > * Else we can have plain ole CML = changeable markup language. Naw. > >
Received on Wednesday, 8 January 2003 01:05:08 UTC