Event notification is something quite often required or at least useful in distributed applications.

After my experiences with WSRF, I tried to design a more "RESTful" approach to notification in our application. I've written a draft of an HTTP-based Notification system and, although I admit this draft is incomplete and could be substantially improved, the main principles I've described there work in our application.

In short, it mimics the SMTP protocol at the application level and models mailboxes and messages as resources. Sending something like this via an HTTP POST to a destination URI works fine:

<Message>
    <From href="uri-of-the-sender" />
    <To href="uri-of-the-recipient" />
    <Content>
        <ns1:test>any XML you want</ns1:test>
    </Content>
</Message>

The idea with this is to be able to support both the pull and the push approach. The pull approach could be implemented using an Atom feed.

It's all well and nice in an application that I can control entirely (clients and servers), but there's obviously a problem when trying to make this inter-operate with other systems. Two specifications thus come to mind:

I've started to look at them, and I'll write more about this in further entries.