Jabber, publish & subscribe arcitecture and ... Topic Maps


One of the main goals of the Topic Maps is to facilitate development of a distributed network of providers and consumers of "subject centric information maps". Existing Topic Maps standards provide basic support for building this kind of environment: XML-based interchange syntax (XTM), scalable identification schema based on a concept of Public Subject Identifiers (PSIs), concept of topic maps merging and leveraging of HTTP as a standard access protocol.

In a "simplified world" we can create some topic map and we can publish it to a public web server and everyone can view it using topic map viewer (such as Omnigator ) or reference it (and reuse) in other topic maps. Problem with this approach is that it is static. If later we change our topic map, nobody will know about that. Only when topic map consumers refresh their topic maps they will be able to reload and remerge our topic map with their own information.

Building real-life Topic Maps-based applications, however, often requires more sophisticated protocols and architectures. I would like firstly to reference several interesting ideas and approaches:
- TMShare
- TMRAP and here
- Virtual and Federated Topic Maps

We are ready now to jump into discussion about possible usage of Jabber messaging architecture for building distributed networks of topic maps...

What we really need is a near real time messaging / notification mechanism which distributes updates to all interested parties and/or allows running asynchronous queries to multiple information providers.

Jabber, from my perspective, is a very good candidate for this kind of infrastructure. Why?

- Jabber is an XML-based messaging infrastructure with extensible architecture.
- It allows to implement query-response scenarios.
- It also supports notification scenarios.
- It supports store and forward mechanism (important for occasionally connected clients)
- It is relatively firewall friendly (it uses client to server outgoing connections on predefined port).
- It is platform/ language neutral.
- Jabber's protocol XMPP is published recently by IETF as RFCs
- It is a proven (and running already) messaging infrastructure for communicating between humans and applications in all combinations.

The most interesting part is probably JEP-0060: Publish-Subscribe. This specification defines a generic publish/subscribe framework for use by Jabber entities. I think it can be reused for building publish/subscribe infrastructure for topic maps.

With this approach topic map providers can announce which topics are available for subscriptions. And consumers can subscribe to specific topics. As soon as new information is available about topic it can be distributed to all subscribers. Inside of messages we can use topic map fragments defined by TMRAP , for example.

Interesting example of JEP-0060 usage can be found on PubSub.com

Posted: Tue - October 12, 2004 at 12:26 PM      


©