ejabberd PubSub features

ProcessOne - Nicolas Vérité - September 16, 2009

The ejabberd XMPP server offers a very rich PubSub module (mod_pubsub), enabling a wide range of publish and subscribe applications. PubSub is the type of feature used by Wordpress to publish updates on blog in near realtime and is a key component of the real time web.

ejabberd has received a lot of improvements in the PubSub module during the version 2.1.0 development process.

First, ejabberd’s PubSub module underwent a partial rewrite to enable optimizations in terms of I/O (input and output) resulting in a lot performance improvements. The PubSub module also now supports ODBC, which enables storage of large volumes of data.

Regarding the performance, this PubSub implementation has been deployed in production on several huge and high profile events distribution platform. We will publish more informations on those use cases soon.

As you can see, although mod_pubsub does not yet cover 100 % of the related specifications (XEP-0060 and XEP-0248), it is quite complete. Many thanks go to Brian Cully, who worked hard to contribute to this module and helped Christophe Romain, lead PubSub developer at ProcessOne.

Here is a summary of the PubSub features that are now implemented in ejabberd:

Features Implementation XEP Ref. XEP link
access-authorize 4.5 Node Access Model http://xmpp.org/extensions/xep-0060.html#accessmodels
access-open 4.5 Node Access Model http://xmpp.org/extensions/xep-0060.html#accessmodels
access-presence 4.5 Node Access Model http://xmpp.org/extensions/xep-0060.html#accessmodels
access-roster 4.5 Node Access Model http://xmpp.org/extensions/xep-0060.html#accessmodels
access-whitelist 4.5 Node Access Model http://xmpp.org/extensions/xep-0060.html#accessmodels
auto-create 7.1.4   Automatic Node Creation http://xmpp.org/extensions/xep-0060.html#publisher-publish-autocreate
auto-subscribe 9.1 Auto-Subscribe http://xmpp.org/extensions/xep-0060.html#auto-subscribe
collections   http://xmpp.org/extensions/xep-0248.html
config-node 8.2 Configure a Node http://xmpp.org/extensions/xep-0060.html#owner-configure
create-and-configure 8.1.3   Create and Configure a Node http://xmpp.org/extensions/xep-0060.html#owner-create-and-configure
create-nodes 8.1 Create a Node http://xmpp.org/extensions/xep-0060.html#owner-create
delete-items 7.2 Delete an Item   from a Node http://xmpp.org/extensions/xep-0060.html#publisher-delete
delete-nodes 7.2 Delete an Item from a Node http://xmpp.org/extensions/xep-0060.html#owner-delete
filtered-notifications 9.2 Filtered   Notifications http://xmpp.org/extensions/xep-0060.html#filtered-notifications
get-pending 8.6 Manage Subscription   Requests http://xmpp.org/extensions/xep-0060.html#owner-subreq
instant-nodes 8.1 Create a Node http://xmpp.org/extensions/xep-0060.html#owner-create
item-ids N/A N/A
last-published 6.1.7   Receiving the Last Published Item http://xmpp.org/extensions/xep-0060.html#subscriber-subscribe-last
leased-subscription 12.18 Time-Based   Subscriptions (Leases) http://xmpp.org/extensions/xep-0060.html#impl-leases
manage-subscription 8.8 Manage   Subscriptions http://xmpp.org/extensions/xep-0060.html#owner-subscriptions
member-affiliation 4.1 Affiliations http://xmpp.org/extensions/xep-0060.html#affiliations
meta-data N/A N/A
modify-affiliations 8.9 Manage   Affiliations http://xmpp.org/extensions/xep-0060.html#owner-affiliations
multi-collection 6.3.1   Only One Collection Node http://xmpp.org/extensions/xep-0248.html#createassociated-error-onenode
multi-subscribe 6.1.6   Multiple Subscriptions http://xmpp.org/extensions/xep-0060.html#subscriber-subscribe-multi
outcast-affiliation 4.1 Affiliations http://xmpp.org/extensions/xep-0060.html#affiliations
persistent-items N/A N/A
presence-notifications N/A N/A
presence-subscribe 9.1 Auto-Subscribe http://xmpp.org/extensions/xep-0060.html#auto-subscribe
publish 7.1 Publish an   Item to a Node http://xmpp.org/extensions/xep-0060.html#publisher-publish
publish-options 7.1.5   Publishing Options http://xmpp.org/extensions/xep-0060.html#publisher-publish-options
publisher-affiliation 4.1 Affiliations http://xmpp.org/extensions/xep-0060.html#affiliations
purge-nodes 8.5 Purge All Node Items http://xmpp.org/extensions/xep-0060.html#owner-purge
retract-items 7.2 Delete an Item from a Node http://xmpp.org/extensions/xep-0060.html#publisher-delete
retrieve-affiliations 5.7 Retrieve   Affiliations http://xmpp.org/extensions/xep-0060.html#entity-affiliations
retrieve-default 8.3 Request Default   Configuration Options http://xmpp.org/extensions/xep-0060.html#owner-default
retrieve-items 6.4 Retrieve   Items from a Node http://xmpp.org/extensions/xep-0060.html#subscriber-retrieve
retrieve-subscriptions 5.6 Retrieve   Subscriptions http://xmpp.org/extensions/xep-0060.html#entity-subscriptions
subscribe 6.1 Subscribe   to a Node
&
6.2   Unsubscribe from a Node
http://xmpp.org/extensions/xep-0060.html#subscriber-subscribe
&
http://xmpp.org/extensions/xep-0060.html#subscriber-unsubscribe
subscription-options 6.3 Configure   Subscription Options http://xmpp.org/extensions/xep-0060.html#subscriber-configure
subscription-notifications 12.12 Notification of   Subscription State Changes http://xmpp.org/extensions/xep-0060.html#impl-subchange

Feel free to download and test our latest ejabberd 2.1 RC1, your feedback is encouraged and will be welcome.



Categories: Companies  ProcessOne  

Comments

No comments so far, you could be the first.

Add comment

Name:

Email:

URL:

Smileys

Remember my personal information

Notify me of follow-up comments?