My latest article is up on InfoQ. I hope it help demystifies the “Hypermedia as the engine of application state” constraint just a little bit.
I remember being a bit of a smart-ass nerd in high school, and taking pleasure in deriving novel insults my friends and I could deliver at the stoner-types, or anybody who else who crossed paths with us. The more difficult it was for them to understand why it was an insult, the better. So when I came up with “Your family tree has cycles”, I was one happy geek.
Little did I know at the time though, that my own family tree had a cycle. It turns out that my paternal Grandfather’s paternal great-Aunt, was my paternal Grandmother’s sister’s-in-law’s great Grandmother. My Dad’s cousin, who discovered the cycle this past weekend, doesn’t think the family knew about it. I believe the circumference of that cycle is seven.
Anybody else got any cycles they’d like to share? Note; if the circumference of your cycles are less than five, you might want to keep those to yourself 8-)
I’ve been thinking about writing this for some time now. In fact, it’s probably way overdue. But there’s no better time than the present, as they say.
I’ve had enough. I’m not participating in any more “REST vs. SOAP” discussions. When I started on this mission to educate those who didn’t understand how the Web could help them, I figured it would be pretty straightforward; I’d explain it, they’d understand, and then we’d all skip away hand-in-hand whistling show tunes. Of course, it didn’t quite work out that way. Instead, I ended up spending on the order of $100K of my own money on travel, as well as the opportunity cost of many hundreds of otherwise billable hours, for what is working out to be essentially nothing in return. If that weren’t enough, my health has suffered the past year or so, in ways I won’t get into here, but that I’m confident are in part attributable to the despair I’ve felt over this extended period of frustration.
The war really has been won, I realize that now. And I’m happy to pat myself on my back for a job well done, despite what it’s cost me. Would I do it over again? No bloody way. I should have just “pulled a Roy” and continued to work with and improve the Web, but restrict my Web services standards work to trying to minimize the harm Web services were doing to the Web (which I was doing, but I went way beyond that). I think Max Planck got it right when he said;
A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it.
Oh, and one last thing. I told you so. There, that felt good.
I remember the days when it was basically just Mark Baker and me shouting “The WS-King has no WS-clothes and there are WS-bleeding-sores on his WS-butt!”
One of these days, I should put together a little retrospective on the past 7-8 years: the players, the converts, the milestone moments, etc… Stay tuned.
Well, that was frustrating.
(Very) Long story short, motherboard & hard drive running this weblog are simultaneously fried a few weeks ago. I then discover my weblog backup system stopped working earlier this year (you may have noticed the most “recent” post from April). Luckily though, I’m able to scrape off enough of the WordPress mysql database from the fried disk (thanks R-Linux!) to be able to graft it onto an existing database, permitting me to dump a snapshot and recover it completely (knock on wood).
Please let me know if you encounter any problems.
Its funny but so few people who also use ESB and WS-* style protocols and tools frequently operate with such disdain for other ways of doing things.
There are, of course, a very large number of automated solutions to a particular problem. But of all of them, only a few will exhibit the desired properties, to the proper degree, that you require for the environment in which it is to be deployed. The more you require, the fewer the number of suitable solutions.
I’m with Stefan. Steve Vinoski’s always been somebody you want to listen very carefully to regarding distributed computing and enterprise integration, but even more so now that he’s left the employ of a company with skin in that game. That message isn’t entirely new, it’s just more obviously the message 8-)
Mark Little responds to an interesting post by Bill Burke about compensation based transactions. I don’t really have any direct response to the gist of that discussion, but wanted to highlight a couple of Mark’s arguments that I consider to be probably the top two arguments by those who feel there’s value in both the Web and Web services (the “fence sitters”, as Mark recalls me calling them 8-).
First up, the belief that the Web has nothing to say about reliability, transactions, etc… Mark writes;
Yes, we have interoperability on the WWW (ignoring the differences in HTML syntax and browsers). But we do not have interoperabilty for transactions, reliable messaging, workflow etc. That’s not to say we can’t do it: as I said before, we did manage to do REST+transactions in HP but it was in a small-scale deployment involving only a couple of partners. There is no technical impediment to doing this: it’s entirely political. It can be done, I just don’t see it ever being done. Until it happens, REST/HTTP cannot compete with the kinds of heterogeneous out-of-the-box interoperability that we have demonstrated with WS-*
I’ve talked about this a lot, most recently in my position paper to the W3C Workshop on Enterprise Services. The gist of the argument is that the Web address all of those needs, just in a way which you might not recognize because it has to address them within the confines of architectural constraints that Web services folks aren’t used to. Again, that’s not to say that every possible one of your needs can be met out of the box today, only that far more of them can than you might believe.
Mark also uses the very common argument that because interoperability requires agreement on data for both Web and Web services, that there’s no significant difference between them (I hope that summarizes his point);
So just because I decide to use REST and HTTP doesn’t mean I get instant portability and interoperability. Yes, I get interoperability at the low level, but it says nothing about interoperability at the payload.
I can’t quickly find any past blog entries that touch on this point (though I know they’re there), but this argument I find the most confusing. I suspect it has to do with what I perceive to be a disconnect between Internet and intranet protocol stacks, but I can’t say for sure.
What Mark calls the “low level” isn’t the low level at all. Assuming he means HTTP, the agreement you get by using it is more (higher level) agreement than you get if you were just using SOAP (or XML-RPC or IIOP or BEEP or …). That’s because you’re agreeing on the methods in addition to an envelope (not to mention many other features).
The title – A little REST and Relaxation – is the same title as the keynote (video) he gave at Jazoon this summer, so I assume it’ll be similar if not the same (hopefully a bit longer, as Roy’s obviously rushed for time in the video).
I liked the talk a lot, as you might have guessed. I particularly liked how Roy echoed some of the things I’ve said the past few years nearly word for word. For example, he talked about how SOA was effectively the null architectural style. He also talked about the pros and cons of relaxing REST’s constraints, including the very high cost of relaxing the uniform interface constraint (something I’ve pointed out many times), but the relatively low cost of relaxing client/server.