mnot’s blog

Design depends largely on constraints.” — Charles Eames

Web Services

Sunday, 23 June 2013

Five Reasons to Considering Linking in Your HTTP APIs

There’s been a lot of interest in and effort expended upon “hypermedia APIs” recently. However, I see a fair amount of resistance to it from developers and ops folks, because the pragmatic benefits aren’t often clear. This is as it should be, IMO; if you’re not able to describe concrete benefits without hand-waving about the “massive scale of the Web.”

this entry’s page

Wednesday, 15 May 2013

Indicating Problems in HTTP APIs

A common part of HTTP-based APIs is telling the client that something has gone wrong. Most APIs do this in some fashion, whether they call it a “Fault” (very SOAP-y), “Error” or whatever.

this entry’s page

Tuesday, 4 December 2012

Evolving HTTP APIs

One of the most vexing problems that still seems to be facing people when I talk to them about HTTP APIs is how to handle versioning and extensibility – i.e., how they evolve.

this entry’s page

Tuesday, 22 March 2011

Your REST worries have ended.

Now, you can test any URL to instantly determine if it’s RESTful.

this entry’s page

Friday, 15 January 2010

WS-REST (heh, heh)

If you haven’t seen it already, check out the Call for Papers for the First International Workshop on RESTful Design (WS-REST 2010), where I’m on the program committee, along with many of the usual suspects.

this entry’s page

Monday, 27 October 2008

Dev-Friendly Web Caching

Ryan Tomayko announces Rack::Cache, a HTTP cache for Ruby’s generic Web API;

this entry’s page

Thursday, 16 October 2008


Metadata discovery is a nagging problem that’s been hanging around the Web for a while. There have been a few stabs at this problem (including at least one by yours truly), but no real progress.

this entry’s page

Friday, 4 July 2008

The WS-Empire Strikes Back... feebly

Here’s a gem on a little-used mailing list:

this entry’s page

Thursday, 15 May 2008

Atom gets a new audience

Huh. The Atom Format RFC has been out for a while, and as one of the authors, I get the odd mail now and again asking a question or just saying “thanks.”

this entry’s page

Thursday, 20 March 2008

Moving Beyond Methods in REST

Having complained before about the sad state of HTTP APIs, I’m somewhat happy to say that people seem to be getting it, producing more capable server-side and client-side tools for exposing the full range of the protocol; some frameworks are even starting to align object models with resource models, where HTTP methods map to method calls on things with identity. Good stuff.

this entry’s page

Monday, 3 March 2008


Not many people that I know outside of IETF circles realise that a new *DAV effort has started up; CardDAV.

this entry’s page

Sunday, 17 February 2008


It’s 7am, I’m sitting in the Auckland Koru Club on my way home and reading the minor kerfuffle regarding PATCH with interest.

this entry’s page

Wednesday, 6 February 2008

Another Kind of HTTP Negotiation

Here’s one that I’ve been wondering about for a while, for the LazyWeb (HTTP Geek Edition);

this entry’s page

Monday, 21 January 2008

Watching WADL (and other rambling thoughts)

I’m following the discussion of RESTful Web description in general, and WADL in particular, with both difficulty and interest (see Patrick and Joe’s thoughts for a nice contrast).

this entry’s page

Friday, 4 January 2008

Cache Channels

The stale-while-revalidate and stale-if-error extensions aren’t the only fiddling we’ve been doing with the HTTP caching model. Now that Squid 2.7 is starting to see daylight, I can explain about a much more ambitious project — Cache Channels.

this entry’s page

Wednesday, 12 December 2007

Two HTTP Caching Extensions

We use caching extensively inside Yahoo! to improve scalability, latency and availability for back-end HTTP services, as I’ve discussed before.

this entry’s page

Sunday, 9 December 2007

Why Revise HTTP?

I haven’t talked about it here much, but I’ve spent a fair amount of time over the last year and a half working with people in the IETF to get RFC2616 — the HTTP specification — revised.

this entry’s page

Friday, 2 November 2007

WADL Documentation XSLT Updated

I’ve updated the WADL documentation stylesheet, primarily to;

this entry’s page

Saturday, 8 September 2007


Feed Paging and Archiving (nee Feed History) has finally made it to a standards-track RFC.

this entry’s page

Tuesday, 7 August 2007

ETags, ETags, ETags

I’ve been hoping to avoid this, but ETags seem to be popping up more and more often recently. For whatever reason, people latch onto them as a litmus test for RESTfulness, as the defining factor of HTTP’s caching model, and much more.

this entry’s page

Saturday, 28 July 2007

URI Templates Redux

URI Templates -01 is now an Internet-Draft.

this entry’s page

Wednesday, 20 June 2007

The State of Proxy Caching

A while back I wrote up the state of browser caching, after writing a quick-and-dirty XHR-based test page, with the idea that if people know how their content is handled by common implementations, they’d be able to trust caches a bit more.

this entry’s page

Tuesday, 1 May 2007

httperf rev

Martin Arlitt makes an exciting announcement;

this entry’s page

Sunday, 29 April 2007

Squid is My Service Bus

The QCon presentation ( slides) was ostensibly about how we use HTTP for services within Yahoo’s Media Group. When I started thinking about the talk, however, I quickly concluded that everyone’s heard enough about the high-level benefits of HTTP and not nearly enough details of what it does on the ground. So, I decided to concentrate on one aspect of the value that we get from using HTTP for services; intermediation, as an example.

this entry’s page

Thursday, 5 April 2007

WWW2007 Developers’ Track

We’ve announced the program for this years’ Developers’ Track, and I’m very excited about the lineup.

this entry’s page

Tuesday, 27 February 2007

REST Issues, Real and Imagined

I think that most of the debate about REST focuses on the wrong things, leading developers down the garden path at the expense of their productivity and the success of their projects. Time and time again, I’ve seen folks who are new to REST get caught up on small stuff like this;

this entry’s page

Wednesday, 7 February 2007


Yahoo! (finally!) released Pipes as a beta today; congrats to the very talented team that put this together.

this entry’s page

Monday, 4 December 2006

SOA Jumps Shark

Uche calls it;

this entry’s page

Thursday, 30 November 2006

Schema for JSON

One of the perceived deficiencies of JSON is that it doesn’t have a schema language. I say “perceived” because the problems that a schema language brings often outweigh the benefits; after all, look at the mess that XML Schema is in.

this entry’s page

Tuesday, 17 October 2006

Wanted: HTTP Yahoo!s

My team at Yahoo! is looking for a mid-level developer (5-10 years experience) to help build our HTTP/REST toolkit, among other things.

this entry’s page

Friday, 13 October 2006

Does the Enterprise (Vendor) Get the Web?

A couple of interesting things have happened recently; first, Jonathan Marsh has a new job;

this entry’s page

Wednesday, 13 September 2006

Some Questions for Software Vendors

Everyone seems to be gushing about Microsoft’s Open Specification Promise. While any headway is good in the horrible landscape that is Intellectual Property, my initial reaction is that it — like most such vendor promises — is too little, too late.

this entry’s page

Thursday, 22 June 2006

Bringing Back the Link - With a Twist

Recently, there’s been a resurgence for the Link element in HTML; everything from Microformats to Atom autodiscovery is using it. This isn’t surprising; as machines start processing Web documents more, it’s necessary to use hyperlinks — the foundation of the Web — to tie resources together, without getting in users’ faces.

this entry’s page

Thursday, 25 May 2006

Web Services are Dead, Long Live Web Services

When I joined Yahoo, one of the biggest adjustments I had to make was to their use of “Web Services”. There, that phrase means any kind of machine-to-machine communication using HTTP; SOAP isn’t assumed (or preferred).

this entry’s page

Tuesday, 16 May 2006

Caching Web 2.0

I just finished my XTech presentation, “ Web 2.0 on Speed”. here are the slides [pdf]; I’m going to try to s5 them soon. There isn’t much new in this talk; it’s just a synthesis of a few different observations;

this entry’s page

Thursday, 11 May 2006

Yaron Uncloaks!

Yaron publicly says what he’s doing at Microsoft (scroll down);

this entry’s page

Wednesday, 10 May 2006


Anne-Thomas Manes extolls the virtues of WS-*;

this entry’s page

Sunday, 23 April 2006


It’s official; I’ve got a last-minute slot at XTech, talking about all things Web caching.

this entry’s page

Friday, 14 April 2006

Another WS-*

A friend in the trenches put me on to the funniest thing I’ve seen in a long time.

this entry’s page

Friday, 7 April 2006

Are Namespaces (and mU) Necessary?

It’s become axiomatic in some circles — especially in WS-* land, as well as in many other uses of XML — that the preferred (or only) means of offering extensibility is through URI-based namespaces, along with a flag to tell consumers when an extension needs to be understood (a.k.a. mustUnderstand).

this entry’s page

Thursday, 6 April 2006

What good is SOAP to HTTP?

I’m a little confused by Mark Baker’s stance regarding SOAP; he seems to encourage the Web services world to use SOAP on top of HTTP in a fashion compatible with HTTP.

this entry’s page

Monday, 20 March 2006

Don’s False Choice

True to form, Don’s using his witty charm and good looks (such as they are ;) to shape discussion of a topic… in this case, REST, where he splits the RESTifarian world into two; “hi” and “lo.”

this entry’s page

Wednesday, 15 March 2006

WS-Transfer, WAKA and the Web

Microsoft and friends (of the keep your enemy closer variety, I suspect) have submitted WS-Transfer to the W3C. I found the Team comment interesting; e.g.,

this entry’s page

Monday, 23 January 2006

How Web-Ready is XMLHttpRequest?

I’ve been playing around with some ideas that use XMLHttpRequest recently, but I keep on bumping up against implementation inconsistencies on IE vs. Safari vs. Opera vs. Mozilla. Although the interface exposed is pretty much the same, what it does in the background is very different, especially with regards to HTTP.

this entry’s page

Monday, 7 November 2005

REST vs..?

More and more people are getting turned on to the advantages of using REST as a higher-level abstraction for networked applications, often comparing it favourably to SOAP and Web services.

this entry’s page

Wednesday, 10 August 2005

Separating the Data Model from its Serialisation

For some time, I’ve noticed that people defining XML formats spend an inordinate amount of time talking about the structure of the format. This is especially apparent in standards working groups, where hours — no, days — can be spent agonizing over whether to make something an attribute or an element.

this entry’s page

Monday, 8 August 2005

HTTP Performance (again)

Some folks at IONA have written a paper entitled Where HTTP Fails SOAP. I had a chance to look at this before I got it published, and their conclusions make a lot of sense — if you accept the premise that SOAP (and Web services) is about integration with existing applications.

this entry’s page

Friday, 8 July 2005

One Description to Bind them All? Nah.

You can describe just about anything with sufficient precision in plain English, given enough words. In practice, this doesn’t happen; specialised fields — whether science, finance or art — develop specialised jargon as a shorthand for concepts that are well-understood in that field. It gives greater precision, easier flow of ideas, and yes, it raises the bar to entry for newcomers.

this entry’s page

Monday, 27 June 2005

Perspectives on the Addressing Experiment

I don’t talk much about it here, but I’m honoured to be the Chair of the W3C Web Services Addressing Working Group. This is something of an experiment for the W3C, so I gave an update on its progress as part of a panel discussion at the Advisory Committee meeting a few weeks ago. I’d like to share some of what I presented there.

this entry’s page

Tuesday, 24 May 2005

Web Description at the W3C

The W3C has just started a mailing list for discussion of Web description formats;

this entry’s page

Wednesday, 2 March 2005

Using XML in Data-Oriented Applications

So, you’ve got some data that you need to give to somebody else, and you want to use XML to do it; good for you, you’ve seen the light / hopped on the bandwagon / drunk the Kool-Aid.

this entry’s page

Monday, 7 February 2005

The Map is Not the Territory

Werner makes an excellent point;

this entry’s page

Sunday, 23 January 2005

WS-Who's on First?

There are MEPs in SOAP and MEPs in WSDL; both describe patterns of messages, but at potentially different layers.

this entry’s page

Wednesday, 5 January 2005


Since the W3C Web Services Addressing Working Group is visiting my (sort of) home town in a couple of weeks, I’ve updated the Opinionated Guide to Melbourne that I sometimes give to people by e-mail and put it on the Web.

this entry’s page

Sunday, 10 October 2004

Why POST is Special

In a recent post, Don gave his take on the enlightening nature of WS-Transfer;

this entry’s page

Wednesday, 29 September 2004

Is there a Web Services Architecture?

As I’m sure many others were, I was intrigued to see that Microsoft published their idea of an Introduction to the Web Services Architecture and Its Specifications the other week.

this entry’s page

Monday, 27 September 2004

The ‘Web’ in Web Services

I was very interested to see the reaction to WS-Transfer [PDF] over the last few days. While the SOAP Resource Representation Header had opprobrium heaped upon it (see previous discussion), Transfer passed by with nothing more than a few nodding heads and people saying “aha.”

this entry’s page

Thursday, 5 August 2004

The ‘Document’ in Document-Oriented Messaging

(Another instalment in “XML Heresies.”)

this entry’s page

Thursday, 1 July 2004

Come One, Come All

The W3C Workshop on Constraints and Capabilities for Web Services promises to be a quiet, calm, tightly-scoped discussion of a well-understood topic, lacking any controversy whatsoever.

this entry’s page

Wednesday, 30 June 2004

SOAP: Protocol or Format?

Way back when the XML Protocol Working Group started kicking around, Henrik and I had a long-running, low-level “discusssion” about whether SOAP was a protocol or a format.

this entry’s page

Monday, 14 June 2004

Use Cases for Web Description Formats

One thing about Web description formats that hasn’t seen much discussion yet is how people intend to use them.

this entry’s page

Friday, 7 May 2004 0.2

To help inform discussion of XOP (and to save Sam the trouble ;), I’ve put together a quick-and-dirty (we’re talking two hours) XOP parser in Python. It isn’t particularly efficient, nor is it well-tested or robust; it’s only to demonstrate how a XOP parser might behave.

this entry’s page

Tuesday, 27 April 2004

Using WebDAV as a Description Format for REST

In the past, I’ve talked about reusing WSDL as a format for describing Web resources, as well as coming up with a bespoke format.

this entry’s page

Tuesday, 27 April 2004

How do we use SOAP Headers?

Way back when in the XML Protocol Working Group, one of the concerns that came up was the processing model for SOAP headers. In particular, while SOAP 1.2 does a good job of specifying how that model operates, a key peice of information is missing; how to order the steps in processing a message.

this entry’s page

Tuesday, 20 April 2004

Sean’s Words of Wisdom

Sean McGrath always has carefully considered positions, and he hits it out of the ballpark with this one. A few thoughts;

this entry’s page

Monday, 19 April 2004

Asynchrony: There Is No Spoon

One of the things that people find compelling about Web services is its promise of asynchrony. “HTTP is only request/response, and therefore synchronous; it’s terrible for long-lived business processes, where the server needs to contact the client at some arbitrary time in the future” they say.

this entry’s page

Friday, 16 April 2004

Describing Generative Identifiers in WSDL

To use WSDL to describe RESTful interactions, you need some way of accommodating generative resource identifiers. In a nutshell, this means some part of the URI is dynamic. For example, with HTTP I might describe an address book where someone named “Jones” has a corresponding entry URI;

this entry’s page

Wednesday, 14 April 2004

A(nother) Description Format for REST

I’ve talked before about describing RESTful Web resources, going as far as prototyping a new format. That work was predicated on the assumption that WSDL wasn’t adequate.

this entry’s page

Monday, 29 March 2004

Behind the Scenes at Your (very) Local Music Store

Aaron Swartz has started to document the iTunes Music Store; this is a good example of a non-browser, cross-platform application reusing HTTP. It would be interesting to see the interface documented on a per-URI basis.

this entry’s page

Saturday, 14 February 2004


The XML Protocol Working Group (of which I’m a member) has released a first draft of XOP, XML-binary Optimised Packaging, and a revised draft of MTOM, the Message Transmission Optimisation Mechanism, that leverages XOP.

this entry’s page

Thursday, 30 October 2003

DIME is dead.

‘cause Gudge says so, and as we all know, Gudge is always right.

this entry’s page

Monday, 18 August 2003

Web Services

If you’re lost in a sea of specs, pundits and opinions, might I suggest two very well-written, thoughtful papers:

this entry’s page

Tuesday, 24 June 2003


We finally did it. More than two years ago, I went to North Carolina almost by accident; at the last minute I asked David Fallside if I could come to the first meeting because it sounded “interesting.”

this entry’s page