TrackBacks are Pings, Maybe
Byrne Reese from SixApart is pursuing an idea as he works toward a formal specification for TrackBacks to submit to the standards process: are trackbacks and pings really the same thing? In talking to him a week ago, my reflexive answer was: “Sure, the only things that are different are the endpoints.” Having thought about it some more, I’m convinced that pings and trackbacks are in fact synonyms.
Or at least they should be. In practice, things are more difficult. First, while there is no single ping format specification, Dave Winer’s format (URLs over XML-RPC ) is the de facto standard. (Note: Atom can and does work via XML-RPC, it’s a replacement for the XML document structure, not the transport). Second, while conceptually analogous, the current spec from SixApart is a REST-ful (mostly) implementation of pings. So right off the bat, for TrackBack and (de facto) Ping to coalesce, the transport issue will need to be resolved.
In general, I’m a fan of REST. But REST is really geared to communicating parameters (state) via URLs using CGI encoding, rather than transmission of content. XML-RPC on the other hand, transmits content directly, and is well suited to large, extended chunks of data being sent over the wire. Why should this matter when considering how to harmonize TrackBack and Ping? Because the emerging idea of what a “ping” is entails much more than just a timestamp and URLs pointing back to the origin server. Pings are that, and will continue to be, but they will be increasingly used to convey much more about the published content: meta-data, usage policy, and even the raw content itself (“fat ping” for those who follow the evolving discussions on the matter).
If the payload for a ping is going to support extended metadata, policy and even the content itself, then a REST-ful interface is probably not the right choice. XML-RPC is a fine choice for handling large complex bundles of data, but is problematic for publishers of blog tools. Most blog tools support HTTP POST functions that authors use to publish their entries. TrackBacks, as designed by SixApart, are just HTTP POST requests that arrive not from the author, but from other blogs. So, TrackBacks are straightforward to support for blog tools since they REST-ful, and rely only on HTTP POST. Changing TrackBack to require XML-RPC transport would be placing a heavy burden on blog tool providers, and would probably not be embraced quickly or widely. It’s not rocket science, but it is a different processing model than the one blog tools are typically built around.
I think the answer here is that TrackBacks are lightweight pings. That is, messages that are faithful to the original name “ping” – “I’m here, are you there?”. Maybe TrackBack is the issue that called the bluff on a lot of what has been happening around ping in the last few months: “Ping” is probably not the right word anymore, given the features we hope to infuse it with. If we adopt a new term for “fat ping”, and decide to give back “ping” it’s original meaning for the blogosphere, then Trackbacks and lightweight pings can probably be merged. Trackback/Pings can be REST-ful – natural and familiar to use for the blog tools, and workable for ping servers. Fat pings – or whatever they will be called – can continue with XML-RPC, XMPP or whatever transport is needed to support moving larger, structured bundles of content around.