Everything Old Is New Again: The Return Of Push
from the this-ain't-your-father's-pointcast dept
Recently I mentioned that I think services like Twitter are likely to help stitch together the variety of short-messaging options that are becoming available to mobile users. There's another story here, though: the shift in net architecture that's taking place in order to support these new services.
Jive Software has an interesting blog post about one of these technologies: XMPP, aka Jabber (ReadWriteWeb also has a thoughtful post on the matter here). Jabber is an increasingly popular XML protocol that powers instant messaging services like Google Talk -- and many other things. As the Jive post points out, Tivo is beginning to use XMPP to notify its customers' set-top boxes of schedule updates. The old alternative involved each Tivo polling a central server every so often to check for updates, the same way that email and RSS clients do. But that's inefficient, particularly if the polling needs to be done frequently. An IM protocol is ideally suited to delivering messages with little latency and in a lightweight manner (and will know how to traverse users' NAT routers, too). XMPP is particularly extensible and comprehensive, making it useful for many different applications.
And XMPP isn't the only technique being used to solve these problems. Comet is another emerging technology with a similar purpose, but focused specifically on the web. Instead of repeated polling, a Comet app keeps one very long-running HTTP connection open, along which messages can be sent without waiting for the browser to ask for them. This lets applications like Gmail and Meebo deliver performance that's virtually latency-free.
Although I'm tempted to avoid the baggage that comes with it, this trend does fit pretty comfortably into the push/pull paradigm of the late 90s. I have good reason for that reticence: as anyone who's lived through periods of both thin and fat client triumphalism knows, enthusiasm for different technological approaches is cyclical, driven by whatever applications people consider most exciting at the time, and along the way shoehorning a lot of ill-suited apps into the hot paradigm du jour.
But this time the demand for push protocols is more than just a fad. It's also a sign of our increasing technological sophistication. Polling is no longer an option for a lot of reasons, but all of them have to do with computing's ubiquity: there are too many users, too many devices, and no patience for less than immediate performance. Broadcast was fine when technology was just entertainment; pull was fine when technology was just a supplement to our lives. But now it seems that the network is driving our daily activities, and we can't wait around for it to do so.