ralphm.net

ralphm's blog

Monday, 18 October 2004

Idavoll 2: PostgreSQL backend

Remembering stuff...

The rewrite of Idavoll, dubbed Idavoll 2, is starting to shape up. Besides the volatile memory backend, I started working on a second backend, using PostgreSQL for storage. It uses Twisted Enterprise, that provides asynchronous access to any DB-API 2.0 compliant database interface, in this case pyPgSQL.

I'm still learning how to code in the Twisted Way™, and having two separate backends helps figure out how to use Services, Interfaces and Adaptors in a productive way. Having thought about Idavoll's architecture a bit more, it would probably be a good idea to spread the pubsub features over several backend interfaces, with matching adaptors. That way, one can create custom backends that implement a limited set of functionality, or have a service that offers some functionality using other protocols. Examples:

  • A service with a web interface to manage the nodes, affiliations, and subscriptions.

  • A HTTP interface for publishing data, using REST or SOAP. Like Atom API.

  • Using SMTP for notifications.

I plan to redo the backend for Mimír this way. While being able to setup your channel subscriptions via the Jabber pubsub protocol, the web interface could be reimplemented as an Adaptor between the backend interface and Twisted Web or Nevow.

But that is the future. Back to creating the building blocks.

Wednesday, 6 October 2004

Idavoll rewrite #3

Picking up the pace...

In light of several ideas that I've been thinking about during my commute cycling trips and under the shower (those are the best places!), I'm back at my work on Idavoll, the generic Jabber pubsub service, as described in JEP-0060. For my daytime job, I've been coding in Python as well, and going back to Idavoll I see I have to do a bit of refactoring to make the code more elegant, shorter and above all: more readable. I'm committed to work on Idavoll regularly from now on, adding features as I go, so watch this space for updates.

Tuesday, 5 October 2004

XMPP RFCs

Press release in dutch...

Bart van Bragt was kind enough to translate the JSF press release into dutch, and alert various dutch news sources. Since the US part of our community is asleep, I put it up on planet.jabber.org, with the same nice layout as on jabber.org itself.

RFCs 3920-3923: XMPP!

Finally...

After two-and-a-half years work, the IETF has published the XMPP specifications as RFCs. For more information see the press release from the Jabber Software Foundation. These are the actual RFCs:

  • RFC 3920: Extensible Messaging and Presence Protocol (XMPP): Core

  • RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence

  • RFC 3922: Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM)

  • RFC 3923: End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP)

Congratulations to all involved in the work of the XMPP Working Group and Jabber in general. A special mention of two people: jer, thanks for starting this all back in 1999, and offline offlinestpeter, thanks for all the hard work you put into cranking out these specification!

Jabber Rocks!