Savas asks
I am talking about an architecture which only has services and messages, so where are the resources?
Aha! If that ain’t the $10,000 question … So, here’s my smart-ass 2c response;
Show me a message(*) and I’ll show you a representation of the state of some resource.
(*) a ProcessMessage message, aka a document.
In a really awesome
essay
(sorry for the delay, I was on vacation),
Savas
ponders, among other things, what it would mean to be
a RESTafarian. It seems the one thing holding him back from
being a card carrying member of the club though, is that the
whole idea of binding application semantics to a protocol seems
sorta silly to him. Well, I don’t believe it is, but fortunately,
what you believe about that subject matters not to your
eligibility for membership. This is because REST, as an architectural
style, says nothing about how any particular architecture is
implemented. “All” it does is constrain your architectural elements.
So, if your architecture has uniform connector semantics (even if
there’s only a single one called “processThis”), and if your
architecture has a single data element which identifies resources which
act as message endpoints, and it uses fully
self-descriptive messages,
et cetera …,
then your architecture is RESTful, like it or not.
Savas, your card’s in the mail. 8-)
P.S. it hurts to type so don’t expect speedy email or blog replies – a side effect of skewering your
hand with a broken wine glass stem.
According to Radovan anyhow 8-)
Everyone programs in something different, so let’s just do
protocol-based integration, where we will just agree on the format of
the messages we are going to exchange over the wire.
I think this is the thing some ‘REST fundamentalists’ are still missing…
No, I think we get that. Or at least we get that it’s a critical
part of the solution. This is why HTTP 1.1 is as well specified as it is
(not that it doesn’t have issues, of course). The problem is that the
format is only one part of the solution. The other part are the
semantics of the messages, something that HTTP also specifies,
but SOAP doesn’t … not that it should though, as it can always inherit
them from the underlying protocol.
Right from the spec,
we have this example of an EPR;
<wsa:EndpointReference xmlns:wsa="..." xmlns:fabrikam="...">
<wsa:Address>http://www.fabrikam123.example/acct</wsa:Address>
<wsa:ReferenceProperties>
<fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
</wsa:ReferenceProperties>
<wsa:ReferenceParameters>
<fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
</wsa:ReferenceParameters>
</wsa:EndpointReference>
Somebody please tell me why on earth that isn’t a URI? You know,
something like;
http://www.fabrikam123.example/acct/123456789?ShoppingCart=ABCDEFG
Note to self; avoid using an HTTP header named “Status” in
Webware, since apparently
it’s reserved for holding the in-memory equivalent of the response code.
Ack.
What’s the best Python Web app framework, or should I just go back
to Jython and javax.servlet?
Congrats Rael!! Well deserved.
(
link) [
Mark Baker’s Bookmarks]
I went to high-school with Hans, and had a big crush on his sister Denise. Though he was a year ahead of me, we were always hanging out in the computer room together with the other jean-jacket wearing geeks.
(
link) [
Mark Baker’s Bookmarks]
One of the nice things about being a
critic of the current approach to Web services, is that the
infighting amoungst the players had a chilling effect on
standardization efforts, which made my job – of keeping the
W3C as free from this stuff as possible – easier. Unfortunately, today,
everybody seems to have come together for the worst spec of them all;
WS-Addressing
is now a W3C submission.
SOAP, I liked very much, just not how people
were/are using it.
WSDL, I didn’t like because of the bad practice it
encouraged, but I felt that it might have a role to play.
But this monstrosity actively causes harm by not using URIs as EPRs. That part of
the spec has no
redeeming qualities, except that it represents an attempt on behalf of the
authors to Do The Right Thing regarding addressing (i.e. standardize it).
Unfortunately, those authors fail to recognize that we’ve already got a
perfectly good identification spec.
Update; P.S. yes, I understand than an EPR has a mandatory wsa:Address, but that
doesn’t change anything, as any identifying information in the SOAP envelope is
necessarily in conflict with the HTTP Request-URI. One endpoint per message, please.
A vision of things to come; personal servers, event servers, REST, RDF, …
(
link) [
Mark Baker’s Bookmarks]
Sean highlights
Reinout van Rees’s Zen moment
Awesome, another recruit!
I just want to add that I think it’s important to recognize that “getting it”
requires a Zen moment. For everybody I know who came from a CORBA/DCOM-like
distributed systems background, but now understands the Web, serious mental model
rewiring occurred. If you haven’t had that rewiring, you don’t (yet) get the Web.