Atompub Interop Lessons

Search

The results are
summarized on the
Wiki;
what do they mean?
Obviously, good news: The fact that people from this
many places, most of whom had never met before, got together and were able
to put that many check-marks on the grid, based on a protocol whose design is
not quite frozen, verges on the miraculous.
Now let’s dive a little deeper; what does each check-mark mean, and what can
implementors bet on, and when?

Check or Not ·
Standards vary. For example, there’s one server-side API where I didn’t record
success even though I eventually managed (I think) to post a
picture, because there was just too much one-off hacking involved. In this
particular case, I’m sure the developers are clueful and will fix the
problems.

I’m dubious about the quality of a few of the check-marks in the grid;
I know some of the client guys bypassed a b0rked Service doc and just hammered
HTTP verbs at a hacked-in collection URI, which I’m pretty sure isn’t kosher.
On the other hand, the fact that I’m picky, and that I still managed a
check-mark on nine of fourteen attempts to interoperate with server
implementations, is pretty decent.

Attitude ·
So far, the attitude around the APP is pretty pleasing. I can clearly
remember the early days of trying to roll out one Web Standard or another, and
Netscape or Microsoft would come to the meeting and say “Yes, well we’ve
decided there would be greater value to our users in our improved version” by
which they meant “Fuck you standards wusses, we’re about grabbing
territory.”

Haven’t been getting much of that around the Atom Protocol. I wonder why?
Partly because protocols are all about it taking two to tango, partly because
Atom has never sanely been accused of being a nefarious plot by one vendor or
another, maybe because as a community we’re a little older and wiser.
Anyhow, I sure appreciate it.

In fact, there was a lot of laughter in the room. “Ape just went into endless-loop
mode, snicker.” “GData just blew chunks, ha ha.” “Roller’s got null-byte
cancer again, hee hee.” It’s the only way engineers stay sane, see
47 ways.

Authentication ·
It’s gonna be a problem. See
James Snell.
I think I’m going to have to write more on the subject.

The Implementation Space ·
It’s become pretty obvious that a pretty broad range of pieces of software
can fairly claim to to be Atompub implementations. This is more obvious on
the server than on the client side, partly because the implementations are
more numerous and mature at this point.

Some are clearly not general-purpose; for example, the O’Reilly people at
the Interop event had what appeared to be a perfectly legal
implementation; but you could only post DocBook XML to it.
Which I can see being useful for them, but a vanilla blogging client probably
won’t work that well with it, out of the box.

In the short term, I’m personally most interested in mainstream servers
that a general-purpose blogging client (like the kind you’d expect to find in
a mobile phone, hint hint) could use easily. So that’s the space the Ape explores.

If you check that interop grid, the columns with check-marks in Row 1
are implementations that in my opinion could probably be used by a generic
blogging client pretty well right out of the box.

APP When? ·
So, Joe Cheng of Microsoft, on the Live team and an impressive guy, looked me
in the eye and said “When can I ship an APP client and be safe?” Which is a
really hard question and 100% totally fair. I can’t make any promises, but
what I said was “July” and I think that’s safe.

The Big Lesson ·
Sun and IBM and Oracle have working database-backed Atom stores. Microsoft
and IBM, that we know of, have in-progress clients. Judging
by my email, there are
a bunch of startups hacking together one side or another of the protocol.
Draw your own conclusions, but I think it’s obvious.

Updated: 2007/04/18

Contributions

The interop grid is nice, but what I'd really been hoping for is an extensive list of homes for the code tested (as far as it's publicly available). E.g., because of the part of the blogosphere I live in, I know how to get to the Ape code, and I can find out where Gregorio's code lives, but what are all these other implementations, are they open source, in what language are they written? I've looked around the wiki and Googled several times, but it would be nice if there was an authoritative list somewhere.

Tim said: "Some are clearly not general-purpose; for example, the O’Reilly people at the Interop event had what appeared to be a perfectly legal implementation; but you could only post DocBook XML to it"

Just for the record, that server was indeed intended for a single purpose (document repository), but did have a number of more generic collections that you've overlooked: