As IM moves from centralized services to distributed deployment, scaling of presence status is a key problem. If I have 200 contacts, and my presence status changes from "at desk" to "in meeting," this needs to be communicated with those contacts watching my status. In a distributed environment, this leads to network traffic.
Scaling efficiently is essential for a global IM service. This is being examined for the two proposed open standards for IM: XMPP (eXtensible Messaging and Presence Protocol) and SIMPLE (Session Initiation Protocol (SIP) for Instant Messaging and Presence Leveraging Extensions).
SIMPLE experts have set out a framework for analyzing this problem, including some suggestions to improve SIMPLE in this area.
XMPP experts have used the framework and example scenarios of this paper to provide an equivalent analysis for XMPP.
The analysis offers some interesting comparisons. We've shown the results for bandwidth usage, for both the current SIMPLE specifications and after the improvements recommended in the draft.
For example, if the domains have 20,000 users, where each user has four contacts in external domains and changes presence three times an hour, bandwidth usage is estimated to be 30 kilobytes per second for XMPP and 830 kilobytes per second for SIMPLE (571 kilobytes per second with suggested optimizations).
Or, in tabular form, including some other examples:
No. users |
Contacts/user |
Changes/hour |
XMPP Bandwidth |
SIMPLE Bandwidth |
Optimized SIMPLE |
20,000 |
4 |
3 |
30KB/s |
830KB/s |
571KB/s |
20,000 |
20 |
3 |
150KB/s |
1968KB/s |
571KB/s |
60,000 |
10 |
3 |
225KB/s |
3683KB/s |
16775KB/s |
10,000,00 |
10 |
6 |
70833KB/s |
880555KB/s |
545833KB/s |
This item was originally posted as an 'Insight Bulletin' for Ferris Research.
