The first interoperability session for Atom Publishing Protocol implementations (both clients and servers) was a success. The best news was that many of the clients and servers were able to interoperate with little to no tweaking despite never having met before. Check out the (evolving) grid of success and failures for details. More than 20 implementors attended the event, held yesterday and today at Google, as well as Lisa Dusseault, the IETF Area Director for APP.
The other positive news is that big industry players like AOL, Google, IBM, Microsoft, Oracle, and Sun are working on APP clients and servers and sent people to the interop event with interesting code. Google and IBM in particular sent a lot of folks.
Some quick notes:
- Two days of intense work didn’t uncover big holes in the spec, which is nice.
- Many of the servers are currently quite permissive because of differing conformance levels of clients in the wild today. This will hopefully change when the spec gets finalized and clients are updated.
- Adding a second or third namespace (probably “app:” and “xhtml:”, potentially “rdf:” and others) to your Atom entries starts making your decisions on default namespaces more important for both clients and servers.
- Authentication presented a major sticking point for clients talking to uniquely authenticated servers. Someday, the HTTP libraries for the common languages will be patched to support a wider range of auth out of the box (from OpenID to AOL’s recently announced OpenAuth to Google’s esoteric auth to WSSE). It would be wonderful if the companies supporting these technologies helped create those patches.
- Only two of the servers did not accept Atom entries in at least one collection, but they were a document and photo repository, respectively. These two servers (as well as some of Google’s recent GData work) reaffirmed that APP does apply in areas other than blogging and bookmarking as well as underlining some of the calls for specified “profiles” for APP server-client interactions. I think James Snell is hoping to get some consensus on some those “profiles” soon.
- The clients and servers were implemented in a wide range of languages, showing that the spec is quite implementable (even by inexperienced mediocre programmers like myself) and that XML technologies are finally now accessible in all the modern languages, a relatively recent change XMLers sometimes forget. I remember seeing code Python, C#, Ruby, Java, XQuery, PHP, and Perl, but I may be leaving some out.
- DeWitt Clinton of Google hinted that they’ve been quite successful at handling giant loads with their APP services.
- From a more personal perspective, O’Reilly’s own internal APP repository now has hundreds of books, thousands of articles, and hundreds of thousands of images, and is already driving some site improvements, like these dynamic Table of Contents pages.
- Tim Bray posted some pictures on his blog (including one of yours truly).
Many thanks to DeWitt Clinton and the rest of the Google folks for hosting, all of the implementors for making the trip and fine code, and the Working Group for a beautiful spec.
PS: We talking about doing web-only interops in the future to make sure clients and servers are evolving and playing nice. Watch the list for details.


Another post from Dave Johnson: http://rollerweblogger.org/roller/entry/app_interop_event_day_1
A link to the GData Python library
Some notes from John Panzer: http://journals.aol.com/panzerjohn/abstractioneer/entries/2007/04/17/app-interop-final-score/1430
James Snell has posted a summary and some notes on what the "profiles" I hinted at above would look like:
http://www.snellspace.com/wp/?p=637
Nice summary, Keith! Have some pics to post and a summary of my own to write, but that won't be until later tonight once I get a few more things wrapped up.
Was great to finally get a chance to meet you in person!
Another great blog post from Joe Gregorio:
http://bitworking.org/news/162/First-Atom-Publishing-Protocol-Interop-Notes
I still have to figure out what was up with my client and his server... I blamed the ";", but I'm sure it's really some other mistake I've made.
Joe Cheng rounds out the series of follow-up posts: http://jcheng.wordpress.com/2007/04/20/app-interop/