[jdev] Research Assistance

Jonathan Dickinson jonathan.dickinson at k2.com
Thu Sep 4 08:04:06 CDT 2008


> -----Original Message-----
> From: jdev-bounces at jabber.org [mailto:jdev-bounces at jabber.org] On
> Behalf Of aragalo at cs.uct.ac.za
> Sent: Thursday, September 04, 2008 2:32 PM
> To: jdev at jabber.org
> Subject: [jdev] Research Assistance
>
> Hi,
>
> My name is Anisa Ragalo. I am a Masters in Computer Science student at
> the University of Cape Town, South Africa.

Great! Greets from South Africa.

> My masters project involves the aggregation of presence awareness
> information from assorted devices (including mobile phones and PDAs)
> belonging to an individual in order to provide a single and consistent
> view of the individual's presence.

One way to do this in terms of XMPP (if XMPP is your chosen aggregation point) is to create a gateway to SIMPLE that only supports presence information. This way, another component on the XMPP server could see all the presence information from SIMPLE and XMPP.

> Specifically my project involves implementing a generic Multiple
> Points of Presence system in both the SIMPLE and XMPP presence
> protocols and subsequently determining which protocol performs better
> in this scenario.

I read some metrics a while ago, but I forget where. IIRC XMPP performed marginally better.

> My specific question is: Which metric, relevant to presence
> information could I use to compare the two protocol implementations of
> the Multiple Points of Presence system?

Time is second/minute/hour/day/etc. I use server below, but in terms of SIMPLE it would really mean peer.

Firstly, the most obvious one is total data per time. Unfortunately, with XMPP a lot of this depends on how you use the protocol, especially if you use stream compression. Seeing as you are on a mobile device I recommend using BOSH, but if the device can set up TCP streams (I would assume SIMPLE would require these) you MUST use normal TCP binding (as this would give SIMPLE an 'unfair' advantage). You would obviously want to minimize data use with mobiles: so I recommend you compress XMPP even if you don't/cant with SIMPLE.

Secondly, I would think you would need to look at total presence updates per time. It varies from server implementation to server implementation, so I recommend you use the same one as on jabber.org (ejabberd) because j.o has a very large user base (it's a common case).

Thirdly, you would need to determine total unnecessary presence updates per time. This occurs when a server broadcasts an unnecessary presence packet (i.e. the destination user's server already has the exact same presence information). A user sending unnecessary packets to their server probably wouldn't count (and is most probably a logical error in the XMPP/SIMPLE implementation).

Finally, latency would be a large concern if the technology _only_ cares about presence. It makes sense that SIMPLE would do better here.

Keep in mind that in South Africa we have traversable NATs on our mobile networks, this would mean that SIP can do P2P connections. I recommend you do two tests for SIMPLE: in P2P mode and in proxy mode (if such a mode exists). Just because our network allows P2P connections (via NAT traversal) doesn't mean that all networks would world-wide.

HTH, Good luck with the thesis!

-- Jonathan



More information about the JDev mailing list