OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-msg message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: [Fwd: Don Box, Tim Bray, FOO camp,and loyal opposition [The Mountain of Worthless Information]]

Interesting blog entry...

-------- Original Message --------
Subject: 	Don Box, Tim Bray, FOO camp, and loyal opposition [The 
Mountain of Worthless Information]
Date: 	Tue Sep 21 2004 13:28:35 GMT-0400 (EDT)
From: 	<java.blogs Day's Entries>

A few different facts over the last couple of weeks come together to 
bring you this weblog entry:

   1. New WS-* specs, WS-Transfer and WS-Enumeration, shipped last week.
   2. I met Tim Bray at FOO Camp last weekend, along with Nelson Minar,
      Adam Bosworth, Sam Ruby and a few others whose names escape me
      (sorry, guys), all of whom are Very Bright People.
   3. Don Box is interested to see how people will slowly come to
      embrace the WS-Transfer Zen.
   4. Tim Bray looks to maintain loyal opposition to the WS-* stuff, on
      the grounds that (a) it's the right thing to do, and (b) he (and
      I'm paraphrasing here) doesn't get the whole WS-* thing anyway.
   5. I've been doing a lot of interoperability work and research, so
      I've got a few thoughts on this whole angle-bracketed middleware
      platform that we're building, too.

Here's the deal: Amazon, Yahoo, eBay and others are all finding that 
trying to implement production-quality Web services right now is Hard 
Thing To Do. The tool stacks are still half-baked, the standards aren't 
really ubiquitous nor widely-supported yet (c'mon, folks, we're still 
seeing vendor implementations that are choosing the WS-I-obsoleted SOAP 
1.1 Spec over the WS-I-approved SOAP 1.2 version, we're clearly not 
keeping up with the spec movement), and the specs just keep coming, and 
coming and coming. If these companies, whose very business depends on 
both the traditional consumer chain transforming into a more lucrative 
business-to-business chain, are finding that the WS-* stack is failing 
them, what chance do the rest of us have of making all this stuff work?

This is where Tim Bray comes in 

    *WS-Transfer, WS-Enumeration* What happened was, someone on an
    internal mailing list pointed to this, noting that Transfer and
    Enumeration are new things. His commentary:

        WS-Transfer is basically HTTP (GET, PUT, POST, DELETE) using
        SOAP, i.e. HTTP over SOAP rather than the more usual SOAP over
        HTTP. (Really - it isn?t April 1st ;-)) 

    My initial reaction, I admit, was sarcastic, along the lines of
    "Since the thousands of pages of incomprehensible WS-*
    specifications are so far failing to take over the world of
    enterprise applications, what?s clearly required is a few more
    hundred pages."

    But then I got nervous.

    *Not Stupid* Here?s the problem: the people writing these WS-things
    aren?t stupid. In particular, Don Box isn?t stupid. And I?m starting
    to see names of people here at Sun pop up as WS-coauthors; people
    who aren?t stupid.

    Furthermore, when I snarled about WS-Transfer on that internal
    mailing list, Bill Smith, who?s not stupid at all, piped up and said
    "Well, I hear that XXX thinks that this stuff is going to be
    important for what they?re doing in YYY", where XXX is the name of a
    Sun VIP who?s totally not stupid and YYY is his group, one that?s
    really important to our plans.

    *I Still Don?t Buy It* No matter how hard I try, I still think the
    WS-* stack is bloated, opaque, and insanely complex. I think it?s
    going to be hard to understand, hard to implement, hard to
    interoperate, and hard to secure.

    I look at Google and Amazon and EBay and Salesforce and see them
    doing tens of millions of transactions a day involving pumping XML
    back and forth over HTTP, and I can?t help noticing that they don?t
    seem to need much WS-apparatus.

    I?m deeply suspicious of "standards" built by committees in advance
    of industry experience, and I?m deeply suspicious of Microsoft and
    IBM, and I?m deeply suspicious of multiple layers of abstraction
    that try to get between me and the messages full of angle-bracketed
    text that I push around to get work done.

    *Loyally Opposing* So here?s what I?m going to do. I?m going to stay
    out of the way and watch the WS-visionaries and WS-dreamers and
    WS-evangelists go ahead and WS-build their WS-future. Because I?ve
    been wrong before, and maybe they?ll come up with something that
    WS-works and people want to WS-use. And if they do that, I?ll stand
    up and say "I was WS-wrong."

    In the meantime, I?m going to be talking to those other people I
    mentioned; the ones who are actually doing what feels to me like Web
    Services today, and I?ll try to see if there are some shared lessons
    and shared frameworks and shared architectures that emerge, and
    should be captured and documented.

And the fact is, Tim is right: in many respects, for what those 
aforementioned companies are doing, the stack *is* bloated, opaque and 
insanely complex. Why on earth do I need to work out WS-Policy details 
when all I want to do is query for a book's details via a simple GET 
request passing in an ISBN? Why on earth do I need to set up a 
WS-Security token when doing the whole thing over HTTPS is much much 
simpler? Why is Microsoft, IBM, BEA, Sun, and the others seeking to 
create complexity where none is needed?

Because, folks, the complexity isn't needed /yet/. And therein lies the key.

Look, for what Amazon needs to do /right now/, the whole WS-* stack is 
horribly overkill. The same would be true of a Java developer looking to 
do a file upload turning to the J2EE stack to do it, or a .NET developer 
looking to do a simple ping and doing it via EnterpriseServices. The 
stacks weren't meant for the simple stuff, they were meant for the hard 
stuff, such as when I need to securely send a message across multiple 
network hops, including potentially different transport mechanisms that 
don't support wire-level security. That's something that HTTPS cannot 
buy you.

The thing of it is, REST and the WS-* stack aren't mutually exclusive 
ends of the continuum, and the beauty of it is, SOAP is what makes this 
doable. SOAP 1.2 (not 1.1, mind) is just framing and extensibility rules 
for XML packets, nothing more, nothing less. It's just a standard place 
to put extensions (like WS-Addressing, which you'll need as soon as you 
get out of a point-to-point model and start wanting to pass these 
messages around internally, via some kind of workflow model or routing 
model; see "Enterprise Integration Patterns" for more of what I mean) 
where others will know to look for them. Overhead? Not much--in a 
barebones SOAP packet, we're talking two additional elements: the root 
Envelope element, and the immediate child Body element in which your 
payload can comfortably snuggle. It's overhead, I'll grant you, and 
you'd be stupid not to wonder, "Can't I just send the payload directly?" 
But the payoff comes the day when your boss turns to you and says, "Oh, 
by the way...." THAT's when having a place for headers and other 
out-of-band information (including headers for your own use) comes into 

Tim's right--for what Amazon and eBay and some of the others are doing, 
which is to say, basic point-to-point communication right now, the WS-* 
stack is really a horrendous waste of time and energy. But the beautiful 
part of all this is, you can pick and choose parts of the WS-* stack to 
make use of, and only use those parts that are meaningful to you at the 
time you need them, so long as make that first step to using SOAP as the 
basic message framework instead of your own homegrown thing.

As to the usefulness of WS-Transfer? Well, time will undoubtedly tell, 
but it's been becoming more clear that just approaching everything from 
a WSDL-oriented "it's just RPC" model wasn't going to work. WS-Transfer 
runs the danger of being misinterpreted as "let's create remote objects 
with just Get/Put/Delete options on it", but if it helps to perhaps mend 
the rifts between the folks who are trying to get by on a RESTful model 
and the folks who insist that "if it don't say WS- in front of it, it 
just ain't worth spit", I'm all for it.

But as for Tim, I staunchly encourage and support his loyal opposition; 
not enough people are doing so, I think. I try to sometimes, but I don't 
really spend enough time in the WS-* space to really be able to 
cohesively argue against Don (among others). What I do know, at the end 
of the day, is that if the WS-* stack is too hard to use, programmers 
will turn to something else and Get By with that: CORBA taught us that, 
if nothing else.

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]