Archive for February, 2008

RESTful Data

February 28th, 2008  |  Published in column, coupling, integration, REST, scalability  |  Bookmark on Pinboard.in

In my Jan/Feb Internet Computing column, Serendipitous Reuse (PDF), I talked about interface coupling and the benefits of REST’s uniform interface constraint. I find that whenever you discuss that topic, though, REST detractors tend to say, “Well, you’re just pushing the coupling problems to the data.”

The problem with that assertion is that it assumes coupling is a fixed constant — if you eliminate it from one point, whatever you’ve gotten rid of just has to pop up somewhere elsewhere, like some sort of strange “Conservation of Coupling” law. Of course, that’s not true. In my latest column, Demystifying RESTful Data Coupling (PDF), I turn my attention to this claim and explain how RESTful data works, and why it too, like RESTful interfaces, reduces coupling when compared to WS-* and other similar approaches.

Constructive feedback welcomed, as always.

InfoQ Interview

February 26th, 2008  |  Published in commentary, conferences, CORBA, distributed systems, dynamic languages, erlang, HTTP, interview, productivity, REST  |  Bookmark on Pinboard.in

When I spoke at QCon San Francisco last November, Stefan Tilkov interviewed me, and the video is now available on InfoQ.com.

We covered a range of topics: CORBA, dynamic languages, REST, distribution, concurrency, Erlang. Stefan asked some great questions, and I hope I gave some worthwhile answers. Thanks again, Stefan.

Six Degrees, Capone, and me

February 15th, 2008  |  Published in General  |  Bookmark on Pinboard.in

A bit off the usual topic of this blog, but yesterday being Valentine’s Day and all, late in the evening I was busy doing what no doubt a whole lot of other people were also doing: watching the documentary of “The St. Valentine’s Day Massacre” on The History Channel. The St. Valentine’s Day Massacre is, of course, the name given to the event in 1929 in which members of Al Capone‘s gang murdered seven people either in or associated with Bugs Moran‘s gang.

The phrase “six degrees” in the blog title refers to “Six Degrees of Separation,” which is the idea that each person on the planet is separated from everyone else by an average of only six steps. Each person you know is one degree away, each one they know but you don’t is two degrees away, etc.

During the show, a picture flashed on the screen that reminded me of how many degrees of separation there are between the infamous Al Capone and me: only two. The picture was that of his older brother Ralph, whom I met as a child. Ralph lived in the Sky View Nursing Center in Hurley, WI near where I grew up in Upper Michigan. The mother of one of my teachers also lived there, so that teacher would occasionally take the whole class over to visit the elderly people in the center, bring them small gifts we’d make in class, have us sing songs to them, and have each of us visit with one of them individually. By sheer luck I was assigned to visit Ralph Capone. I don’t recall him saying much, but when I saw his picture in the documentary last night, I wished that I knew then what I know now. Think of the questions I could have asked him!

He died in 1974, not too long after my visits with him, and my mom cut out his obituary from the Milwaukee Sentinel and gave it to me. I still have it in a scrapbook.

More About Decentralized Media Types

February 11th, 2008  |  Published in HTTP, REST, standards  |  Bookmark on Pinboard.in

I figured the decentralized media types idea that Stefan Tilkov and I each wrote about recently couldn’t be all that simple. So, not surprisingly, it turns out that at least Mark Baker (and according to Mark, also Mark Nottingham (mnot) as well), Bill de hÓra, and James Snell don’t like it. When either Mark or Mark speaks on matters pertaining to the web, I listen; I’ve been around each of them long enough to know that when they aren’t sure whether something is a good idea, it’s definitely worthwhile to take the time to understand why. I don’t believe I’ve ever met Bill or James in person, but I read their blogs for a good reason, plus James just got his blue belt so I’d like to avoid getting on his bad side. :-)

I particularly like Stu Charlton’s opinion on the matter, though, in part because he acknowledges the tension between the needs of the Internet vs. those of intranets.

At the end of the day, I understand the various explanations for why decentralizing media types is not a good idea after all, and I agree with them. I was unaware that mnot had already tried to go down this path. I see this issue as another stop along the way to a more thorough understanding of REST, and bringing it up has gotten some good technical explanations out in the open, where perhaps more people can see them and learn from them. Thanks to those mentioned above for providing those explanations, and to Stefan for kicking off the discussion.

Decentralized Media Types

February 9th, 2008  |  Published in HTTP, REST, standards  |  Bookmark on Pinboard.in

In RESTful systems, media types define the formats of data exchanged between client and server. Standard media types are centrally registered and managed via the Internet Assigned Numbers Authority (IANA). If none of the registered IANA media types fits your application, you’re free to write up and submit a new one that does.

Less than one week ago I was wondering to myself why media types are centrally managed when the web typically prefers decentralization. I was therefore pleasantly surprised today when I read Stefan Tilkov’s posting on this very topic. The proposed solution he describes, from Sanjiva Weerawarana, Paul Fremantle, Jonathan Marsh, and James Clark, is pretty much in line with what I was thinking: register a new media type that has a URI parameter for identifying an actual data description. Very simple and yet potentially extremely effective.

I like this approach for several reasons beyond just the decentralization win. First, this allows us to gain experience with new media types before they’re standardized. Second, this augments rather than replaces the current IANA registration approach, and doesn’t break the existing IANA registration process in any way. Third, it doesn’t break or otherwise negatively impact any existing applications.

So, enough emailing and blogging about it — who’s going to write it and submit it to the IANA? I hereby offer to pitch in and help in whatever way I can.