Core to the concept of ubiquity are bots and web services as realtime participants. Unfortunately, bots on the web today are like one billion 6-year olds with ADD repeatedly asking, “I’m bored, something new? Something new? Something new, yet?” Just as we don’t listen to our phones’ dial tones and wait for them to ring, bots also want to be notified only when the world changes. Message passing makes this possible.
Message passing is a distributed computing technique, ideally suited to the constraints of real-time, and limited resources (computing or attention resources), realities we face today, particularly in the mobile space. Long proposed as enabling a future of independent agents operating on our behalf, message passing has largely been out of reach of Web developers. In failing to be interactive, most attempts at distributed computing (DCOM, BEEP, RMI, SOAP) have also failed to be human. Instant messaging is the exception—the success story of message passing. But first generation systems (AOL/MSN/Yahoo) were walled gardens, monolithic, and un-extensible. Jabber (XMPP) promised to change this, but until recently, suffered from both a lack of adoption, and for being downright confusing.
The Jabber landscape is changing. A steep learning and startup curve has been replaced with low, rolling hills. Wide adoption (driven in part by Google’s standardization on Jabber) has driven both the clients and library support forward. Better open source servers have made it easier to become your own Jabber host, even while it becomes less necessary to run your own. We’ve become more familiar with asynchronous APIs thanks to AJAX, and meanwhile demand for thin clients has finally arrived. (though they don’t look like they told us they would look)
We will briefly cover the Jabber protocol (XMPP), and explore its strengths and potentials. We will demonstrate that with a few lines of Ruby code one can create an interesting, real world Jabber-enabled web service, accessible by humans from their desktop clients, mobile users via SMS social bridging services like Twitter, and robots everywhere. Finally, we’ll look at what types of structured data work well over XMPP (lots!), how to use Jabber’s extensibility (just XML!), and how to re-cast popular RESTful web services (Flickr) as message passing!
(to be completed)
Kellan works as a Hackr for Flickr on a wide range of projects dealing with sharing, privacy, and data mining. He co-authored the OAuth 1.0 Core specification as the first step towards organizing a mass data jail break and decentralization. Fluffy computational clouds, and played based metaphors are the future of social software.