The FOSDEM‘s concept of providing a single room to a single developer group that plans its own talks and presentations has an advantage which is focus: you get a series of talks hovering around a certain topic usually brought to you by various members of a certain “scene”. This also creates a very personal atmosphere, which is good. On the downside, some talks are sometimes targeted too much to the own crowd and could have been prepared much better. However, this problem is not specific to FOSDEM, so I better not follow that path here.
I spent some time with the Jabber community and followed two talks of Ralph Meijer who proved to be well aware of the technology and it’s implications and had a very thorough and friendly presentation style which I liked. He outlined the details of how the Jabber protocol works and gave insights into the new publish and subscribe framework of the XMPP protocol.
In short, this framework allows push-content without overhead via Instant Messaging. This might be text, but it is even more suited for application-designed XML formats. This could be anything. The basic model is: a content provider creates a named “node” on a Jabber server. One or more clients subscribe to this node and get notifications whenever new content arrives for this node. This shifts complexity from the client to the server and allows for sophisticated optimization to improve scalability.
For instance, you can think of a RSS reader like NetNewsWire to implement the Jabber protocol including the publish/subscribe model to subscribe to a blog addressing a certain Jabber “subscription node”. Each update to the blog would result in instant delivery of the new RSS item (and only the new item) description to the node and from there to all subscribed clients (whenever they are available for transmission). Result: no more heavy polling of the site of the feed, no more duplicate transmission of entries with each change to the feed and instant delivery of the update in real-time are the promise of this technology. I could image that aggregators like Bloglines might be interested in that approach as it would reduce their load.
A good example of how this could work is Ralph Meijer’s Mimir project that does just that. Have a look at the architecture diagram that explains the structure quite well. Unfortunately, support for pubsub is not yet prevalent – but this might change.
I have been raising my ears the first moment I heard about the publish and subscribe idea as it is not totally new to me. Apple had that feature in Mac OS since version 7 and it worked like a charm although the API was not well-documented and therefore developer support was poor. The Mac OS publish and subscribe worked on the file system level: whenever a file changed (on a server), notification was passed to a subscribed application. This worked fine e.g. for Quark XPress automatically reacting to changed text or graphics files that have been placed within another document. I doubt the XMPP publish and subscribe method will be used in that area, but it’s a close relative anyway.