Stefan Tilkov thoughtfully responded
to my “Building the Web with Web services” blog. Here are some of his comments.
In response to my assertion that documents/state don’t ask anything of anyone, he writes;
Er … well, I think I can see the point, but I can’t really make sense of the examples. So, a purchase order isn’t asking anything from anyone? That can’t be true – so obviously, these are counter examples – a purchase order is asking something. Looking at the paragraph, even for some length of time, I have problems finding out what exactly Mark is getting at – I fail to see the similarity between a pure piece of data like current time and a very concrete, business level document like purchase order. Arguably, it’s just not phrased very clearly, or maybe it’s because I’m not a native English speaker.
A purchase order isn’t asking anything of anyone; it’s just capturing the state of
some order. It can be used to ask something of somebody. For example, I could give
it to a skywriter, and they could write the XML out in smoke overhead. Or I could give
it to an archiving service which promises to keep a copy around for some period of time.
Or, I could give it to a purchasing department with the intent that they fulfill the
order. But all those actions are where I’m asking somebody to do something. What would
you do if you found a paper purchase order lying in the street? Do you know the intent
of its author? No.
He also added this;
While Mark obviously was thinking of content negotiation, support for Expired headers and so on, he doesn’t talk about it at all. How is anybody supposed to make sense of that?
I quite intentionally (though I slipped some in at the last minute, sigh) tried to avoid mentioning Web
terms where I could, and just talk about the general approach. I did this because in my experience, once
you start using Web terms, people automatically import their preconceived views of the Web … which
is what I’m trying to fix.
And then this;
OK, I’m a bit puzzled by now, but surely things are going to be clarified in the next few sections. (Seriously, that’s what I thought when I first read the article). Imagine my surprise when I saw that the next paragraph’s title is Conclusions:
Well, that’s all there is! 8-) The intent of the essay was to describe how the Web relates to
document style Web services; that if you add identification of the things whose state is
represented by those documents, make semantics uniform and explicit on the wire in the form of
an application protocol, and dereferencing of identifiers to request a document, that you’ve
got the Web.
Thanks for the constructive comments, Stefan. I know how easy it is to get
all kneejerky on this. It just seems that the industry is SO close to
finally understanding the Web, that I feel an obligation to jump up and down and
yell “Yo, over here, we’ve already got one of those!”.
Service Data Objects. Oh my.
Here’s some snippets from a
whitepaper;
The core SDO specification provides the base APIs that are applicable to all types of data sources
That’s the
definition
of
uniform!!
The SDO architecture is based upon the concept of disconnected data graphs. Under the disconnected data graphs pattern, a client retrieves a data graph (i.e., a collection of tree-structured or graph-structured data) from a data source, mutates the data graph, and can then apply the data graph changes back to the data source. Most commonly, the update is performed with optimistic concurrency semantics, which means that if any of the underlying data was changed before the client applies the changes, the update is rejected and the application must take corrective action. Optimistic concurrency semantics is a natural semantic that serves most business applications well.
“Disconnected data graphs”? You mean like the Web? 8-). And optimistic concurrency?
Who knew?.
Ok, come on now, this is just getting silly. A Java API for all this stuff
is nice, but we’ve got Servlets,
and it’s not nearly as complex as SDO. Compare and contrast
DataObject
(grr, no direct URI) to
HttpServlet;
the former is just missing the equivalent of POST (which would make it useful for
operating on more than just data), but consider that doGet/GET on a servlet is equivalent
to requesting that the state of a DataObject be serialized via Java serialization.
What am I missing? Why can nobody see this?
Via David Forslund,
a pointer to a set of workflow patterns.
Good stuff. I’ve been contemplating updating my
Hypermedia Workflow
paper, and this would be a good base from which to restructure it.
I also just stumbled across a paper entitled
“Workflow Description for Open Hypermedia Systems”
which sounded intriguing, but was I ever disappointed to read it; it just talks about
Web services and WSFL. It seems academia is making the same mistakes as industry. 8-(
On my O’Reilly weblog.
If this doesn’t convince you, I don’t know what will.
Norm lists the countries he’s visited.
I’ve wanted to put together a similar list of my own for a little while,
since I stumbled upon a
list
(wow!) put together by
Paul Cotton‘s daughter
Cecilia earlier this year.
Here’s mine.
That’s 22 I’ve slept in, and 26 I’ve been too. Not too bad. But I really
need to spend more time outside of Europe and Scandanavia.
Tim relays
some news from Jean Paoli, that in addition to releasing the schemas for the Office formats,
documentation will be released too. He writes;
In general, I think that this kind of tech doc is an order of magnitude more important than schemas,[…]
Big +1
Until last week, the SOAP document/literal examples I’d seen differed
from the rpc/encoded ones only by the encoding. Then I spotted
this example (in section 5.1 – sorry, no URI) in the
WSDL 2.0 Primer;
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Body>
<customerName>Kevin Liu</customerName>
<checkInDate>2002-09-01</checkInDate>
<checkOutDate>2002-09-10</checkOutDate>
<roomType>double</roomType>
<comments>the customer will be arriving late in the evening</comments>
</env:Body>
</env:Envelope>
Ignoring the problem that there’s not a single child element of env:Body,
this is, from a Web architecture POV, quite encouraging; we have a SOAP
envelope encapsulating state. Very RESTful (at least the part of the
architecture that is visible in that example).
But if you know where (how?) to look, the Web is nearby. The key is to
realize, once you’re dealing in state, that the obvious next question is,
“The state of what?”
Can this be it?
I think I’ve just found the key to describing the relationship between
the Web and document-style Web services. Cross your fingers. If all goes as
planned, the next few weeks are going to be very exciting.
Scoble writes;
I’m watching 636 sites every day. Try to do THAT in your Web browser.
Which way
would you
prefer?
And not to mention that “not using the browser” is different than
“not using the Web”. How did you get that RSS? Uh huh, I thought so. 8-)
As an interesting addendum to the Eolas debacle, did you realize that Mike Doyle from Eolas
flaunted
their acquisition of the UC patent on www-talk? ’nuff said.